X-Git-Url: https://pd.if.org/git/?p=zos;a=blobdiff_plain;f=smp.h;fp=smp.h;h=676034546f22a6ed76770123d2bd9142cf35eeeb;hp=0000000000000000000000000000000000000000;hb=a1c6cedc6e0e0de663002e9dd231b8c2309f2544;hpb=f2359f827a0e6e0803e959a38ef9594bff62ad1e diff --git a/smp.h b/smp.h new file mode 100644 index 0000000..6760345 --- /dev/null +++ b/smp.h @@ -0,0 +1,58 @@ +#ifndef SMP_H_ +#define SMP_H_ 1 + +#include + +void init_smp(void); + +struct mpfp { + uint32_t signature; + uint32_t mpconfigptr; + uint8_t length; + uint8_t version; + uint8_t checksum; + uint8_t features1; + uint8_t features2; + uint8_t features3; + uint8_t features4; + uint8_t features5; +}; + +struct mpconfig { + uint32_t signature; + uint16_t tablelength; + uint8_t revision; + uint8_t checksum; + char oemid[8]; + char productid[12]; + uint32_t oemtableptr; + uint16_t oemtablesize; + uint16_t entrycount; + uint32_t localapicaddr; + uint16_t extendedtablen; + uint8_t extendedchecksum; + uint8_t reserved; +}; + +struct processorentry { + uint8_t etype; + uint8_t apicid; + uint8_t apicversion; + uint8_t enabled:1; + uint8_t bootstrap:1; + uint8_t unused:6; + uint32_t signature; + uint32_t features; + char unused2[8]; +}; + +struct ioapic { + uint8_t etype; + uint8_t id; + uint8_t ioapicversion; + uint8_t enabled:1; + uint8_t unused:7; + uint32_t address; +}; + +#endif