Difference between revisions of "Unit Platform"

From Ultibo.org
Jump to: navigation, search
Line 2,962: Line 2,962:
 
! '''Return'''
 
! '''Return'''
 
| ERROR_SUCCESS if completed successfully or another error code on failure
 
| ERROR_SUCCESS if completed successfully or another error code on failure
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Virtual 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 VirtualGPIOInputGet(Pin:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current state of a virtual GPIO input pin</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Pin'''
 +
| The pin to get the state for (eg VIRTUAL_GPIO_PIN_1)
 +
|-
 +
! '''Return'''
 +
| The current state (eg GPIO_LEVEL_HIGH) or GPIO_LEVEL_UNKNOWN on failure
 +
|-
 +
|}
 +
</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 VirtualGPIOOutputSet(Pin,Level:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 VirtualGPIOFunctionSelect(Pin,Mode:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''SPI 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 SPIAvailable:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if an SPI device is available</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SPIStart(Mode,ClockRate,ClockPhase,ClockPolarity:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Start the default SPI device ready for writing and reading</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Mode'''
 +
| The device mode to set (eg SPI_MODE_4WIRE)
 +
|-
 +
! '''ClockRate'''
 +
| The clock rate to set for the device
 +
|-
 +
! '''ClockPhase'''
 +
| The clock phase to set (eg SPI_CLOCK_PHASE_LOW)
 +
|-
 +
! '''ClockPolarity'''
 +
| The clock polarity to set (eg SPI_CLOCK_POLARITY_LOW)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIStop:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Stop the default SPI device and terminate writing and reading</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIRead(ChipSelect:Word; Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Read data from the default SPI device. Because SPI writes and then reads for each byte, dummy data will be written for each byte to be read.</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ChipSelect'''
 +
| The chip select for the slave to read from (eg SPI_CS_0)
 +
|-
 +
! '''Dest'''
 +
| Pointer to a buffer to receive the data
 +
|-
 +
! '''Size'''
 +
| The size of the buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes read on return
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIWrite(ChipSelect:Word; Source:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write data to the default SPI device. Because SPI writes and then reads for each byte, received data will be discarded for each by written.</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ChipSelect'''
 +
| The chip select for the slave to write to (eg SPI_CS_0)
 +
|-
 +
! '''Source'''
 +
| Pointer to a buffer of data to transmit
 +
|-
 +
! '''Size'''
 +
| The size of the buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes written on return
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIWriteRead(ChipSelect:Word; Source,Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write data to and Read data from the default SPI device in one operation. Because SPI writes and then reads for each byte, both the source and dest buffers must be the same size.</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ChipSelect'''
 +
| The chip select for the slave to write to and read from (eg SPI_CS_0)
 +
|-
 +
! '''Source'''
 +
| Pointer to a buffer of data to transmit
 +
|-
 +
! '''Dest'''
 +
| Pointer to a buffer to receive the data
 +
|-
 +
! '''Size'''
 +
| The size of the buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes written and read on return
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIGetMode:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the device mode of the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| The device mode or SPI_MODE_UNKNOWN on failure
 +
|-
 +
|}
 +
</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 SPISetMode(Mode:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the device mode for the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Mode'''
 +
| The device mode to set (eg SPI_MODE_4WIRE)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIGetClockRate(ChipSelect:Word):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the clock rate of the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ChipSelect'''
 +
| The chip select number to get clock rate from (SPI_CS_NONE for default)
 +
|-
 +
! '''Return'''
 +
| The clock rate in Hz or 0 on failure
 +
|-
 +
|}
 +
</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 SPISetClockRate(ChipSelect:Word;ClockRate:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the clock rate for the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ClockRate'''
 +
| The clock rate to set in Hz
 +
|-
 +
! '''ChipSelect'''
 +
| The chip select number to set clock rate for (SPI_CS_NONE for default)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIGetClockPhase:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the clock phase of the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| The clock phase or SPI_CLOCK_PHASE_UNKNOWN on failure
 +
|-
 +
|}
 +
</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 SPISetClockPhase(ClockPhase:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the clock phase for the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ClockPhase'''
 +
| The clock phase to set (eg SPI_CLOCK_PHASE_LOW)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIGetClockPolarity:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the clock polarity of the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| The clock polarity or SPI_CLOCK_POLARITY_UNKNOWN on failure
 +
|-
 +
|}
 +
</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 SPISetClockPolarity(ClockPolarity:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the clock polarity for the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ClockPolarity'''
 +
| The clock polarity to set (eg SPI_CLOCK_POLARITY_LOW)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 SPIGetSelectPolarity(ChipSelect:Word):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the chip select polarity of the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ChipSelect'''
 +
| The chip select number to get polarity from (SPI_CS_NONE for default)
 +
|-
 +
! '''Return'''
 +
| The chip select polarity or SPI_CS_POLARITY_UNKNOWN on failure
 +
|-
 +
|}
 +
</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 SPISetSelectPolarity(ChipSelect:Word; SelectPolarity:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the chip select polarity for the default SPI device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''ChipSelect'''
 +
| The chip select number to set polarity for (SPI_CS_NONE for default)
 +
|-
 +
! '''SelectPolarity'''
 +
| The chip select polarity to set (eg SPI_CS_POLARITY_LOW)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''I2C 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 I2CAvailable:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if an I2C device is available</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 I2CStart(Rate:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Start the default I2C device ready for reading and writing</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Rate'''
 +
| The clock rate to set for the device (0 to use the default rate)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 I2CStop:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Stop the default I2C device and terminate reading and writing</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 I2CRead(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Read data from the default I2C device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Address'''
 +
| The slave address to read from (I2C_ADDRESS_INVALID to use the current address)
 +
|-
 +
! '''Buffer'''
 +
| Pointer to a buffer to receive the data
 +
|-
 +
! '''Size'''
 +
| The size of the buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes read on return
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 I2CWrite(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write data to the default I2C device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Address'''
 +
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address)
 +
|-
 +
! '''Buffer'''
 +
| Pointer to a buffer of data to transmit
 +
|-
 +
! '''Size'''
 +
| The size of the buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes written on return
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 I2CWriteRead(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write data to and Read data from the default I2C device in one operation. Useful for devices that require a register address specified before a read (eg EEPROM devices)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Address'''
 +
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address)
 +
|-
 +
! '''Initial'''
 +
| Pointer to the initial buffer to transmit
 +
|-
 +
! '''Len'''
 +
| The size of the initial buffer
 +
|-
 +
! '''Data'''
 +
| Pointer to a buffer to receive the data
 +
|-
 +
! '''Size'''
 +
| The size of the data buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes read on return
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 I2CWriteWrite(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write 2 data blocks to the default I2C device in one operation. Useful for devices that require a register address specified before a write (eg EEPROM devices)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Address'''
 +
| The slave address to write to (I2C_ADDRESS_INVALID to use the current address)
 +
|-
 +
! '''Initial'''
 +
| Pointer to the initial buffer to transmit
 +
|-
 +
! '''Len'''
 +
| The size of the initial buffer
 +
|-
 +
! '''Data'''
 +
| Pointer to a buffer of data to transmit
 +
|-
 +
! '''Size'''
 +
| The size of the data buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes of data written on return
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 I2CGetRate:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the clock rate of the default I2C device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| The clock rate in Hz or 0 on failure
 +
|-
 +
|}
 +
</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 I2CSetRate(Rate:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the clock rate for the default I2C device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Rate'''
 +
| The clock rate to set in Hz
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 I2CGetAddress:Word; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the slave address for the default I2C device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| The slave address or I2C_ADDRESS_INVALID on failure
 +
|-
 +
|}
 +
</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 I2CSetAddress(Address:Word):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the slave address for the default I2C device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Address'''
 +
| The slave address to set
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''PWM 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 PWMAvailable:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if a PWM device is available</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PWMStart:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Start the default PWM device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 PWMStop:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Stop the default PWM device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 PWMWrite(Value:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write a value to the default PWM device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Value'''
 +
| The value to write
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
! '''Note'''
 +
| The exact meaning of value may depend on the device and other configured options, in many cases the value will represent the "on" time of each pulse with regard to the duty cycle of the waveform output by the device
 +
|-
 +
|}
 +
</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 PWMSetMode(Mode:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the mode for the default PWM device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Mode'''
 +
| The mode value to set (eg PWM_MODE_MARKSPACE)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 PWMSetRange(Range:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the range for the default PWM device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Range'''
 +
| The range value to set
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
! '''Note'''
 +
| The exact meaning of range may depend on the device and other configured options, in many cases the range will represent the period of one full cycle of the waveform output by the device
 +
|-
 +
|}
 +
</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 PWMSetFrequency(Frequency:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the clock frequency for the default PWM device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Frequency'''
 +
| The frequency to set in Hz
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</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 PWMConfigure(DutyNS,PeriodNS:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the configuration of the default PWM device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''DutyNS'''
 +
| The "on" time part of the cycle (Nanoseconds)
 +
|-
 +
! '''PeriodNS'''
 +
| The duration of one full cycle (Nanoseconds)
 +
|-
 +
! '''Return'''
 +
| ERROR_SUCCESS if completed or another error code on failure
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''RTC 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 RTCAvailable:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if a Real Time Clock (RTC) device is available</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 RTCGetTime:Int64; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current time from a Real Time Clock device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| Returned time is 100 nanosecond ticks since 1 January 1601. The same format as the ClockGetTime function.
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">function RTCSetTime(const Time:Int64):Int64; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the current time for a Real Time Clock device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Time'''
 +
| The time to be set
 +
|-
 +
! '''Return'''
 +
| The device time after setting (or 0 on failure)
 +
|-
 +
! '''Note'''
 +
| Time and returned time is 100 nanosecond ticks since 1 January 1601. The same format as the ClockSetTime function.
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Serial 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 SerialAvailable:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Check if a Serial device is available</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SerialOpen(BaudRate,DataBits,StopBits,Parity,FlowControl,ReceiveDepth,TransmitDepth:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Open the default Serial device ready for sending and receiving</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''BaudRate'''
 +
| Baud rate for the connection (eg 9600, 57600, 115200 etc
 +
|-
 +
! '''DataBits'''
 +
| Size of the data (eg SERIAL_DATA_8BIT)
 +
|-
 +
! '''StopBits'''
 +
| Number of stop bits (eg SERIAL_STOP_1BIT)
 +
|-
 +
! '''Parity'''
 +
| Parity type for the data (eg SERIAL_PARITY_NONE)
 +
|-
 +
! '''FlowControl'''
 +
| Flow control for the connection (eg SERIAL_FLOW_NONE)
 +
|-
 +
! '''ReceiveDepth'''
 +
| Size of the receive buffer (0 = Default size)
 +
|-
 +
! '''TransmitDepth'''
 +
| Size of the transmit buffer (0 = Default size)
 +
|-
 +
|}
 +
</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 SerialClose:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Close the default Serial device and terminate sending and receiving</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SerialRead(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Read data from the default Serial device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Buffer'''
 +
| Pointer to a buffer to receive the data
 +
|-
 +
! '''Size'''
 +
| The size of the buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes read on return
 +
|-
 +
|}
 +
</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 SerialWrite(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write data to the default Serial device</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Buffer'''
 +
| Pointer to a buffer of data to transmit
 +
|-
 +
! '''Size'''
 +
| The size of the buffer
 +
|-
 +
! '''Count'''
 +
| The number of bytes written on return
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Peripheral 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 PeripheralGetBase:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the base address of the peripherals</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PeripheralGetSize:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the total size of the peripherals</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PeripheralRead(Base,Reg:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Read from a Peripheral register</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure PeripheralWrite(Base,Reg,Value:LongWord); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write to a Peripheral register</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 LocalPeripheralGetBase:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the base address of the local peripherals (Peripherals local to each CPU)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 LocalPeripheralGetSize:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the total size of the local peripherals (Peripherals local to each CPU)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''System 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 GetSP:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current stack pointer (SP)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 GetPC:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current program counter (PC)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 GetIRQ:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get Interrupts (IRQ) state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| True is enabled, False if disabled
 +
|-
 +
|}
 +
</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;">procedure EnableIRQ; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Enable Interrupts (IRQ) unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DisableIRQ; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Interrupts (IRQ) unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SaveIRQ:TIRQMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Interrupts (IRQ) and return the previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| IRQ state when called
 +
|-
 +
|}
 +
</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 RestoreIRQ(IRQMask:TIRQMask):TIRQMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Restore Interrupts (IRQ) to a previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''IRQMask'''
 +
| IRQ state to restore
 +
|-
 +
! '''Return'''
 +
| IRQ state when called
 +
|-
 +
|}
 +
</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 GetFIQ:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get Fast Interrupts (FIQ) state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| True is enabled, False if disabled
 +
|-
 +
|}
 +
</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;">procedure EnableFIQ; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Enable Fast Interrupts (FIQ) unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DisableFIQ; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Fast Interrupts (FIQ) unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SaveFIQ:TFIQMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Fast Interrupts (FIQ) and return the previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| FIQ state when called
 +
|-
 +
|}
 +
</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 RestoreFIQ(FIQMask:TFIQMask):TFIQMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Restore Fast Interrupts (FIQ) to a previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''FIQMask'''
 +
| FIQ state to restore
 +
|-
 +
! '''Return'''
 +
| FIQ state when called
 +
|-
 +
|}
 +
</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;">procedure EnableIRQFIQ; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Enable Interrupts and Fast Interrupts (IRQ/FIQ) unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DisableIRQFIQ; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Interrupts and Fast Interrupts (IRQ/FIQ) unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SaveIRQFIQ:TIRQFIQMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Interrupts and Fast Interrupts (IRQ/FIQ) and return the previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| IRQ/FIQ state when called
 +
|-
 +
|}
 +
</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 RestoreIRQFIQ(IRQFIQMask:TIRQFIQMask):TIRQFIQMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Restore Interrupts and Fast Interrupts (IRQ/FIQ) to a previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''IRQFIQMask'''
 +
| IRQ/FIQ state to restore
 +
|-
 +
! '''Return'''
 +
| IRQ/FIQ state when called
 +
|-
 +
|}
 +
</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 GetAbort:Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get Abort state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| True is enabled, False if disabled
 +
|-
 +
|}
 +
