Difference between revisions of "Unit PlatformQEMUVPB"
From Ultibo.org
| Line 389: | Line 389: | ||
<pre style="border: 0; padding-bottom:0px;">function QEMUVPBHandleIRQ(Number,CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;</pre> | <pre style="border: 0; padding-bottom:0px;">function QEMUVPBHandleIRQ(Number,CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;</pre> | ||
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Call the handler function for an IRQ that was received, or halt if it doesn't exist</div> | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Call the handler function for an IRQ that was received, or halt if it doesn't exist</div> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | ! '''Note''' | ||
| + | | None documented | ||
| + | |- | ||
| + | |} | ||
| + | </div></div> | ||
| + | <br /> | ||
| + | |||
| + | '''QEMUVPB FIQ functions''' | ||
| + | |||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
| + | <pre style="border: 0; padding-bottom:0px;">function QEMUVPBDispatchFIQ(CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;</pre> | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Process any pending FIQ requests</div> | ||
| + | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
| + | {| class="wikitable" style="font-size: 14px; background: white;" | ||
| + | |- | ||
| + | ! '''Note''' | ||
| + | | Called by ARMv7/8FIQHandler in PlatformARMv7/8 | ||
| + | A DataMemoryBarrier is executed before and after calling this function | ||
| + | |- | ||
| + | |} | ||
| + | </div></div> | ||
| + | <br /> | ||
| + | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
| + | <pre style="border: 0; padding-bottom:0px;">function QEMUVPBHandleFIQ(Number,CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;</pre> | ||
| + | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Call the handler function for an FIQ that was received, or halt if it doesn't exist</div> | ||
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
Revision as of 03:06, 23 November 2016
Return to Unit Reference
Description
To be documented
Constants
To be documented
Type definitions
To be documented
Public variables
To be documented
Function declarations
Initialization functions
procedure QEMUVPBInit;
Description: To be documented
| Note | None documented |
|---|
QEMUVPB platform functions
procedure QEMUVPBBoardInit;
Description: To be documented
| Note | None documented |
|---|
procedure QEMUVPBMemoryInit;
Description: To be documented
| Note | None documented |
|---|
procedure QEMUVPBClockInit;
Description: To be documented
| Note | None documented |
|---|
procedure QEMUVPBPowerInit;
Description: To be documented
| Note | None documented |
|---|
procedure QEMUVPBInterruptInit;
Description: To be documented
| Note | None documented |
|---|
procedure QEMUVPBPeripheralInit;
Description: To be documented
| Note | None documented |
|---|
procedure QEMUVPBFramebufferInit;
Description: To be documented
| Note | None documented |
|---|
procedure QEMUVPBPageTableInit;
Description: Initialize the Hardware Page Tables before enabling the MMU
| Note | See ?????? |
|---|
function QEMUVPBRequestExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
Description: Request registration of the supplied handler to the specified IRQ number
| CPUID | CPU to route IRQ to |
|---|---|
| Number | IRQ number to register |
| Handler | Interrupt handler function to register |
| HandlerEx | Extended Interrupt handler function to register |
| Note | Only one of Handler or HandlerEx can be specified |
function QEMUVPBReleaseExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
Description: Request deregistration of the supplied handler from the specified IRQ number
| CPUID | CPU to route IRQ to |
|---|---|
| Number | IRQ number to deregister |
| Handler | Interrupt handler function to deregister |
| HandlerEx | Extended Interrupt handler function to deregister |
| Note | Only one of Handler or HandlerEx can be specified |
function QEMUVPBRequestExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
Description: Request registration of the supplied handler to the specified FIQ number
| CPUID | CPU to route FIQ to |
|---|---|
| Number | FIQ number to register |
| Handler | Interrupt handler function to register |
| HandlerEx | Extended Interrupt handler function to register |
| Note | Only one of Handler or HandlerEx can be specified |
function QEMUVPBReleaseExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
Description: Request deregistration of the supplied handler from the specified FIQ number
| CPUID | CPU to route FIQ to |
|---|---|
| Number | FIQ number to deregister |
| Handler | Interrupt handler function to deregister |
| HandlerEx | Extended Interrupt handler function to deregister |
| Note | Only one of Handler or HandlerEx can be specified |
function QEMUVPBRegisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord;
Description: Request registration of the supplied extended handler to the specified System Call number
| CPUID | The CPU ID to register the System Call against (Ignored on QEMUVPB) |
|---|---|
| Number | The System Call number to be registered |
| Handler | The handler function to be registered |
| HandlerEx | The extended handler function to be registered |
| Note | Only one of Handler or HandlerEx can be specified |
function QEMUVPBDeregisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord;
Description: Request deregistration of the supplied extended handler from the specified System Call number
| CPUID | The CPU ID to deregister the System Call from (Ignored on QEMUVPB) |
|---|---|
| Number | The System Call number to be deregistered |
| Handler | The handler function to be deregistered |
| HandlerEx | The extended handler function to be deregistered |
| Note | Only one of Handler or HandlerEx can be specified |
function QEMUVPBGetInterruptEntry(Number:LongWord):TInterruptEntry;
Description: To be documented
| Note | Get the interrupt entry for the specified interrupt number |
|---|
function QEMUVPBGetSystemCallEntry(Number:LongWord):TSystemCallEntry;
Description: Get the system call entry for the specified system call number
| Note | None documented |
|---|
function QEMUVPBSystemRestart(Delay:LongWord):LongWord;
Description: To be documented
| Note | None documented |
|---|
function QEMUVPBSystemShutdown(Delay:LongWord):LongWord;
Description: To be documented
| Note | None documented |
|---|
function QEMUVPBClockGetCount:LongWord;
Description: Gets the current system clock count (32 least significant bits of total)
| Note | On the VersatilePB this comes from the 24MHz counter which will overflow every 178 seconds |
|---|
function QEMUVPBClockGetTotal:Int64;
Description: Gets the total system clock count
| Note | On the VersatilePB this comes from the 24MHz counter which will overflow every 178 seconds and increment the rollover value. This is only accurate if either ClockGetCount or ClockGetTotal is called at least once per 178 seconds on order to increment the rollover. |
|---|
QEMUVPB thread functions
procedure QEMUVPBSchedulerInit;
Description: Initialize the scheduler interrupt on the boot CPU
| Note | None documented |
|---|
QEMUVPB IRQ functions
function QEMUVPBDispatchIRQ(CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;
Description: Process any pending IRQ requests
| Note | Called by ARMv7/8IRQHandler in PlatformARMv7/8
A DataMemoryBarrier is executed before and after calling this function |
|---|
function QEMUVPBHandleIRQ(Number,CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;
Description: Call the handler function for an IRQ that was received, or halt if it doesn't exist
| Note | None documented |
|---|
QEMUVPB FIQ functions
function QEMUVPBDispatchFIQ(CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;
Description: Process any pending FIQ requests
| Note | Called by ARMv7/8FIQHandler in PlatformARMv7/8
A DataMemoryBarrier is executed before and after calling this function |
|---|
function QEMUVPBHandleFIQ(Number,CPUID:LongWord; Thread:TThreadHandle):TThreadHandle;
Description: Call the handler function for an FIQ that was received, or halt if it doesn't exist
| Note | None documented |
|---|
Return to Unit Reference