Difference between revisions of "Unit ARMGIC"
From Ultibo.org
Line 59: | Line 59: | ||
|- | |- | ||
! Note | ! Note | ||
− | | The returned Entry is a copy of the registered value. Caller should free Entry if required. For shared entries the Index parameter indicates which entry in the chain to return (0 equals first etc). | + | | The returned Entry is a copy of the registered value. Caller should free Entry if required. |
+ | For shared entries the Index parameter indicates which entry in the chain to return (0 equals first etc). | ||
|- | |- | ||
|} | |} | ||
Line 71: | Line 72: | ||
|- | |- | ||
! Note | ! Note | ||
− | | Entry must be allocated from heap as a pointer so it will be retained while the interrupt remains registered. Entry must not be freed by the caller. | + | | Entry must be allocated from heap as a pointer so it will be retained while the interrupt remains registered. |
+ | Entry must not be freed by the caller. | ||
|- | |- | ||
|} | |} | ||
Line 83: | Line 85: | ||
|- | |- | ||
! Note | ! Note | ||
− | | The Entry can be a local temporary copy allocated either from the stack or on the heap, this routine will free the original Entry passed to Register once it is successfully deregistered. Caller should free Entry if required. | + | | The Entry can be a local temporary copy allocated either from the stack or on the heap, this routine will free the original Entry passed to Register once it is successfully deregistered. |
+ | Caller should free Entry if required. | ||
|- | |- | ||
|} | |} |
Revision as of 04:36, 19 June 2021
Return to Unit Reference
Description
ARM Generic Interrupt Controller Driver
Constants
To be documented
Type definitions
To be documented
Public variables
None defined
Function declarations
ARM GIC functions
function ARMGICCreate(DistAddress,CPUAddress:PtrUInt):PGICDevice;
Description: To be documented
Note | None documented |
---|
function ARMGICStart(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetEntry(GIC:PGICDevice; CPUID,Number,Flags:LongWord; var Entry:TInterruptEntry; Index:LongWord):LongWord;
Description: To be documented
Note | The returned Entry is a copy of the registered value. Caller should free Entry if required.
For shared entries the Index parameter indicates which entry in the chain to return (0 equals first etc). |
---|
function ARMGICRegisterEntry(GIC:PGICDevice; const Entry:TInterruptEntry):LongWord;
Description: To be documented
Note | Entry must be allocated from heap as a pointer so it will be retained while the interrupt remains registered.
Entry must not be freed by the caller. |
---|
function ARMGICDeregisterEntry(GIC:PGICDevice; const Entry:TInterruptEntry):LongWord;
Description: To be documented
Note | The Entry can be a local temporary copy allocated either from the stack or on the heap, this routine will free the original Entry passed to Register once it is successfully deregistered.
Caller should free Entry if required. |
---|
ARM GIC interrupt functions
function ARMGICDispatchIRQ(CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;
Description: To be documented
Note | Called by ARMv7/8IRQHandler in PlatformARMv7/8 |
---|
function ARMGICDispatchFIQ(CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;
Description: To be documented
Note | Called by ARMv7/8FIQHandler in PlatformARMv7/8 |
---|
function ARMGICDispatchInterrupt(CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;
Description: Process any pending IRQ/FIQ requests
Note | Called by ARMGICDispatchIRQ/ARMGICDispatchFIQ. A DataMemoryBarrier is executed before and after calling this function. |
---|
ARM GIC helper functions
function ARMGICIsValid(GIC:PGICDevice; Number:LongWord):Boolean;
Description: To be documented
Note | None documented |
---|
function ARMGICIsLocal(GIC:PGICDevice; Number:LongWord):Boolean;
Description: To be documented
Note | None documented |
---|
function ARMGICIsSoftware(GIC:PGICDevice; Number:LongWord):Boolean;
Description: To be documented
Note | None documented |
---|
function ARMGICIsGlobal(GIC:PGICDevice; Number:LongWord):Boolean;
Description: To be documented
Note | None documented |
---|
function ARMGICGetIRQCount(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetFIQCount(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetIRQStart(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetIRQRouting(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetFIQRouting(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetIRQLocalCount(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetFIQLocalCount(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetIRQLocalStart(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetIRQSoftwareCount(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetFIQSoftwareCount(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
function ARMGICGetIRQSoftwateStart(GIC:PGICDevice):LongWord;
Description: To be documented
Note | None documented |
---|
Return to Unit Reference