29 lines
777 B
C
29 lines
777 B
C
#pragma once
|
|
#include <stdint.h>
|
|
#include <exec/list.h>
|
|
#include <exec/hal.h>
|
|
|
|
#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); |