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
52
53
55
61extern void GICInitialize();
62
67
68
73
74
76
81extern uint32_t GICReadIAR();
82
83extern void GICCheckPending(uint32_t irq);
84
92
99
105
111
118
119extern void GICSetupTimer();
120
122
129AU_EXTERN AU_EXPORT void GICRegisterSPIHandler(void* fptr, int spi);
130
136extern void GICCallSPIHandler(int spi);
137#endif
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
AU_EXTERN AU_EXPORT uint32_t AuGICGetMSIData(int interruptID)
AuGICGetMSIData – obtains composited MSI data address of respected interruptID, useful in PCIe.
Definition gic.c:201
void GICCheckPending(uint32_t irq)
Definition gic.c:579
AU_EXTERN AU_EXPORT void GICSendEOI(uint32_t irqnum)
GICSendEOI –sends end of interrupt to GIC cpu interface.
Definition gic.c:604
void GICSetupTimer()
Definition gic.c:618
void GICInitialize()
GICInitialize – initialize the gic controller, it can be parsed through ACPI MADT or hard-coding.
Definition gic.c:306
AU_EXTERN AU_EXPORT void GICEnableIRQ(uint32_t irq)
Definition gic.c:461
AU_EXTERN AU_EXPORT void GICClearPendingIRQ(uint32_t irq)
Definition gic.c:569
GIC * AuGetSystemGIC()
Definition gic.c:182
AU_EXTERN AU_EXPORT void AuGICDeallocateSPI(int spiID)
AuGICDeallocateSPI – free up an used SPI id.
Definition gic.c:225
AU_EXTERN AU_EXPORT void GICSetTargetCPU(int spi)
Definition gic.c:556
AU_EXTERN AU_EXPORT int AuGICAllocateSPI()
AuGICAllocateSPI – allocates Shared Peripheral interrupt ID.
Definition gic.c:210
AU_EXTERN AU_EXPORT void GICEnableSPIIRQ(uint32_t irq)
GICEnableIRQ – enable an SPI IRQ.
Definition gic.c:527
AU_EXTERN AU_EXPORT uint64_t AuGICGetMSIAddress(int interruptID)
AuGICGetMSIAddress – calculate and return MSI address for given spi offset.
Definition gic.c:194
void GICCallSPIHandler(int spi)
GICCallSPIHandler – jump to a callback handler associated with given spi number.
Definition gic.c:652
struct _gic_ GIC
uint32_t GICReadIAR()
GICReadIAR – read interrupt acknowledge register.
Definition gic.c:590
AU_EXTERN AU_EXPORT void GICRegisterSPIHandler(void *fptr, int spi)
GICRegisterSPIHandler – register a spi handler to callback list.
Definition gic.c:641
Definition gic.h:39
uint16_t spiBase
Definition gic.h:49
uint64_t gicMSIPhys
Definition gic.h:44
uint8_t version
Definition gic.h:40
uint64_t gicDPhys
Definition gic.h:41
uint64_t gicDMMIO
Definition gic.h:45
uint64_t gicRPhys
Definition gic.h:43
uint16_t spiCount
Definition gic.h:50
uint64_t gicCPhys
Definition gic.h:42
uint64_t gicRMMIO
Definition gic.h:47
uint64_t gicMSIMMIO
Definition gic.h:48
uint64_t gicCMMIO
Definition gic.h:46