Difference between revisions of "Unit Platform"
From Ultibo.org
Line 1,375: | Line 1,375: | ||
</div></div> | </div></div> | ||
<br /> | <br /> | ||
− | |||
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
<pre style="border: 0; padding-bottom:0px;">function ClockSetTime(const Time:Int64; RTC:Boolean):Int64;</pre> | <pre style="border: 0; padding-bottom:0px;">function ClockSetTime(const Time:Int64; RTC:Boolean):Int64;</pre> | ||
Line 1,393: | Line 1,392: | ||
! '''Note''' | ! '''Note''' | ||
| This is the same time format as Windows FILE_TIME and is intended to allow compatibility with file system functions etc. By default the time passed to this function is considered to be UTC but the actual conversion between UTC and local time is handled at a higher level. | | This is the same time format as Windows FILE_TIME and is intended to allow compatibility with file system functions etc. By default the time passed to this function is considered to be UTC but the actual conversion between UTC and local time is handled at a higher level. | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function ClockGetCount:LongWord; inline;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Gets the current system clock count (32 least significant bits of total)</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | This will normally come from the free running system timer in the board and is useful as a form of tick count but not for time keeping because the actual rate at which this increments is dependant on the system timer clock frequency of the specific board and may not be a measure of time in its raw form. | ||
|- | |- | ||
|} | |} |
Revision as of 05:31, 22 August 2016
Return to Unit Reference
Contents
[hide]Description
To be documented
Constants
To be documented
Type definitions
To be documented
Public variables
To be documented
Function declarations
Initialization functions
[Expand]
procedure PlatformInit;
Description: Initialize platform specific information for the current hardware
[Expand]
procedure CPUInit;
Description: Initialize the CPU including performance features etc (Where Applicable)
[Expand]
procedure FPUInit;
Description: Initialize the Floating Point Processor Unit (Where Applicable)
[Expand]
procedure SMPInit;
Description: Initialize the Symetric Multi Processor support (Where Applicable)
[Expand]
procedure CacheInit;
Description: Initialize CPU Data and Instruction Caching (Where Applicable)
[Expand]
procedure MemoryInit;
Description: Initialize Memory specific information (Where Applicable)
[Expand]
procedure ParseBootTags;
Description: Parse any boot tag information passed by the bootloader (Where Applicable)
[Expand]
procedure ParseCommandLine;
Description: Setup argc, argv and cmdline and process known command line options (Where Applicable)
[Expand]
procedure ParseEnvironment;
Description: Setup envp and process known environment options (Where Applicable)
Boot functions
LED functions
[Expand]
procedure ActivityLEDEnable; inline;
Description: Enable the Activity LED (Where Applicable)
[Expand]
procedure ActivityLEDOff; inline;
Description: Turn Off the Activity LED (Where Applicable)
Counter functions (Timer device)
[Expand]
function CounterAvailable:Boolean; inline;
Description: Check if a counter is currently available
[Expand]
function CounterRead:LongWord; inline;
Description: Read the current value of the default counter
[Expand]
function CounterRead64:Int64; inline;
Description: Read the current value of the default counter
[Expand]
function CounterWait:LongWord; inline;
Description: Wait for the current interval to expire on the default counter
[Expand]
function CounterEvent(Callback:TCounterCallback; Data:Pointer):LongWord; inline;
Description: Schedule a function to be called when the current interval expires on the default counter
[Expand]
function CounterGetRate:LongWord; inline;
Description: Get the current clock rate in Hz of the default counter
[Expand]
function CounterSetRate(Rate:LongWord):LongWord; inline;
Description: Set the current clock rate in Hz of the default counter
[Expand]
function CounterGetInterval:LongWord; inline;
Description: Get the current interval in milliseconds of the default counter
[Expand]
function CounterSetInterval(Interval:LongWord):LongWord; inline;
Description: Set the current interval in milliseconds of the default counter
Mailbox functions
[Expand]
function MailboxReceive(Mailbox,Channel:LongWord):LongWord; inline;
Description: Receive from specifed mailbox on specified channel
[Expand]
procedure MailboxSend(Mailbox,Channel,Data:LongWord); inline;
Description: Send to specifed mailbox on specified channel
[Expand]
function MailboxCall(Mailbox,Channel,Data:LongWord; var Response:LongWord):LongWord; inline;
Description: Perform a transaction (Send/Receive) to specifed mailbox on specified channel
[Expand]
function MailboxCallEx(Mailbox,Channel,Data:LongWord; var Response:LongWord; Timeout:LongWord):LongWord; inline;
Description: Perform a transaction (Send/Receive) to specifed mailbox on specified channel
[Expand]
function MailboxPropertyCall(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord):LongWord; inline;
Description: Perform a property tag transaction (Send/Receive) to specifed mailbox on specified channel
[Expand]
function MailboxPropertyCallEx(Mailbox,Channel:LongWord; Data:Pointer; var Response:LongWord; Timeout:LongWord):LongWord; inline;
Description: Perform a property tag transaction (Send/Receive) to specifed mailbox on specified channel
Random number functions
[Expand]
function RandomAvailable:Boolean; inline;
Description: Check if a hardware random number generator is currently available
Watchdog Timer Functions
[Expand]
function WatchdogAvailable:Boolean; inline;
Description: Check if a watchdog timer is currently available
[Expand]
function WatchdogStart(Milliseconds:LongWord):LongWord; inline;
Description: To be documented
[Expand]
function WatchdogRefresh(Milliseconds:LongWord):LongWord; inline;
Description: To be documented
Interrupt request (IRQ) functions
[Expand]
function RequestIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request registration of the supplied handler to the specified IRQ number
[Expand]
function ReleaseIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request deregistration of the supplied handler from the specified IRQ number
[Expand]
function RequestExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
Description: Request registration of the supplied extended handler to the specified IRQ number
[Expand]
function ReleaseExIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
Description: Request deregistration of the supplied extended handler from the specified IRQ number
Fast interrupt request (FIQ) functions
[Expand]
function RequestFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request registration of the supplied handler to the specified FIQ number
[Expand]
function ReleaseFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request deregistration of the supplied handler from the specified FIQ number
[Expand]
function RequestExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
Description: Request registration of the supplied extended handler to the specified FIQ number
[Expand]
function ReleaseExFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; HandlerEx:TInterruptExHandler; Parameter:Pointer):LongWord; inline;
Description: Request deregistration of the supplied extended handler from the specified FIQ number
System functions
[Expand]
function SystemGetUptime:Int64; inline;
Description: Get the current system up time in 100 nanosecond ticks since 1/1/1601
[Expand]
procedure SystemCall(Number:LongWord; Param1,Param2,Param3:PtrUInt); inline;
Description: Perform a System Call function with the supplied parameters (Where Applicable)
CPU Functions
[Expand]
function CPUGetMemory(var Address:PtrUInt; var Length:LongWord):LongWord; inline;
Description: Get the memory start and size available to the CPU
[Expand]
function CPUGetPercentage(CPUID:LongWord):Double; inline;
Description: Get the last second ulitization of the specified CPU in percentage
[Expand]
function CPUGetUtilization(CPUID:LongWord):LongWord; inline;
Description: Get the last second ulitization of the specified CPU
[Expand]
function CPUGetRevision:LongWord; inline;
Description: Get the CPU revision of the current CPU
[Expand]
function CPUGetDescription:String; inline;
Description: Get the CPU description of the current CPU
FPU functions
GPU functions
[Expand]
function GPUGetMemory(var Address:PtrUInt; var Length:LongWord):LongWord; inline;
Description: Get the memory start and size available to the GPU
Cache functions
[Expand]
function L1CacheGetType:LongWord; inline;
Description: Get the L1 cache type for this board
[Expand]
function L1DataCacheGetSize:LongWord; inline;
Description: Get the L1 data cache size for this board
[Expand]
function L1DataCacheGetLineSize:LongWord; inline;
Description: Get the L1 data cache line size for this board
[Expand]
function L1InstructionCacheGetSize:LongWord; inline;
Description: Get the L1 instruction cache size for this board
[Expand]
function L1InstructionCacheGetLineSize:LongWord; inline;
Description: Get the L1 instruction cache line size for this board
[Expand]
function L2CacheGetType:LongWord; inline;
Description: Get the L2 cache type for this board
[Expand]
function L2CacheGetSize:LongWord; inline;
Description: Get the L2 cache size for this board
[Expand]
function L2CacheGetLineSize:LongWord; inline;
Description: Get the L2 cache line size for this board
Board functions
[Expand]
function BoardGetRevision:LongWord; inline;
Description: Get the current Board revision number
[Expand]
function BoardGetMACAddress:String; inline;
Description: Get the current Board MAC address (Where Applicable)
Firmware functions
[Expand]
function FirmwareGetRevision:LongWord; inline;
Description: Get the current board Firmware Revision
Machine functions
Memory functions
[Expand]
function MemoryGetPageSize:LongWord; inline;
Description: Get the page size of system memory
[Expand]
function MemoryGetLargePageSize:LongWord; inline;
Description: Get the large page size of system memory (Where Applicable)
Power functions
[Expand]
function PowerGetWait(PowerId:LongWord):LongWord; inline;
Description: Get the enable wait time in Microseconds of the specified device
[Expand]
function PowerGetState(PowerId:LongWord):LongWord; inline;
Description: Get the power state of the specified device
[Expand]
function PowerSetState(PowerId,State:LongWord; Wait:Boolean):LongWord; inline;
Description: Set the power state of the specified device (Optionally waiting for ready)
Clock functions
[Expand]
function ClockGetTime:Int64;
Description: Get the current system time in 100 nanosecond ticks since 1/1/1601
[Expand]
function ClockSetTime(const Time:Int64; RTC:Boolean):Int64;
Description: Set the current system time in 100 nanosecond ticks since 1/1/1601
[Expand]
function ClockGetCount:LongWord; inline;
Description: Gets the current system clock count (32 least significant bits of total)
Return to Unit Reference