</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;">procedure EnableAbort; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Enable Abort unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DisableAbort; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Abort unconditionally</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SaveAbort:TAbortMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Disable Abort and return the previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Return'''
 +
| Abort state when called
 +
|-
 +
|}
 +
</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 RestoreAbort(AbortMask:TAbortMask):TAbortMask; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Restore Abort to a previous state</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''AbortMask'''
 +
| Abort state to restore
 +
|-
 +
! '''Return'''
 +
| Abort state when called
 +
|-
 +
|}
 +
</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;">procedure Halt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Halt the current processor</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure Pause; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Pause the current processor and wait for an Event or Interrupt (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 HaltThread(ExitCode:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Halt the current thread</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure SendEvent; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Send a signal that an Event has occurred (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure WaitForEvent; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Wait for an Event to occur (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure WaitForInterrupt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Wait for an Interrupt to occur (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure ReadMemoryBarrier; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Read Memory Barrier operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure WriteMemoryBarrier; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Write Memory Barrier operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DataMemoryBarrier; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Data Memory Barrier operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DataSynchronizationBarrier; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Data Synchronization Barrier operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InstructionMemoryBarrier; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Instruction Memory Barrier operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateTLB; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Entire TLB operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateDataTLB; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Data TLB operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateInstructionTLB; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Instruction TLB operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateCache; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Entire Cache operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure CleanDataCache; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Clean Data Cache operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateDataCache; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Data Cache operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure CleanAndInvalidateDataCache; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Clean and Invalidate Data Cache operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateInstructionCache; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Instruction Cache operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure CleanDataCacheRange(Address,Size:LongWord); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Clean Data Cache Range operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateDataCacheRange(Address,Size:LongWord); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Data Cache Range operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure CleanAndInvalidateDataCacheRange(Address,Size:LongWord); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Clean and Invalidate Data Cache Range operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure InvalidateInstructionCacheRange(Address,Size:LongWord); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an Invalidate Instruction Cache Range operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure FlushPrefetchBuffer; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Flush Prefetch Buffer operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure FlushBranchTargetCache; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Flush Entire Branch Target Cache operation (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure ContextSwitch(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Context Switch from one thread to another</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure ContextSwitchIRQ(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Context Switch from one thread to another from an IRQ handler</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure ContextSwitchFIQ(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Context Switch from one thread to another from an FIQ handler</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure ContextSwitchSWI(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform a Context Switch from one thread to another from a software interrupt handler</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedOr(var Target:LongInt;Value:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic OR operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedXor(var Target:LongInt; Value:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic XOR operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedAnd(var Target:LongInt; Value:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic AND operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedDecrement(var Target:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic decrement operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedIncrement(var Target:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic increment operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedExchange(var Target:LongInt; Source:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic exchange operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedAddExchange(var Target:LongInt; Source:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic add and exchange operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 InterlockedCompareExchange(var Target:LongInt; Source,Compare:LongInt):LongInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Perform an atomic compare and exchange operation</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTableGetBase:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the base address of the first level page table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTableGetSize:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the size of the first level page table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTableGetEntry(Address:PtrUInt):TPageTableEntry; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the Page Table entry that corresponds to the supplied virtual address</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTableSetEntry(const Entry:TPageTableEntry):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the Page Table entry that corresponds to the supplied virtual address</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTablesGetAddress:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the address of the second level page tables</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTablesGetLength:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the size of the second level page tables</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTablesGetCount:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the number of second level page tables</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTablesGetShift:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the multiplier to convert count to actual size of the second level page tables</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTablesGetNext:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the address of the next available second level page table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTablesGetUsed:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the number of used second level page tables</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PageTablesGetFree:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the number of available second level page tables</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 VectorTableGetBase:PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the base address of the interrupt vector table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 VectorTableGetSize:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the size in bytes of the interrupt vector table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 VectorTableGetCount:LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the number of entries in the interrupt vector table</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 VectorTableGetEntry(Number:LongWord):PtrUInt; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the interrupt vector table entry that corresponds to the supplied number</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 VectorTableSetEntry(Number:LongWord; Address:PtrUInt):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the interrupt vector table entry that corresponds to the supplied number</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Exception 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;">procedure HardwareException(AType:LongWord; Address,Frame:Pointer);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure UnhandledException(Obj:TObject; Addr:CodePointer; FrameCount:LongInt; Frames:PCodePointer); {[public,alias:'FPC_BREAK_UNHANDLED_EXCEPTION'];}</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Text IO 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;">procedure TextIOOpen(var F:Text; AWrite:TTextIOWriteChar; ARead:TTextIOReadChar; AMode:LongInt; AUserData:Pointer);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure TextIOClose(var T:TextRec);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure TextIORead(var T:TextRec);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure TextIOWrite(var T:TextRec);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 TextIOReadData(ARead:TTextIOReadChar; AUserData:Pointer; ABuffer:PChar; ACount:LongInt):LongInt;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Console 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 ConsoleGetKey(var ACh:Char; AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 ConsolePeekKey(var ACh:Char; AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 ConsoleWriteChar(ACh:Char; AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 ConsoleReadChar(var ACh:Char; AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 ConsoleReadWideChar(var ACh:WideChar; AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 ConsoleHideMouse(AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 ConsoleShowMouse(X,Y:LongWord; AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 ConsoleReadMouse(var X,Y,Buttons:LongWord; AUserData:Pointer):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''CodePage 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 CodePageToWideChar(Ch:Char):WideChar; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 WideCharToCodePage(Ch:WideChar):Char; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Name 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 HostGetName:String; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 HostSetName(const AName:String):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 HostGetDomain:String; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 HostSetDomain(const ADomain:String):Boolean; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Logging 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;">procedure LoggingOutput(const AText:String); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure LoggingOutputEx(AFacility,ASeverity:LongWord; const ATag,AContent:String); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Utility 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 FirstBitSet(Value:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Find the first set bit in a nonzero 32 bit value</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| Returns 31 for MSB and 0 for LSB (0xFFFFFFFF / -1 if no bits are set)
 +
|-
 +
|}
 +
</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 CountLeadingZeros(Value:LongWord):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Count the number of leading 0 bits in a nonzero 32 bit value</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| Returns 32 if no bits are set
 +
|-
 +
|}
 +
</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 PhysicalToIOAddress(Address:Pointer):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert Physical address to an IO addresses (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 IOAddressToPhysical(Address:Pointer):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert an IO address to a Physical address (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 PhysicalToBusAddress(Address:Pointer):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Physical address to a Bus address (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 BusAddressToPhysical(Address:Pointer):LongWord; inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Convert a Bus address to a Physical address (Where Applicable)</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure NanosecondDelay(Nanoseconds:LongWord);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Non sleep wait for a number of nanoseconds</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Nanseconds'''
 +
