Difference between revisions of "Unit Platform"
Line 248: | Line 248: | ||
---- | ---- | ||
− | '' | + | |
+ | '''Platform logging''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PLATFORM_DEFAULT_LOG_LEVEL:LongWord = PLATFORM_LOG_LEVEL_DEBUG;</code> | ||
+ | | style="width: 65%;"|Minimum level for Platform messages. Only messages with level greater than or equal to this will be printed. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PLATFORM_LOG_ENABLED:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''IRQ logging''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_DEFAULT_LOG_LEVEL:LongWord = IRQ_LOG_LEVEL_INFO;</code> | ||
+ | | style="width: 65%;"|Minimum level for IRQ messages. Only messages with level greater than or equal to this will be printed. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>IRQ_LOG_ENABLED:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''FIQ logging''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_DEFAULT_LOG_LEVEL:LongWord = FIQ_LOG_LEVEL_INFO;</code> | ||
+ | | style="width: 65%;"|Minimum level for FIQ messages. Only messages with level greater than or equal to this will be printed. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FIQ_LOG_ENABLED:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''SWI logging''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_DEFAULT_LOG_LEVEL:LongWord = SWI_LOG_LEVEL_INFO;</code> | ||
+ | | style="width: 65%;"|Minimum level for SWI messages. Only messages with level greater than or equal to this will be printed. | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SWI_LOG_ENABLED:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Platform specific variables''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PlatformInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FPUInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMUInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SMPInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CacheInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BoardInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MemoryInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterruptsInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PeripheralsInitialized:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ParseBootTagsCompleted:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ParseCommandLineCompleted:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ParseEnvironmentCompleted:Boolean;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Lock variables''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockLock:TPlatformLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerLock:TPlatformLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxLock:TPlatformLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ShutdownLock:TPlatformLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterruptLock:TPlatformLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTableLock:TPlatformLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VectorTableLock:TPlatformLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Semaphore variables''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ShutdownSemaphore:TPlatformSemaphore;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Clock variables''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockBase:Int64 = TIME_TICKS_TO_1899;</code> | ||
+ | | style="width: 65%;"|The system time as of the last setting of the clock | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockLast:LongWord;</code> | ||
+ | | style="width: 65%;"|The timer value of the last clock tick | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockTicks:LongWord;</code> | ||
+ | | style="width: 65%;"|Current number of clock ticks (When this reaches CLOCK_TICKS_PER_SECOND then ClockSeconds is incremented and this is reset to zero) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockSeconds:LongWord;</code> | ||
+ | | style="width: 65%;"|Current number of clock seconds (This forms the system clock) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockRTCInvalid:LongBool;</code> | ||
+ | | style="width: 65%;"|True if available time from RTC is invalid | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Utilization variables''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UtilizationLast:array of LongWord;</code> | ||
+ | | style="width: 65%;"|The per CPU utilization for the last second (Allocated by scheduler initialization) | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>UtilizationCurrent:array of LongWord;</code> | ||
+ | | style="width: 65%;"|The per CPU utilization for the current second (Updated by Idle thread and reset by Scheduler interrupt) (Allocated by scheduler initialization) | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Initialization handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUInitHandler:TCPUInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FPUInitHandler:TFPUInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUInitHandler:TGPUInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MMUInitHandler:TMMUInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SMPInitHandler:TSMPInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CacheInitHandler:TCacheInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BoardInitHandler:TBoardInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MemoryInitHandler:TMemoryInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockInitHandler:TClockInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerInitHandler:TPowerInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxInitHandler:TMailboxInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterruptInitHandler:TInterruptInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PeripheralInitHandler:TPeripheralInit;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ParseBootTagsHandler:TParseBootTags;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ParseCommandLineHandler:TParseCommandLine;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ParseEnvironmentHandler:TParseEnvironment;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Blink/Output handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BootBlinkHandler:TBootBlink;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BootOutputHandler:TBootOutput;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''LED handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerLEDEnableHandler:TPowerLEDEnable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerLEDOnHandler:TPowerLEDOn;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerLEDOffHandler:TPowerLEDOff;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ActivityLEDEnableHandler:TActivityLEDEnable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ActivityLEDOnHandler:TActivityLEDOn;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ActivityLEDOffHandler:TActivityLEDOff;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Counter handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterAvailableHandler:TCounterAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterReadHandler:TCounterRead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterRead64Handler:TCounterRead64;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterWaitHandler:TCounterWait;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterEventHandler:TCounterEvent;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |}{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterCancelHandler:TCounterCancel;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterGetRateHandler:TCounterGetRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterSetRateHandler:TCounterSetRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterGetIntervalHandler:TCounterGetInterval;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CounterSetIntervalHandler:TCounterSetInterval;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Mailbox handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxReceiveHandler:TMailboxReceive;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxSendHandler:TMailboxSend;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxCallHandler:TMailboxCall;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxCallExHandler:TMailboxCallEx;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxPropertyCallHandler:TMailboxPropertyCall;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MailboxPropertyCallExHandler:TMailboxPropertyCallEx;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Random handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RandomAvailableHandler:TRandomAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RandomSeedHandler:TRandomSeed;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RandomReadLongIntHandler:TRandomReadLongInt;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RandomReadInt64Handler:TRandomReadInt64;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RandomReadExtendedHandler:TRandomReadExtended;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Watchdog handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WatchdogAvailableHandler:TWatchdogAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WatchdogStartHandler:TWatchdogStart;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WatchdogStopHandler:TWatchdogStop;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WatchdogRefreshHandler:TWatchdogRefresh;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Interrupt request (IRQ) handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RequestIRQHandler:TRequestIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ReleaseIRQHandler:TReleaseIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RequestExIRQHandler:TRequestExIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ReleaseExIRQHandler:TReleaseExIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Fast interrupt request (FIQ) handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RequestFIQHandler:TRequestFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ReleaseFIQHandler:TReleaseFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RequestExFIQHandler:TRequestExFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ReleaseExFIQHandler:TReleaseExFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''System call (software interrupt or SWI) handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SystemCallHandler:TSystemCall;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RegisterSystemCallHandler:TRegisterSystemCall;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DeregisterSystemCallHandler:TDeregisterSystemCall;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RegisterSystemCallExHandler:TRegisterSystemCallEx;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DeregisterSystemCallExHandler:TDeregisterSystemCallEx;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Interrupt entry handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetInterruptCountHandler:TGetInterruptCount;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetInterruptStartHandler:TGetInterruptStart;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetInterruptEntryHandler:TGetInterruptEntry;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Local interrupt entry handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetLocalInterruptCountHandler:TGetLocalInterruptCount;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetLocalInterruptStartHandler:TGetLocalInterruptStart;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetLocalInterruptEntryHandler:TGetLocalInterruptEntry;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''System call entry handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetSystemCallCountHandler:TGetSystemCallCount;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetSystemCallEntryHandler:TGetSystemCallEntry;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''System handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SystemRestartHandler:TSystemRestart;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SystemShutdownHandler:TSystemShutdown;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SystemGetUptimeHandler:TSystemGetUptime;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SystemGetCommandLineHandler:TSystemGetCommandLine;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SystemGetEnvironmentHandler:TSystemGetEnvironment;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''CPU handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetArchHandler:TCPUGetArch;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetTypeHandler:TCPUGetType;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetBootHandler:TCPUGetBoot;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetMaskHandler:TCPUGetMask;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetCountHandler:TCPUGetCount;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetModeHandler:TCPUGetMode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetStateHandler:TCPUGetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetCurrentHandler:TCPUGetCurrent;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetMemoryHandler:TCPUGetMemory;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetPercentageHandler:TCPUGetPercentage;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetUtilizationHandler:TCPUGetUtilization;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetModelHandler:TCPUGetModel;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetRevisionHandler:TCPUGetRevision;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CPUGetDescriptionHandler:TCPUGetDescription;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''FPU handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FPUGetTypeHandler:TFPUGetType;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FPUGetStateHandler:TFPUGetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''GPU handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUGetTypeHandler:TGPUGetType;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUGetStateHandler:TGPUGetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUGetMemoryHandler:TGPUGetMemory;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Cache handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L1CacheGetTypeHandler:TL1CacheGetType;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L1DataCacheGetSizeHandler:TL1DataCacheGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L1DataCacheGetLineSizeHandler:TL1DataCacheGetLineSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L1InstructionCacheGetSizeHandler:TL1InstructionCacheGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L1InstructionCacheGetLineSizeHandler:TL1InstructionCacheGetLineSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L2CacheGetTypeHandler:TL2CacheGetType;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L2CacheGetSizeHandler:TL2CacheGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>L2CacheGetLineSizeHandler:TL2CacheGetLineSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Board handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BoardGetTypeHandler:TBoardGetType;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BoardGetModelHandler:TBoardGetModel;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BoardGetSerialHandler:TBoardGetSerial;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BoardGetRevisionHandler:TBoardGetRevision;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>BoardGetMACAddressHandler:TBoardGetMACAddress;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Firmware handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FirmwareGetRevisionHandler:TFirmwareGetRevision;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Machine handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MachineGetTypeHandler:TMachineGetType;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Memory handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MemoryGetBaseHandler:TMemoryGetBase;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MemoryGetSizeHandler:TMemoryGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MemoryGetPageSizeHandler:TMemoryGetPageSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>MemoryGetLargePageSizeHandler:TMemoryGetLargePageSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Power handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerGetWaitHandler:TPowerGetWait;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerGetStateHandler:TPowerGetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PowerSetStateHandler:TPowerSetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Clock handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockGetCountHandler:TClockGetCount;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockGetTotalHandler:TClockGetTotal;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockUpdateOffsetHandler:TClockUpdateOffset;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockGetRateHandler:TClockGetRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockSetRateHandler:TClockSetRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockGetStateHandler:TClockGetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockSetStateHandler:TClockSetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockGetMinRateHandler:TClockGetMinRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ClockGetMaxRateHandler:TClockGetMaxRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Turbo handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TurboGetStateHandler:TTurboGetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TurboSetStateHandler:TTurboSetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Voltage handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VoltageGetValueHandler:TVoltageGetValue;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VoltageSetValueHandler:TVoltageSetValue;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VoltageGetMinValueHandler:TVoltageGetMinValue;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VoltageGetMaxValueHandler:TVoltageGetMaxValue;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Temperature handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TemperatureGetCurrentHandler:TTemperatureGetCurrent;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TemperatureGetMaximumHandler:TTemperatureGetMaximum;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''GPU memory handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUMemoryAllocateHandler:TGPUMemoryAllocate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUMemoryReleaseHandler:TGPUMemoryRelease;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUMemoryLockHandler:TGPUMemoryLock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUMemoryUnlockHandler:TGPUMemoryUnlock;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''GPU misc handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPUExecuteCodeHandler:TGPUExecuteCode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DispmanxHandleGetHandler:TDispmanxHandleGet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EDIDBlockGetHandler:TEDIDBlockGet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Framebuffer handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferAvailableHandler:TFramebufferAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferAllocateHandler:TFramebufferAllocate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferReleaseHandler:TFramebufferRelease;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetStateHandler:TFramebufferSetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetDimensionsHandler:TFramebufferGetDimensions;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetPhysicalHandler:TFramebufferGetPhysical;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetPhysicalHandler:TFramebufferSetPhysical;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestPhysicalHandler:TFramebufferTestPhysical;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetVirtualHandler:TFramebufferGetVirtual;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetVirtualHandler:TFramebufferSetVirtual;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestVirtualHandler:TFramebufferTestVirtual;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetDepthHandler:TFramebufferGetDepth;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetDepthHandler:TFramebufferSetDepth;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestDepthHandler:TFramebufferTestDepth;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetPixelOrderHandler:TFramebufferGetPixelOrder;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetPixelOrderHandler:TFramebufferSetPixelOrder;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestPixelOrderHandler:TFramebufferTestPixelOrder;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetAlphaModeHandler:TFramebufferGetAlphaMode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetAlphaModeHandler:TFramebufferSetAlphaMode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestAlphaModeHandler:TFramebufferTestAlphaMode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetPitchHandler:TFramebufferGetPitch;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetOffsetHandler:TFramebufferGetOffset;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetOffsetHandler:TFramebufferSetOffset;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestOffsetHandler:TFramebufferTestOffset;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetOverscanHandler:TFramebufferGetOverscan;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetOverscanHandler:TFramebufferSetOverscan;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestOverscanHandler:TFramebufferTestOverscan;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |}{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferGetPaletteHandler:TFramebufferGetPalette;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetPaletteHandler:TFramebufferSetPalette;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestPaletteHandler:TFramebufferTestPalette;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferTestVsyncHandler:TFramebufferTestVsync;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetVsyncHandler:TFramebufferSetVsync;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FramebufferSetBacklightHandler:TFramebufferSetBacklight;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | Cursor handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CursorSetDefaultHandler:TCursorSetDefault;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CursorSetInfoHandler:TCursorSetInfo;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CursorSetStateHandler:TCursorSetState;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Touch handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>TouchGetBufferHandler:TTouchGetBuffer;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''DMA handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAAvailableHandler:TDMAAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMATransferHandler:TDMATransfer;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAFillMemoryHandler:TDMAFillMemory;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMACopyMemoryHandler:TDMACopyMemory;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAReadPeripheralHandler:TDMAReadPeripheral;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAWritePeripheralHandler:TDMAWritePeripheral;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAAllocateBufferHandler:TDMAAllocateBuffer;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAAllocateBufferExHandler:TDMAAllocateBufferEx;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAReleaseBufferHandler:TDMAReleaseBuffer;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DMAGetChannelsHandler:TDMAGetChannels;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''GPIO handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOAvailableHandler:TGPIOAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOReadHandler:TGPIORead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOWriteHandler:TGPIOWrite;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOInputGetHandler:TGPIOInputGet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOInputWaitHandler:TGPIOInputWait;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOInputEventHandler:TGPIOInputEvent;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOOutputSetHandler:TGPIOOutputSet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOPullGetHandler:TGPIOPullGet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOPullSelectHandler:TGPIOPullSelect;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOFunctionGetHandler:TGPIOFunctionGet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GPIOFunctionSelectHandler:TGPIOFunctionSelect;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Virtual GPIO handlers''' | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VirtualGPIOInputGetHandler:TVirtualGPIOInputGet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VirtualGPIOOutputSetHandler:TVirtualGPIOOutputSet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VirtualGPIOFunctionSelectHandler:TVirtualGPIOFunctionSelect;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''SPI handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIAvailableHandler:TSPIAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIStartHandler:TSPIStart;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIStopHandler:TSPIStop;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIReadHandler:TSPIRead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIWriteHandler:TSPIWrite;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIWriteReadHandler:TSPIWriteRead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIGetModeHandler:TSPIGetMode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPISetModeHandler:TSPISetMode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIGetClockRateHandler:TSPIGetClockRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPISetClockRateHandler:TSPISetClockRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIGetClockPhaseHandler:TSPIGetClockPhase;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPISetClockPhaseHandler:TSPISetClockPhase;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIGetClockPolarityHandler:TSPIGetClockPolarity;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPISetClockPolarityHandler:TSPISetClockPolarity;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPIGetSelectPolarityHandler:TSPIGetSelectPolarity;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SPISetSelectPolarityHandler:TSPISetSelectPolarity;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''I2C handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CAvailableHandler:TI2CAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CStartHandler:TI2CStart;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CStopHandler:TI2CStop;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CReadHandler:TI2CRead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CWriteHandler:TI2CWrite;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CWriteReadHandler:TI2CWriteRead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CWriteWriteHandler:TI2CWriteWrite;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CGetRateHandler:TI2CGetRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CSetRateHandler:TI2CSetRate;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CGetAddressHandler:TI2CGetAddress;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>I2CSetAddressHandler:TI2CSetAddress;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''PWM handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMAvailableHandler:TPWMAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMStartHandler:TPWMStart;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMStopHandler:TPWMStop;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMWriteHandler:TPWMWrite;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMSetModeHandler:TPWMSetMode;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMSetRangeHandler:TPWMSetRange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMSetFrequencyHandler:TPWMSetFrequency;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PWMConfigureHandler:TPWMConfigure;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''RTC handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RTCAvailableHandler:TRTCAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RTCGetTimeHandler:TRTCGetTime;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RTCSetTimeHandler:TRTCSetTime;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Serial handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SerialAvailableHandler:TSerialAvailable;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SerialOpenHandler:TSerialOpen;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SerialCloseHandler:TSerialClose;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SerialReadHandler:TSerialRead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SerialWriteHandler:TSerialWrite;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Peripheral handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PeripheralGetBaseHandler:TPeripheralGetBase;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PeripheralGetSizeHandler:TPeripheralGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PeripheralReadHandler:TPeripheralRead;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PeripheralWriteHandler:TPeripheralWrite;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LocalPeripheralGetBaseHandler:TLocalPeripheralGetBase;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LocalPeripheralGetSizeHandler:TLocalPeripheralGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''GetSP/PC handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetSPHandler:TGetSP;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetPCHandler:TGetPC;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Enable/Disable/Save/RestoreIRQ/FIQ handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetIRQHandler:TGetIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EnableIRQHandler:TEnableIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DisableIRQHandler:TDisableIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SaveIRQHandler:TSaveIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RestoreIRQHandler:TRestoreIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetFIQHandler:TGetFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EnableFIQHandler:TEnableFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DisableFIQHandler:TDisableFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SaveFIQHandler:TSaveFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RestoreFIQHandler:TRestoreFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EnableIRQFIQHandler:TEnableIRQFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DisableIRQFIQHandler:TDisableIRQFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SaveIRQFIQHandler:TSaveIRQFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RestoreIRQFIQHandler:TRestoreIRQFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>GetAbortHandler:TGetAbort;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>EnableAbortHandler:TEnableAbort;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DisableAbortHandler:TDisableAbort;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SaveAbortHandler:TSaveAbort;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>RestoreAbortHandler:TRestoreAbort;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Halt/Pause handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HaltHandler:THalt;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PauseHandler:TPause;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''HaltThread handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HaltThreadHandler:THaltThread;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''SendEvent/WaitForEvent/Interrupt handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>SendEventHandler:TSendEvent;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WaitForEventHandler:TWaitForEvent;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WaitForInterruptHandler:TWaitForInterrupt;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Barrier handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ReadMemoryBarrierHandler:TReadMemoryBarrier;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>WriteMemoryBarrierHandler:TWriteMemoryBarrier;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DataMemoryBarrierHandler:TDataMemoryBarrier;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>DataSynchronizationBarrierHandler:TDataSynchronizationBarrier;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InstructionMemoryBarrierHandler:TInstructionMemoryBarrier;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''TLB handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateTLBHandler:TInvalidateTLB;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateDataTLBHandler:TInvalidateDataTLB;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateInstructionTLBHandler:TInvalidateInstructionTLB;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Cache handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateCacheHandler:TInvalidateCache;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CleanDataCacheHandler:TCleanDataCache;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateDataCacheHandler:TInvalidateDataCache;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CleanAndInvalidateDataCacheHandler:TCleanAndInvalidateDataCache;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateInstructionCacheHandler:TInvalidateInstructionCache;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CleanDataCacheRangeHandler:TCleanDataCacheRange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateDataCacheRangeHandler:TInvalidateDataCacheRange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CleanAndInvalidateDataCacheRangeHandler:TCleanAndInvalidateDataCacheRange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InvalidateInstructionCacheRangeHandler:TInvalidateInstructionCacheRange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Prefetch buffer handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FlushPrefetchBufferHandler:TFlushPrefetchBuffer;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Branch target cache handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FlushBranchTargetCacheHandler:TFlushBranchTargetCache;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''ContextSwitch handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ContextSwitchHandler:TContextSwitch;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ContextSwitchIRQHandler:TContextSwitchIRQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ContextSwitchFIQHandler:TContextSwitchFIQ;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ContextSwitchSWIHandler:TContextSwitchSWI;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''And/Xor/Or/Increment/Decrement/Exchange handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedOrHandler:TInterlockedOr;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedXorHandler:TInterlockedXor;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedAndHandler:TInterlockedAnd;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedDecrementHandler:TInterlockedDecrement;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedIncrementHandler:TInterlockedIncrement;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedExchangeHandler:TInterlockedExchange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedAddExchangeHandler:TInterlockedAddExchange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>InterlockedCompareExchangeHandler:TInterlockedCompareExchange;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''PageTable handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTableGetBaseHandler:TPageTableGetBase;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTableGetSizeHandler:TPageTableGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTableGetEntryHandler:TPageTableGetEntry; </code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTableSetEntryHandler:TPageTableSetEntry;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''PageTables handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTablesGetAddressHandler:TPageTablesGetAddress;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTablesGetLengthHandler:TPageTablesGetLength;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTablesGetCountHandler:TPageTablesGetCount;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTablesGetShiftHandler:TPageTablesGetShift;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTablesGetNextHandler:TPageTablesGetNext;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTablesGetUsedHandler:TPageTablesGetUsed;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>PageTablesGetFreeHandler:TPageTablesGetFree;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''VectorTable handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VectorTableGetBaseHandler:TVectorTableGetBase;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VectorTableGetSizeHandler:TVectorTableGetSize;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VectorTableGetCountHandler:TVectorTableGetCount;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VectorTableGetEntryHandler:TVectorTableGetEntry;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>VectorTableSetEntryHandler:TVectorTableSetEntry;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''FirstBitSet handler''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>FirstBitSetHandler:TFirstBitSet;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''CountLeadingZeros handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CountLeadingZerosHandler:TCountLeadingZeros;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Console handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsoleGetKeyHandler:TConsoleGetKey;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsolePeekKeyHandler:TConsolePeekKey;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsoleWriteCharHandler:TConsoleWriteChar;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsoleReadCharHandler:TConsoleReadChar;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsoleReadWideCharHandler:TConsoleReadWideChar;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsoleHideMouseHandler:TConsoleHideMouse;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsoleShowMouseHandler:TConsoleShowMouse;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>ConsoleReadMouseHandler:TConsoleReadMouse;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''CodePage handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>CodePageToWideCharHandler:TCodePageToWideChar;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>Variable</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Name handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HostGetNameHandler:THostGetName;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HostSetNameHandler:THostSetName;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HostGetDomainHandler:THostGetDomain;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>HostSetDomainHandler:THostSetDomain;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | '''Logging handlers''' | ||
+ | |||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LoggingOutputHandler:TLoggingOutput;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | {| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;" | ||
+ | |- | ||
+ | | <code>LoggingOutputExHandler:TLoggingOutputEx;</code> | ||
+ | | style="width: 65%;"| | ||
+ | |- | ||
+ | |} | ||
+ | <br /> | ||
=== Function declarations === | === Function declarations === |
Revision as of 05:24, 5 January 2017
Return to Unit Reference
Contents
[hide]Description
Ultibo Platform interface unit
To be documented
Constants
DMA_DATA_FLAG_*
PAGE_TABLE_FLAG_*
VECTOR_TABLE_ENTRY_*
EXCEPTION_TYPE_*
PLATFORM_LOG_LEVEL_*
IRQ_LOG_LEVEL_*
FIQ_LOG_LEVEL_*
SWI_LOG_LEVEL_*
Type definitions
To be documented
Public variables
Platform logging
PLATFORM_DEFAULT_LOG_LEVEL:LongWord = PLATFORM_LOG_LEVEL_DEBUG;
|
Minimum level for Platform messages. Only messages with level greater than or equal to this will be printed. |
PLATFORM_LOG_ENABLED:Boolean;
|
IRQ logging
IRQ_DEFAULT_LOG_LEVEL:LongWord = IRQ_LOG_LEVEL_INFO;
|
Minimum level for IRQ messages. Only messages with level greater than or equal to this will be printed. |
IRQ_LOG_ENABLED:Boolean;
|
FIQ logging
FIQ_DEFAULT_LOG_LEVEL:LongWord = FIQ_LOG_LEVEL_INFO;
|
Minimum level for FIQ messages. Only messages with level greater than or equal to this will be printed. |
FIQ_LOG_ENABLED:Boolean;
|
SWI logging
SWI_DEFAULT_LOG_LEVEL:LongWord = SWI_LOG_LEVEL_INFO;
|
Minimum level for SWI messages. Only messages with level greater than or equal to this will be printed. |
SWI_LOG_ENABLED:Boolean;
|
Platform specific variables
PlatformInitialized:Boolean;
|
CPUInitialized:Boolean;
|
FPUInitialized:Boolean;
|
GPUInitialized:Boolean;
|
MMUInitialized:Boolean;
|
SMPInitialized:Boolean;
|
CacheInitialized:Boolean;
|
BoardInitialized:Boolean;
|
MemoryInitialized:Boolean;
|
ClockInitialized:Boolean;
|
PowerInitialized:Boolean;
|
MailboxInitialized:Boolean;
|
InterruptsInitialized:Boolean;
|
PeripheralsInitialized:Boolean;
|
ParseBootTagsCompleted:Boolean;
|
ParseCommandLineCompleted:Boolean;
|
ParseEnvironmentCompleted:Boolean;
|
Lock variables
ClockLock:TPlatformLock;
|
PowerLock:TPlatformLock;
|
MailboxLock:TPlatformLock;
|
ShutdownLock:TPlatformLock;
|
InterruptLock:TPlatformLock;
|
PageTableLock:TPlatformLock;
|
VectorTableLock:TPlatformLock;
|
Semaphore variables
ShutdownSemaphore:TPlatformSemaphore;
|
Clock variables
ClockBase:Int64 = TIME_TICKS_TO_1899;
|
The system time as of the last setting of the clock |
ClockLast:LongWord;
|
The timer value of the last clock tick |
ClockTicks:LongWord;
|
Current number of clock ticks (When this reaches CLOCK_TICKS_PER_SECOND then ClockSeconds is incremented and this is reset to zero) |
ClockSeconds:LongWord;
|
Current number of clock seconds (This forms the system clock) |
ClockRTCInvalid:LongBool;
|
True if available time from RTC is invalid |
Utilization variables
UtilizationLast:array of LongWord;
|
The per CPU utilization for the last second (Allocated by scheduler initialization) |
UtilizationCurrent:array of LongWord;
|
The per CPU utilization for the current second (Updated by Idle thread and reset by Scheduler interrupt) (Allocated by scheduler initialization) |
Initialization handlers
CPUInitHandler:TCPUInit;
|
FPUInitHandler:TFPUInit;
|
GPUInitHandler:TGPUInit;
|
MMUInitHandler:TMMUInit;
|
SMPInitHandler:TSMPInit;
|
CacheInitHandler:TCacheInit;
|
BoardInitHandler:TBoardInit;
|
MemoryInitHandler:TMemoryInit;
|
ClockInitHandler:TClockInit;
|
PowerInitHandler:TPowerInit;
|
MailboxInitHandler:TMailboxInit;
|
InterruptInitHandler:TInterruptInit;
|
PeripheralInitHandler:TPeripheralInit;
|
ParseBootTagsHandler:TParseBootTags;
|
ParseCommandLineHandler:TParseCommandLine;
|
ParseEnvironmentHandler:TParseEnvironment;
|
Blink/Output handlers
BootBlinkHandler:TBootBlink;
|
BootOutputHandler:TBootOutput;
|
LED handlers
PowerLEDEnableHandler:TPowerLEDEnable;
|
PowerLEDOnHandler:TPowerLEDOn;
|
PowerLEDOffHandler:TPowerLEDOff;
|
ActivityLEDEnableHandler:TActivityLEDEnable;
|
ActivityLEDOnHandler:TActivityLEDOn;
|
ActivityLEDOffHandler:TActivityLEDOff;
|
Counter handlers
CounterAvailableHandler:TCounterAvailable;
|
CounterReadHandler:TCounterRead;
|
CounterRead64Handler:TCounterRead64;
|
CounterWaitHandler:TCounterWait;
|
CounterEventHandler:TCounterEvent;
|
|-
| CounterCancelHandler:TCounterCancel;
| style="width: 65%;"|
|-
|}
CounterGetRateHandler:TCounterGetRate;
|
CounterSetRateHandler:TCounterSetRate;
|
CounterGetIntervalHandler:TCounterGetInterval;
|
CounterSetIntervalHandler:TCounterSetInterval;
|
Mailbox handlers
MailboxReceiveHandler:TMailboxReceive;
|
MailboxSendHandler:TMailboxSend;
|
MailboxCallHandler:TMailboxCall;
|
MailboxCallExHandler:TMailboxCallEx;
|
MailboxPropertyCallHandler:TMailboxPropertyCall;
|
MailboxPropertyCallExHandler:TMailboxPropertyCallEx;
|
Random handlers
RandomAvailableHandler:TRandomAvailable;
|
RandomSeedHandler:TRandomSeed;
|
RandomReadLongIntHandler:TRandomReadLongInt;
|
RandomReadInt64Handler:TRandomReadInt64;
|
RandomReadExtendedHandler:TRandomReadExtended;
|
Watchdog handlers
WatchdogAvailableHandler:TWatchdogAvailable;
|
WatchdogStartHandler:TWatchdogStart;
|
WatchdogStopHandler:TWatchdogStop;
|
WatchdogRefreshHandler:TWatchdogRefresh;
|
Interrupt request (IRQ) handlers
RequestIRQHandler:TRequestIRQ;
|
ReleaseIRQHandler:TReleaseIRQ;
|
RequestExIRQHandler:TRequestExIRQ;
|
ReleaseExIRQHandler:TReleaseExIRQ;
|
Fast interrupt request (FIQ) handlers
RequestFIQHandler:TRequestFIQ;
|
ReleaseFIQHandler:TReleaseFIQ;
|
RequestExFIQHandler:TRequestExFIQ;
|
ReleaseExFIQHandler:TReleaseExFIQ;
|
System call (software interrupt or SWI) handlers
SystemCallHandler:TSystemCall;
|
RegisterSystemCallHandler:TRegisterSystemCall;
|
DeregisterSystemCallHandler:TDeregisterSystemCall;
|
RegisterSystemCallExHandler:TRegisterSystemCallEx;
|
DeregisterSystemCallExHandler:TDeregisterSystemCallEx;
|
Interrupt entry handlers
GetInterruptCountHandler:TGetInterruptCount;
|
GetInterruptStartHandler:TGetInterruptStart;
|
GetInterruptEntryHandler:TGetInterruptEntry;
|
Local interrupt entry handlers
GetLocalInterruptCountHandler:TGetLocalInterruptCount;
|
GetLocalInterruptStartHandler:TGetLocalInterruptStart;
|
GetLocalInterruptEntryHandler:TGetLocalInterruptEntry;
|
System call entry handlers
GetSystemCallCountHandler:TGetSystemCallCount;
|
GetSystemCallEntryHandler:TGetSystemCallEntry;
|
System handlers
SystemRestartHandler:TSystemRestart;
|
SystemShutdownHandler:TSystemShutdown;
|
SystemGetUptimeHandler:TSystemGetUptime;
|
SystemGetCommandLineHandler:TSystemGetCommandLine;
|
SystemGetEnvironmentHandler:TSystemGetEnvironment;
|
CPU handlers
CPUGetArchHandler:TCPUGetArch;
|
CPUGetTypeHandler:TCPUGetType;
|
CPUGetBootHandler:TCPUGetBoot;
|
CPUGetMaskHandler:TCPUGetMask;
|
CPUGetCountHandler:TCPUGetCount;
|
CPUGetModeHandler:TCPUGetMode;
|
CPUGetStateHandler:TCPUGetState;
|
CPUGetCurrentHandler:TCPUGetCurrent;
|
CPUGetMemoryHandler:TCPUGetMemory;
|
CPUGetPercentageHandler:TCPUGetPercentage;
|
CPUGetUtilizationHandler:TCPUGetUtilization;
|
CPUGetModelHandler:TCPUGetModel;
|
CPUGetRevisionHandler:TCPUGetRevision;
|
CPUGetDescriptionHandler:TCPUGetDescription;
|
FPU handlers
FPUGetTypeHandler:TFPUGetType;
|
FPUGetStateHandler:TFPUGetState;
|
GPU handlers
GPUGetTypeHandler:TGPUGetType;
|
GPUGetStateHandler:TGPUGetState;
|
GPUGetMemoryHandler:TGPUGetMemory;
|
Cache handlers
L1CacheGetTypeHandler:TL1CacheGetType;
|
L1DataCacheGetSizeHandler:TL1DataCacheGetSize;
|
L1DataCacheGetLineSizeHandler:TL1DataCacheGetLineSize;
|
L1InstructionCacheGetSizeHandler:TL1InstructionCacheGetSize;
|
L1InstructionCacheGetLineSizeHandler:TL1InstructionCacheGetLineSize;
|
L2CacheGetTypeHandler:TL2CacheGetType;
|
L2CacheGetSizeHandler:TL2CacheGetSize;
|
L2CacheGetLineSizeHandler:TL2CacheGetLineSize;
|
Board handlers
BoardGetTypeHandler:TBoardGetType;
|
BoardGetModelHandler:TBoardGetModel;
|
BoardGetSerialHandler:TBoardGetSerial;
|
BoardGetRevisionHandler:TBoardGetRevision;
|
BoardGetMACAddressHandler:TBoardGetMACAddress;
|
Firmware handlers
FirmwareGetRevisionHandler:TFirmwareGetRevision;
|
Machine handlers
MachineGetTypeHandler:TMachineGetType;
|
Memory handlers
MemoryGetBaseHandler:TMemoryGetBase;
|
MemoryGetSizeHandler:TMemoryGetSize;
|
MemoryGetPageSizeHandler:TMemoryGetPageSize;
|
MemoryGetLargePageSizeHandler:TMemoryGetLargePageSize;
|
Power handlers
PowerGetWaitHandler:TPowerGetWait;
|
PowerGetStateHandler:TPowerGetState;
|
PowerSetStateHandler:TPowerSetState;
|
Clock handlers
ClockGetCountHandler:TClockGetCount;
|
ClockGetTotalHandler:TClockGetTotal;
|
ClockUpdateOffsetHandler:TClockUpdateOffset;
|
ClockGetRateHandler:TClockGetRate;
|
ClockSetRateHandler:TClockSetRate;
|
ClockGetStateHandler:TClockGetState;
|
ClockSetStateHandler:TClockSetState;
|
ClockGetMinRateHandler:TClockGetMinRate;
|
ClockGetMaxRateHandler:TClockGetMaxRate;
|
Turbo handlers
TurboGetStateHandler:TTurboGetState;
|
TurboSetStateHandler:TTurboSetState;
|
Voltage handlers
VoltageGetValueHandler:TVoltageGetValue;
|
VoltageSetValueHandler:TVoltageSetValue;
|
VoltageGetMinValueHandler:TVoltageGetMinValue;
|
VoltageGetMaxValueHandler:TVoltageGetMaxValue;
|
Temperature handlers
TemperatureGetCurrentHandler:TTemperatureGetCurrent;
|
TemperatureGetMaximumHandler:TTemperatureGetMaximum;
|
GPU memory handlers
GPUMemoryAllocateHandler:TGPUMemoryAllocate;
|
GPUMemoryReleaseHandler:TGPUMemoryRelease;
|
GPUMemoryLockHandler:TGPUMemoryLock;
|
GPUMemoryUnlockHandler:TGPUMemoryUnlock;
|
GPU misc handlers
GPUExecuteCodeHandler:TGPUExecuteCode;
|
DispmanxHandleGetHandler:TDispmanxHandleGet;
|
EDIDBlockGetHandler:TEDIDBlockGet;
|
Framebuffer handlers
FramebufferAvailableHandler:TFramebufferAvailable;
|
FramebufferAllocateHandler:TFramebufferAllocate;
|
FramebufferReleaseHandler:TFramebufferRelease;
|
FramebufferSetStateHandler:TFramebufferSetState;
|
FramebufferGetDimensionsHandler:TFramebufferGetDimensions;
|
FramebufferGetPhysicalHandler:TFramebufferGetPhysical;
|
FramebufferSetPhysicalHandler:TFramebufferSetPhysical;
|
FramebufferTestPhysicalHandler:TFramebufferTestPhysical;
|
FramebufferGetVirtualHandler:TFramebufferGetVirtual;
|
FramebufferSetVirtualHandler:TFramebufferSetVirtual;
|
FramebufferTestVirtualHandler:TFramebufferTestVirtual;
|
FramebufferGetDepthHandler:TFramebufferGetDepth;
|
FramebufferSetDepthHandler:TFramebufferSetDepth;
|
FramebufferTestDepthHandler:TFramebufferTestDepth;
|
FramebufferGetPixelOrderHandler:TFramebufferGetPixelOrder;
|
FramebufferSetPixelOrderHandler:TFramebufferSetPixelOrder;
|
FramebufferTestPixelOrderHandler:TFramebufferTestPixelOrder;
|
FramebufferGetAlphaModeHandler:TFramebufferGetAlphaMode;
|
FramebufferSetAlphaModeHandler:TFramebufferSetAlphaMode;
|
FramebufferTestAlphaModeHandler:TFramebufferTestAlphaMode;
|
FramebufferGetPitchHandler:TFramebufferGetPitch;
|
FramebufferGetOffsetHandler:TFramebufferGetOffset;
|
FramebufferSetOffsetHandler:TFramebufferSetOffset;
|
FramebufferTestOffsetHandler:TFramebufferTestOffset;
|
FramebufferGetOverscanHandler:TFramebufferGetOverscan;
|
FramebufferSetOverscanHandler:TFramebufferSetOverscan;
|
FramebufferTestOverscanHandler:TFramebufferTestOverscan;
|
|-
| FramebufferGetPaletteHandler:TFramebufferGetPalette;
| style="width: 65%;"|
|-
|}
FramebufferSetPaletteHandler:TFramebufferSetPalette;
|
FramebufferTestPaletteHandler:TFramebufferTestPalette;
|
FramebufferTestVsyncHandler:TFramebufferTestVsync;
|
FramebufferSetVsyncHandler:TFramebufferSetVsync;
|
FramebufferSetBacklightHandler:TFramebufferSetBacklight;
|
Cursor handlers
CursorSetDefaultHandler:TCursorSetDefault;
|
CursorSetInfoHandler:TCursorSetInfo;
|
CursorSetStateHandler:TCursorSetState;
|
Touch handlers
TouchGetBufferHandler:TTouchGetBuffer;
|
DMA handlers
DMAAvailableHandler:TDMAAvailable;
|
DMATransferHandler:TDMATransfer;
|
DMAFillMemoryHandler:TDMAFillMemory;
|
DMACopyMemoryHandler:TDMACopyMemory;
|
DMAReadPeripheralHandler:TDMAReadPeripheral;
|
DMAWritePeripheralHandler:TDMAWritePeripheral;
|
DMAAllocateBufferHandler:TDMAAllocateBuffer;
|
DMAAllocateBufferExHandler:TDMAAllocateBufferEx;
|
DMAReleaseBufferHandler:TDMAReleaseBuffer;
|
DMAGetChannelsHandler:TDMAGetChannels;
|
GPIO handlers
GPIOAvailableHandler:TGPIOAvailable;
|
GPIOReadHandler:TGPIORead;
|
GPIOWriteHandler:TGPIOWrite;
|
GPIOInputGetHandler:TGPIOInputGet;
|
GPIOInputWaitHandler:TGPIOInputWait;
|
GPIOInputEventHandler:TGPIOInputEvent;
|
GPIOOutputSetHandler:TGPIOOutputSet;
|
GPIOPullGetHandler:TGPIOPullGet;
|
GPIOPullSelectHandler:TGPIOPullSelect;
|
GPIOFunctionGetHandler:TGPIOFunctionGet;
|
GPIOFunctionSelectHandler:TGPIOFunctionSelect;
|
Virtual GPIO handlers
VirtualGPIOInputGetHandler:TVirtualGPIOInputGet;
|
VirtualGPIOOutputSetHandler:TVirtualGPIOOutputSet;
|
VirtualGPIOFunctionSelectHandler:TVirtualGPIOFunctionSelect;
|
SPI handlers
SPIAvailableHandler:TSPIAvailable;
|
SPIStartHandler:TSPIStart;
|
SPIStopHandler:TSPIStop;
|
SPIReadHandler:TSPIRead;
|
SPIWriteHandler:TSPIWrite;
|
SPIWriteReadHandler:TSPIWriteRead;
|
SPIGetModeHandler:TSPIGetMode;
|
SPISetModeHandler:TSPISetMode;
|
SPIGetClockRateHandler:TSPIGetClockRate;
|
SPISetClockRateHandler:TSPISetClockRate;
|
SPIGetClockPhaseHandler:TSPIGetClockPhase;
|
SPISetClockPhaseHandler:TSPISetClockPhase;
|
SPIGetClockPolarityHandler:TSPIGetClockPolarity;
|
SPISetClockPolarityHandler:TSPISetClockPolarity;
|
SPIGetSelectPolarityHandler:TSPIGetSelectPolarity;
|
SPISetSelectPolarityHandler:TSPISetSelectPolarity;
|
I2C handlers
I2CAvailableHandler:TI2CAvailable;
|
I2CStartHandler:TI2CStart;
|
I2CStopHandler:TI2CStop;
|
I2CReadHandler:TI2CRead;
|
I2CWriteHandler:TI2CWrite;
|
I2CWriteReadHandler:TI2CWriteRead;
|
I2CWriteWriteHandler:TI2CWriteWrite;
|
I2CGetRateHandler:TI2CGetRate;
|
I2CSetRateHandler:TI2CSetRate;
|
I2CGetAddressHandler:TI2CGetAddress;
|
I2CSetAddressHandler:TI2CSetAddress;
|
PWM handlers
PWMAvailableHandler:TPWMAvailable;
|
PWMStartHandler:TPWMStart;
|
PWMStopHandler:TPWMStop;
|
PWMWriteHandler:TPWMWrite;
|
PWMSetModeHandler:TPWMSetMode;
|
PWMSetRangeHandler:TPWMSetRange;
|
PWMSetFrequencyHandler:TPWMSetFrequency;
|
PWMConfigureHandler:TPWMConfigure;
|
RTC handlers
RTCAvailableHandler:TRTCAvailable;
|
RTCGetTimeHandler:TRTCGetTime;
|
RTCSetTimeHandler:TRTCSetTime;
|
Serial handlers
SerialAvailableHandler:TSerialAvailable;
|
SerialOpenHandler:TSerialOpen;
|
SerialCloseHandler:TSerialClose;
|
SerialReadHandler:TSerialRead;
|
SerialWriteHandler:TSerialWrite;
|
Peripheral handlers
PeripheralGetBaseHandler:TPeripheralGetBase;
|
PeripheralGetSizeHandler:TPeripheralGetSize;
|
PeripheralReadHandler:TPeripheralRead;
|
PeripheralWriteHandler:TPeripheralWrite;
|
LocalPeripheralGetBaseHandler:TLocalPeripheralGetBase;
|
LocalPeripheralGetSizeHandler:TLocalPeripheralGetSize;
|
GetSP/PC handlers
GetSPHandler:TGetSP;
|
GetPCHandler:TGetPC;
|
Enable/Disable/Save/RestoreIRQ/FIQ handlers
GetIRQHandler:TGetIRQ;
|
EnableIRQHandler:TEnableIRQ;
|
DisableIRQHandler:TDisableIRQ;
|
SaveIRQHandler:TSaveIRQ;
|
RestoreIRQHandler:TRestoreIRQ;
|
GetFIQHandler:TGetFIQ;
|
EnableFIQHandler:TEnableFIQ;
|
DisableFIQHandler:TDisableFIQ;
|
SaveFIQHandler:TSaveFIQ;
|
RestoreFIQHandler:TRestoreFIQ;
|
EnableIRQFIQHandler:TEnableIRQFIQ;
|
DisableIRQFIQHandler:TDisableIRQFIQ;
|
SaveIRQFIQHandler:TSaveIRQFIQ;
|
RestoreIRQFIQHandler:TRestoreIRQFIQ;
|
GetAbortHandler:TGetAbort;
|
EnableAbortHandler:TEnableAbort;
|
DisableAbortHandler:TDisableAbort;
|
SaveAbortHandler:TSaveAbort;
|
RestoreAbortHandler:TRestoreAbort;
|
Halt/Pause handlers
HaltHandler:THalt;
|
PauseHandler:TPause;
|
HaltThread handlers
HaltThreadHandler:THaltThread;
|
SendEvent/WaitForEvent/Interrupt handlers
SendEventHandler:TSendEvent;
|
WaitForEventHandler:TWaitForEvent;
|
WaitForInterruptHandler:TWaitForInterrupt;
|
Barrier handlers
ReadMemoryBarrierHandler:TReadMemoryBarrier;
|
WriteMemoryBarrierHandler:TWriteMemoryBarrier;
|
DataMemoryBarrierHandler:TDataMemoryBarrier;
|
DataSynchronizationBarrierHandler:TDataSynchronizationBarrier;
|
InstructionMemoryBarrierHandler:TInstructionMemoryBarrier;
|
TLB handlers
InvalidateTLBHandler:TInvalidateTLB;
|
InvalidateDataTLBHandler:TInvalidateDataTLB;
|
InvalidateInstructionTLBHandler:TInvalidateInstructionTLB;
|
Cache handlers
InvalidateCacheHandler:TInvalidateCache;
|
CleanDataCacheHandler:TCleanDataCache;
|
InvalidateDataCacheHandler:TInvalidateDataCache;
|
CleanAndInvalidateDataCacheHandler:TCleanAndInvalidateDataCache;
|
InvalidateInstructionCacheHandler:TInvalidateInstructionCache;
|
CleanDataCacheRangeHandler:TCleanDataCacheRange;
|
InvalidateDataCacheRangeHandler:TInvalidateDataCacheRange;
|
CleanAndInvalidateDataCacheRangeHandler:TCleanAndInvalidateDataCacheRange;
|
InvalidateInstructionCacheRangeHandler:TInvalidateInstructionCacheRange;
|
Prefetch buffer handlers
FlushPrefetchBufferHandler:TFlushPrefetchBuffer;
|
Branch target cache handlers
FlushBranchTargetCacheHandler:TFlushBranchTargetCache;
|
ContextSwitch handlers
ContextSwitchHandler:TContextSwitch;
|
ContextSwitchIRQHandler:TContextSwitchIRQ;
|
ContextSwitchFIQHandler:TContextSwitchFIQ;
|
ContextSwitchSWIHandler:TContextSwitchSWI;
|
And/Xor/Or/Increment/Decrement/Exchange handlers
InterlockedOrHandler:TInterlockedOr;
|
InterlockedXorHandler:TInterlockedXor;
|
InterlockedAndHandler:TInterlockedAnd;
|
InterlockedDecrementHandler:TInterlockedDecrement;
|
InterlockedIncrementHandler:TInterlockedIncrement;
|
InterlockedExchangeHandler:TInterlockedExchange;
|
InterlockedAddExchangeHandler:TInterlockedAddExchange;
|
InterlockedCompareExchangeHandler:TInterlockedCompareExchange;
|
PageTable handlers
PageTableGetBaseHandler:TPageTableGetBase;
|
PageTableGetSizeHandler:TPageTableGetSize;
|
PageTableGetEntryHandler:TPageTableGetEntry;
|
PageTableSetEntryHandler:TPageTableSetEntry;
|
PageTables handlers
PageTablesGetAddressHandler:TPageTablesGetAddress;
|
PageTablesGetLengthHandler:TPageTablesGetLength;
|
PageTablesGetCountHandler:TPageTablesGetCount;
|
PageTablesGetShiftHandler:TPageTablesGetShift;
|
PageTablesGetNextHandler:TPageTablesGetNext;
|
PageTablesGetUsedHandler:TPageTablesGetUsed;
|
PageTablesGetFreeHandler:TPageTablesGetFree;
|
VectorTable handlers
VectorTableGetBaseHandler:TVectorTableGetBase;
|
VectorTableGetSizeHandler:TVectorTableGetSize;
|
VectorTableGetCountHandler:TVectorTableGetCount;
|
VectorTableGetEntryHandler:TVectorTableGetEntry;
|
VectorTableSetEntryHandler:TVectorTableSetEntry;
|
FirstBitSet handler
FirstBitSetHandler:TFirstBitSet;
|
CountLeadingZeros handlers
CountLeadingZerosHandler:TCountLeadingZeros;
|
Console handlers
ConsoleGetKeyHandler:TConsoleGetKey;
|
ConsolePeekKeyHandler:TConsolePeekKey;
|
ConsoleWriteCharHandler:TConsoleWriteChar;
|
ConsoleReadCharHandler:TConsoleReadChar;
|
ConsoleReadWideCharHandler:TConsoleReadWideChar;
|
ConsoleHideMouseHandler:TConsoleHideMouse;
|
ConsoleShowMouseHandler:TConsoleShowMouse;
|
ConsoleReadMouseHandler:TConsoleReadMouse;
|
CodePage handlers
CodePageToWideCharHandler:TCodePageToWideChar;
|
Variable
|
Name handlers
HostGetNameHandler:THostGetName;
|
HostSetNameHandler:THostSetName;
|
HostGetDomainHandler:THostGetDomain;
|
HostSetDomainHandler:THostSetDomain;
|
Logging handlers
LoggingOutputHandler:TLoggingOutput;
|
LoggingOutputExHandler:TLoggingOutputEx;
|
Function declarations
Initialization functions
procedure PlatformInit;
procedure CPUInit;
procedure FPUInit;
procedure SMPInit;
procedure CacheInit;
procedure MemoryInit;
procedure ParseBootTags;
procedure ParseCommandLine;
procedure ParseEnvironment;
Boot functions
procedure BootOutput(Value:LongWord); inline;
LED functions
procedure ActivityLEDEnable; inline;
procedure ActivityLEDOff; inline;
Counter functions (Timer device)
function CounterAvailable:Boolean; inline;
function CounterRead:LongWord; inline;
function CounterRead64:Int64; inline;
function CounterWait:LongWord; inline;
function CounterEvent(Callback:TCounterCallback; Data:Pointer):LongWord; inline;
function CounterCancel:LongWord; inline;
function CounterGetRate:LongWord; inline;
function CounterSetRate(Rate:LongWord):LongWord; inline;
function CounterGetInterval:LongWord; inline;
function CounterSetInterval(Interval:LongWord):LongWord; inline;
Mailbox functions
function MailboxReceive(Mailbox,Channel:LongWord):LongWord; inline;
procedure MailboxSend(Mailbox,Channel,Data:LongWord); inline;
function MailboxCall(Mailbox,Channel,Data:LongWord; var Response:LongWord):LongWord; inline;
function MailboxCallEx(Mailbox,Channel,Data:LongWord; var Response:LongWord; Timeout:LongWord):LongWord; inline;
function MailboxPropertyCall(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord):LongWord; inline;
function MailboxPropertyCallEx(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord; Timeout:LongWord):LongWord; inline;
Random number functions
function RandomAvailable:Boolean; inline;
Watchdog Timer Functions
function WatchdogAvailable:Boolean; inline;
function WatchdogStart(Milliseconds:LongWord):LongWord; inline;
function WatchdogRefresh(Milliseconds:LongWord):LongWord; inline;
Interrupt request (IRQ) functions
function RequestIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
function ReleaseIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
function RequestExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
function ReleaseExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
Fast interrupt request (FIQ) functions
function RequestFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
function ReleaseFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
function RequestExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
function ReleaseExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
System call (Software Interrupt or SWI) functions
procedure SystemCall(Number:LongWord; Param1,Param2,Param3:PtrUInt); inline;
function RegisterSystemCall(Number:LongWord; Handler:TSystemCallHandler):LongWord; inline;
function DeregisterSystemCall(Number:LongWord; Handler:TSystemCallHandler):LongWord; inline;
function RegisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord; inline;
function DeregisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord; inline;
Interrupt entry functions
function GetInterruptCount:LongWord; inline;
function GetInterruptStart:LongWord; inline;
function GetInterruptEntry(Number:LongWord):TInterruptEntry; inline;
Local interrupt entry functions
function GetLocalInterruptCount:LongWord; inline;
function GetLocalInterruptStart:LongWord; inline;
function GetLocalInterruptEntry(CPUID,Number:LongWord):TInterruptEntry; inline;
System call entry functions
function GetSystemCallCount:LongWord; inline;
function GetSystemCallEntry(Number:LongWord):TSystemCallEntry; inline;
System functions
function SystemGetUptime:Int64; inline;
CPU Functions
function CPUGetMemory(var Address:PtrUInt; var Length:LongWord):LongWord; inline;
function CPUGetPercentage(CPUID:LongWord):Double; inline;
function CPUGetUtilization(CPUID:LongWord):LongWord; inline;
function CPUGetRevision:LongWord; inline;
function CPUGetDescription:String; inline;
FPU functions
GPU functions
function GPUGetMemory(var Address:PtrUInt; var Length:LongWord):LongWord; inline;
Cache functions
function L1CacheGetType:LongWord; inline;
function L1DataCacheGetSize:LongWord; inline;
function L1DataCacheGetLineSize:LongWord; inline;
function L1InstructionCacheGetSize:LongWord; inline;
function L1InstructionCacheGetLineSize:LongWord; inline;
function L2CacheGetType:LongWord; inline;
function L2CacheGetSize:LongWord; inline;
function L2CacheGetLineSize:LongWord; inline;
Board functions
function BoardGetRevision:LongWord; inline;
function BoardGetMACAddress:String; inline;
Firmware functions
function FirmwareGetRevision:LongWord; inline;
Machine functions
Memory functions
function MemoryGetPageSize:LongWord; inline;
function MemoryGetLargePageSize:LongWord; inline;
Power functions
function PowerGetWait(PowerId:LongWord):LongWord; inline;
function PowerGetState(PowerId:LongWord):LongWord; inline;
function PowerSetState(PowerId,State:LongWord; Wait:Boolean):LongWord; inline;
Clock functions
function ClockGetTime:Int64;
function ClockSetTime(const Time:Int64; RTC:Boolean):Int64;
function ClockGetCount:LongWord; inline;
function ClockUpdateOffset:LongWord; inline;
function ClockGetRate(ClockId:LongWord):LongWord; inline;
function ClockSetRate(ClockId,Rate:LongWord; Turbo:Boolean):LongWord; inline;
function ClockGetState(ClockId:LongWord):LongWord; inline;
function ClockSetState(ClockId,State:LongWord):LongWord; inline;
function ClockGetMinRate(ClockId:LongWord):LongWord; inline;
function ClockGetMaxRate(ClockId:LongWord):LongWord; inline;
Turbo functions
function TurboGetState(TurboId:LongWord):LongWord; inline;
function TurboSetState(TurboId,State:LongWord):LongWord; inline;
Voltage functions
function VoltageGetValue(VoltageId:LongWord):LongWord; inline;
function VoltageSetValue(VoltageId,Value:LongWord):LongWord; inline;
function VoltageGetMinValue(VoltageId:LongWord):LongWord; inline;
function VoltageGetMaxValue(VoltageId:LongWord):LongWord; inline;
Temperature functions
function TemperatureGetCurrent(TemperatureId:LongWord):LongWord; inline;
function TemperatureGetMaximum(TemperatureId:LongWord):LongWord; inline;
GPU memory functions
function GPUMemoryAllocate(Length,Alignment,Flags:LongWord):THandle; inline;
function GPUMemoryRelease(Handle:THandle):LongWord; inline;
function GPUMemoryLock(Handle:THandle):LongWord; inline;
function GPUMemoryUnlock(Handle:THandle):LongWord; inline;
GPU misc functions
function GPUExecuteCode(Address:Pointer; R0,R1,R2,R3,R4,R5:LongWord):LongWord; inline;
function DispmanxHandleGet(Resource:THandle):THandle; inline;
function EDIDBlockGet(Block:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
Framebuffer functions
function FramebufferAvailable:Boolean; inline;
function FramebufferAllocate(Alignment:LongWord; var Address,Length:LongWord):LongWord; inline;
function FramebufferSetState(State:LongWord):LongWord; inline;
function FramebufferGetDimensions(var Width,Height,Top,Bottom,Left,Right:LongWord):LongWord; inline;
function FramebufferGetPhysical(var Width,Height:LongWord):LongWord; inline;
function FramebufferSetPhysical(var Width,Height:LongWord):LongWord; inline;
function FramebufferTestPhysical(var Width,Height:LongWord):LongWord; inline;
function FramebufferGetVirtual(var Width,Height:LongWord):LongWord; inline;
function FramebufferSetVirtual(var Width,Height:LongWord):LongWord; inline;
function FramebufferTestVirtual(var Width,Height:LongWord):LongWord; inline;
function FramebufferGetDepth(var Depth:LongWord):LongWord; inline;
function FramebufferSetDepth(var Depth:LongWord):LongWord; inline;
function FramebufferTestDepth(var Depth:LongWord):LongWord; inline;
function FramebufferGetPixelOrder(var Order:LongWord):LongWord; inline;
function FramebufferSetPixelOrder(var Order:LongWord):LongWord; inline;
function FramebufferTestPixelOrder(var Order:LongWord):LongWord; inline;
function FramebufferGetAlphaMode(var Mode:LongWord):LongWord; inline;
function FramebufferSetAlphaMode(var Mode:LongWord):LongWord; inline;
function FramebufferTestAlphaMode(var Mode:LongWord):LongWord; inline;
function FramebufferGetPitch:LongWord; inline;
function FramebufferGetOffset(var X,Y:LongWord):LongWord; inline;
function FramebufferSetOffset(var X,Y:LongWord):LongWord; inline;
function FramebufferTestOffset(var X,Y:LongWord):LongWord; inline;
function FramebufferGetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
function FramebufferSetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
function FramebufferTestOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
function FramebufferGetPalette(Buffer:Pointer; Length:LongWord):LongWord; inline;
function FramebufferSetPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
function FramebufferTestPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
function FramebufferTestVsync:LongWord; inline;
function FramebufferSetVsync:LongWord; inline;
function FramebufferSetBacklight(Brightness:LongWord):LongWord; inline;
Touch functions
function TouchGetBuffer(var Address:LongWord):LongWord; inline;
Cursor functions
function CursorSetDefault:LongWord; inline;
function CursorSetInfo(Width,Height,HotspotX,HotspotY:LongWord; Pixels:Pointer; Length:LongWord):LongWord; inline;
function CursorSetState(Enabled:Boolean; X,Y:LongWord; Relative:Boolean):LongWord; inline;
DMA functions
function DMATransfer(Data:PDMAData; Direction,Peripheral:LongWord):LongWord; inline;
function DMAFillMemory(Dest:Pointer; Size:LongWord; Value:Byte):LongWord; inline;
function DMACopyMemory(Source,Dest:Pointer; Size:LongWord):LongWord; inline;
function DMAReadPeripheral(Address,Dest:Pointer; Size,Peripheral:LongWord):LongWord; inline;
function DMAWritePeripheral(Source,Address:Pointer; Size,Peripheral:LongWord):LongWord; inline;
function DMAAllocateBuffer(Size:LongWord):Pointer; inline;
function DMAAllocateBufferEx(var Size:LongWord):Pointer; inline;
function DMAReleaseBuffer(Buffer:Pointer):LongWord; inline;
function DMAGetChannels:LongWord; inline;
GPIO functions
function GPIORead(Reg:LongWord):LongWord; inline;
procedure GPIOWrite(Reg,Value:LongWord); inline;
function GPIOInputGet(Pin:LongWord):LongWord; inline;
function GPIOInputWait(Pin,Trigger,Timeout:LongWord):LongWord; inline;
function GPIOInputEvent(Pin,Trigger,Timeout:LongWord; Callback:TGPIOCallback; Data:Pointer):LongWord; inline;
function GPIOOutputSet(Pin,Level:LongWord):LongWord; inline;
function GPIOPullGet(Pin:LongWord):LongWord; inline;
function GPIOPullSelect(Pin,Mode:LongWord):LongWord; inline;
function GPIOFunctionGet(Pin:LongWord):LongWord; inline;
function GPIOFunctionSelect(Pin,Mode:LongWord):LongWord; inline;
Virtual GPIO functions
function VirtualGPIOInputGet(Pin:LongWord):LongWord; inline;
function VirtualGPIOOutputSet(Pin,Level:LongWord):LongWord; inline;
function VirtualGPIOFunctionSelect(Pin,Mode:LongWord):LongWord; inline;
SPI functions
function SPIStart(Mode,ClockRate,ClockPhase,ClockPolarity:LongWord):LongWord; inline;
function SPIStop:LongWord; inline;
function SPIRead(ChipSelect:Word; Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function SPIWrite(ChipSelect:Word; Source:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function SPIWriteRead(ChipSelect:Word; Source,Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function SPIGetMode:LongWord; inline;
function SPISetMode(Mode:LongWord):LongWord; inline;
function SPIGetClockRate(ChipSelect:Word):LongWord; inline;
function SPISetClockRate(ChipSelect:Word;ClockRate:LongWord):LongWord; inline;
function SPIGetClockPhase:LongWord; inline;
function SPISetClockPhase(ClockPhase:LongWord):LongWord; inline;
function SPIGetClockPolarity:LongWord; inline;
function SPISetClockPolarity(ClockPolarity:LongWord):LongWord; inline;
function SPIGetSelectPolarity(ChipSelect:Word):LongWord; inline;
function SPISetSelectPolarity(ChipSelect:Word; SelectPolarity:LongWord):LongWord; inline;
I2C functions
function I2CStart(Rate:LongWord):LongWord; inline;
function I2CStop:LongWord; inline;
function I2CRead(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function I2CWrite(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function I2CWriteRead(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function I2CWriteWrite(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function I2CGetRate:LongWord; inline;
function I2CSetRate(Rate:LongWord):LongWord; inline;
function I2CGetAddress:Word; inline;
function I2CSetAddress(Address:Word):LongWord; inline;
PWM functions
function PWMWrite(Value:LongWord):LongWord; inline;
function PWMSetMode(Mode:LongWord):LongWord; inline;
function PWMSetRange(Range:LongWord):LongWord; inline;
function PWMSetFrequency(Frequency:LongWord):LongWord; inline;
function PWMConfigure(DutyNS,PeriodNS:LongWord):LongWord; inline;
RTC functions
function RTCAvailable:Boolean; inline;
function RTCGetTime:Int64; inline;
function RTCSetTime(const Time:Int64):Int64; inline;
Serial functions
function SerialAvailable:Boolean; inline;
function SerialOpen(BaudRate,DataBits,StopBits,Parity,FlowControl,ReceiveDepth,TransmitDepth:LongWord):LongWord; inline;
function SerialClose:LongWord; inline;
function SerialRead(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
function SerialWrite(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Peripheral functions
function PeripheralGetBase:PtrUInt; inline;
function PeripheralGetSize:LongWord; inline;
function PeripheralRead(Base,Reg:LongWord):LongWord; inline;
procedure PeripheralWrite(Base,Reg,Value:LongWord); inline;
function LocalPeripheralGetBase:PtrUInt; inline;
function LocalPeripheralGetSize:LongWord; inline;
System functions
function SaveIRQ:TIRQMask; inline;
function RestoreIRQ(IRQMask:TIRQMask):TIRQMask; inline;
function SaveFIQ:TFIQMask; inline;
function RestoreFIQ(FIQMask:TFIQMask):TFIQMask; inline;
procedure EnableIRQFIQ; inline;
procedure DisableIRQFIQ; inline;
function SaveIRQFIQ:TIRQFIQMask; inline;
function RestoreIRQFIQ(IRQFIQMask:TIRQFIQMask):TIRQFIQMask; inline;
function SaveAbort:TAbortMask; inline;
function RestoreAbort(AbortMask:TAbortMask):TAbortMask; inline;
procedure Pause; inline;
function HaltThread(ExitCode:LongWord):LongWord; inline;
procedure SendEvent; inline;
procedure WaitForInterrupt; inline;
procedure ReadMemoryBarrier; inline;
procedure WriteMemoryBarrier; inline;
procedure DataMemoryBarrier; inline;
procedure DataSynchronizationBarrier; inline;
procedure InstructionMemoryBarrier; inline;
procedure InvalidateTLB; inline;
procedure InvalidateDataTLB; inline;
procedure InvalidateInstructionTLB; inline;
procedure InvalidateCache; inline;
procedure CleanDataCache; inline;
procedure InvalidateDataCache; inline;
procedure CleanAndInvalidateDataCache; inline;
procedure InvalidateInstructionCache; inline;
procedure CleanDataCacheRange(Address,Size:LongWord); inline;
procedure InvalidateDataCacheRange(Address,Size:LongWord); inline;
procedure CleanAndInvalidateDataCacheRange(Address,Size:LongWord); inline;
procedure InvalidateInstructionCacheRange(Address,Size:LongWord); inline;
procedure FlushPrefetchBuffer; inline;
procedure FlushBranchTargetCache; inline;
procedure ContextSwitch(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
procedure ContextSwitchIRQ(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
procedure ContextSwitchFIQ(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
procedure ContextSwitchSWI(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
function InterlockedOr(var Target:LongInt;Value:LongInt):LongInt; inline;
function InterlockedXor(var Target:LongInt; Value:LongInt):LongInt; inline;
function InterlockedAnd(var Target:LongInt; Value:LongInt):LongInt; inline;
function InterlockedDecrement(var Target:LongInt):LongInt; inline;
function InterlockedIncrement(var Target:LongInt):LongInt; inline;
function InterlockedExchange(var Target:LongInt; Source:LongInt):LongInt; inline;
function InterlockedAddExchange(var Target:LongInt; Source:LongInt):LongInt; inline;
function InterlockedCompareExchange(var Target:LongInt; Source,Compare:LongInt):LongInt; inline;
function PageTableGetBase:PtrUInt; inline;
function PageTableGetSize:LongWord; inline;
function PageTableGetEntry(Address:PtrUInt):TPageTableEntry; inline;
function PageTableSetEntry(const Entry:TPageTableEntry):LongWord; inline;
function PageTablesGetAddress:PtrUInt; inline;
function PageTablesGetLength:LongWord; inline;
function PageTablesGetCount:LongWord; inline;
function PageTablesGetShift:LongWord; inline;
function PageTablesGetNext:PtrUInt; inline;
function PageTablesGetUsed:LongWord; inline;
function PageTablesGetFree:LongWord; inline;
function VectorTableGetBase:PtrUInt; inline;
function VectorTableGetSize:LongWord; inline;
function VectorTableGetCount:LongWord; inline;
function VectorTableGetEntry(Number:LongWord):PtrUInt; inline;
function VectorTableSetEntry(Number:LongWord; Address:PtrUInt):LongWord; inline;
Exception functions
procedure HardwareException(AType:LongWord; Address,Frame:Pointer);
procedure UnhandledException(Obj:TObject; Addr:CodePointer; FrameCount:LongInt; Frames:PCodePointer); {[public,alias:'FPC_BREAK_UNHANDLED_EXCEPTION'];}
Text IO functions
procedure TextIOOpen(var F:Text; AWrite:TTextIOWriteChar; ARead:TTextIOReadChar; AMode:LongInt; AUserData:Pointer);
function TextIOReadData(ARead:TTextIOReadChar; AUserData:Pointer; ABuffer:PChar; ACount:LongInt):LongInt;
Console functions
function ConsoleGetKey(var ACh:Char; AUserData:Pointer):Boolean; inline;
function ConsolePeekKey(var ACh:Char; AUserData:Pointer):Boolean; inline;
function ConsoleWriteChar(ACh:Char; AUserData:Pointer):Boolean; inline;
function ConsoleReadChar(var ACh:Char; AUserData:Pointer):Boolean; inline;
function ConsoleReadWideChar(var ACh:WideChar; AUserData:Pointer):Boolean; inline;
function ConsoleHideMouse(AUserData:Pointer):Boolean; inline;
function ConsoleShowMouse(X,Y:LongWord; AUserData:Pointer):Boolean; inline;
function ConsoleReadMouse(var X,Y,Buttons:LongWord; AUserData:Pointer):Boolean; inline;
CodePage functions
Name functions
function HostSetDomain(const ADomain:String):Boolean; inline;
Logging functions
procedure LoggingOutputEx(AFacility,ASeverity:LongWord; const ATag,AContent:String); inline;
Utility functions
function FirstBitSet(Value:LongWord):LongWord; inline;
function CountLeadingZeros(Value:LongWord):LongWord; inline;
function PhysicalToIOAddress(Address:Pointer):LongWord; inline;
function IOAddressToPhysical(Address:Pointer):LongWord; inline;
function PhysicalToBusAddress(Address:Pointer):LongWord; inline;
function BusAddressToPhysical(Address:Pointer):LongWord; inline;
procedure NanosecondDelay(Nanoseconds:LongWord);
procedure MicrosecondDelay(Microseconds:LongWord);
procedure MillisecondDelay(Milliseconds:LongWord);
procedure NanosecondDelayEx(Nanoseconds:LongWord; Wait:Boolean);
procedure MicrosecondDelayEx(Microseconds:LongWord; Wait:Boolean);
procedure MillisecondDelayEx(Milliseconds:LongWord; Wait:Boolean);
System random functions
Dos conversion functions
Dos Info/Date/Time functions
Dos environment functions
SysUtils tick functions
SysUtils locale functions
procedure SysUtilsGetLocalTime(var SystemTime:TSystemTime);
procedure SysUtilsSetLocalTime(const SystemTime:TSystemTime);
function SysUtilsGetLocalTimeOffset:Integer;
Platform helper functions
Return to Unit Reference