]> pd.if.org Git - zos/blob - smp.h
add a readme with a public domain note
[zos] / smp.h
1 #ifndef SMP_H_
2 #define SMP_H_ 1
3
4 #include <stdint.h>
5
6 void init_smp(void);
7
8 struct mpfp {
9         uint32_t signature;
10         uint32_t mpconfigptr;
11         uint8_t length;
12         uint8_t version;
13         uint8_t checksum;
14         uint8_t features1;
15         uint8_t features2;
16         uint8_t features3;
17         uint8_t features4;
18         uint8_t features5;
19 };
20
21 struct mpconfig {
22         uint32_t signature;
23         uint16_t tablelength;
24         uint8_t revision;
25         uint8_t checksum;
26         char    oemid[8];
27         char    productid[12];
28         uint32_t oemtableptr;
29         uint16_t oemtablesize;
30         uint16_t entrycount;
31         uint32_t localapicaddr;
32         uint16_t extendedtablen;
33         uint8_t extendedchecksum;
34         uint8_t reserved;
35 };
36
37 struct processorentry {
38         uint8_t etype;
39         uint8_t apicid;
40         uint8_t apicversion;
41         uint8_t enabled:1;
42         uint8_t bootstrap:1;
43         uint8_t unused:6;
44         uint32_t signature;
45         uint32_t features;
46         char    unused2[8];
47 };
48
49 struct ioapic {
50         uint8_t etype;
51         uint8_t id;
52         uint8_t ioapicversion;
53         uint8_t enabled:1;
54         uint8_t unused:7;
55         uint32_t address;
56 };
57
58 #endif