| Number of nanoseconds to wait
 +
|-
 +
|}
 +
</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;">procedure MicrosecondDelay(Microseconds:LongWord);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Non sleep wait for a number of microseconds</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Milliseconds'''
 +
| Number of microseconds to wait
 +
|-
 +
|}
 +
</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;">procedure MillisecondDelay(Milliseconds:LongWord);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Non sleep wait for a number of milliseconds</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Milliseconds'''
 +
| Number of milliseconds to wait
 +
|-
 +
|}
 +
</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;">procedure NanosecondDelayEx(Nanoseconds:LongWord; Wait:Boolean);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Non sleep wait for a number of nanoseconds</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Nanoseconds'''
 +
| Number of nanoseconds to wait
 +
|-
 +
! '''Wait'''
 +
| Use WaitForInterrupt on each loop to reduce power consumption
 +
|-
 +
! '''Note'''
 +
| Not suitable for use by interrupt handlers if wait is true
 +
|-
 +
|}
 +
</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;">procedure MicrosecondDelayEx(Microseconds:LongWord; Wait:Boolean);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Non sleep wait for a number of microseconds</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Milliseconds'''
 +
| Number of milliseconds to wait
 +
|-
 +
! '''Wait'''
 +
| Use WaitForInterrupt on each loop to reduce power consumption
 +
|-
 +
! '''Note'''
 +
| Not suitable for use by interrupt handlers if wait is true
 +
|-
 +
|}
 +
</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;">procedure MillisecondDelayEx(Milliseconds:LongWord; Wait:Boolean);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Non sleep wait for a number of milliseconds</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Milliseconds'''
 +
| Number of milliseconds to wait
 +
|-
 +
! '''Wait'''
 +
| Use WaitForInterrupt on each loop to reduce power consumption
 +
|-
 +
! '''Note'''
 +
| Not suitable for use by interrupt handlers if wait is true
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''System random 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;">procedure SystemRandomize;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Dos conversion 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 DosGetMsCount:Int64;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Dos Info/Date/Time 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 DosDosVersion:Word;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DosGetDate(var Year,Month,MDay,WDay:Word);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DosSetDate(Year,Month,Day:Word);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DosGetTime(var Hour,Minute,Second,Sec100:Word);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure DosSetTime(Hour,Minute,Second,Sec100:Word);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Dos environment 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 DosEnvCount:Longint;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 DosEnvStr(Index:LongInt):ShortString;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 DosGetEnv(EnvVar:ShortString):ShortString; </pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''SysUtils tick 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 SysUtilsGetTickCount:LongWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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 SysUtilsGetTickCount64:QWord;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''SysUtils locale 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;">procedure SysUtilsGetLocalTime(var SystemTime:TSystemTime);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current local time as a SystemTime value</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| Includes timezone offset if configured
 +
|-
 +
|}
 +
</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;">procedure SysUtilsSetLocalTime(const SystemTime:TSystemTime);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the current local time from a SystemTime value</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| Includes timezone offset if configured
 +
|-
 +
|}
 +
</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 SysUtilsGetLocalTimeOffset:Integer;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current local time offset value</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
 +
