XenevaOS
Loading...
Searching...
No Matches
gic.h
Go to the documentation of this file.
1
32#ifndef __GIC_H__
33#define __GIC_H__
34
35#include <aa64hcode.h>
36#include <stdint.h>
37#include <aurora.h>
38
51
52
54
60extern void GICInitialize();
61
66
67
71extern void GICEnableSPIIRQ(uint32_t irq);
72
73
75
80extern uint32_t GICReadIAR();
81
82extern void GICCheckPending(uint32_t irq);
83
90extern uint64_t AuGICGetMSIAddress(int interruptID);
91
97extern uint32_t AuGICGetMSIData(int interruptID);
98
103extern int AuGICAllocateSPI();
104
109extern void AuGICDeallocateSPI(int spiID);
110
116extern void GICSendEOI(uint32_t irqnum);
117
118extern void GICSetupTimer();
119
120extern void GICSetTargetCPU(int spi);
121
128extern void GICRegisterSPIHandler(void* fptr, int spi);
129
135extern void GICCallSPIHandler(int spi);
136#endif
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
void GICSendEOI(uint32_t irqnum)
GICSendEOI –sends end of interrupt to GIC cpu interface.
Definition gic.c:420
int AuGICAllocateSPI()
AuGICAllocateSPI – allocates Shared Peripheral interrupt ID.
Definition gic.c:179
void GICCheckPending(uint32_t irq)
Definition gic.c:399
void AuGICDeallocateSPI(int spiID)
AuGICDeallocateSPI – free up an used SPI id.
Definition gic.c:194
void GICSetupTimer()
Definition gic.c:430
void GICInitialize()
GICInitialize – initialize the gic controller, it can be parsed through ACPI MADT or hard-coding.
Definition gic.c:213
AU_EXTERN AU_EXPORT void GICEnableIRQ(uint32_t irq)
Definition gic.c:311
AU_EXTERN AU_EXPORT void GICClearPendingIRQ(uint32_t irq)
Definition gic.c:392
GIC * AuGetSystemGIC()
Definition gic.c:153
void GICSetTargetCPU(int spi)
Definition gic.c:382
void GICRegisterSPIHandler(void *fptr, int spi)
GICRegisterSPIHandler – register a spi handler to callback list.
Definition gic.c:453
uint32_t AuGICGetMSIData(int interruptID)
AuGICGetMSIData – obtains composited MSI data address of respected interruptID, useful in PCIe.
Definition gic.c:170
void GICCallSPIHandler(int spi)
GICCallSPIHandler – jump to a callback handler associated with given spi number.
Definition gic.c:464
struct _gic_ GIC
uint32_t GICReadIAR()
GICReadIAR – read interrupt acknowledge register.
Definition gic.c:410
void GICEnableSPIIRQ(uint32_t irq)
GICEnableIRQ – enable an SPI IRQ.
Definition gic.c:367
uint64_t AuGICGetMSIAddress(int interruptID)
AuGICGetMSIAddress – calculate and return MSI address for given spi offset.
Definition gic.c:165
Definition gic.h:39
uint16_t spiBase
Definition gic.h:48
uint64_t gicMSIPhys
Definition gic.h:43
uint64_t gicDPhys
Definition gic.h:40
uint64_t gicDMMIO
Definition gic.h:44
uint64_t gicRPhys
Definition gic.h:42
uint16_t spiCount
Definition gic.h:49
uint64_t gicCPhys
Definition gic.h:41
uint64_t gicRMMIO
Definition gic.h:46
uint64_t gicMSIMMIO
Definition gic.h:47
uint64_t gicCMMIO
Definition gic.h:45