#pragma once #include #include #include #pragma pack(push,1) struct DetectRegion { enum HalAddressSpace space; uintptr_t base; size_t limit; }; struct Detect { struct Node node; uint8_t compat_length; uint8_t reg_count; uint8_t irq_count; uint8_t reserved; }; #pragma pack(pop) void DetectInit(void); struct Detect *CreateDetect(char* compat, uint8_t reg_count, uint8_t irq_count); void SetDetectRegion(struct Detect* entry, uint8_t index, enum HalAddressSpace space, uintptr_t base, size_t limit); void SetDetectIRQ(struct Detect* entry, uint8_t index, uint8_t irq); void AddDetect(struct Detect* entry); int BuildCompat(char *str, ...); void PrintDetect(struct Detect *detect); void PrintDetects(void);