Difference between revisions of "Unit Platform"

From Ultibo.org
Jump to: navigation, search
Line 2,251: Line 2,251:
 
'''GPIO functions'''
 
'''GPIO functions'''
  
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function GPIOAvailable:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if a GPIO device is available</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Reg'''
 +
| The memory register to read from
 +
|-
 +
! '''Value'''
 +
| The value of the memory register
 +
|-
 +
|}
 +
</div></div>
 +
<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 GPIORead(Reg:LongWord):LongWord; inline;</pre>
 
<pre style="border: 0; padding-bottom:0px;">function GPIORead(Reg:LongWord):LongWord; inline;</pre>

Revision as of 06:34, 26 August 2016

Return to Unit Reference


Description


To be documented

Constants


To be documented

Type definitions


To be documented

Public variables


To be documented

Function declarations



Initialization functions

procedure PlatformInit;
Description: Initialize platform specific information for the current hardware
Note To be documented


procedure CPUInit;
Description: Initialize the CPU including performance features etc (Where Applicable)
Note To be documented


procedure FPUInit;
Description: Initialize the Floating Point Processor Unit (Where Applicable)
Note To be documented


procedure GPUInit;
Description: Initialize the Graphics Processor Unit (Where Applicable)
Note To be documented


procedure MMUInit;
Description: Initialize the Memory Management Unit (Where Applicable)
Note To be documented


procedure SMPInit;
Description: Initialize the Symetric Multi Processor support (Where Applicable)
Note Secondary CPU boot is performed by SecondaryInit in Threads


procedure CacheInit;
Description: Initialize CPU Data and Instruction Caching (Where Applicable)
Note To be documented


procedure BoardInit;
Description: Initialize Board specific information (Where Applicable)
Note To be documented


procedure MemoryInit;
Description: Initialize Memory specific information (Where Applicable)
Note To be documented


procedure ClockInit;
Description: Initialize the Clock handling
Note To be documented


procedure PowerInit;
Description: Initialize Power management (Where Applicable)
Note To be documented


procedure MailboxInit;
Description: Initialize Mailbox access (Where Applicable)
Note To be documented


procedure InterruptInit;
Description: Initialize Interrupt handling
Note To be documented


procedure PeripheralInit;
Description: Initialize Peripheral devices (Where Applicable)
Note To be documented


procedure ParseBootTags;
Description: Parse any boot tag information passed by the bootloader (Where Applicable)
Note To be documented


procedure ParseCommandLine;
Description: Setup argc, argv and cmdline and process known command line options (Where Applicable)
Note To be documented


procedure ParseEnvironment;
Description: Setup envp and process known environment options (Where Applicable)
Note To be documented


Boot functions

procedure BootBlink; inline;
Description: Blink the Activity LED (Where Applicable)
Note Intended for startup diagnostics when bootstrapping a new board


LED functions

procedure PowerLEDEnable; inline;
Description: Enable the Power LED (Where Applicable)
Note To be documented


procedure PowerLEDOn; inline;
Description: Turn On the Power LED (Where Applicable)
Note To be documented


procedure PowerLEDOff; inline;
Description: Turn Off the Power LED (Where Applicable)
Note To be documented


procedure ActivityLEDEnable; inline;
Description: Enable the Activity LED (Where Applicable)
Note To be documented


procedure ActivityLEDOn; inline;
Description: Turn On the Activity LED (Where Applicable)
Note To be documented


procedure ActivityLEDOff; inline;
Description: Turn Off the Activity LED (Where Applicable)
Note To be documented


Counter functions (Timer device)

function CounterAvailable:Boolean; inline;
Description: Check if a counter is currently available
Note To be documented


function CounterRead:LongWord; inline;
Description: Read the current value of the default counter
Return The 32 bit current value of the current or 0 on failure


function CounterRead64:Int64; inline;
Description: Read the current value of the default counter
Return The 64 bit current value of the current or 0 on failure


function CounterWait:LongWord; inline;
Description: Wait for the current interval to expire on the default counter
Return ERROR_SUCCESS if the interval expired or another error code on failure


function CounterEvent(Callback:TCounterCallback; Data:Pointer):LongWord; inline;
Description: Schedule a function to be called when the current interval expires on the default counter
Callback The function to be called when the interval expires
Data A pointer to be pass to the function when the interval expires (Optional)
Return ERROR_SUCCESS if the callback was scheduled successfully or another error code on failure


function CounterGetRate:LongWord; inline;
Description: Get the current clock rate in Hz of the default counter
Return The current clock rate in Hz or 0 on failure


function CounterSetRate(Rate:LongWord):LongWord; inline;
Description: Set the current clock rate in Hz of the default counter
Rate The clock rate in Hz to set
Return ERROR_SUCCESS if the clock rate was set or another error code on failure


function CounterGetInterval:LongWord; inline;
Description: Get the current interval in milliseconds of the default counter
Return The current interval in milliseconds or 0 on failure (or not set)


function CounterSetInterval(Interval:LongWord):LongWord; inline;
Description: Set the current interval in milliseconds of the default counter
Interval The interval in milliseconds to set
Return ERROR_SUCCESS if the interval was set or another error code on failure


Mailbox functions

function MailboxReceive(Mailbox,Channel:LongWord):LongWord; inline;
Description: Receive from specifed mailbox on specified channel
Note To be documented


procedure MailboxSend(Mailbox,Channel,Data:LongWord); inline;
Description: Send to specifed mailbox on specified channel
Note To be documented


function MailboxCall(Mailbox,Channel,Data:LongWord; var Response:LongWord):LongWord; inline;
Description: Perform a transaction (Send/Receive) to specifed mailbox on specified channel
Note To be documented


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
Note To be documented


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
Note To be documented


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
Note To be documented


Random number functions

function RandomAvailable:Boolean; inline;
Description: Check if a hardware random number generator is currently available
Note The software random number generator from the RTL is always available


procedure RandomSeed(Seed:LongWord); inline;
Description: To be documented
Note To be documented


function RandomReadLongInt(Limit:LongInt):LongInt; inline;
Description: To be documented
Note To be documented


function RandomReadInt64(Limit:Int64):Int64; inline;
Description: To be documented
Note To be documented


function RandomReadExtended:Extended; inline;
Description: To be documented
Note To be documented


Watchdog Timer Functions

function WatchdogAvailable:Boolean; inline; 
Description: Check if a watchdog timer is currently available
Note To be documented


function WatchdogStart(Milliseconds:LongWord):LongWord; inline;
Description: To be documented
Note To be documented


function WatchdogStop:LongWord; inline;
Description: To be documented
Note To be documented


function WatchdogRefresh(Milliseconds:LongWord):LongWord; inline;
Description: To be documented
Note To be documented


Interrupt request (IRQ) functions

function RequestIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request registration of the supplied handler to the specified IRQ number
Note If the IRQ number is already registered then the request will fail


function ReleaseIRQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request deregistration of the supplied handler from the specified IRQ number
Note If the IRQ number is not currently registered then the request will fail


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
Note If the IRQ number is already registered then the request will fail


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
Note If the IRQ number is not currently registered then the request will fail


Fast interrupt request (FIQ) functions

function RequestFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request registration of the supplied handler to the specified FIQ number
Note If the FIQ number is already registered then the request will fail


function ReleaseFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request deregistration of the supplied handler from the specified FIQ number
Note If the FIQ number is not currently registered then the request will fail


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
Note If the FIQ number is already registered then the request will fail


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
Note If the FIQ number is not currently registered then the request will fail


System functions

function SystemRestart(Delay:LongWord):LongWord; inline;
Description: Restart the system
Note To be documented


function SystemShutdown(Delay:LongWord):LongWord; inline;
Description: Shutdown the system
Note To be documented


function SystemGetUptime:Int64; inline;
Description: Get the current system up time in 100 nanosecond ticks since 1/1/1601
Return The current system up time
Note This is the same time format as Windows FILE_TIME and is intended to allow compatibility with file system functions etc


function SystemGetCommandLine:String; inline;
Description: Get the current command line
Note To be documented


function SystemGetEnvironment:Pointer; inline;
Description: Get the current environment
Note To be documented


procedure SystemCall(Number:LongWord; Param1,Param2,Param3:PtrUInt); inline;
Description: Perform a System Call function with the supplied parameters (Where Applicable)
Note To be documented


CPU Functions

function CPUGetArch:LongWord; inline;
Description: Get the CPU architecture for this board
Note To be documented


function CPUGetType:LongWord; inline;
Description: Get the CPU type for this board
Note To be documented


function CPUGetBoot:LongWord; inline;
Description: Get the boot CPU for this board
Note To be documented


function CPUGetMask:LongWord; inline;
Description: Get the CPU mask for this board
Note To be documented


function CPUGetCount:LongWord; inline;
Description: Get the CPU count for this board
Note To be documented


function CPUGetMode:LongWord; inline;
Description: Get the current CPU moded
Note The return value is specific to the CPU type


function CPUGetState:LongWord; inline;
Description: Get the current CPU state
Note To be documented


function CPUGetCurrent:LongWord; inline;
Description: Get the current CPU ID
Note To be documented


function CPUGetMemory(var Address:PtrUInt; var Length:LongWord):LongWord; inline;
Description: Get the memory start and size available to the CPU
Note To be documented


function CPUGetPercentage(CPUID:LongWord):Double; inline;
Description: Get the last second ulitization of the specified CPU in percentage
CPUID The CPU to get utilization from or CPU_ID_ALL for average of all CPUs


function CPUGetUtilization(CPUID:LongWord):LongWord; inline;
Description: Get the last second ulitization of the specified CPU
CPUID The CPU to get utilization from or CPU_ID_ALL for average of all CPUs


function CPUGetModel:LongWord; inline;
Description: Get the CPU model of the current CPU
Note To be documented


function CPUGetRevision:LongWord; inline;
Description: Get the CPU revision of the current CPU
Note The return value is specific to the CPU type and model


function CPUGetDescription:String; inline;
Description: Get the CPU description of the current CPU
Note To be documented


FPU functions

function FPUGetType:LongWord; inline;
Description: Get the FPU type for this board
Note To be documented


function FPUGetState:LongWord; inline;
Description: Get the current FPU state
Note To be documented


GPU functions

function GPUGetType:LongWord; inline;
Description: Get the GPU type for this board
Note To be documented


function GPUGetState:LongWord; inline;
Description: Get the current GPU state
Note To be documented


function GPUGetMemory(var Address:PtrUInt; var Length:LongWord):LongWord; inline;
Description: Get the memory start and size available to the GPU
Note To be documented


Cache functions

function L1CacheGetType:LongWord; inline;
Description: Get the L1 cache type for this board
Note To be documented


function L1DataCacheGetSize:LongWord; inline;
Description: Get the L1 data cache size for this board
Note If data cache is not supported, the size returned is zero. If separate data and instruction caches are not supported, the size returned is the unified size.


function L1DataCacheGetLineSize:LongWord; inline;
Description: Get the L1 data cache line size for this board
Note If data cache is not supported, the size returned is zero. If separate data and instruction caches are not supported, the size returned is the unified size.


function L1InstructionCacheGetSize:LongWord; inline; 
Description: Get the L1 instruction cache size for this board
Note If instruction cache is not supported, the size returned is zero. If separate data and instruction caches are not supported, the size returned is the unified size.


function L1InstructionCacheGetLineSize:LongWord; inline;
Description: Get the L1 instruction cache line size for this board
Note If instruction cache is not supported, the size returned is zero. If separate data and instruction caches are not supported, the size returned is the unified size.


function L2CacheGetType:LongWord; inline;
Description: Get the L2 cache type for this board
Note To be documented


function L2CacheGetSize:LongWord; inline;
Description: Get the L2 cache size for this board
Note If L2 cache is not supported, the size returned is zero


function L2CacheGetLineSize:LongWord; inline;
Description: Get the L2 cache line size for this board
Note If L2 cache is not supported, the size returned is zero


Board functions

function BoardGetType:LongWord; inline;
Description: Get the current Board type
Note To be documented


function BoardGetModel:LongWord; inline;
Description: Get the current Board model
Note To be documented


function BoardGetSerial:Int64; inline;
Description: Get the current Board serial number
Note To be documented


function BoardGetRevision:LongWord; inline;
Description: Get the current Board revision number
Note To be documented


function BoardGetMACAddress:String; inline;
Description: Get the current Board MAC address (Where Applicable)
Note To be documented


Firmware functions

function FirmwareGetRevision:LongWord; inline;
Description: Get the current board Firmware Revision
Note To be documented


Machine functions

function MachineGetType:LongWord; inline;
Description: Get the current Machine type
Note To be documented


Memory functions

function MemoryGetBase:PtrUInt; inline;
Description: Get the base address of system memory
Note To be documented


function MemoryGetSize:LongWord; inline;
Description: Get the total size of system memory
Note To be documented


function MemoryGetPageSize:LongWord; inline;
Description: Get the page size of system memory
Note To be documented


function MemoryGetLargePageSize:LongWord; inline;
Description: Get the large page size of system memory (Where Applicable)
Note To be documented


Power functions

function PowerOn(PowerId:LongWord):LongWord;
Description: Power On the specified device
Note To be documented


function PowerOff(PowerId:LongWord):LongWord;
Description: Power Off the specified device
Note To be documented


function PowerGetWait(PowerId:LongWord):LongWord; inline;
Description: Get the enable wait time in Microseconds of the specified device
Note To be documented


function PowerGetState(PowerId:LongWord):LongWord; inline;
Description: Get the power state of the specified device
Note To be documented


function PowerSetState(PowerId,State:LongWord; Wait:Boolean):LongWord; inline;
Description: Set the power state of the specified device (Optionally waiting for ready)
Note To be documented


Clock functions

function ClockGetTime:Int64;
Description: Get the current system time in 100 nanosecond ticks since 1/1/1601
Return The current system time
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 returned by this function is considered to be UTC but the actual conversion between UTC and local time is handled at a higher level.


function ClockSetTime(const Time:Int64; RTC:Boolean):Int64;
Description: Set the current system time in 100 nanosecond ticks since 1/1/1601
Time The time to be set
RTC Set the default RTC (real time clock) if available
Return The system time after setting
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.


function ClockGetCount:LongWord; inline;
Description: Gets the current system clock count (32 least significant bits of total)
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.


function ClockGetTotal:Int64; inline;
Description: Gets the total system clock count
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.


function Clock?Offset:LongWord; inline;
Description: Change the system time offset between UTC and Local
Note To be documented


function ClockGetRate(ClockId:LongWord):LongWord; inline;
Description: Get the clock rate in Hz of the specified Clock
Note To be documented


function ClockSetRate(ClockId,Rate:LongWord; Turbo:Boolean):LongWord; inline;
Description: Set the clock rate in Hz of the specified Clock
Note To be documented


function ClockGetState(ClockId:LongWord):LongWord; inline;
Description: Get the state of the specified Clock
Note To be documented


function ClockSetState(ClockId,State:LongWord):LongWord; inline;
Description: Set the state of the specified Clock
Note To be documented


function ClockGetMinRate(ClockId:LongWord):LongWord; inline;
Description: Get the minimum clock rate in Hz of the specified Clock
Note To be documented


function ClockGetMaxRate(ClockId:LongWord):LongWord; inline;
Description: Get the maximum clock rate in Hz of the specified Clock
Note To be documented


Turbo functions

function TurboGetState(TurboId:LongWord):LongWord; inline;
Description: Get the Turbo state (0 equals Off / 1 equals On) of the specified device
Note To be documented


function TurboSetState(TurboId,State:LongWord):LongWord; inline;
Description: Set the Turbo state (0 equals Off / 1 equals On) of the specified device
Note To be documented


Voltage functions

function VoltageGetValue(VoltageId:LongWord):LongWord; inline;
Description: Get the current voltage level of the specified device
Note To be documented


function VoltageSetValue(VoltageId,Value:LongWord):LongWord; inline;
Description: Set the current voltage level of the specified device
Note To be documented


function VoltageGetMinValue(VoltageId:LongWord):LongWord; inline;
Description: Get the minimum voltage level of the specified device
Note To be documented


function VoltageGetMaxValue(VoltageId:LongWord):LongWord; inline;
Description: Get the maximum voltage level of the specified device
Note To be documented


Temperature functions

function TemperatureGetCurrent(TemperatureId:LongWord):LongWord; inline;
Description: Get the current temperature in thousandths of a degree C of the specified device
Note To be documented


function TemperatureGetMaximum(TemperatureId:LongWord):LongWord; inline;
Description: Get the maximum temperature in thousandths of a degree C of the specified device
Note To be documented


GPU memory functions

function GPUMemoryAllocate(Length,Alignment,Flags:LongWord):THandle; inline;
Description: Allocate memory from the GPU
Note To be documented


function GPUMemoryRelease(Handle:THandle):LongWord; inline;
Description: Release memory allocated from the GPU
Note To be documented


function GPUMemoryLock(Handle:THandle):LongWord; inline;
Description: Lock memory allocated from the GPU and return an address
Note To be documented


function GPUMemoryUnlock(Handle:THandle):LongWord; inline;
Description: Unlock memory allocated from the GPU
Note To be documented


GPU misc functions

function GPUExecuteCode(Address:Pointer; R0,R1,R2,R3,R4,R5:LongWord):LongWord; inline;
Description: Execute a block of code on the GPU
Note To be documented


function DispmanxHandleGet(Resource:THandle):THandle; inline;
Description: Convert a Dispmanx Resouse handle to a Memory handle (Which can be passed to Lock/Unlock above)
Note To be documented


function EDIDBlockGet(Block:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Get an EDID block from HDMI
Note To be documented


Framebuffer functions

function FramebufferAvailable:Boolean; inline;
Description: Check if a framebuffer device is currently available
Note To be documented


function FramebufferAllocate(Alignment:LongWord; var Address,Length:LongWord):LongWord; inline;
Description: Allocate a new Framebuffer
Note To be documented


function FramebufferRelease:LongWord; inline;
Description: Release the current Framebuffer
Note To be documented


function FramebufferSetState(State:LongWord):LongWord; inline;
Description: Set the current Framebuffer (Display) state (0 for Off / 1 for On)
Note To be documented


function FramebufferGetDimensions(var Width,Height,Top,Bottom,Left,Right:LongWord):LongWord; inline;
Description: Get the default Dimensions of the Framebuffer (Physical Width, Height and Overscan Top, Bottom, Left, Right in Pixels)
Note To be documented


function FramebufferGetPhysical(var Width,Height:LongWord):LongWord; inline;
Description: Get the Physical Framebuffer Width and Height in Pixels
Note The "physical" size is the size of the allocated buffer in memory, not the resolution of the video signal sent to the display device


function FramebufferSetPhysical(var Width,Height:LongWord):LongWord; inline;
Description: Set the Physical Framebuffer Width and Height in Pixels
Note To be documented


function FramebufferTestPhysical(var Width,Height:LongWord):LongWord; inline;
Description: Test the Physical Framebuffer Width and Height in Pixels
Note To be documented


function FramebufferGetVirtual(var Width,Height:LongWord):LongWord; inline;
Description: Get the Virtual Framebuffer Width and Height in Pixels
Note The "virtual" size is the portion of buffer that is sent to the display device, not the resolution the buffer itself. This may be smaller than the allocated buffer size in order to implement panning


function FramebufferSetVirtual(var Width,Height:LongWord):LongWord; inline;
Description: Set the Virtual Framebuffer Width and Height in Pixels
Note To be documented


function FramebufferTestVirtual(var Width,Height:LongWord):LongWord; inline;
Description: Test the Virtual Framebuffer Width and Height in Pixels
Note To be documented


function FramebufferGetDepth(var Depth:LongWord):LongWord; inline;
Description: Get the Framebuffer Depth in Bits per Pixel
Note To be documented


function FramebufferSetDepth(var Depth:LongWord):LongWord; inline;
Description: Set the Framebuffer Depth in Bits per Pixel
Note To be documented


function FramebufferTestDepth(var Depth:LongWord):LongWord; inline;
Description: Test the Framebuffer Depth in Bits per Pixel
Note To be documented


function FramebufferGetPixelOrder(var Order:LongWord):LongWord; inline;
Description: Get the Framebuffer Pixel Order (0 = BGR / 1 = RGB)
Note To be documented


function FramebufferSetPixelOrder(var Order:LongWord):LongWord; inline;
Description: Set the Framebuffer Pixel Order (0 = BGR / 1 = RGB)
Note To be documented


function FramebufferTestPixelOrder(var Order:LongWord):LongWord; inline;
Description: Test the Framebuffer Pixel Order (0 = BGR / 1 = RGB)
Note To be documented


function FramebufferGetAlphaMode(var Mode:LongWord):LongWord; inline;
Description: Get the Framebuffer Alpha Mode
Note To be documented


function FramebufferSetAlphaMode(var Mode:LongWord):LongWord; inline;
Description: Set the Framebuffer Alpha Mode
Note To be documented


function FramebufferTestAlphaMode(var Mode:LongWord):LongWord; inline;
Description: Test the Framebuffer Alpha Mode
Note To be documented


function FramebufferGetPitch:LongWord; inline;
Description: Get the Framebuffer Pitch in Bytes per Line
Note To be documented


function FramebufferGetOffset(var X,Y:LongWord):LongWord; inline;
Description: Get the Framebuffer Virtual Offset in Pixels
Note To be documented


function FramebufferSetOffset(var X,Y:LongWord):LongWord; inline;
Description: Set the Framebuffer Virtual Offset in Pixels
Note To be documented


function FramebufferTestOffset(var X,Y:LongWord):LongWord; inline;
Description: Test the Framebuffer Virtual Offset in Pixels
Note To be documented


function FramebufferGetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
Description: Get the Framebuffer Top, Bottom, Left and Right Overscan in Pixels
Note To be documented


function FramebufferSetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
Description: Set the Framebuffer Top, Bottom, Left and Right Overscan in Pixels
Note To be documented


function FramebufferTestOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
Description: Test the Framebuffer Top, Bottom, Left and Right Overscan in Pixels
Note To be documented


function FramebufferGetPalette(Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Get the Framebuffer Palette in RGBA values
Note To be documented


function FramebufferSetPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Set the Framebuffer Palette in RGBA values
Note To be documented


function FramebufferTestPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Test the Framebuffer Palette in RGBA values
Note To be documented


Cursor functions

function CursorSetInfo(Width,Height,HotspotX,HotspotY:LongWord; Pixels:Pointer; Length:LongWord):LongWord; inline;
Description: Set the Cursor Info (Width and Height, Hotspot and Pixel image)
Note To be documented


function CursorSetState(Enabled:Boolean; X,Y:LongWord; Relative:Boolean):LongWord; inline;
Description: Set the Cursor State (Enabled, X and Y)
Relative X, Y is relative to Display (Virtual) not Framebuffer (Physical)


DMA functions

function DMAAvailable:Boolean; inline;
Description: Check if DMA is currently available
Note To be documented


function DMATransfer(Data:PDMAData; Direction,Peripheral:LongWord):LongWord; inline;
Description: Perform a DMA transfer using the list of DMA data blocks provided
Data A linked list of DMA data blocks for the transfer
Direction The direction of the DMA request (eg DMA_DIR_MEM_TO_MEM)
Peripheral The peripheral ID for data request gating (eg DMA_DREQ_ID_NONE)


function DMAFillMemory(Dest:Pointer; Size:LongWord; Value:Byte):LongWord; inline;
Description: Fill memory at the destination address using DMA
Dest The address to start the memory fill
Size The size of memory to fill in bytes
Value The value to fill the memory with


function DMACopyMemory(Source,Dest:Pointer; Size:LongWord):LongWord; inline;
Description: Copy memory from the source to the destination address using DMA
Source The source address to start the memory copy
Dest The destination address to start the memory copy
Size The size of memory to copy in bytes


function DMAReadPeripheral(Address,Dest:Pointer; Size,Peripheral:LongWord):LongWord; inline;
Description: Read from a periperal address to the destination address using DMA
Address The address of the periperhal register to read from
Source The destination address to start writing to
Size The size of the read in bytes
Peripheral The peripheral ID for data request gating (eg DMA_DREQ_ID_UART_RX)


function DMAWritePeripheral(Source,Address:Pointer; Size,Peripheral:LongWord):LongWord; inline;
Description: Write to a peripheral address from the source address using DMA
Source The source address to start reading from
Address The address of the peripheral register to write to
Size The size of the write in bytes
Peripheral The peripheral ID for data request gating (eg DMA_DREQ_ID_UART_TX)


function DMAAllocateBuffer(Size:LongWord):Pointer; inline;
Description: Allocate a buffer compatible with DMA memory reads or writes
Size The size of the buffer to allocate


function DMAAllocateBufferEx(var Size:LongWord):Pointer; inline;
Description: Allocate a buffer compatible with DMA memory reads or writes
Size The size of the buffer to allocate (Updated on return to actual size)


function DMAReleaseBuffer(Buffer:Pointer):LongWord; inline;
Description: Release a buffer allocated with DMAAllocateBuffer
Buffer The buffer to be released


function DMAGetChannels:LongWord; inline;
Description: Get the currently enabled DMA channel bitmap (If supported)
Note To be documented


GPIO functions

function GPIOAvailable:Boolean; inline;
Description: Check if a GPIO device is available
Reg The memory register to read from
Value The value of the memory register


function GPIORead(Reg:LongWord):LongWord; inline;
Description: Perform a direct read from a GPIO register
Reg The memory register to read from
Value The value of the memory register


procedure GPIOWrite(Reg,Value:LongWord); inline;
Description: Perform a direct write to a GPIO register
Reg The memory register to write to
Value The value to write to the register


function GPIOInputGet(Pin:LongWord):LongWord; inline;
Description: Get the current state of a GPIO input pin
Pin The pin to get the state for (eg GPIO_PIN_1)
Return The current state (eg GPIO_LEVEL_HIGH) or GPIO_LEVEL_UNKNOWN on failure


function GPIOInputWait(Pin,Trigger,Timeout:LongWord):LongWord; inline;
Description: Wait for the state of a GPIO input pin to change
Pin The pin to wait for the state to change (eg GPIO_PIN_1)
Trigger The trigger event to wait for (eg GPIO_TRIGGER_HIGH)
Timeout Number of milliseconds to wait for the change (INFINITE to wait forever)
Return The state after the change (eg GPIO_LEVEL_HIGH) or GPIO_LEVEL_UNKNOWN on failure or timeout


function GPIOInputEvent(Pin,Trigger,Timeout:LongWord; Callback:TGPIOCallback; Data:Pointer):LongWord; inline;
Description: Schedule a function to be called when the state of a GPIO input pin changes
Pin The pin to schedule the state change for (eg GPIO_PIN_1)
Trigger The trigger event which will cause the function to be called (eg GPIO_TRIGGER_HIGH)
Timeout The number of milliseconds before the scheduled trigger expires (INFINITE to never expire)
Callback The function to be called when the trigger occurs
Data A pointer to be pass to the function when the trigger occurs (Optional)
Return ERROR_SUCCESS if the trigger was scheduled successfully or another error code on failure
Note The pin and trigger that caused the event will be passed to the callback function


function GPIOOutput?(Pin,Level:LongWord):LongWord; inline;
Description: Change the state of a GPIO output pin
Pin The pin to change the state for (eg GPIO_PIN_1)
Level The state to change the pin to (eg GPIO_LEVEL_HIGH)
Return ERROR_SUCCESS if completed successfully or another error code on failure


function GPIOPullGet(Pin:LongWord):LongWord; inline;
Description: Get the current pull state of a GPIO pin
Pin The pin to get the pull state for (eg GPIO_PIN_1)
Return The current pull state of the pin (eg GPIO_PULL_UP) or GPIO_PULL_UNKNOWN on failure


function GPIOPullSelect(Pin,Mode:LongWord):LongWord; inline;
Description: Change the pull state of a GPIO pin
Pin The pin to change the pull state for (eg GPIO_PIN_1)
Mode The pull state to set for the pin (eg GPIO_PULL_UP)
Return ERROR_SUCCESS if completed successfully or another error code on failure



Return to Unit Reference