'''Platform helper 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;">procedure PlatformLog(Level:LongWord; const AText:String);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure PlatformLogInfo(const AText:String);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure PlatformLogError(const AText:String);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<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;">procedure PlatformLogDebug(const AText:String);</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! '''Note'''
 +
| None documented
 
|-
 
|-
 
|}
 
|}

Revision as of 05:42, 30 November 2016

Return to Unit Reference


Description


To be documented

Constants



[Expand]
DMA data flag constants DMA_DATA_FLAG_*


[Expand]
Page table flag constants PAGE_TABLE_FLAG_*


[Expand]
Vector table entry constants VECTOR_TABLE_ENTRY_*


[Expand]
Exception type constants EXCEPTION_TYPE_*


[Expand]
Platform logging constants PLATFORM_LOG_LEVEL_*


[Expand]
IRQ logging constants IRQ_LOG_LEVEL_*


[Expand]
FIQ logging constants FIQ_LOG_LEVEL_*


[Expand]
SWI logging constants SWI_LOG_LEVEL_*


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 GPUInit;
Description: Initialize the Graphics Processor Unit (Where Applicable)


[Expand]
procedure MMUInit;
Description: Initialize the Memory Management 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 BoardInit;
Description: Initialize Board specific information (Where Applicable)


[Expand]
procedure MemoryInit;
Description: Initialize Memory specific information (Where Applicable)


[Expand]
procedure ClockInit;
Description: Initialize the Clock handling


[Expand]
procedure PowerInit;
Description: Initialize Power management (Where Applicable)


[Expand]
procedure MailboxInit;
Description: Initialize Mailbox access (Where Applicable)


[Expand]
procedure InterruptInit;
Description: Initialize Interrupt handling


[Expand]
procedure PeripheralInit;
Description: Initialize Peripheral devices (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

[Expand]
procedure BootBlink; inline;
Description: Blink the Activity LED (Where Applicable)


[Expand]
procedure BootOutput(Value:LongWord); inline;
Description: Output boot time information (Where Applicable)


LED functions

[Expand]
procedure PowerLEDEnable; inline;
Description: Enable the Power LED (Where Applicable)


[Expand]
procedure PowerLEDOn; inline;
Description: Turn On the Power LED (Where Applicable)


[Expand]
procedure PowerLEDOff; inline;
Description: Turn Off the Power LED (Where Applicable)


[Expand]
procedure ActivityLEDEnable; inline;
Description: Enable the Activity LED (Where Applicable)


[Expand]
procedure ActivityLEDOn; inline;
Description: Turn On 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 CounterCancel:LongWord; inline;
Description: Cancel a previously scheduled event callback function 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 ticks of the default counter


[Expand]
function CounterSetInterval(Interval:LongWord):LongWord; inline;
Description: Set the current interval in ticks of the default counter


Mailbox functions

[Expand]
function MailboxReceive(Mailbox,Channel:LongWord):LongWord; inline;
Description: Receive from specified mailbox on specified channel


[Expand]
procedure MailboxSend(Mailbox,Channel,Data:LongWord); inline;
Description: Send to specified mailbox on specified channel


[Expand]
function MailboxCall(Mailbox,Channel,Data:LongWord; var Response:LongWord):LongWord; inline;
Description: Perform a transaction (Send/Receive) to specified 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 specified 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 specified 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 specified mailbox on specified channel


Random number functions

[Expand]
function RandomAvailable:Boolean; inline;
Description: Check if a hardware random number generator is currently available


[Expand]
procedure RandomSeed(Seed:LongWord); inline;
Description: To be documented


[Expand]
function RandomReadLongInt(Limit:LongInt):LongInt; inline;
Description: To be documented


[Expand]
function RandomReadInt64(Limit:Int64):Int64; inline;
Description: To be documented


[Expand]
function RandomReadExtended:Extended; inline;
Description: To be documented


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 WatchdogStop: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 (Where Applicable)


[Expand]
function ReleaseFIQ(CPUID,Number:LongWord; Handler:TInterruptHandler; Parameter:Pointer):LongWord; inline;
Description: Request deregistration of the supplied handler from the specified FIQ number (Where Applicable)


[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 (Where Applicable)


[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 (Where Applicable)


System call (Software Interrupt or SWI) functions

[Expand]
procedure SystemCall(Number:LongWord; Param1,Param2,Param3:PtrUInt); inline;
Description: Perform a System Call function with the supplied parameters (Where Applicable)


[Expand]
function RegisterSystemCall(Number:LongWord; Handler:TSystemCallHandler):LongWord; inline;
Description: Request registration of the supplied handler to the specified System Call number (Where Applicable)


[Expand]
function DeregisterSystemCall(Number:LongWord; Handler:TSystemCallHandler):LongWord; inline;
Description: Request deregistration of the supplied handler from the specified System Call number (Where Applicable)


[Expand]
function RegisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord; inline;
Description: Request registration of the supplied extended handler to the specified System Call number (Where Applicable)


[Expand]
function DeregisterSystemCallEx(CPUID,Number:LongWord; Handler:TSystemCallHandler; HandlerEx:TSystemCallExHandler):LongWord; inline;
Description: Request deregistration of the supplied extended handler from the specified System Call number (Where Applicable)


Interrupt entry functions

[Expand]
function GetInterruptCount:LongWord; inline;
Description: Get the number of interrupt entries for the current platform


[Expand]
function GetInterruptStart:LongWord; inline;
Description: Get the starting number of interrupt entries for the current platform


[Expand]
function GetInterruptEntry(Number:LongWord):TInterruptEntry; inline;
Description: Get the interrupt entry for the specified interrupt number


Local interrupt entry functions

[Expand]
function GetLocalInterruptCount:LongWord; inline;
Description: Get the number of local interrupt entries for the current platform (Where Applicable)


[Expand]
function GetLocalInterruptStart:LongWord; inline;
Description: Get the starting number of local interrupt entries for the current platform (Where Applicable)


[Expand]
function GetLocalInterruptEntry(CPUID,Number:LongWord):TInterruptEntry; inline;
Description: Get the local interrupt entry for the specified interrupt number (Where Applicable)


System call entry functions

[Expand]
function GetSystemCallCount:LongWord; inline;
Description: Get the number of system call entries for the current platform (Where Applicable)


[Expand]
function GetSystemCallEntry(Number:LongWord):TSystemCallEntry; inline;
Description: Get the system call entry for the specified system call number (Where Applicable)


System functions

[Expand]
function SystemRestart(Delay:LongWord):LongWord; inline;
Description: Restart the system


[Expand]
function SystemShutdown(Delay:LongWord):LongWord; inline;
Description: Shutdown the system


[Expand]
function SystemGetUptime:Int64; inline;
Description: Get the current system up time in 100 nanosecond ticks since 1/1/1601


[Expand]
function SystemGetCommandLine:String; inline;
Description: Get the current command line


[Expand]
function SystemGetEnvironment:Pointer; inline;
Description: Get the current environment


CPU Functions

[Expand]
function CPUGetArch:LongWord; inline;
Description: Get the CPU architecture for this board


[Expand]
function CPUGetType:LongWord; inline;
Description: Get the CPU type for this board


[Expand]
function CPUGetBoot:LongWord; inline;
Description: Get the boot CPU for this board


[Expand]
function CPUGetMask:LongWord; inline;
Description: Get the CPU mask for this board


[Expand]
function CPUGetCount:LongWord; inline;
Description: Get the CPU count for this board


[Expand]
function CPUGetMode:LongWord; inline;
Description: Get the current CPU moded


[Expand]
function CPUGetState:LongWord; inline;
Description: Get the current CPU state


[Expand]
function CPUGetCurrent:LongWord; inline;
Description: Get the current CPU ID


[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 CPUGetModel:LongWord; inline;
Description: Get the CPU model of the current 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

[Expand]
function FPUGetType:LongWord; inline;
Description: Get the FPU type for this board


[Expand]
function FPUGetState:LongWord; inline;
Description: Get the current FPU state


GPU functions

[Expand]
function GPUGetType:LongWord; inline;
Description: Get the GPU type for this board


[Expand]
function GPUGetState:LongWord; inline;
Description: Get the current GPU state


[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 BoardGetType:LongWord; inline;
Description: Get the current Board type


[Expand]
function BoardGetModel:LongWord; inline;
Description: Get the current Board model


[Expand]
function BoardGetSerial:Int64; inline;
Description: Get the current Board serial number


[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

[Expand]
function MachineGetType:LongWord; inline;
Description: Get the current Machine type


Memory functions

[Expand]
function MemoryGetBase:PtrUInt; inline;
Description: Get the base address of system memory


[Expand]
function MemoryGetSize:LongWord; inline;
Description: Get the total size of system memory


[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 PowerOn(PowerId:LongWord):LongWord;
Description: Power On the specified device


[Expand]
function PowerOff(PowerId:LongWord):LongWord;
Description: Power Off the specified device


[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)


[Expand]
function ClockGetTotal:Int64; inline;
Description: Gets the total system clock count


[Expand]
function Clock?pdateOffset:LongWord; inline;
Description: Change the system time offset between UTC and Local


[Expand]
function ClockGetRate(ClockId:LongWord):LongWord; inline;
Description: Get the clock rate in Hz of the specified Clock


[Expand]
function ClockSetRate(ClockId,Rate:LongWord; Turbo:Boolean):LongWord; inline;
Description: Set the clock rate in Hz of the specified Clock


[Expand]
function ClockGetState(ClockId:LongWord):LongWord; inline;
Description: Get the state of the specified Clock


[Expand]
function ClockSetState(ClockId,State:LongWord):LongWord; inline;
Description: Set the state of the specified Clock


[Expand]
function ClockGetMinRate(ClockId:LongWord):LongWord; inline;
Description: Get the minimum clock rate in Hz of the specified Clock


[Expand]
function ClockGetMaxRate(ClockId:LongWord):LongWord; inline;
Description: Get the maximum clock rate in Hz of the specified Clock


Turbo functions

[Expand]
function TurboGetState(TurboId:LongWord):LongWord; inline;
Description: Get the Turbo state (0 equals Off / 1 equals On) of the specified device


[Expand]
function TurboSetState(TurboId,State:LongWord):LongWord; inline;
Description: Set the Turbo state (0 equals Off / 1 equals On) of the specified device


Voltage functions

[Expand]
function VoltageGetValue(VoltageId:LongWord):LongWord; inline;
Description: Get the current voltage level of the specified device


[Expand]
function VoltageSetValue(VoltageId,Value:LongWord):LongWord; inline;
Description: Set the current voltage level of the specified device


[Expand]
function VoltageGetMinValue(VoltageId:LongWord):LongWord; inline;
Description: Get the minimum voltage level of the specified device


[Expand]
function VoltageGetMaxValue(VoltageId:LongWord):LongWord; inline;
Description: Get the maximum voltage level of the specified device


Temperature functions

[Expand]
function TemperatureGetCurrent(TemperatureId:LongWord):LongWord; inline;
Description: Get the current temperature in thousandths of a degree C of the specified device


[Expand]
function TemperatureGetMaximum(TemperatureId:LongWord):LongWord; inline;
Description: Get the maximum temperature in thousandths of a degree C of the specified device


GPU memory functions

[Expand]
function GPUMemoryAllocate(Length,Alignment,Flags:LongWord):THandle; inline;
Description: Allocate memory from the GPU


[Expand]
function GPUMemoryRelease(Handle:THandle):LongWord; inline;
Description: Release memory allocated from the GPU


[Expand]
function GPUMemoryLock(Handle:THandle):LongWord; inline;
Description: Lock memory allocated from the GPU and return an address


[Expand]
function GPUMemoryUnlock(Handle:THandle):LongWord; inline;
Description: Unlock memory allocated from the GPU


GPU misc functions

[Expand]
function GPUExecuteCode(Address:Pointer; R0,R1,R2,R3,R4,R5:LongWord):LongWord; inline;
Description: Execute a block of code on the GPU


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


[Expand]
function EDIDBlockGet(Block:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Get an EDID block from HDMI


Framebuffer functions

[Expand]
function FramebufferAvailable:Boolean; inline;
Description: Check if a framebuffer device is currently available


[Expand]
function FramebufferAllocate(Alignment:LongWord; var Address,Length:LongWord):LongWord; inline;
Description: Allocate a new Framebuffer


[Expand]
function FramebufferRelease:LongWord; inline;
Description: Release the current Framebuffer


[Expand]
function FramebufferSetState(State:LongWord):LongWord; inline;
Description: Set the current Framebuffer (Display) state (0 for Off / 1 for On)


[Expand]
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)


[Expand]
function FramebufferGetPhysical(var Width,Height:LongWord):LongWord; inline;
Description: Get the Physical Framebuffer Width and Height in Pixels


[Expand]
function FramebufferSetPhysical(var Width,Height:LongWord):LongWord; inline;
Description: Set the Physical Framebuffer Width and Height in Pixels


[Expand]
function FramebufferTestPhysical(var Width,Height:LongWord):LongWord; inline;
Description: Test the Physical Framebuffer Width and Height in Pixels


[Expand]
function FramebufferGetVirtual(var Width,Height:LongWord):LongWord; inline;
Description: Get the Virtual Framebuffer Width and Height in Pixels


[Expand]
function FramebufferSetVirtual(var Width,Height:LongWord):LongWord; inline;
Description: Set the Virtual Framebuffer Width and Height in Pixels


[Expand]
function FramebufferTestVirtual(var Width,Height:LongWord):LongWord; inline;
Description: Test the Virtual Framebuffer Width and Height in Pixels


[Expand]
function FramebufferGetDepth(var Depth:LongWord):LongWord; inline;
Description: Get the Framebuffer Depth in Bits per Pixel


[Expand]
function FramebufferSetDepth(var Depth:LongWord):LongWord; inline;
Description: Set the Framebuffer Depth in Bits per Pixel


[Expand]
function FramebufferTestDepth(var Depth:LongWord):LongWord; inline;
Description: Test the Framebuffer Depth in Bits per Pixel


[Expand]
function FramebufferGetPixelOrder(var Order:LongWord):LongWord; inline;
Description: Get the Framebuffer Pixel Order (0 = BGR / 1 = RGB)


[Expand]
function FramebufferSetPixelOrder(var Order:LongWord):LongWord; inline;
Description: Set the Framebuffer Pixel Order (0 = BGR / 1 = RGB)


[Expand]
function FramebufferTestPixelOrder(var Order:LongWord):LongWord; inline;
Description: Test the Framebuffer Pixel Order (0 = BGR / 1 = RGB)


[Expand]
function FramebufferGetAlphaMode(var Mode:LongWord):LongWord; inline;
Description: Get the Framebuffer Alpha Mode


[Expand]
function FramebufferSetAlphaMode(var Mode:LongWord):LongWord; inline;
Description: Set the Framebuffer Alpha Mode


[Expand]
function FramebufferTestAlphaMode(var Mode:LongWord):LongWord; inline;
Description: Test the Framebuffer Alpha Mode


[Expand]
function FramebufferGetPitch:LongWord; inline;
Description: Get the Framebuffer Pitch in Bytes per Line


[Expand]
function FramebufferGetOffset(var X,Y:LongWord):LongWord; inline;
Description: Get the Framebuffer Virtual Offset in Pixels


[Expand]
function FramebufferSetOffset(var X,Y:LongWord):LongWord; inline;
Description: Set the Framebuffer Virtual Offset in Pixels


[Expand]
function FramebufferTestOffset(var X,Y:LongWord):LongWord; inline;
Description: Test the Framebuffer Virtual Offset in Pixels


[Expand]
function FramebufferGetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
Description: Get the Framebuffer Top, Bottom, Left and Right Overscan in Pixels


[Expand]
function FramebufferSetOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
Description: Set the Framebuffer Top, Bottom, Left and Right Overscan in Pixels


[Expand]
function FramebufferTestOverscan(var Top,Bottom,Left,Right:LongWord):LongWord; inline;
Description: Test the Framebuffer Top, Bottom, Left and Right Overscan in Pixels


[Expand]
function FramebufferGetPalette(Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Get the Framebuffer Palette in RGBA values


[Expand]
function FramebufferSetPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Set the Framebuffer Palette in RGBA values


[Expand]
function FramebufferTestPalette(Start,Count:LongWord; Buffer:Pointer; Length:LongWord):LongWord; inline;
Description: Test the Framebuffer Palette in RGBA values


[Expand]
function FramebufferTestVsync:LongWord; inline;
Description: Test the Framebuffer Vertical Sync (Where Applicable)


[Expand]
function FramebufferSetVsync:LongWord; inline;
Description: Set (Wait For) the Framebuffer Vertical Sync (Where Applicable)


[Expand]
function FramebufferSetBacklight(Brightness:LongWord):LongWord; inline;
Description: Set the Framebuffer Backlight brightness (Where Applicable)


Touch functions

[Expand]
function TouchGetBuffer(var Address:LongWord):LongWord; inline;
Description: Get the Touchscreen memory buffer (Where Applicable)


Cursor functions

[Expand]
function CursorSetDefault:LongWord; inline;
Description: Set the default Cursor Info (Where Applicable)


[Expand]
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)


[Expand]
function CursorSetState(Enabled:Boolean; X,Y:LongWord; Relative:Boolean):LongWord; inline;
Description: Set the Cursor State (Enabled, X and Y)


DMA functions

[Expand]
function DMAAvailable:Boolean; inline;
Description: Check if DMA is currently available


[Expand]
function DMATransfer(Data:PDMAData; Direction,Peripheral:LongWord):LongWord; inline;
Description: Perform a DMA transfer using the list of DMA data blocks provided


[Expand]
function DMAFillMemory(Dest:Pointer; Size:LongWord; Value:Byte):LongWord; inline;
Description: Fill memory at the destination address using DMA


[Expand]
function DMACopyMemory(Source,Dest:Pointer; Size:LongWord):LongWord; inline;
Description: Copy memory from the source to the destination address using DMA


[Expand]
function DMAReadPeripheral(Address,Dest:Pointer; Size,Peripheral:LongWord):LongWord; inline;
Description: Read from a periperal address to the destination address using DMA


[Expand]
function DMAWritePeripheral(Source,Address:Pointer; Size,Peripheral:LongWord):LongWord; inline;
Description: Write to a peripheral address from the source address using DMA


[Expand]
function DMAAllocateBuffer(Size:LongWord):Pointer; inline;
Description: Allocate a buffer compatible with DMA memory reads or writes


[Expand]
function DMAAllocateBufferEx(var Size:LongWord):Pointer; inline;
Description: Allocate a buffer compatible with DMA memory reads or writes


[Expand]
function DMAReleaseBuffer(Buffer:Pointer):LongWord; inline;
Description: Release a buffer allocated with DMAAllocateBuffer


[Expand]
function DMAGetChannels:LongWord; inline;
Description: Get the currently enabled DMA channel bitmap (If supported)


GPIO functions

[Expand]
function GPIOAvailable:Boolean; inline;
Description: Check if a GPIO device is available


[Expand]
function GPIORead(Reg:LongWord):LongWord; inline;
Description: Perform a direct read from a GPIO register


[Expand]
procedure GPIOWrite(Reg,Value:LongWord); inline;
Description: Perform a direct write to a GPIO register


[Expand]
function GPIOInputGet(Pin:LongWord):LongWord; inline;
Description: Get the current state of a GPIO input pin


[Expand]
function GPIOInputWait(Pin,Trigger,Timeout:LongWord):LongWord; inline;
Description: Wait for the state of a GPIO input pin to change


[Expand]
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


[Expand]
function GPIOOutput?et(Pin,Level:LongWord):LongWord; inline;
Description: Change the state of a GPIO output pin


[Expand]
function GPIOPullGet(Pin:LongWord):LongWord; inline;
Description: Get the current pull state of a GPIO pin


[Expand]
function GPIOPullSelect(Pin,Mode:LongWord):LongWord; inline;
Description: Change the pull state of a GPIO pin


[Expand]
function GPIOFunctionGet(Pin:LongWord):LongWord; inline;
Description: Get the current function of a GPIO pin


[Expand]
function GPIOFunctionSelect(Pin,Mode:LongWord):LongWord; inline;
Description: Change the function of a GPIO pin


Virtual GPIO functions

[Expand]
function VirtualGPIOInputGet(Pin:LongWord):LongWord; inline;
Description: Get the current state of a virtual GPIO input pin


[Expand]
function VirtualGPIOOutputSet(Pin,Level:LongWord):LongWord; inline;
Description: To be documented


[Expand]
function VirtualGPIOFunctionSelect(Pin,Mode:LongWord):LongWord; inline;
Description: To be documented


SPI functions

[Expand]
function SPIAvailable:Boolean; inline;
Description: Check if an SPI device is available


[Expand]
function SPIStart(Mode,ClockRate,ClockPhase,ClockPolarity:LongWord):LongWord; inline;
Description: Start the default SPI device ready for writing and reading


[Expand]
function SPIStop:LongWord; inline;
Description: Stop the default SPI device and terminate writing and reading


[Expand]
function SPIRead(ChipSelect:Word; Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Read data from the default SPI device. Because SPI writes and then reads for each byte, dummy data will be written for each byte to be read.


[Expand]
function SPIWrite(ChipSelect:Word; Source:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Write data to the default SPI device. Because SPI writes and then reads for each byte, received data will be discarded for each by written.


[Expand]
function SPIWriteRead(ChipSelect:Word; Source,Dest:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Write data to and Read data from the default SPI device in one operation. Because SPI writes and then reads for each byte, both the source and dest buffers must be the same size.


[Expand]
function SPIGetMode:LongWord; inline;
Description: Get the device mode of the default SPI device


[Expand]
function SPISetMode(Mode:LongWord):LongWord; inline;
Description: Set the device mode for the default SPI device


[Expand]
function SPIGetClockRate(ChipSelect:Word):LongWord; inline;
Description: Get the clock rate of the default SPI device


[Expand]
function SPISetClockRate(ChipSelect:Word;ClockRate:LongWord):LongWord; inline;
Description: Set the clock rate for the default SPI device


[Expand]
function SPIGetClockPhase:LongWord; inline;
Description: Get the clock phase of the default SPI device


[Expand]
function SPISetClockPhase(ClockPhase:LongWord):LongWord; inline;
Description: Set the clock phase for the default SPI device


[Expand]
function SPIGetClockPolarity:LongWord; inline;
Description: Get the clock polarity of the default SPI device


[Expand]
function SPISetClockPolarity(ClockPolarity:LongWord):LongWord; inline;
Description: Set the clock polarity for the default SPI device


[Expand]
function SPIGetSelectPolarity(ChipSelect:Word):LongWord; inline;
Description: Get the chip select polarity of the default SPI device


[Expand]
function SPISetSelectPolarity(ChipSelect:Word; SelectPolarity:LongWord):LongWord; inline;
Description: Set the chip select polarity for the default SPI device


I2C functions

[Expand]
function I2CAvailable:Boolean; inline;
Description: Check if an I2C device is available


[Expand]
function I2CStart(Rate:LongWord):LongWord; inline;
Description: Start the default I2C device ready for reading and writing


[Expand]
function I2CStop:LongWord; inline;
Description: Stop the default I2C device and terminate reading and writing


[Expand]
function I2CRead(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Read data from the default I2C device


[Expand]
function I2CWrite(Address:Word; Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Write data to the default I2C device


[Expand]
function I2CWriteRead(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Write data to and Read data from the default I2C device in one operation. Useful for devices that require a register address specified before a read (eg EEPROM devices)


[Expand]
function I2CWriteWrite(Address:Word; Initial:Pointer; Len:LongWord; Data:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Write 2 data blocks to the default I2C device in one operation. Useful for devices that require a register address specified before a write (eg EEPROM devices)


[Expand]
function I2CGetRate:LongWord; inline;
Description: Get the clock rate of the default I2C device


[Expand]
function I2CSetRate(Rate:LongWord):LongWord; inline;
Description: Set the clock rate for the default I2C device


[Expand]
function I2CGetAddress:Word; inline;
Description: Get the slave address for the default I2C device


[Expand]
function I2CSetAddress(Address:Word):LongWord; inline;
Description: Set the slave address for the default I2C device


PWM functions

[Expand]
function PWMAvailable:Boolean; inline;
Description: Check if a PWM device is available


[Expand]
function PWMStart:LongWord; inline;
Description: Start the default PWM device


[Expand]
function PWMStop:LongWord; inline;
Description: Stop the default PWM device


[Expand]
function PWMWrite(Value:LongWord):LongWord; inline;
Description: Write a value to the default PWM device


[Expand]
function PWMSetMode(Mode:LongWord):LongWord; inline;
Description: Set the mode for the default PWM device


[Expand]
function PWMSetRange(Range:LongWord):LongWord; inline;
Description: Set the range for the default PWM device


[Expand]
function PWMSetFrequency(Frequency:LongWord):LongWord; inline;
Description: Set the clock frequency for the default PWM device


[Expand]
function PWMConfigure(DutyNS,PeriodNS:LongWord):LongWord; inline;
Description: Set the configuration of the default PWM device


RTC functions

[Expand]
function RTCAvailable:Boolean; inline;
Description: Check if a Real Time Clock (RTC) device is available


[Expand]
function RTCGetTime:Int64; inline;
Description: Get the current time from a Real Time Clock device


[Expand]
function RTCSetTime(const Time:Int64):Int64; inline;
Description: Set the current time for a Real Time Clock device


Serial functions


[Expand]
function SerialAvailable:Boolean; inline;
Description: Check if a Serial device is available


[Expand]
function SerialOpen(BaudRate,DataBits,StopBits,Parity,FlowControl,ReceiveDepth,TransmitDepth:LongWord):LongWord; inline;
Description: Open the default Serial device ready for sending and receiving


[Expand]
function SerialClose:LongWord; inline;
Description: Close the default Serial device and terminate sending and receiving


[Expand]
function SerialRead(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Read data from the default Serial device


[Expand]
function SerialWrite(Buffer:Pointer; Size:LongWord; var Count:LongWord):LongWord; inline;
Description: Write data to the default Serial device


Peripheral functions

[Expand]
function PeripheralGetBase:PtrUInt; inline;
Description: Get the base address of the peripherals


[Expand]
function PeripheralGetSize:LongWord; inline;
Description: Get the total size of the peripherals


[Expand]
function PeripheralRead(Base,Reg:LongWord):LongWord; inline;
Description: Read from a Peripheral register


[Expand]
procedure PeripheralWrite(Base,Reg,Value:LongWord); inline;
Description: Write to a Peripheral register


[Expand]
function LocalPeripheralGetBase:PtrUInt; inline;
Description: Get the base address of the local peripherals (Peripherals local to each CPU)


[Expand]
function LocalPeripheralGetSize:LongWord; inline;
Description: Get the total size of the local peripherals (Peripherals local to each CPU)


System functions

[Expand]
function GetSP:PtrUInt; inline;
Description: Get the current stack pointer (SP)


[Expand]
function GetPC:PtrUInt; inline;
Description: Get the current program counter (PC)


[Expand]
function GetIRQ:Boolean; inline;
Description: Get Interrupts (IRQ) state


[Expand]
procedure EnableIRQ; inline;
Description: Enable Interrupts (IRQ) unconditionally


[Expand]
procedure DisableIRQ; inline;
Description: Disable Interrupts (IRQ) unconditionally


[Expand]
function SaveIRQ:TIRQMask; inline;
Description: Disable Interrupts (IRQ) and return the previous state


[Expand]
function RestoreIRQ(IRQMask:TIRQMask):TIRQMask; inline;
Description: Restore Interrupts (IRQ) to a previous state


[Expand]
function GetFIQ:Boolean; inline;
Description: Get Fast Interrupts (FIQ) state


[Expand]
procedure EnableFIQ; inline;
Description: Enable Fast Interrupts (FIQ) unconditionally


[Expand]
procedure DisableFIQ; inline;
Description: Disable Fast Interrupts (FIQ) unconditionally


[Expand]
function SaveFIQ:TFIQMask; inline;
Description: Disable Fast Interrupts (FIQ) and return the previous state


[Expand]
function RestoreFIQ(FIQMask:TFIQMask):TFIQMask; inline;
Description: Restore Fast Interrupts (FIQ) to a previous state


[Expand]
procedure EnableIRQFIQ; inline;
Description: Enable Interrupts and Fast Interrupts (IRQ/FIQ) unconditionally


[Expand]
procedure DisableIRQFIQ; inline;
Description: Disable Interrupts and Fast Interrupts (IRQ/FIQ) unconditionally


[Expand]
function SaveIRQFIQ:TIRQFIQMask; inline;
Description: Disable Interrupts and Fast Interrupts (IRQ/FIQ) and return the previous state


[Expand]
function RestoreIRQFIQ(IRQFIQMask:TIRQFIQMask):TIRQFIQMask; inline;
Description: Restore Interrupts and Fast Interrupts (IRQ/FIQ) to a previous state


[Expand]
function GetAbort:Boolean; inline;
Description: Get Abort state


[Expand]
procedure EnableAbort; inline;
Description: Enable Abort unconditionally


[Expand]
procedure DisableAbort; inline;
Description: Disable Abort unconditionally


[Expand]
function SaveAbort:TAbortMask; inline;
Description: Disable Abort and return the previous state


[Expand]
function RestoreAbort(AbortMask:TAbortMask):TAbortMask; inline;
Description: Restore Abort to a previous state


[Expand]
procedure Halt; inline;
Description: Halt the current processor


[Expand]
procedure Pause; inline;
Description: Pause the current processor and wait for an Event or Interrupt (Where Applicable)


[Expand]
function HaltThread(ExitCode:LongWord):LongWord; inline;
Description: Halt the current thread


[Expand]
procedure SendEvent; inline;
Description: Send a signal that an Event has occurred (Where Applicable)


[Expand]
procedure WaitForEvent; inline;
Description: Wait for an Event to occur (Where Applicable)


[Expand]
procedure WaitForInterrupt; inline;
Description: Wait for an Interrupt to occur (Where Applicable)


[Expand]
procedure ReadMemoryBarrier; inline;
Description: Perform a Read Memory Barrier operation (Where Applicable)


[Expand]
procedure WriteMemoryBarrier; inline;
Description: Perform a Write Memory Barrier operation (Where Applicable)


[Expand]
procedure DataMemoryBarrier; inline;
Description: Perform a Data Memory Barrier operation (Where Applicable)


[Expand]
procedure DataSynchronizationBarrier; inline;
Description: Perform a Data Synchronization Barrier operation (Where Applicable)


[Expand]
procedure InstructionMemoryBarrier; inline;
Description: Perform an Instruction Memory Barrier operation (Where Applicable)


[Expand]
procedure InvalidateTLB; inline;
Description: Perform an Invalidate Entire TLB operation (Where Applicable)


[Expand]
procedure InvalidateDataTLB; inline;
Description: Perform an Invalidate Data TLB operation (Where Applicable)


[Expand]
procedure InvalidateInstructionTLB; inline;
Description: Perform an Invalidate Instruction TLB operation (Where Applicable)


[Expand]
procedure InvalidateCache; inline;
Description: Perform an Invalidate Entire Cache operation (Where Applicable)


[Expand]
procedure CleanDataCache; inline;
Description: Perform a Clean Data Cache operation (Where Applicable)


[Expand]
procedure InvalidateDataCache; inline;
Description: Perform an Invalidate Data Cache operation (Where Applicable)


[Expand]
procedure CleanAndInvalidateDataCache; inline;
Description: Perform a Clean and Invalidate Data Cache operation (Where Applicable)


[Expand]
procedure InvalidateInstructionCache; inline;
Description: Perform an Invalidate Instruction Cache operation (Where Applicable)


[Expand]
procedure CleanDataCacheRange(Address,Size:LongWord); inline;
Description: Perform a Clean Data Cache Range operation (Where Applicable)


[Expand]
procedure InvalidateDataCacheRange(Address,Size:LongWord); inline;
Description: Perform an Invalidate Data Cache Range operation (Where Applicable)


[Expand]
procedure CleanAndInvalidateDataCacheRange(Address,Size:LongWord); inline;
Description: Perform a Clean and Invalidate Data Cache Range operation (Where Applicable)


[Expand]
procedure InvalidateInstructionCacheRange(Address,Size:LongWord); inline;
Description: Perform an Invalidate Instruction Cache Range operation (Where Applicable)


[Expand]
procedure FlushPrefetchBuffer; inline;
Description: Perform a Flush Prefetch Buffer operation (Where Applicable)


[Expand]
procedure FlushBranchTargetCache; inline;
Description: Perform a Flush Entire Branch Target Cache operation (Where Applicable)


[Expand]
procedure ContextSwitch(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
Description: Perform a Context Switch from one thread to another


[Expand]
procedure ContextSwitchIRQ(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
Description: Perform a Context Switch from one thread to another from an IRQ handler


[Expand]
procedure ContextSwitchFIQ(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
Description: Perform a Context Switch from one thread to another from an FIQ handler


[Expand]
procedure ContextSwitchSWI(OldStack,NewStack:Pointer; NewThread:TThreadHandle); inline;
Description: Perform a Context Switch from one thread to another from a software interrupt handler


[Expand]
function InterlockedOr(var Target:LongInt;Value:LongInt):LongInt; inline;
Description: Perform an atomic OR operation


[Expand]
function InterlockedXor(var Target:LongInt; Value:LongInt):LongInt; inline;
Description: Perform an atomic XOR operation


[Expand]
function InterlockedAnd(var Target:LongInt; Value:LongInt):LongInt; inline;
Description: Perform an atomic AND operation


[Expand]
function InterlockedDecrement(var Target:LongInt):LongInt; inline;
Description: Perform an atomic decrement operation


[Expand]
function InterlockedIncrement(var Target:LongInt):LongInt; inline;
Description: Perform an atomic increment operation


[Expand]
function InterlockedExchange(var Target:LongInt; Source:LongInt):LongInt; inline;
Description: Perform an atomic exchange operation


[Expand]
function InterlockedAddExchange(var Target:LongInt; Source:LongInt):LongInt; inline;
Description: Perform an atomic add and exchange operation


[Expand]
function InterlockedCompareExchange(var Target:LongInt; Source,Compare:LongInt):LongInt; inline;
Description: Perform an atomic compare and exchange operation


[Expand]
function PageTableGetBase:PtrUInt; inline;
Description: Get the base address of the first level page table


[Expand]
function PageTableGetSize:LongWord; inline;
Description: Get the size of the first level page table


[Expand]
function PageTableGetEntry(Address:PtrUInt):TPageTableEntry; inline;
Description: Get the Page Table entry that corresponds to the supplied virtual address


[Expand]
function PageTableSetEntry(const Entry:TPageTableEntry):LongWord; inline;
Description: Set the Page Table entry that corresponds to the supplied virtual address


[Expand]
function PageTablesGetAddress:PtrUInt; inline;
Description: Get the address of the second level page tables


[Expand]
function PageTablesGetLength:LongWord; inline;
Description: Get the size of the second level page tables


[Expand]
function PageTablesGetCount:LongWord; inline;
Description: Get the number of second level page tables


[Expand]
function PageTablesGetShift:LongWord; inline;
Description: Get the multiplier to convert count to actual size of the second level page tables


[Expand]
function PageTablesGetNext:PtrUInt; inline;
Description: Get the address of the next available second level page table


[Expand]
function PageTablesGetUsed:LongWord; inline;
Description: Get the number of used second level page tables


[Expand]
function PageTablesGetFree:LongWord; inline;
Description: Get the number of available second level page tables


[Expand]
function VectorTableGetBase:PtrUInt; inline;
Description: Get the base address of the interrupt vector table


[Expand]
function VectorTableGetSize:LongWord; inline;
Description: Get the size in bytes of the interrupt vector table


[Expand]
function VectorTableGetCount:LongWord; inline;
Description: Get the number of entries in the interrupt vector table


[Expand]
function VectorTableGetEntry(Number:LongWord):PtrUInt; inline;
Description: Get the interrupt vector table entry that corresponds to the supplied number


[Expand]
function VectorTableSetEntry(Number:LongWord; Address:PtrUInt):LongWord; inline;
Description: Set the interrupt vector table entry that corresponds to the supplied number


Exception functions

[Expand]
procedure HardwareException(AType:LongWord; Address,Frame:Pointer);
Description: To be documented


[Expand]
procedure UnhandledException(Obj:TObject; Addr:CodePointer; FrameCount:LongInt; Frames:PCodePointer); {[public,alias:'FPC_BREAK_UNHANDLED_EXCEPTION'];}
Description: To be documented


Text IO functions

[Expand]
procedure TextIOOpen(var F:Text; AWrite:TTextIOWriteChar; ARead:TTextIOReadChar; AMode:LongInt; AUserData:Pointer);
Description: To be documented


[Expand]
procedure TextIOClose(var T:TextRec);
Description: To be documented


[Expand]
procedure TextIORead(var T:TextRec);
Description: To be documented


[Expand]
procedure TextIOWrite(var T:TextRec);
Description: To be documented


[Expand]
function TextIOReadData(ARead:TTextIOReadChar; AUserData:Pointer; ABuffer:PChar; ACount:LongInt):LongInt;
Description: To be documented


Console functions

[Expand]
function ConsoleGetKey(var ACh:Char; AUserData:Pointer):Boolean; inline;
Description: To be documented


[Expand]
function ConsolePeekKey(var ACh:Char; AUserData:Pointer):Boolean; inline;
Description: To be documented


[Expand]
function ConsoleWriteChar(ACh:Char; AUserData:Pointer):Boolean; inline;
Description: To be documented


[Expand]
function ConsoleReadChar(var ACh:Char; AUserData:Pointer):Boolean; inline;
Description: To be documented


[Expand]
function ConsoleReadWideChar(var ACh:WideChar; AUserData:Pointer):Boolean; inline;
Description: To be documented


[Expand]
function ConsoleHideMouse(AUserData:Pointer):Boolean; inline;
Description: To be documented


[Expand]
function ConsoleShowMouse(X,Y:LongWord; AUserData:Pointer):Boolean; inline;
Description: To be documented


[Expand]
function ConsoleReadMouse(var X,Y,Buttons:LongWord; AUserData:Pointer):Boolean; inline;
Description: To be documented


CodePage functions

[Expand]
function CodePageToWideChar(Ch:Char):WideChar; inline;
Description: To be documented


[Expand]
function WideCharToCodePage(Ch:WideChar):Char; inline;
Description: To be documented


Name functions

[Expand]
function HostGetName:String; inline;
Description: To be documented


[Expand]
function HostSetName(const AName:String):Boolean; inline;
Description: To be documented


[Expand]
function HostGetDomain:String; inline;
Description: To be documented


[Expand]
function HostSetDomain(const ADomain:String):Boolean; inline;
Description: To be documented


Logging functions

[Expand]
procedure LoggingOutput(const AText:String); inline;
Description: To be documented


[Expand]
procedure LoggingOutputEx(AFacility,ASeverity:LongWord; const ATag,AContent:String); inline;
Description: To be documented


Utility functions

[Expand]
function FirstBitSet(Value:LongWord):LongWord; inline;
Description: Find the first set bit in a nonzero 32 bit value


[Expand]
function CountLeadingZeros(Value:LongWord):LongWord; inline;
Description: Count the number of leading 0 bits in a nonzero 32 bit value


[Expand]
function PhysicalToIOAddress(Address:Pointer):LongWord; inline;
Description: Convert Physical address to an IO addresses (Where Applicable)


[Expand]
function IOAddressToPhysical(Address:Pointer):LongWord; inline;
Description: Convert an IO address to a Physical address (Where Applicable)


[Expand]
function PhysicalToBusAddress(Address:Pointer):LongWord; inline;
Description: Convert a Physical address to a Bus address (Where Applicable)


[Expand]
function BusAddressToPhysical(Address:Pointer):LongWord; inline;
Description: Convert a Bus address to a Physical address (Where Applicable)


[Expand]
procedure NanosecondDelay(Nanoseconds:LongWord);
Description: Non sleep wait for a number of nanoseconds


[Expand]
procedure MicrosecondDelay(Microseconds:LongWord);
Description: Non sleep wait for a number of microseconds


[Expand]
procedure MillisecondDelay(Milliseconds:LongWord);
Description: Non sleep wait for a number of milliseconds


[Expand]
procedure NanosecondDelayEx(Nanoseconds:LongWord; Wait:Boolean);
Description: Non sleep wait for a number of nanoseconds


[Expand]
procedure MicrosecondDelayEx(Microseconds:LongWord; Wait:Boolean);
Description: Non sleep wait for a number of microseconds


[Expand]
procedure MillisecondDelayEx(Milliseconds:LongWord; Wait:Boolean);
Description: Non sleep wait for a number of milliseconds


System random functions

[Expand]
procedure SystemRandomize;
Description: To be documented


Dos conversion functions

[Expand]
function DosGetMsCount:Int64;
Description: To be documented


Dos Info/Date/Time functions

[Expand]
function DosDosVersion:Word;
Description: To be documented


[Expand]
procedure DosGetDate(var Year,Month,MDay,WDay:Word);
Description: To be documented


[Expand]
procedure DosSetDate(Year,Month,Day:Word);
Description: To be documented


[Expand]
procedure DosGetTime(var Hour,Minute,Second,Sec100:Word);
Description: To be documented


[Expand]
procedure DosSetTime(Hour,Minute,Second,Sec100:Word);
Description: To be documented


Dos environment functions

[Expand]
function DosEnvCount:Longint;
Description: To be documented


[Expand]
function DosEnvStr(Index:LongInt):ShortString;
Description: To be documented


[Expand]
function DosGetEnv(EnvVar:ShortString):ShortString; 
Description: To be documented


SysUtils tick functions

[Expand]
function SysUtilsGetTickCount:LongWord;
Description: To be documented


[Expand]
function SysUtilsGetTickCount64:QWord;
Description: To be documented


SysUtils locale functions

[Expand]
procedure SysUtilsGetLocalTime(var SystemTime:TSystemTime);
Description: Get the current local time as a SystemTime value


[Expand]
procedure SysUtilsSetLocalTime(const SystemTime:TSystemTime);
Description: Set the current local time from a SystemTime value


[Expand]
function SysUtilsGetLocalTimeOffset:Integer;
Description: Get the current local time offset value


Platform helper functions

[Expand]
procedure PlatformLog(Level:LongWord; const AText:String);
Description: To be documented


[Expand]
procedure PlatformLogInfo(const AText:String);
Description: To be documented


[Expand]
procedure PlatformLogError(const AText:String);
Description: To be documented


[Expand]
procedure PlatformLogDebug(const AText:String);
Description: To be documented


Return to Unit Reference