Unit Platform
Return to Unit Reference
Contents
[hide]Description
Ultibo Platform Interface unit
Constants
HANDLE_FLAG_*
HANDLE_*
DMA_DATA_FLAG_*
PAGE_TABLE_FLAG_*
INTERRUPT_FLAG_*
INTERRUPT_PRIORITY_*
INTERRUPT_RETURN_*
VECTOR_TABLE_ENTRY_*
SHUTDOWN_FLAG_*
SHUTDOWN_*
EXCEPTION_TYPE_*
FIRMWARE_THROTTLE_*
PLATFORM_LOG_LEVEL_*
IRQ_LOG_LEVEL_*
FIQ_LOG_LEVEL_*
SWI_LOG_LEVEL_*
Type definitions
IRQ mask
TIRQMask = LongWord;
|
FIQ mask
TFIQMask = LongWord;
|
IRQ/FIQ mask
TIRQFIQMask = LongWord;
|
Abort mask
TAbortMask = LongWord;
|
DMA data
System call request (SWI)
Handle close
THandleClose = procedure(Data:THandle);
|
Handle close extended
THandleCloseEx = function(Data:THandle):LongWord;
|
Handle duplicate
THandleDuplicate = function(Data:THandle):THandle;
|
Handle enumeration callback
THandleEnumerate = function(Handle:PHandleEntry; Data:Pointer):LongWord;
|
Handle entry
Handle entries
PHandleEntries = ^THandleEntries;
THandleEntries = array[0..HANDLE_TABLE_MASK + 1] of PHandleEntry;
Handle table
Shutdown callback
TShutdownCallback = function(Flags:LongWord; Parameter:Pointer):LongWord;
|
Shutdown entry
Shutdown data
Interrupt entry (IRQ/FIQ)
System call entry (SWI)
Page table entry
Platform lock
Platform semaphore
CPU initialization
TCPUInit = procedure;
|
FPU initialization
TFPUInit = procedure;
|
GPU initialization
TGPUInit = procedure;
|
MMU initialization
TMMUInit = procedure;
|
SMP initialization
TSMPInit = procedure;
|
Cache initialization
TCacheInit = procedure;
|
Board initialization
TBoardInit = procedure;
|
Memory initialization
TMemoryInit = procedure;
|
Clock initialization
TClockInit = procedure;
|
Power initialization
TPowerInit = procedure;
|
Mailbox initialization
TMailboxInit = procedure;
|
Interrupt initialization
TInterruptInit = procedure;
|
Peripheral initialization
TPeripheralInit = procedure;
|
Framebuffer initialization
TFramebufferInit = procedure;
|
Parse boot tags
TParseBootTags = procedure;
|
Parse command line
TParseCommandLine = procedure;
|
Parse environment
TParseEnvironment = procedure;
|
Options initialization
TOptionsInit = procedure;
|
Device tree valid
TDeviceTreeValid = function:Boolean;
|
Device tree get base
TDeviceTreeGetBase = function:PtrUInt;
|
Device tree get size
TDeviceTreeGetSize = function:LongWord;
|
Device tree read
TDeviceTreeRead = function(const Path,Name:String; Buffer:Pointer; var Size:LongWord):LongWord;
|
Device tree read 32
TDeviceTreeRead32 = function(const Path,Name:String; var Value:LongWord):LongWord;
|
Device tree read 64
TDeviceTreeRead64 = function(const Path,Name:String; var Value:UInt64):LongWord;
|
Device tree read string
TDeviceTreeReadString = function(const Path,Name:String; var Value:String):LongWord;
|
Inter Processor Interrupt (IPI) handler
TIPIHandler = TSharedInterruptHandler;
|
Note: When used for IPI the CPUID parameter will be the sending CPU |
System call (SWI) handler
TSystemCallHandler = procedure(Request:PSystemCallRequest);
|
System call (SWI) ex handler
TSystemCallExHandler = function(CPUID:LongWord; Thread:TThreadHandle; Request:PSystemCallRequest):TThreadHandle;
|
Thread yield
TThreadYield = function:LongWord;
|
Thread wait
TThreadWait = function(List:TListHandle; Lock:TSpinHandle; Flags:LongWord):LongWord;
|
Thread wait ex
TThreadWaitEx = function(List:TListHandle; Lock:TSpinHandle; Flags,Timeout:LongWord):LongWord;
|
Thread release
TThreadRelease = function(List:TListHandle):LongWord;
|
Thread abandon
TThreadAbandon = function(List:TListHandle):LongWord;
|
Thread wake
TThreadWake = function(Thread:TThreadHandle):LongWord;
|
Thread ready
TThreadReady = function(Thread:TThreadHandle; Reschedule:Boolean):LongWord;
|
Thread timeout
TThreadTimeout = function(Thread:TThreadHandle):LongWord;
|
Timer event
TTimerEvent = procedure(Data:Pointer);
|
Worker task
TWorkerTask = procedure(Data:Pointer);
|
Worker callback
TWorkerCallback = procedure(Data:Pointer);
|
Counter callback
TCounterCallback = procedure(Data:Pointer);
|
GPIO callback
TGPIOCallback = procedure(Data:Pointer; Pin,Trigger:LongWord);
|
Boot blink
TBootBlink = procedure;
|
Boot output
TBootOutput = procedure(Value:LongWord);
|
Boot console start
TBootConsoleStart = procedure;
|
Boot console write
TBootConsoleWrite = procedure(const Value:String);
|
Boot console write ex
TBootConsoleWriteEx = procedure(const Value:String; X,Y:LongWord);
|
Boot console get x
TBootConsoleGetX = function:LongWord;
|
Boot console get y
TBootConsoleGetY = function:LongWord;
|
Power LED enable
TPowerLEDEnable = procedure;
|
Power LED on
TPowerLEDOn = procedure;
|
Power LED off
TPowerLEDOff = procedure;
|
Activity LED enable
TActivityLEDEnable = procedure;
|
Activity LED on
TActivityLEDOn = procedure;
|
Activity LED off
TActivityLEDOff = procedure;
|
Counter available
TCounterAvailable = function:Boolean;
|
Counter read
TCounterRead = function:LongWord;
|
Counter read64
TCounterRead64 = function:Int64;
|
Counter wait
TCounterWait = function:LongWord;
|
Counter event
TCounterEvent = function(Callback:TCounterCallback; Data:Pointer):LongWord;
|
Counter cancel
TCounterCancel = function:LongWord;
|
Counter get rate
TCounterGetRate = function:LongWord;
|
Counter set rate
TCounterSetRate = function(Rate:LongWord):LongWord;
|
Counter get interval
TCounterGetInterval = function:LongWord;
|
Counter set interval
TCounterSetInterval = function(Interval:LongWord):LongWord;
|
Mailbox receive
TMailboxReceive = function(Mailbox,Channel:LongWord):LongWord;
|
Mailbox send
TMailboxSend = procedure(Mailbox,Channel,Data:LongWord);
|
Mailbox call
TMailboxCall = function(Mailbox,Channel,Data:LongWord; var Response:LongWord):LongWord;
|
Mailbox call ex
TMailboxCallEx = function(Mailbox,Channel,Data:LongWord; var Response:LongWord; Timeout:LongWord):LongWord;
|
Mailbox property call
TMailboxPropertyCall = function(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord):LongWord;
|
Mailbox property call ex
TMailboxPropertyCallEx = function(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord; Timeout:LongWord):LongWord;
|
Mailbox property tag
TMailboxPropertyTag = function(Tag:LongWord; Data:Pointer; Size:LongWord):LongWord;
|
Random available
TRandomAvailable = function:Boolean;
|
Random seed
TRandomSeed = procedure(Seed:LongWord);
|
Random read long int
TRandomReadLongInt = function(Limit:LongInt):LongInt;
|
Random read int64
TRandomReadInt64 = function(Limit:Int64):Int64;
|
Random read double
TRandomReadDouble = function:Double;
|
Watchdog available
TWatchdogAvailable = function:Boolean;
|
Watchdog start
TWatchdogStart = function(Milliseconds:LongWord):LongWord;
|
Watchdog stop
TWatchdogStop = function:LongWord;
|
Watchdog refresh
TWatchdogRefresh = function(Milliseconds:LongWord):LongWord;
|
Request IRQ
TRequestIRQ = function(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord;
|
Release IRQ
TReleaseIRQ = function(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord;
|
Request ex IRQ
TRequestExIRQ = function(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
|
Release ex IRQ
TReleaseExIRQ = function(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
|
Request FIQ
TRequestFIQ = function(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord;
|
Release FIQ
TReleaseFIQ = function(CPUID,Number:LongWord; Handler:TInterruptHandler; arameter:Pointer):LongWord;
|
Request ex FIQ
TRequestExFIQ = function(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord;
|
Request IPI
TRequestIPI = function(CPUID,Number:LongWord; Handler:TIPIHandler; Parameter:Pointer):LongWord;
|
Release IPI
TReleaseIPI = function(CPUID,Number:LongWord; Handler:TIPIHandler; Parameter:Pointer):LongWord;
|
Register interrupt handler
TRegisterInterrupt = function(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord;
|
Deregister interrupt handler
TDeregisterInterrupt = function(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord;
|
System call
TSystemCall = procedure(Number:LongWord; Param1,Param2,Param3:PtrUInt);
|
Register system call
TRegisterSystemCall = function(Number:LongWord; Handler:TSystemCallHandler):LongWord;
|
Deregister system call
TDeregisterSystemCall = function(Number:LongWord; Handler:TSystemCallHandler):LongWord;
|
Register system call ex
TRegisterSystemCallEx = function(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord;
|
Deregister system call ex
TDeregisterSystemCallEx = function(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord;
|
Get interrupt count
TGetInterruptCount = function:LongWord;
|
Get interrupt start
TGetInterruptStart = function:LongWord;
|
Get interrupt entry
TGetInterruptEntry = function(Number,Instance:LongWord; var Interrupt:TInterruptEntry):LongWord;
|
Get local interrupt count
TGetLocalInterruptCount = function:LongWord;
|
Get local interrupt start
TGetLocalInterruptStart = function:LongWord;
|
Get local interrupt entry
TGetLocalInterruptEntry = function(CPUID,Number,Instance:LongWord; var Interrupt:TInterruptEntry):LongWord;
|
Get software interrupt count
TGetSoftwareInterruptCount = function:LongWord;
|
Get software interrupt start
TGetSoftwareInterruptStart = function:LongWord;
|
Get software interrupt entry
TGetSoftwareInterruptEntry = function(CPUID,Number,Instance:LongWord; var Interrupt:TInterruptEntry):LongWord;
|
Get system call count
TGetSystemCallCount = function:LongWord;
|
Get system call entry
TGetSystemCallEntry = function(Number:LongWord):TSystemCallEntry;
|
System restart
TSystemRestart = function(Delay:LongWord):LongWord;
|
System shutdown
TSystemShutdown = function(Delay:LongWord):LongWord;
|
System get uptime
TSystemGetUptime = function:Int64;
|
System get command line
TSystemGetCommandLine = function:String;
|
System get environment
TSystemGetEnvironment = function:Pointer;
|
CPU get arch
TCPUGetArch = function:LongWord;
|
CPU get type
TCPUGetType = function:LongWord;
|
CPU get boot
TCPUGetBoot = function:LongWord;
|
CPU get mask
TCPUGetMask = function:LongWord;
|
CPU get count
TCPUGetCount = function:LongWord;
|
CPU get mode
TCPUGetMode = function:LongWord;
|
CPU get state
TCPUGetState = function:LongWord;
|
CPU get group
TCPUGetGroup = function:LongWord;
|
CPU get current
TCPUGetCurrent = function:LongWord;
|
CPU get memory
TCPUGetMemory = function(var Address:PtrUInt; var Length:UInt64):LongWord;
|
CPU get percentage
TCPUGetPercentage = function(CPUID:LongWord):Double;
|
CPU get utilization
TCPUGetUtilization = function(CPUID:LongWord):LongWord;
|
CPU get model
TCPUGetModel = function:LongWord;
|
CPU get revision
TCPUGetRevision = function:LongWord;
|
CPU get description
TCPUGetDescription = function:String;
|
FPU get type
TFPUGetType = function:LongWord;
|
FPU get state
TFPUGetState = function:LongWord;
|
GPU get type
TGPUGetType = function:LongWord;
|
GPU get state
TGPUGetState = function:LongWord;
|
GPU get memory
TGPUGetMemory = function(var Address:PtrUInt; var Length:UInt64):LongWord;
|
L1 cache get type
TL1CacheGetType = function:LongWord;
|
L1 data cache get size
TL1DataCacheGetSize = function:LongWord;
|
L1 data cache get line size
TL1DataCacheGetLineSize = function:LongWord;
|
L1 instruction cache get size
TL1InstructionCacheGetSize = function:LongWord;
|
L1 instruction cache get line size
TL1InstructionCacheGetLineSize = function:LongWord;
|
L2 cache get type
TL2CacheGetType = function:LongWord;
|
L2 cache get size
TL2CacheGetSize = function:LongWord;
|
L2 cache get line size
TL2CacheGetLineSize = function:LongWord;
|
Board get type
TBoardGetType = function:LongWord;
|
Board get model
TBoardGetModel = function:LongWord;
|
Board get serial
TBoardGetSerial = function:Int64;
|
Board get revision
TBoardGetRevision = function:LongWord;
|
Board get MAC address
TBoardGetMACAddress = function:String;
|
Chip get revision
TChipGetRevision = function:LongWord;
|
Firmware get revision
TFirmwareGetRevision = function:LongWord;
|
Firmware get throttled
TFirmwareGetThrottled = function:LongWord;
|
Machine get type
TMachineGetType = function:LongWord;
|
Memory get base
TMemoryGetBase = function:PtrUInt;
|
Memory get size
TMemoryGetSize = function:UInt64;
|
Memory get page size
TMemoryGetPageSize = function:LongWord;
|
Memory get large page size
TMemoryGetLargePageSize = function:LongWord;
|
Memory get section size
TMemoryGetSectionSize = function:LongWord;
|
Memory get large section size
TMemoryGetLargeSectionSize = function:LongWord;
|
Power get wait
TPowerGetWait = function(PowerId:LongWord):LongWord;
|
Power get state
TPowerGetState = function(PowerId:LongWord):LongWord;
|
Power set state
TPowerSetState = function(PowerId,State:LongWord; Wait:Boolean):LongWord;
|
Clock get count
TClockGetCount = function:LongWord;
|
Clock get total
TClockGetTotal = function:Int64;
|
Clock update offset
TClockUpdateOffset = function:LongWord;
|
Clock get rate
TClockGetRate = function(ClockId:LongWord):LongWord;
|
Clock set rate
TClockSetRate = function(ClockId,Rate:LongWord; Turbo:Boolean):LongWord;
|
Clock get state
TClockGetState = function(ClockId:LongWord):LongWord;
|
Clock set state
TClockSetState = function(ClockId,State:LongWord):LongWord;
|
Clock get min rate
TClockGetMinRate = function(ClockId:LongWord):LongWord;
|
Clock get max rate
TClockGetMaxRate = function(ClockId:LongWord):LongWord;
|
Turbo get state
TTurboGetState = function(TurboId:LongWord):LongWord;
|
Turbo set state
TTurboSetState = function(TurboId,State:LongWord):LongWord;
|
Voltage get value
TVoltageGetValue = function (VoltageId:LongWord):LongWord;
|
Voltage set value
TVoltageSetValue = function (VoltageId,Value:LongWord):LongWord;
|
Voltage get min value
TVoltageGetMinValue = function(VoltageId:LongWord):LongWord;
|
Voltage get max value
TVoltageGetMaxValue = function(VoltageId:LongWord):LongWord;
|
Temperature get current
TTemperatureGetCurrent = function(TemperatureId:LongWord):LongWord;
|
Temperature get maximum
TTemperatureGetMaximum = function(TemperatureId:LongWord):LongWord;
|
GPU memory allocate
TGPUMemoryAllocate = function(Length,Alignment,Flags:LongWord):THandle;
|
GPU memory release
TGPUMemoryRelease = function(Handle:THandle):LongWord;
|
GPU memory lock
TGPUMemoryLock = function(Handle:THandle):LongWord;
|
GPU memory unlock
TGPUMemoryUnlock = function(Handle:THandle):LongWord;
|
GPU execute code
TGPUExecuteCode = function(Address:Pointer; R0,R1,R2,R3,R4,R5:LongWord):LongWord;
|
Dispmanx handle get
TDispmanxHandleGet = function(Resource:THandle):THandle;
|
EDID block get
TEDIDBlockGet = function(Block:LongWord; Buffer:Pointer; Length:LongWord):LongWord;
|
Framebuffer available
TFramebufferAvailable = function:Boolean;
|
Framebuffer allocate
TFramebufferAllocate = function(Alignment:LongWord; var Address,Length:LongWord):LongWord;
|
Framebuffer release
TFramebufferRelease = function:LongWord;
|
Framebuffer set state
TFramebufferSetState = function(State:LongWord):LongWord;
|
Framebuffer get dimensions
TFramebufferGetDimensions = function(var Width,Height,Top,Bottom,Left,Right:LongWord):LongWord;
|
Framebuffer get physical
TFramebufferGetPhysical = function(var Width,Height:LongWord):LongWord;
|
Framebuffer set physical
TFramebufferSetPhysical = function(var Width,Height:LongWord):LongWord;
|
Framebuffer test physical
TFramebufferTestPhysical = function(var Width,Height:LongWord):LongWord;
|
Framebuffer get virtual
TFramebufferGetVirtual = function(var Width,Height:LongWord):LongWord;
|
Framebuffer set virtual
TFramebufferSetVirtual = function(var Width,Height:LongWord):LongWord;
|
Framebuffer test virtual
TFramebufferTestVirtual = function(var Width,Height:LongWord):LongWord;
|
Framebuffer get depth
TFramebufferGetDepth = function(var Depth:LongWord):LongWord;
|
Framebuffer set depth
TFramebufferSetDepth = function(var Depth:LongWord):LongWord;
|
Framebuffer test depth
TFramebufferTestDepth = function(var Depth:LongWord):LongWord;
|
Framebuffer get pixel order
TFramebufferGetPixelOrder = function(var Order:LongWord):LongWord;
|
Framebuffer set pixel order
TFramebufferSetPixelOrder = function(var Order:LongWord):LongWord;
|
Framebuffer test pixel order
TFramebufferTestPixelOrder = function(var Order:LongWord):LongWord;
|
Framebuffer get alpha mode
TFramebufferGetAlphaMode = function(var Mode:LongWord):LongWord;
|
Framebuffer set alpha mode
TFramebufferSetAlphaMode = function(var Mode:LongWord):LongWord;
|
Framebuffer test alpha mode
TFramebufferTestAlphaMode = function(var Mode:LongWord):LongWord;
|
Framebuffer get pitch
TFramebufferGetPitch = function:LongWord;
|
Framebuffer get offset
TFramebufferGetOffset = function(var X,Y:LongWord):LongWord;
|
Framebuffer set offset
TFramebufferSetOffset = function(var X,Y:LongWord):LongWord;
|
Framebuffer test offset
TFramebufferTestOffset = function(var X,Y:LongWord):LongWord;
|
Framebuffer get overscan
TFramebufferGetOverscan = function(var Top,Bottom,Left,Right:LongWord):LongWord;
|
Framebuffer set overscan
TFramebufferSetOverscan = function(var Top,Bottom,Left,Right:LongWord):LongWord;
|
Framebuffer test overscan
TFramebufferTestOverscan = function(var Top,Bottom,Left,Right:LongWord):LongWord;
|
Framebuffer get palette
TFramebufferGetPalette = function(Buffer:Pointer; Length:LongWord):LongWord;
|
Framebuffer set palette
TFramebufferSetPalette = function(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord;
|
Framebuffer test palette
TFramebufferTestPalette = function(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord;
|
Framebuffer get layer
TFramebufferGetLayer = function(var Layer:LongInt):LongWord;
|
Framebuffer set layer
TFramebufferSetLayer = function(var Layer:LongInt):LongWord;
|
Framebuffer test layer
TFramebufferTestLayer = function(var Layer:LongInt):LongWord;
|
Framebuffer test vsync
TFramebufferTestVsync = function:LongWord;
|
Framebuffer set vsync
TFramebufferSetVsync = function:LongWord;
|
Framebuffer set backlight
TFramebufferSetBacklight = function(Brightness:LongWord):LongWord;
|
Framebuffer get num displays
TFramebufferGetNumDisplays = function(var NumDisplays:LongWord):LongWord;
|
Framebuffer get display id
TFramebufferGetDisplayId = function(DisplayNum:LongWord):LongWord;
|
Framebuffer set display num
TFramebufferSetDisplayNum = function(DisplayNum:LongWord):LongWord;
|
Framebuffer get display settings
TFramebufferGetDisplaySettings = function(DisplayNum:LongWord; var DisplaySettings:TDisplaySettings):LongWord;
|
Framebuffer display id to name
TFramebufferDisplayIdToName = function(DisplayId:LongWord):String;
|
Touch get buffer
TTouchGetBuffer = function(var Address:PtrUInt):LongWord;
|
Touch set buffer
TTouchSetBuffer = function(Address:PtrUInt):LongWord;
|
Cursor set default
TCursorSetDefault = function:LongWord;
|
Cursor set info
TCursorSetInfo = function(Width,Height,HotspotX,HotspotY:LongWord; Pixels:Pointer; Length:LongWord):LongWord;
|
Cursor set state
TCursorSetState = function(Enabled:Boolean; X,Y:LongWord; Relative:Boolean):LongWord;
|
DMA available
TDMAAvailable = function:Boolean;
|
DMA transfer
TDMATransfer = function(Data:PDMAData; Direction,Peripheral:LongWord):LongWord;
|
DMA fill memory
TDMAFillMemory = function(Dest:Pointer; Size:LongWord; Value:Byte):LongWord;
|
DMA copy memory
TDMACopyMemory = function(Source,Dest:Pointer; Size:LongWord):LongWord;
|
DMA read peripheral
TDMAReadPeripheral = function(Address,Dest:Pointer; Size,Peripheral:LongWord):LongWord;
|
DMA write peripheral
TDMAWritePeripheral = function(Source,Address:Pointer; Size,Peripheral:LongWord):LongWord;
|
DMA allocate buffer
TDMAAllocateBuffer = function(Size:LongWord):Pointer;
|
DMA allocate buffer ex
TDMAAllocateBufferEx = function(var Size:LongWord):Pointer;
|
DMA release buffer
TDMAReleaseBuffer = function(Buffer:Pointer):LongWord;
|
DMA get channels
TDMAGetChannels = function:LongWord;
|
GPIO available
TGPIOAvailable = function:Boolean;
|
GPIO read
TGPIORead = function(Reg:LongWord):LongWord;
|
GPIO write
TGPIOWrite = procedure(Reg,Value:LongWord);
|
GPIO input get
TGPIOInputGet = function(Pin:LongWord):LongWord;
|
GPIO input wait
TGPIOInputWait = function(Pin,Trigger,Timeout:LongWord):LongWord;
|
GPIO input event
TGPIOInputEvent = function(Pin,Trigger,Timeout:LongWord; Callback:TGPIOCallback; Data:Pointer):LongWord;
|
GPIO output set
TGPIOOutputSet = function(Pin,Level:LongWord):LongWord;
|
GPIO pull get
TGPIOPullGet = function(Pin:LongWord):LongWord;
|
GPIO pull select
TGPIOPullSelect = function(Pin,Mode:LongWord):LongWord;
|
GPIO function get
TGPIOFunctionGet = function(Pin:LongWord):LongWord;
|
GPIO function select
TGPIOFunctionSelect = function(Pin,Mode:LongWord):LongWord;
|
Virtual GPIO input get
TVirtualGPIOInputGet = function(Pin:LongWord):LongWord;
|
Virtual GPIO output set
TVirtualGPIOOutputSet = function(Pin,Level:LongWord):LongWord;
|
Virtual GPIO function get
TVirtualGPIOFunctionGet = function(Pin:LongWord):LongWord;
|
Virtual GPIO function select
TVirtualGPIOFunctionSelect = function(Pin,Mode:LongWord):LongWord;
|
SPI available
TSPIAvailable = function:Boolean;
|
SPI start
TSPIStart = function(Mode,ClockRate,ClockPhase,ClockPolarity:LongWord):LongWord;
|
SPI stop
TSPIStop = function:LongWord;
|
SPI read
TSPIRead = function(ChipSelect:Word; Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
SPI write
TSPIWrite = function(ChipSelect:Word; Source:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
SPI write read
TSPIWriteRead = function(ChipSelect:Word; Source,Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
SPI get mode
TSPIGetMode = function:LongWord;
|
SPI set mode
TSPISetMode = function(Mode:LongWord):LongWord;
|
SPI get clock rate
TSPIGetClockRate = function(ChipSelect:Word):LongWord;
|
SPI set clock rate
TSPISetClockRate = function(ChipSelect:Word; ClockRate:LongWord):LongWord;
|
SPI get clock phase
TSPIGetClockPhase = function:LongWord;
|
SPI set clock phase
TSPISetClockPhase = function(ClockPhase:LongWord):LongWord;
|
SPI get clock polarity
TSPIGetClockPolarity = function:LongWord;
|
SPI set clock polarity
TSPISetClockPolarity = function(ClockPolarity:LongWord):LongWord;
|
SPI get select polarity
TSPIGetSelectPolarity = function(ChipSelect:Word):LongWord;
|
SPI set select polarity
TSPISetSelectPolarity = function(ChipSelect:Word; SelectPolarity:LongWord):LongWord;
|
SPI get description
TSPIGetDescription = function(Id:LongWord):String;
|
I2C available
TI2CAvailable = function:Boolean;
|
I2C start
TI2CStart = function(Rate:LongWord):LongWord;
|
I2C stop
TI2CStop = function:LongWord;
|
I2C read
TI2CRead = function(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C write
TI2CWrite = function(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C write read
TI2CWriteRead = function(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C write write
TI2CWriteWrite = function(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
I2C get rate
TI2CGetRate = function:LongWord;
|
I2C set rate
TI2CSetRate = function(Rate:LongWord):LongWord;
|
I2C get address
TI2CGetAddress = function:Word;
|
I2C set address
TI2CSetAddress = function(Address:Word):LongWord;
|
I2C get description
TI2CGetDescription = function(Id:LongWord):String;
|
I2C slave get description
TI2CSlaveGetDescription = function(Id:LongWord):String;
|
PWM available
TPWMAvailable = function:Boolean;
|
PWM start
TPWMStart = function:LongWord;
|
PWM stop
TPWMStop = function:LongWord;
|
PWM write
TPWMWrite = function(Value:LongWord):LongWord;
|
PWM set mode
TPWMSetMode = function(Mode:LongWord):LongWord;
|
PWM set range
TPWMSetRange = function(Range:LongWord):LongWord;
|
PWM set frequency
TPWMSetFrequency = function(Frequency:LongWord):LongWord;
|
PWM configure
TPWMConfigure = function(DutyNS,PeriodNS:LongWord):LongWord;
|
PWM get description
TPWMGetDescription = function(Id,Channel:LongWord):String;
|
RTC available
TRTCAvailable = function:Boolean;
|
RTC get time
TRTCGetTime = function:Int64;
|
RTC set time
TRTCSetTime = function(const Time:Int64):Int64;
|
UART get description
TUARTGetDescription = function(Id:LongWord):String;
|
Serial available
TSerialAvailable = function:Boolean;
|
Serial open
TSerialOpen = function(BaudRate,DataBits,StopBits,Parity,FlowControl,ReceiveDepth,TransmitDepth:LongWord):LongWord;
|
Serial close
TSerialClose = function:LongWord;
|
Serial read
TSerialRead = function(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
Serial write
TSerialWrite = function(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord;
|
Peripheral get base
TPeripheralGetBase = function:PtrUInt;
|
Peripheral get size
TPeripheralGetSize = function:LongWord;
|
Peripheral read
TPeripheralRead = function(Base,Reg:LongWord):LongWord;
|
Peripheral write
TPeripheralWrite = procedure(Base,Reg,Value:LongWord);
|
Local Peripheral get base
TLocalPeripheralGetBase = function:PtrUInt;
|
Local peripheral get size
TLocalPeripheralGetSize = function:LongWord;
|
Get SP
TGetSP = function:PtrUInt;
|
Get PC
TGetPC = function:PtrUInt;
|
Get IRQ
TGetIRQ = function:Boolean;
|
Enable IRQ
TEnableIRQ = procedure;
|
Disable IRQ
TDisableIRQ = procedure;
|
Save IRQ
TSaveIRQ = function:TIRQMask;
|
Restore IRQ
TRestoreIRQ = function(IRQMask:TIRQMask):TIRQMask;
|
Get FIQ
TGetFIQ = function:Boolean;
|
Enable FIQ
TEnableFIQ = procedure;
|
Disable FIQ
TDisableFIQ = procedure;
|
Save FIQ
TSaveFIQ = function:TFIQMask;
|
Restore FIQ
TRestoreFIQ = function(FIQMask:TFIQMask):TFIQMask;
|
Enable IRQ/FIQ
TEnableIRQFIQ = procedure;
|
Disable IRQ/FIQ
TDisableIRQFIQ = procedure;
|
Save IRQ/FIQ
TSaveIRQFIQ = function:TIRQFIQMask;
|
Restore IRQ/FIQ
TRestoreIRQFIQ = function(IRQFIQMask:TIRQFIQMask):TIRQFIQMask;
|
Get abort
TGetAbort = function:Boolean;
|
Enable abort
TEnableAbort = procedure;
|
Disable abort
TDisableAbort = procedure;
|
Save abort
TSaveAbort = function:TAbortMask;
|
Restore abort
TRestoreAbort = function(AbortMask:TAbortMask):TAbortMask;
|
Halt
THalt = procedure;
|
Pause
TPause = procedure;
|
Halt thread
THaltThread = function(ExitCode:LongWord):LongWord;
|
Send event
TSendEvent = procedure;
|
Wait for event
TWaitForEvent = procedure;
|
Wait for interrupt
TWaitForInterrupt = procedure;
|
Read memory barrier
TReadMemoryBarrier = procedure;
|
Write memory barrier
TWriteMemoryBarrier = procedure;
|
Data memory barrier
TDataMemoryBarrier = procedure;
|
Data synchronization barrier
TDataSynchronizationBarrier = procedure;
|
Instruction memory barrier
TInstructionMemoryBarrier = procedure;
|
Invalidate TLB
TInvalidateTLB = procedure;
|
Invalidate data TLB
TInvalidateDataTLB = procedure;
|
Invalidate instruction TLB
TInvalidateInstructionTLB = procedure;
|
Invalidate cache
TInvalidateCache = procedure;
|
Clean data cache
TCleanDataCache = procedure;
|
Invalidate data cache
TInvalidateDataCache = procedure;
|
Clean and invalidate data cache
TCleanAndInvalidateDataCache = procedure;
|
Invalidate instruction cache
TInvalidateInstructionCache = procedure;
|
Clean data cache range
TCleanDataCacheRange = procedure(Address:PtrUInt; Size:LongWord);
|
Invaliate data cache range
TInvalidateDataCacheRange = procedure(Address:PtrUInt; Size:LongWord);
|
Clean and invalidate data cache range
TCleanAndInvalidateDataCacheRange = procedure(Address:PtrUInt; Size:LongWord);
|
Invalidate instruction cache range
TInvalidateInstructionCacheRange = procedure(Address:PtrUInt; Size:LongWord);
|
Flush prefetch buffer
TFlushPrefetchBuffer = procedure;
|
Flush branch target cache
TFlushBranchTargetCache = procedure;
|
Context switch
TContextSwitch = procedure(OldStack,NewStack:Pointer; NewThread:TThreadHandle);
|
Context switch IRQ
TContextSwitchIRQ = procedure(OldStack,NewStack:Pointer; NewThread:TThreadHandle);
|
Context switch FIQ
TContextSwitchFIQ = procedure(OldStack,NewStack:Pointer; NewThread:TThreadHandle);
|
Context switch SWI
TContextSwitchSWI = procedure(OldStack,NewStack:Pointer; NewThread:TThreadHandle);
|
Interlocked or
TInterlockedOr = function(var Target:LongInt; Value:LongInt):LongInt;
|
Interlocked x or
TInterlockedXor = function(var Target:LongInt; Value:LongInt):LongInt;
|
Interlocked and
TInterlockedAnd = function(var Target:LongInt; Value:LongInt):LongInt;
|
Interlocked decrement
TInterlockedDecrement = function(var Target:LongInt):LongInt;
|
Interlocked increment
TInterlockedIncrement = function(var Target:LongInt):LongInt;
|
Interlocked exchange
TInterlockedExchange = function(var Target:LongInt; Source:LongInt):LongInt;
|
Interlocked add exchange
TInterlockedAddExchange = function(var Target:LongInt; Source:LongInt):LongInt;
|
Interlocked compare exchange
TInterlockedCompareExchange = function(var Target:LongInt; Source,Compare:LongInt):LongInt;
|
Page table get levels
TPageTableGetLevels = function:LongWord;
|
Page directory get base
TPageDirectoryGetBase = function:PtrUInt;
|
Page directory get size
TPageDirectoryGetSize = function:LongWord;
|
Page table get base
TPageTableGetBase = function:PtrUInt;
|
Page table get size
TPageTableGetSize = function:LongWord;
|
Page table get entry
TPageTableGetEntry = procedure(Address:PtrUInt; var Entry:TPageTableEntry);
|
Page table set entry
TPageTableSetEntry = function(const Entry:TPageTableEntry):LongWord;
|
Page table get page size
TPageTableGetPageSize = function(Address:PtrUInt):LongWord;
|
Page table get page flags
TPageTableGetPageFlags = function(Address:PtrUInt):LongWord;
|
Page table get page physical
TPageTableGetPagePhysical = function(Address:PtrUInt):PtrUInt;
|
Page tables get address
TPageTablesGetAddress = function:PtrUInt;
|
Page tables get length
TPageTablesGetLength = function:LongWord;
|
Page tables get count
TPageTablesGetCount = function:LongWord;
|
Page tables get shift
TPageTablesGetShift = function:LongWord;
|
Page tables get next
TPageTablesGetNext = function:PtrUInt;
|
Page tables get used
TPageTablesGetUsed = function:LongWord;
|
Page tables get free
TPageTablesGetFree = function:LongWord;
|
Vector table get base
TVectorTableGetBase = function:PtrUInt;
|
Vector table get size
TVectorTableGetSize = function:LongWord;
|
Vector table get count
TVectorTableGetCount = function:LongWord;
|
Vector table get entry
TVectorTableGetEntry = function(Number:LongWord):PtrUInt;
|
Vector table set entry
TVectorTableSetEntry = function(Number:LongWord; Address:PtrUInt):LongWord;
|
First bit set
TFirstBitSet = function(Value:LongWord):LongWord;
|
Count leading zeros
TCountLeadingZeros = function(Value:LongWord):LongWord;
|
Text IO write char
TTextIOWriteChar = function(ACh:Char; AUserData:Pointer):Boolean;
|
Text IO read char
TTextIOReadChar = function(var ACh:Char; AUserData:Pointer):Boolean;
|
Text IO write buffer
TTextIOWriteBuffer = function(ABuffer:PChar; ACount:LongInt; AUserData:Pointer):LongInt;
|
Console get key
TConsoleGetKey = function(var ACh:Char; AUserData:Pointer):Boolean;
|
Console peek key
TConsolePeekKey = function(var ACh:Char; AUserData:Pointer):Boolean;
|
Console write char
TConsoleWriteChar = function(ACh:Char; AUserData:Pointer):Boolean;
|
Console read char
TConsoleReadChar = function(var ACh:Char; AUserData:Pointer):Boolean;
|
Console read wide char
TConsoleReadWideChar = function(var ACh:WideChar; AUserData:Pointer):Boolean;
|
Console hide mouse
TConsoleHideMouse = function(AUserData:Pointer):Boolean;
|
Console show mouse
TConsoleShowMouse = function(X,Y:LongWord; AUserData:Pointer):Boolean;
|
Console read mouse
TConsoleReadMouse = function(var X,Y,Buttons:LongWord; AUserData:Pointer):Boolean;
|
Code page to wide char
TCodePageToWideChar = function(Ch:Char):WideChar;
|
Wide char to code page
TWideCharToCodePage = function(Ch:WideChar):Char;
|
Host get name
THostGetName = function:String;
|
Host set name
THostSetName = function(const AName:String):Boolean;
|
Host get domain
THostGetDomain = function:String;
|
Host set domain
THostSetDomain = function(const ADomain:String):Boolean;
|
Module load
TModuleLoad = function(const AName:String):THandle;
|
Module unload
TModuleUnload = function(AHandle:THandle):Boolean;
|
Module get name
TModuleGetName = function(AHandle:THandle):String;
|
Symbol add
TSymbolAdd = function(AHandle:THandle; const AName:String; AAddress:PtrUInt):Boolean;
|
Symbol remove
TSymbolRemove = function(AHandle:THandle; const AName:String):Boolean;
|
Symbol get address
TSymbolGetAddress = function(AHandle:THandle; const AName:String):PtrUInt;
|
Logging output
TLoggingOutput = procedure(const AText:String);
|
Logging output ex
TLoggingOutputEx = procedure(AFacility,ASeverity:LongWord; const ATag,AContent:String);
|
Environment get
TEnvironmentGet = function(const AName:String):String;
|
Environment set
TEnvironmentSet = function(const AName,AValue:String):LongWord;
|
Environment count
TEnvironmentCount = function(AReset:Boolean):LongWord;
|
Environment index
TEnvironmentIndex = function(const AName:String):LongWord;
|
Environment string
TEnvironmentString = function(AIndex:LongWord):String;
|
Text IO data
Platform timer
Platform worker
Class definitions
Platform specific classes
EHardwareException = class(Exception)
|
EDataAbort = class(EHardwareException);
|
EPrefetchAbort = class(EHardwareException);
|
EUndefinedInstruction = class(EHardwareException);
|
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;
|
OptionsInitCompleted:Boolean;
|
Lock variables
ClockLock:TPlatformLock;
|
PowerLock:TPlatformLock;
|
MailboxLock:TPlatformLock;
|
ShutdownLock:TPlatformLock;
|
InterruptLock:TPlatformLock;
|
PageTableLock:TPlatformLock;
|
VectorTableLock:TPlatformLock;
|
HandleNameLock:TPlatformLock;
|
HandleTableLock:TPlatformLock;
|
ShutdownTableLock:TPlatformLock;
|
UtilityLock:TPlatformLock;
|
EnvironmentLock:TPlatformLock;
|
Semaphore variables
ShutdownSemaphore:TPlatformSemaphore;
|
Worker variables
ShutdownWorker:TPlatformWorker;
|
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;
|
OptionsInitHandler:TOptionsInit;
|
Device tree handlers
DeviceTreeValidHandler:TDeviceTreeValid;
|
DeviceTreeGetBaseHandler:TDeviceTreeGetBase;
|
DeviceTreeGetSizeHandler:TDeviceTreeGetSize;
|
DeviceTreeReadHandler:TDeviceTreeRead;
|
DeviceTreeRead32Handler:TDeviceTreeRead32;
|
DeviceTreeRead64Handler:TDeviceTreeRead64;
|
DeviceTreeReadStringHandler:TDeviceTreeReadString;
|
Blink/Output handlers
BootBlinkHandler:TBootBlink;
|
BootOutputHandler:TBootOutput;
|
BootConsoleStartHandler:TBootConsoleStart;
|
BootConsoleWriteHandler:TBootConsoleWrite;
|
BootConsoleWriteExHandler:TBootConsoleWriteEx;
|
BootConsoleGetXHandler:TBootConsoleGetX;
|
BootConsoleGetYHandler:TBootConsoleGetY;
|
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;
|
CounterGetRateHandler:TCounterGetRate;
|
CounterSetRateHandler:TCounterSetRate;
|
CounterGetIntervalHandler:TCounterGetInterval;
|
CounterSetIntervalHandler:TCounterSetInterval;
|
Mailbox handlers
MailboxReceiveHandler:TMailboxReceive;
|
MailboxSendHandler:TMailboxSend;
|
MailboxCallHandler:TMailboxCall;
|
MailboxCallExHandler:TMailboxCallEx;
|
MailboxPropertyCallHandler:TMailboxPropertyCall;
|
MailboxPropertyCallExHandler:TMailboxPropertyCallEx;
|
MailboxPropertyTagHandler:TMailboxPropertyTag;
|
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;
|
Inter processor interrupt (IPI) handlers
RequestIPIHandler:TRequestIPI;
|
ReleaseIPIHandler:TReleaseIPI;
|
Interrupt register/deregister handlers
RegisterInterruptHandler:TRegisterInterrupt;
|
DeregisterInterruptHandler:TDeregisterInterrupt;
|
System call (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;
|
Software interrupt entry (IPI) handlers
GetSoftwareInterruptCountHandler:TGetSoftwareInterruptCount;
|
GetSoftwareInterruptStartHandler:TGetSoftwareInterruptStart;
|
GetSoftwareInterruptEntryHandler:TGetSoftwareInterruptEntry;
|
System call entry (SWI) 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;
|
CPUGetGroupHandler:TCPUGetGroup;
|
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;
|
Chip handlers
ChipGetRevisionHandler:TChipGetRevision;
|
Firmware handlers
FirmwareGetRevisionHandler:TFirmwareGetRevision;
|
FirmwareGetThrottledHandler:TFirmwareGetThrottled;
|
Machine handlers
MachineGetTypeHandler:TMachineGetType;
|
Memory handlers
MemoryGetBaseHandler:TMemoryGetBase;
|
MemoryGetSizeHandler:TMemoryGetSize;
|
MemoryGetPageSizeHandler:TMemoryGetPageSize;
|
MemoryGetLargePageSizeHandler:TMemoryGetLargePageSize;
|
MemoryGetSectionSizeHandler:TMemoryGetSectionSize;
|
MemoryGetLargeSectionSizeHandler:TMemoryGetLargeSectionSize;
|
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 miscellaneous 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;
|
FramebufferSetPaletteHandler:TFramebufferSetPalette;
|
FramebufferTestPaletteHandler:TFramebufferTestPalette;
|
FramebufferGetLayerHandler:TFramebufferGetLayer;
|
FramebufferSetLayerHandler:TFramebufferSetLayer;
|
FramebufferTestLayerHandler:TFramebufferTestLayer;
|
FramebufferTestVsyncHandler:TFramebufferTestVsync;
|
FramebufferSetVsyncHandler:TFramebufferSetVsync;
|
FramebufferSetBacklightHandler:TFramebufferSetBacklight;
|
FramebufferGetNumDisplaysHandler:TFramebufferGetNumDisplays;
|
FramebufferGetDisplayIdHandler:TFramebufferGetDisplayId;
|
FramebufferSetDisplayNumHandler:TFramebufferSetDisplayNum;
|
FramebufferGetDisplaySettingsHandler:TFramebufferGetDisplaySettings;
|
FramebufferDisplayIdToNameHandler:TFramebufferDisplayIdToName;
|
Cursor handlers
CursorSetDefaultHandler:TCursorSetDefault;
|
CursorSetInfoHandler:TCursorSetInfo;
|
CursorSetStateHandler:TCursorSetState;
|
Touch handlers
TouchGetBufferHandler:TTouchGetBuffer;
|
TouchSetBufferHandler:TTouchSetBuffer;
|
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;
|
VirtualGPIOFunctionGetHandler:TVirtualGPIOFunctionGet;
|
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;
|
SPIGetDescriptionHandler:TSPIGetDescription;
|
I2C handlers
I2CAvailableHandler:TI2CAvailable;
|
I2CStartHandler:TI2CStart;
|
I2CStopHandler:TI2CStop;
|
I2CReadHandler:TI2CRead;
|
I2CWriteHandler:TI2CWrite;
|
I2CWriteReadHandler:TI2CWriteRead;
|
I2CWriteWriteHandler:TI2CWriteWrite;
|
I2CGetRateHandler:TI2CGetRate;
|
I2CSetRateHandler:TI2CSetRate;
|
I2CGetAddressHandler:TI2CGetAddress;
|
I2CSetAddressHandler:TI2CSetAddress;
|
I2CGetDescriptionHandler:TI2CGetDescription;
|
I2CSlaveGetDescriptionHandler:TI2CSlaveGetDescription;
|
PWM handlers
PWMAvailableHandler:TPWMAvailable;
|
PWMStartHandler:TPWMStart;
|
PWMStopHandler:TPWMStop;
|
PWMWriteHandler:TPWMWrite;
|
PWMSetModeHandler:TPWMSetMode;
|
PWMSetRangeHandler:TPWMSetRange;
|
PWMSetFrequencyHandler:TPWMSetFrequency;
|
PWMConfigureHandler:TPWMConfigure;
|
PWMGetDescriptionHandler:TPWMGetDescription;
|
RTC handlers
RTCAvailableHandler:TRTCAvailable;
|
RTCGetTimeHandler:TRTCGetTime;
|
RTCSetTimeHandler:TRTCSetTime;
|
UART handlers
UARTGetDescriptionHandler:TUARTGetDescription;
|
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;
|
Get SP/PC handlers
GetSPHandler:TGetSP;
|
GetPCHandler:TGetPC;
|
Enable/Disable/Save/Restore IRQ/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;
|
Halt thread 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;
|
Context switch 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;
|
Page table handlers
PageTableGetLevelsHandler:TPageTableGetLevels;
|
PageDirectoryGetBaseHandler:TPageDirectoryGetBase;
|
PageDirectoryGetSizeHandler:TPageDirectoryGetSize;
|
PageTableGetBaseHandler:TPageTableGetBase;
|
PageTableGetSizeHandler:TPageTableGetSize;
|
PageTableGetEntryHandler:TPageTableGetEntry;
|
PageTableSetEntryHandler:TPageTableSetEntry;
|
PageTableGetPageSizeHandler:TPageTableGetPageSize;
|
PageTableGetPageFlagsHandler:TPageTableGetPageFlags;
|
PageTableGetPagePhysicalHandler:TPageTableGetPagePhysical;
|
Page tables handlers
PageTablesGetAddressHandler:TPageTablesGetAddress;
|
PageTablesGetLengthHandler:TPageTablesGetLength;
|
PageTablesGetCountHandler:TPageTablesGetCount;
|
PageTablesGetShiftHandler:TPageTablesGetShift;
|
PageTablesGetNextHandler:TPageTablesGetNext;
|
PageTablesGetUsedHandler:TPageTablesGetUsed;
|
PageTablesGetFreeHandler:TPageTablesGetFree;
|
Vector table handlers
VectorTableGetBaseHandler:TVectorTableGetBase;
|
VectorTableGetSizeHandler:TVectorTableGetSize;
|
VectorTableGetCountHandler:TVectorTableGetCount;
|
VectorTableGetEntryHandler:TVectorTableGetEntry;
|
VectorTableSetEntryHandler:TVectorTableSetEntry;
|
First bit set handlers
FirstBitSetHandler:TFirstBitSet;
|
Count leading zeros handlers
CountLeadingZerosHandler:TCountLeadingZeros;
|
Text IO handlers
TextIOWriteCharHandler:TTextIOWriteChar;
|
TextIOReadCharHandler:TTextIOReadChar;
|
TextIOWriteBufferHandler:TTextIOWriteBuffer;
|
Console handlers
ConsoleGetKeyHandler:TConsoleGetKey;
|
ConsolePeekKeyHandler:TConsolePeekKey;
|
ConsoleWriteCharHandler:TConsoleWriteChar;
|
ConsoleReadCharHandler:TConsoleReadChar;
|
ConsoleReadWideCharHandler:TConsoleReadWideChar;
|
ConsoleHideMouseHandler:TConsoleHideMouse;
|
ConsoleShowMouseHandler:TConsoleShowMouse;
|
ConsoleReadMouseHandler:TConsoleReadMouse;
|
Code page handlers
CodePageToWideCharHandler:TCodePageToWideChar;
|
WideCharToCodePageHandler:TWideCharToCodePage;
|
Name handlers
HostGetNameHandler:THostGetName;
|
HostSetNameHandler:THostSetName;
|
HostGetDomainHandler:THostGetDomain;
|
HostSetDomainHandler:THostSetDomain;
|
Module handlers
ModuleLoadHandler:TModuleLoad;
|
ModuleUnloadHandler:TModuleUnload;
|
ModuleGetNameHandler:TModuleGetName;
|
Symbol handlers
SymbolAddHandler:TSymbolAdd;
|
SymbolRemoveHandler:TSymbolRemove;
|
SymbolGetAddressHandler:TSymbolGetAddress;
|
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;
procedure OptionsInit;
Device tree functions
function DeviceTreeValid:Boolean; inline;
function DeviceTreeGetBase:PtrUInt; inline;
function DeviceTreeGetSize:LongWord; inline;
function DeviceTreeRead(const Path,Name:String; Buffer:Pointer; var Size:LongWord):LongWord; inline;
function DeviceTreeRead32(const Path,Name:String; var Value:LongWord):LongWord; inline;
function DeviceTreeRead64(const Path,Name:String; var Value:UInt64):LongWord; inline;
function DeviceTreeReadString(const Path,Name:String; var Value:String):LongWord; inline;
Boot functions
procedure BootOutput(Value:LongWord); inline;
procedure BootConsoleStart; inline;
procedure BootConsoleWrite(const Value:String); inline;
procedure BootConsoleWriteEx(const Value:String; X,Y:LongWord); inline;
function BootConsoleGetX:LongWord; inline;
function BootConsoleGetY: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;
function MailboxPropertyTag(Tag:LongWord; Data:Pointer; Size: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;
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;
Inter processor interrupt (IPI) functions
function RequestIPI(CPUID,Number:LongWord; Handler:TIPIHandler; Parameter:Pointer):LongWord; inline;
function ReleaseIPI(CPUID,Number:LongWord; Handler:TIPIHandler; Parameter:Pointer):LongWord; inline;
Interrupt register/deregister functions
function RegisterInterrupt(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord; inline;
function DeregisterInterrupt(Number,Mask,Priority,Flags:LongWord; Handler:TSharedInterruptHandler; Parameter:Pointer):LongWord; inline;
System call (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; overload;
function GetInterruptEntry(Number,Instance:LongWord;var Interrupt:TInterruptEntry):LongWord; inline; overload;
Local interrupt entry functions
function GetLocalInterruptCount:LongWord; inline;
function GetLocalInterruptStart:LongWord; inline;
function GetLocalInterruptEntry(CPUID,Number:LongWord):TInterruptEntry;
function GetLocalInterruptEntry(CPUID,Number,Instance:LongWord; var Interrupt:TInterruptEntry):LongWord; inline;
Software interrupt entry (IPI) functions
function GetSoftwareInterruptCount:LongWord; inline;
function GetSoftwareInterruptStart:LongWord; inline;
function GetSoftwareInterruptEntry(CPUID,Number:LongWord):TInterruptEntry; overload;
function GetSoftwareInterruptEntry(CPUID,Number,Instance:LongWord; var Interrupt:TInterruptEntry):LongWord; inline; overload;
System call entry (SWI) functions
function GetSystemCallCount:LongWord; inline;
function GetSystemCallEntry(Number:LongWord):TSystemCallEntry; inline;
System functions
function SystemRegisterShutdown(Callback:TShutdownCallback; Parameter:Pointer; Timeout:LongWord):LongWord;
function SystemDeregisterShutdown(Callback:TShutdownCallback; Parameter:Pointer):LongWord;
function SystemGetUptime:Int64; inline;
function SystemDateToString(Date:TDateTime):String; inline;
function SystemTimeToString(Time:TDateTime):String; inline;
function SystemDateTimeToString(DateTime:TDateTime):String; inline;
function SystemIntervalToString(Interval:TDateTime):String; inline;
CPU functions
function CPUGetMemory(var Address:PtrUInt; var Length:UInt64):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:UInt64):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;
Version functions
procedure VersionGetInfo(var Major,Minor,Revision:LongWord);
function VersionGetDate:String;
function VersionGetName:String;
function VersionGetVersion:String;
Board functions
function BoardGetRevision:LongWord; inline;
function BoardGetMACAddress:String; inline;
Chip functions
function ChipGetRevision:LongWord; inline;
Firmware functions
function FirmwareGetRevision:LongWord; inline;
function FirmwareGetThrottled:LongWord; inline;
Machine functions
Memory functions
function MemoryGetPageSize:LongWord; inline;
function MemoryGetLargePageSize:LongWord; inline;
function MemoryGetSectionSize:LongWord; inline;
function MemoryGetLargeSectionSize: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 ClockSeconds:LongWord;
function ClockMilliseconds:Int64;
function ClockMicroseconds:Int64;
function ClockNanoseconds:Int64;
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 miscellaneous 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 FramebufferGetLayer(var Layer:LongInt):LongWord; inline;
function FramebufferSetLayer(var Layer:LongInt):LongWord; inline;
function FramebufferTestLayer(var Layer:LongInt):LongWord; inline;
function FramebufferTestVsync:LongWord; inline;
function FramebufferSetVsync:LongWord; inline;
function FramebufferSetBacklight(Brightness:LongWord):LongWord; inline;
function FramebufferGetNumDisplays(var NumDisplays:LongWord):LongWord; inline;
function FramebufferGetDisplayId(DisplayNum:LongWord):LongWord; inline;
function FramebufferSetDisplayNum(DisplayNum:LongWord):LongWord; inline;
function FramebufferGetDisplaySettings(DisplayNum:LongWord; var DisplaySettings:TDisplaySettings):LongWord; inline;
function FramebufferDisplayIdToName(DisplayId:LongWord):String; inline;
Touch functions
function TouchGetBuffer(var Address:PtrUInt):LongWord; inline;
function TouchSetBuffer(Address:PtrUInt):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;
Handle functions
function HandleCreate(Data:THandle; AType:LongWord):THandle; inline;
function HandleCreateEx(const Name:String; Flags:LongWord; Data:THandle; AType:LongWord):PHandleEntry;
function HandleDestroy(Handle:THandle):LongWord;
function HandleGet(Handle:THandle):PHandleEntry;
function HandleFind(const Name:String):PHandleEntry;
function HandleEnumerate(Callback:THandleEnumerate; Data:Pointer):LongWord;
function HandleClose(Handle:THandle):LongWord; inline;
function HandleDuplicate(Handle:THandle):THandle;
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 GPIOLevelGet(Pin:LongWord):LongWord; inline;
function GPIOLevelSet(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 VirtualGPIOLevelGet(Pin:LongWord):LongWord; inline;
function VirtualGPIOLevelSet(Pin,Level:LongWord):LongWord; inline;
function VirtualGPIOFunctionGet(Pin: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;
function SPIGetDescription(Id:LongWord):String; 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;
function I2CGetDescription(Id:LongWord):String; inline;
function I2CSlaveGetDescription(Id:LongWord):String; 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;
function PWMGetDescription(Id,Channel:LongWord):String; inline;
RTC functions
function RTCAvailable:Boolean; inline;
function RTCGetTime:Int64; inline;
function RTCSetTime(const Time:Int64):Int64; inline;
UART functions
function UARTGetDescription(Id:LongWord):String; 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:PtrUInt; Size:LongWord); inline;
procedure InvalidateDataCacheRange(Address:PtrUInt; Size:LongWord); inline;
procedure CleanAndInvalidateDataCacheRange(Address:PtrUInt; Size:LongWord); inline;
procedure InvalidateInstructionCacheRange(Address:PtrUInt; 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 PageTableGetLevels:LongWord; inline;
function PageDirectoryGetBase:PtrUInt; inline;
function PageDirectoryGetSize:LongWord; inline;
function PageTableGetBase:PtrUInt; inline;
function PageTableGetSize:LongWord; inline;
function PageTableGetEntry(Address:PtrUInt):TPageTableEntry; overload;
procedure PageTableGetEntry(Address:PtrUInt; var Entry:TPageTableEntry); inline; overload;
function PageTableSetEntry(const Entry:TPageTableEntry):LongWord; inline;
function PageTableGetPageSize(Address:PtrUInt):LongWord; inline;
function PageTableGetPageFlags(Address:PtrUInt):LongWord; inline;
function PageTableGetPageRange(Address:PtrUInt):LongWord; inline;
function PageTableGetPagePhysical(Address:PtrUInt):PtrUInt; 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);
Text IO functions
procedure TextIOOpen(var F:Text; AWrite:TTextIOWriteChar; ARead:TTextIOReadChar; AMode:LongInt; AUserData:Pointer);
procedure TextIOClose(var T:TextRec);
procedure TextIORead(var T:TextRec);
procedure TextIOWrite(var T:TextRec);
function TextIOReadData(ARead:TTextIOReadChar; AUserData:Pointer; ABuffer:PChar; ACount:LongInt):LongInt;
function TextIOWriteChar(ACh:Char; AUserData:Pointer):Boolean; inline;
function TextIOReadChar(var ACh:Char; AUserData:Pointer):Boolean; inline;
function TextIOWriteBuffer(ABuffer:PChar; ACount:LongInt; AUserData:Pointer):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;
Module functions
Symbol functions
function SymbolAdd(AHandle:THandle; const AName:String; AAddress:PtrUInt):Boolean; inline;
function SymbolRemove(AHandle:THandle; const AName:String):Boolean; inline;
function SymbolGetAddress(AHandle:THandle; const AName:String):PtrUInt; inline;
Logging functions
procedure LoggingOutputEx(AFacility,ASeverity:LongWord; const ATag,AContent:String); inline;
Environment functions
function EnvironmentGet(const AName:String):String; inline;
function EnvironmentSet(const AName,AValue:String):LongWord; inline;
function EnvironmentCount(AReset:Boolean):LongWord; inline;
function EnvironmentIndex(const AName:String):LongWord; inline;
function EnvironmentString(AIndex:LongWord):String; inline;
function EnvironmentSetDefault(const AName,AValue:String):LongWord;
Utility functions
function FirstBitSet(Value:LongWord):LongWord; inline;
function CountLeadingZeros(Value:LongWord):LongWord; inline;
function PhysicalToIOAddress(Address:Pointer):PtrUInt; inline;
function IOAddressToPhysical(Address:Pointer):PtrUInt; inline;
function PhysicalToBusAddress(Address:Pointer):PtrUInt; inline;
function BusAddressToPhysical(Address:Pointer):PtrUInt; 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 SysUtilsGetUniversalTime(var SystemTime:TSystemTime):Boolean;
function SysUtilsGetLocalTimeOffset:Integer;
function SysUtilsGetLocalTimeOffsetEx(const DateTime:TDateTime; const InputIsUTC:Boolean; out Offset:Integer):Boolean;
Platform helper functions
Return to Unit Reference