Difference between revisions of "Unit Devices"
Line 4: | Line 4: | ||
=== Description === | === Description === | ||
---- | ---- | ||
+ | |||
+ | '''Ultibo Device interface unit''' | ||
''To be documented'' | ''To be documented'' |
Revision as of 04:54, 19 December 2016
Return to Unit Reference
Description
Ultibo Device interface unit
To be documented
Constants
DEVICE_*
DEVICE_NAME_PREFIX = 'Device';
|
Name prefix for Devices |
DEVICE_SIGNATURE_*
DEVICE_SIGNATURE = $AD03FE3C;
|
DEVICE_BUS_*
NONE = 0;
|
|
DEVICE_BUS_PCI = 1;
|
|
DEVICE_BUS_USB = 2;
|
|
DEVICE_BUS_ISA = 3;
|
|
DEVICE_BUS_PS2 = 4;
|
|
DEVICE_BUS_FIREWIRE = 5;
|
|
DEVICE_BUS_SD = 6;
|
SD/SDHC/SDXC/SDIO etc |
DEVICE_BUS_MMC = 7;
|
MMC/eMMC etc |
DEVICE_BUS_ATA = 8;
|
|
DEVICE_BUS_IDE = 9;
|
|
DEVICE_BUS_SCSI = 10;
|
|
DEVICE_BUS_ATAPI = 11;
|
|
DEVICE_BUS_SATA = 12;
|
|
DEVICE_BUS_SERIAL = 13;
|
|
DEVICE_BUS_SPI = 14;
|
Serial Peripheral Interface device |
DEVICE_BUS_MMIO = 15;
|
Memory Mapped IO device (No Bus) |
DEVICE_BUS_PCIE = 16;
|
|
DEVICE_BUS_I2C = 17;
|
I2C connected device |
DEVICE_BUS_MAX = 17;
|
DEVICE_STATE_*
DEVICE_STATE_UNREGISTERED = 0;
|
|
DEVICE_STATE_REGISTERED = 1;
|
|
DEVICE_STATE_MAX = 1;
|
DEVICE_ID_*
DEVICE_ID_ANY = $FFFFFFFF;
|
Any Device (Pass to DeviceFind to match all devices) |
DEVICE_CLASS_*
DEVICE_CLASS_NONE = 0;
|
No Device |
DEVICE_CLASS_USBHOST = 1;
|
A USB Host Controller (eg XHCI/EHCI/UHCI/OHCI or DWCOTG etc) (Implementing a standard USB host interface) |
DEVICE_CLASS_PCIHOST = 2;
|
A PCI Host Controller (eg AHCI etc) (Implementing a standard PCI host interface) |
DEVICE_CLASS_USB = 3;
|
A USB Device (eg Hub/Keyboard/Mouse/Mass Storage/Vendor Specific etc) (Implementing a standard USB device interface) |
DEVICE_CLASS_PCI = 4;
|
A PCI Device (eg Graphics/Controller etc) (Implementing a standard PCI device interface) |
DEVICE_CLASS_NETWORK = 5;
|
A Network Device (Implementing a standard Network device interface). May also be a USB or PCI device |
DEVICE_CLASS_STORAGE = 6;
|
A Storage Device (Implementing a standard Storage device interface). May also be a USB, PCI, MMC, SCSI or ATA device |
DEVICE_CLASS_BLOCK = DEVICE_CLASS_STORAGE;
|
|
DEVICE_CLASS_FILESYSTEM = 7;
|
A FileSystem Device (eg FAT/NTFS/CDFS/EXTFS etc)(Implementing a standard FileSystem device interface) |
DEVICE_CLASS_PROTOCOL = 8;
|
A Protocol Device (eg TCP/UDP/IP/ICMP etc) (Implementing a standard Protocol device interface) |
DEVICE_CLASS_TRANSPORT = DEVICE_CLASS_PROTOCOL;
|
|
DEVICE_CLASS_KEYBOARD = 9;
|
A Keyboard Device (Implementing a standard Keyboard device interface) |
DEVICE_CLASS_MOUSE = 10;
|
A Mouse Device (Implementing a standard Mouse device interface) |
DEVICE_CLASS_BLUETOOTH = 11;
|
A Bluetooth Device (Implementing a standard Bluetooth device interface) |
DEVICE_CLASS_SERIAL = 12;
|
A Serial Device (Implementing a standard Serial device interface) |
DEVICE_CLASS_AUDIO = 13;
|
An Audio Device (Implementing a standard Audio device interface) |
DEVICE_CLASS_VIDEO = 14;
|
A Video Device (Implementing a standard Video device interface) |
DEVICE_CLASS_SCSI = 15;
|
A SCSI Device (Implementing a standard SCSI device interface). May also be a PCI device |
DEVICE_CLASS_ATA = 16;
|
An ATA/ATAPI Device (Implementing a standard ATA/ATAPI device interface). May also be a PCI device |
DEVICE_CLASS_IDE = DEVICE_CLASS_ATA;
|
|
DEVICE_CLASS_ATAPI = DEVICE_CLASS_ATA;
|
|
DEVICE_CLASS_IMAGE = 17;
|
An Image Device (eg Camera) (Implementing a standard Image device interface) |
DEVICE_CLASS_PRINTER = 18;
|
A Printer Device (Implementing a standard Printer device interface) |
DEVICE_CLASS_COMMUNICATIONS = 19;
|
A Communications Device (Implementing a standard Communications device interface) |
DEVICE_CLASS_SMART_CARD = 20;
|
A Smart Card Device (Implementing a standard Smart Card device interface) |
DEVICE_CLASS_MONITOR = 21;
|
A Monitor Device (Implementing a standard Monitor device interface) |
DEVICE_CLASS_DISPLAY = 22;
|
A Display Device (eg Billboard) (Implementing a standard Display device interface) |
DEVICE_CLASS_AUDIOVIDEO = 23;
|
An Audio/Video Device (Implementing a standard Audio/Video device interface) |
DEVICE_CLASS_IRDA = 24;
|
An Infrared Device (Implementing a standard Infrared device interface) |
DEVICE_CLASS_SPI = 25;
|
An SPI Device (Implementing a standard SPI device interface) |
DEVICE_CLASS_I2C = 26;
|
An I2C Device (Implementing a standard I2C device interface) |
DEVICE_CLASS_UART = 27;
|
A UART Device (Implementing a standard UART device interface) |
DEVICE_CLASS_MMC = 28;
|
An MMC Device (Implementing a standard MMC device interface) |
DEVICE_CLASS_SD = 29;
|
An SD Device (Implementing a standard SD device interface) |
DEVICE_CLASS_SDHCI = 30;
|
An SD/MMC Host Controller (Implementing a standard SDHCI device interface) |
DEVICE_CLASS_SDHOST = DEVICE_CLASS_SDHCI;
|
|
DEVICE_CLASS_DFU = 31;
|
A Device Firmware Update Device (Implementing a standard DFU device interface) |
DEVICE_CLASS_GPIO = 32;
|
A GPIO Device (Implementing a standard GPIO device interface) |
DEVICE_CLASS_MAILBOX = 33;
|
A Mailbox Device |
DEVICE_CLASS_OPENGL = 34;
|
An OpenGL Device |
DEVICE_CLASS_DVB = 35;
|
A Digital Video Broadcast (DVB) Device |
DEVICE_CLASS_DAB = 36;
|
A Digital Audio Broadcast (DAB) Device |
DEVICE_CLASS_DMA = 37;
|
A DMA Controller Device (Implementing a standard DMA controller interface) |
DEVICE_CLASS_SCSIHOST = 38;
|
A SCSI Host Device (Implementing a standard SCSI host interface) |
DEVICE_CLASS_ATAHOST = 39;
|
An ATA Host Device (Implementing a standard ATA host interface) |
DEVICE_CLASS_TIMER = 40;
|
A Timer or Counter Device |
DEVICE_CLASS_RANDOM = 41;
|
A Random Number Generator Device |
DEVICE_CLASS_FRAMEBUFFER = 42;
|
A Frame Buffer Device |
DEVICE_CLASS_WATCHDOG = 43;
|
A Watchdog Timer Device |
DEVICE_CLASS_CLOCK = 44;
|
A Clock (Date/Time) Device |
DEVICE_CLASS_CONSOLE = 45;
|
A Console Device |
DEVICE_CLASS_RTC = 46;
|
A Real Time Clock (Battery Backed) Device |
DEVICE_CLASS_USBHUB = 47;
|
A USB Hub (Implementing a standard USB hub interface) |
DEVICE_CLASS_LOGGING = 48;
|
A Logging Device (Implementing a standard Logging device interface) |
DEVICE_CLASS_PCM = 49;
|
A PCM Sound Device (Implementing a standard PCM device interface) |
DEVICE_CLASS_I2S = DEVICE_CLASS_PCM;
|
|
DEVICE_CLASS_PWM = 50;
|
A Pulse Width Modulation (PWM) Device |
DEVICE_CLASS_1WIRE = 51;
|
A 1-Wire Device (Implementing a standard W1 device interface) |
DEVICE_CLASS_CLOCK_MANAGER = 52;
|
A Clock Manager Device |
DEVICE_CLASS_CODEC = 53;
|
A CODEC Device (eg Audio or Video) |
DEVICE_CLASS_TOUCH = 54;
|
A Touch Device |
DEVICE_CLASS_MAX = 54;
|
|
DEVICE_CLASS_ANY = $FFFFFFFF;
|
Any Device (Pass to DeviceFind or DeviceEnumerate to match all devices) |
DEVICE_NOTIFICATION_*
DEVICE_NOTIFICATION_NONE = $00000000;
|
Pass to DeviceNotification to cancel an existing Notification |
DEVICE_NOTIFICATION_REGISTER = $00000001;
|
|
DEVICE_NOTIFICATION_DEREGISTER = $00000002;
|
|
DEVICE_NOTIFICATION_OPEN = $00000004;
|
|
DEVICE_NOTIFICATION_CLOSE = $00000008;
|
|
DEVICE_NOTIFICATION_UP = $00000010;
|
|
DEVICE_NOTIFICATION_DOWN = $00000020;
|
|
DEVICE_NOTIFICATION_INSERT = $00000040;
|
|
DEVICE_NOTIFICATION_EJECT = $00000080;
|
|
DEVICE_NOTIFICATION_ATTACH = $00000100;
|
|
DEVICE_NOTIFICATION_DETACH = $00000200;
|
|
DEVICE_NOTIFICATION_ENABLE = $00000400;
|
|
DEVICE_NOTIFICATION_DISABLE = $00000800;
|
|
DEVICE_NOTIFICATION_BIND = $00001000;
|
|
DEVICE_NOTIFICATION_UNBIND = $00002000;
|
|
DEVICE_NOTIFICATION_ATTACHING = $00004000;
|
|
DEVICE_NOTIFICATION_DETACHING = $00008000;
|
|
DEVICE_NOTIFICATION_INSERTING = $00010000;
|
|
DEVICE_NOTIFICATION_EJECTING = $00020000;
|
|
DEVICE_NOTIFICATION_OPENING = $00040000;
|
|
DEVICE_NOTIFICATION_CLOSING = $00080000;
|
|
DEVICE_NOTIFICATION_RESIZE = $00100000;
|
|
DEVICE_NOTIFICATION_RESIZING = $00200000;
|
NOTIFIER_SIGNATURE_*
NOTIFIER_SIGNATURE = $6FA1BEC9;
|
NOTIFIER_STATE_*
NOTIFIER_STATE_UNREGISTERED = 0;
|
|
NOTIFIER_STATE_REGISTERED = 1;
|
NOTIFIER_FLAG_*
NOTIFIER_FLAG_NONE = $00000000;
|
|
NOTIFIER_FLAG_WORKER = $00000001;
|
If set, notification callback event will be scheduled on a worker thread |
DEVICE_LOG_*
DEVICE_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG;
|
Device debugging messages |
DEVICE_LOG_LEVEL_INFO = LOG_LEVEL_INFO;
|
Device informational messages, such as a device being attached or detached |
DEVICE_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;
|
Device error messages |
DEVICE_LOG_LEVEL_NONE = LOG_LEVEL_NONE;
|
No Device messages |
DRIVER_*
DRIVER_NAME_PREFIX = 'Driver';
|
Name prefix for Drivers |
DRIVER_SIGNATURE_*
DRIVER_SIGNATURE = $1EB4980A;
|
DRIVER_STATE_*
DRIVER_STATE_UNREGISTERED = 0;
|
|
DRIVER_STATE_REGISTERED = 1;
|
|
DRIVER_STATE_MAX = 1;
|
DRIVER_ID_*
DRIVER_ID_ANY = $FFFFFFFF;
|
Any Driver (Pass to DriverFind to match all drivers) |
DRIVER_CLASS_*
DRIVER_CLASS_NONE = 0;
|
No Driver |
DRIVER_CLASS_USB = 1;
|
A USB Driver (Implementing a standard USB driver interface) |
DRIVER_CLASS_PCI = 2;
|
A PCI Driver (Implementing a standard PCI driver interface) |
DRIVER_CLASS_SDIO = 3;
|
An SDIO Driver (Implementing a standard SDIO driver interface) |
DRIVER_CLASS_BLUETOOTH = 4;
|
A Bluetooth Driver (Implementing a standard Bluetooth driver interface) |
DRIVER_CLASS_MAX = 4;
|
|
DRIVER_CLASS_ANY = $FFFFFFFF;
|
Any Driver (Pass to DriverFind or DriverEnumerate to match all drivers) |
HOST_*
HOST_NAME_PREFIX = 'Host';
|
Name prefix for Hosts |
HOST_SIGNATURE_*
HOST_SIGNATURE = $F45D30FE;
|
HOST_STATE_*
HOST_STATE_UNREGISTERED = 0;
|
|
HOST_STATE_REGISTERED = 1;
|
HOST_ID_*
HOST_ID_ANY = $FFFFFFFF;
|
Any Host (Pass to HostFind to match all hosts) |
HOST_CLASS_*
HOST_CLASS_NONE = 0;
|
No Host} |
HOST_CLASS_USB = 1;
|
A USB Host (eg XHCI/EHCI/UHCI/OHCI or DWCOTG etc) (Implementing a standard USB host interface) |
HOST_CLASS_PCI = 2;
|
A PCI Host (eg AHCI etc) (Implementing a standard PCI host interface) |
HOST_CLASS_SD = 3;
|
An SD Host (eg MMC/SDIO etc) (Implementing a standard SD host interface) |
HOST_CLASS_BLUETOOTH = 4;
|
A Bluetooth Host (Implementing a standard Bluetooth host interface) |
HOST_CLASS_MAX = 4;
|
|
HOST_CLASS_ANY = $FFFFFFFF;
|
Any Host (Pass to HostFind or HostEnumerate to match all hosts) |
CLOCK_*
CLOCK_NAME_PREFIX = 'Clock';
|
Name prefix for Clock Devices |
CLOCK_TYPE_*
CLOCK_TYPE_NONE = 0;
|
|
CLOCK_TYPE_HARDWARE = 1;
|
CLOCK_STATE_*
CLOCK_STATE_DISABLED = 0;
|
|
CLOCK_STATE_ENABLED = 1;
|
CLOCK_FLAG_*
CLOCK_FLAG_NONE = $00000000;
|
|
CLOCK_FLAG_WRITABLE = $00000001;
|
Device supports writing the clock value |
TIMER_*
TIMER_NAME_PREFIX = 'Timer';
|
Name prefix for Timer Devices |
TIMER_TYPE_*
TIMER_TYPE_NONE = 0;
|
|
TIMER_TYPE_HARDWARE = 1;
|
TIMER_STATE_*
TIMER_STATE_DISABLED = 0;
|
|
TIMER_STATE_ENABLED = 1;
|
TIMER_FLAG_*
TIMER_FLAG_NONE = $00000000;
|
|
TIMER_FLAG_WRAPPING = $00000001;
|
Device provides a wrapping or self reloading counter |
TIMER_FLAG_COUNTER = $00000002;
|
Device will appear as a continuously incrementing counter when read |
TIMER_FLAG_DOWN = $00000004;
|
Device counts down from the starting value to zero (And optionally triggers an event) |
TIMER_EVENT_FLAG_*
TIMER_EVENT_FLAG_NONE = $00000000;
|
|
TIMER_EVENT_FLAG_REPEAT = $00000001;
|
Event will be repeated until cancelled |
TIMER_EVENT_FLAG_INTERRUPT = $00000002;
|
Event will be dispatched by interrupt handler (If applicable). Caution: Events called by the interrupt handler must obey interrupt rules with regard to locks, memory allocation and latency. |
RANDOM_*
RANDOM_NAME_PREFIX = 'Random';
|
Name prefix for Random Devices |
RANDOM_TYPE_*
RANDOM_TYPE_NONE = 0;
|
|
RANDOM_TYPE_HARDWARE = 1;
|
|
RANDOM_TYPE_SOFTWARE = 2;
|
RANDOM_STATE_*
RANDOM_STATE_DISABLED = 0;
|
|
RANDOM_STATE_ENABLED = 1;
|
RANDOM_FLAG_*
RANDOM_FLAG_NONE = $00000000;
|
MAILBOX_*
MAILBOX_NAME_PREFIX = 'Mailbox';
|
Name prefix for Mailbox Devices |
MAILBOX_TYPE_*
MAILBOX_TYPE_NONE = 0;
|
|
MAILBOX_TYPE_GPU = 1;
|
|
MAILBOX_TYPE_LOCAL = 2;
|
MAILBOX_STATE_*
MAILBOX_STATE_DISABLED = 0;
|
|
MAILBOX_STATE_ENABLED = 1;
|
MAILBOX_FLAG_*
MAILBOX_FLAG_NONE = $00000000;
|
WATCHDOG_*
WATCHDOG_NAME_PREFIX = 'Watchdog';
|
Name prefix for Watchdog Devices |
WATCHDOG_TYPE_*
WATCHDOG_TYPE_NONE = 0;
|
|
WATCHDOG_TYPE_HARDWARE = 1;
|
WATCHDOG_STATE_*
WATCHDOG_STATE_DISABLED = 0;
|
|
WATCHDOG_STATE_ENABLED = 1;
|
WATCHDOG_FLAG_*
WATCHDOG_FLAG_NONE = $00000000;
|
Type definitions
To be documented
Public variables
To be documented
Function declarations
Initialization functions
procedure DevicesInit;
Note | Called only during system startup |
---|
Device functions
function DeviceCreate:PDevice;
Return | Pointer to new Device entry or nil if device could not be created |
---|
function DeviceCreateEx(Size:LongWord):PDevice;
Size | Size in bytes to allocate for new device (Including the device entry) |
---|---|
Return | Pointer to new Device entry or nil if device could not be created |
function DeviceDestroy(Device:PDevice):LongWord;
Note | None documented |
---|
function DeviceGetName(Device:PDevice):String;
Note | None documented |
---|
function DeviceSetName(Device:PDevice; const Name:String):LongWord;
Note | None documented |
---|
function DeviceGetDescription(Device:PDevice):String;
Note | None documented |
---|
function DeviceSetDescription(Device:PDevice; const Description:String):LongWord;
Note | None documented |
---|
function DeviceRegister(Device:PDevice):LongWord;
Note | None documented |
---|
function DeviceDeregister(Device:PDevice):LongWord;
Note | None documented |
---|
function DeviceFind(DeviceClass,DeviceId:LongWord):PDevice;
Note | None documented |
---|
function DeviceFindByName(const Name:String):PDevice;
Note | None documented |
---|
function DeviceFindByDescription(const Description:String):PDevice;
Note | None documented |
---|
function DeviceEnumerate(DeviceClass:LongWord; Callback:TDeviceEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
function DeviceNotification(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Note | None documented |
---|
function NotifierAllocate(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer; Notification,Flags:LongWord):PNotifier;
Note | None documented |
---|
function NotifierRelease(Notifier:PNotifier):LongWord;
Note | None documented |
---|
function NotifierFind(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer):PNotifier;
Note | None documented |
---|
function NotifierNotify(Device:PDevice; Notification:LongWord):LongWord;
Note | None documented |
---|
Driver functions
function DriverCreate:PDriver;
Return | Pointer to new Driver entry or nil if driver could not be created |
---|
function DriverCreateEx(Size:LongWord):PDriver;
Size | Size in bytes to allocate for new driver (Including the driver entry) |
---|---|
Return | Pointer to new Driver entry or nil if driver could not be created |
function DriverDestroy(Driver:PDriver):LongWord;
Note | None documented |
---|
function DriverGetName(Driver:PDriver):String;
Note | None documented |
---|
function DriverSetName(Driver:PDriver; const Name:String):LongWord;
Note | None documented |
---|
function DriverRegister(Driver:PDriver):LongWord;
Note | None documented |
---|
function DriverDeregister(Driver:PDriver):LongWord;
Note | None documented |
---|
function DriverFind(DriverClass,DriverId:LongWord):PDriver;
Note | None documented |
---|
function DriverFindByName(const Name:String):PDriver;
Note | None documented |
---|
function DriverEnumerate(DriverClass:LongWord; Callback:TDriverEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
Clock device functions
function ClockDeviceStart(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceStop(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceRead(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceRead64(Clock:PClockDevice):Int64;
Note | None documented |
---|
function ClockDeviceWrite64(Clock:PClockDevice; const Value:Int64):LongWord;
Note | None documented |
---|
function ClockDeviceGetRate(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceCreate:PClockDevice;
Return | Pointer to new Clock entry or nil if Clock could not be created |
---|
function ClockDeviceCreateEx(Size:LongWord):PClockDevice;
Size | Size in bytes to allocate for new Clock (Including the Clock entry) |
---|---|
Return | Pointer to new Clock entry or nil if Clock could not be created |
function ClockDeviceDestroy(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceRegister(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceDeregister(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceFind(ClockId:LongWord):PClockDevice;
Note | None documented |
---|
function ClockDeviceFindByName(const Name:String):PClockDevice; inline;
Note | None documented |
---|
function ClockDeviceFindByDescription(const Description:String):PClockDevice; inline;
Note | None documented |
---|
function ClockDeviceEnumerate(Callback:TClockEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
function ClockDeviceNotification(Clock:PClockDevice; Callback:TClockNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Note | None documented |
---|
Timer device functions
function TimerDeviceStart(Timer:PTimerDevice):LongWord;
Timer | The Timer device to start |
---|---|
Return | ERROR_SUCCESS if completed or another error code on failure |
function TimerDeviceStop(Timer:PTimerDevice):LongWord;
Timer | The Timer device to stop |
---|---|
Return | ERROR_SUCCESS if completed or another error code on failure |
function TimerDeviceRead(Timer:PTimerDevice):LongWord;
Timer | The Timer device to read from |
---|---|
Return | The 32 bit current value of the timer or 0 on failure |
function TimerDeviceRead64(Timer:PTimerDevice):Int64;
Timer | The Timer device to read from |
---|---|
Return | The 64 bit current value of the timer or 0 on failure |
function TimerDeviceWait(Timer:PTimerDevice):LongWord;
Timer | The Timer device to wait for |
---|---|
Return | ERROR_SUCCESS if the interval expired or another error code on failure |
function TimerDeviceEvent(Timer:PTimerDevice; Flags:LongWord; Callback:TTimerCallback; Data:Pointer):LongWord;
Timer | The Timer device to schedule the callback for |
---|---|
Callback | The function to be called when the interval expires |
Data | A pointer to be pass to the function when the interval expires (Optional) |
Return | ERROR_SUCCESS if the callback was scheduled successfully or another error code on failure |
function TimerDeviceCancel(Timer:PTimerDevice):LongWord;
Timer | The Timer device to cancel the callback for |
---|---|
Return | ERROR_SUCCESS if the callback was cancelled successfully or another error code on failure |
function TimerDeviceGetRate(Timer:PTimerDevice):LongWord;
Timer | The Timer device to get the rate from |
---|---|
Return | The current clock rate in Hz or 0 on failure |
function TimerDeviceSetRate(Timer:PTimerDevice; Rate:LongWord):LongWord;
Timer | The Timer device to set the rate for |
---|---|
Rate | The clock rate in Hz to set |
Return | ERROR_SUCCESS if the clock rate was set or another error code on failure |
function TimerDeviceGetInterval(Timer:PTimerDevice):LongWord;
Timer | The Timer device to get the interval from |
---|---|
Return | The current interval in ticks or 0 on failure (or not set) |
Note | The tick rate is determined by the clock rate |
function TimerDeviceSetInterval(Timer:PTimerDevice; Interval:LongWord):LongWord;
Timer | The Timer device to set the interval for |
---|---|
Interval | The interval in ticks to set |
Return | ERROR_SUCCESS if the interval was set or another error code on failure |
Note | The tick rate is determined by the clock rate |
function TimerDeviceProperties(Timer:PTimerDevice; Properties:PTimerProperties):LongWord;
Timer | The Timer device to get properties from |
---|---|
Properties | Pointer to a TTimerProperties structure to fill in |
Return | ERROR_SUCCESS if completed or another error code on failure |
function TimerDeviceCreate:PTimerDevice;
Return | Pointer to new Timer entry or nil if Timer could not be created |
---|
function TimerDeviceCreateEx(Size:LongWord):PTimerDevice;
Size | Size in bytes to allocate for new Timer (Including the Timer entry) |
---|---|
Return | Pointer to new Timer entry or nil if Timer could not be created |
function TimerDeviceDestroy(Timer:PTimerDevice):LongWord;
Timer | The timer device to destroy |
---|---|
Return | ERROR_SUCCESS if completed or another error code on failure |
function TimerDeviceRegister(Timer:PTimerDevice):LongWord;
Timer | The timer device to register |
---|---|
Return | ERROR_SUCCESS if completed or another error code on failure |
function TimerDeviceDeregister(Timer:PTimerDevice):LongWord;
Timer | The timer device to deregister |
---|---|
Return | ERROR_SUCCESS if completed or another error code on failure |
function TimerDeviceFind(TimerId:LongWord):PTimerDevice;
TimerId | The ID number of the timer to find |
---|---|
Return | Pointer to timer device entry or nil if not found |
function TimerDeviceFindByName(const Name:String):PTimerDevice; inline;
Name | The name of the timer to find (eg Timer0) |
---|---|
Return | Pointer to timer device entry or nil if not found |
function TimerDeviceFindByDescription(const Description:String):PTimerDevice; inline;
Description | The description of the timer to find (eg BCM2836 ARM Timer) |
---|---|
Return | Pointer to timer device entry or nil if not found |
function TimerDeviceEnumerate(Callback:TTimerEnumerate; Data:Pointer):LongWord;
Callback | The callback function to call for each timer in the table |
---|---|
Data | A private data pointer to pass to callback for each timer in the table |
Return | ERROR_SUCCESS if completed or another error code on failure |
function TimerDeviceNotification(Timer:PTimerDevice; Callback:TTimerNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Timer | The timer device to notify changes for (Optional, pass nil for all timers) |
---|---|
Callback | The function to call when a notification event occurs |
Data | A private data pointer to pass to callback when a notification event occurs |
Notification | The events to register for notification of (eg DEVICE_NOTIFICATION_REGISTER) |
Flags | The flags to control the notification (eg NOTIFIER_FLAG_WORKER) |
Random device functions
function RandomDeviceStart(Random:PRandomDevice):LongWord;
Note | None documented |
---|
function RandomDeviceStop(Random:PRandomDevice):LongWord;
Note | None documented |
---|
function RandomDeviceSeed(Random:PRandomDevice; Seed:LongWord):LongWord;
Note | None documented |
---|
function RandomDeviceReadByte(Random:PRandomDevice):Byte;
Note | None documented |
---|
function RandomDeviceReadWord(Random:PRandomDevice):Word;
Note | None documented |
---|
function RandomDeviceReadLongWord(Random:PRandomDevice):LongWord;
Note | None documented |
---|
function RandomDeviceReadQuadWord(Random:PRandomDevice):Int64;
Note | None documented |
---|
function RandomDeviceReadExtended(Random:PRandomDevice):Extended;
Note | None documented |
---|
function RandomDeviceCreate:PRandomDevice;
Return | Pointer to new Random entry or nil if Random could not be created |
---|
function RandomDeviceCreateEx(Size:LongWord):PRandomDevice;
Size | Size in bytes to allocate for new Random (Including the Random entry) |
---|---|
Return | Pointer to new Random entry or nil if Random could not be created |
function RandomDeviceDestroy(Random:PRandomDevice):LongWord;
Note | None documented |
---|
function RandomDeviceRegister(Random:PRandomDevice):LongWord;
Note | None documented |
---|
function RandomDeviceDeregister(Random:PRandomDevice):LongWord;
Note | None documented |
---|
function RandomDeviceFind(RandomId:LongWord):PRandomDevice;
Note | None documented |
---|
function RandomDeviceFindByName(const Name:String):PRandomDevice; inline;
Note | None documented |
---|
function RandomDeviceFindByDescription(const Description:String):PRandomDevice; inline;
Note | None documented |
---|
function RandomDeviceEnumerate(Callback:TRandomEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
function RandomDeviceNotification(Random:PRandomDevice; Callback:TRandomNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Note | None documented |
---|
Mailbox device functions
function MailboxDeviceStart(Mailbox:PMailboxDevice):LongWord;
Note | None documented |
---|
function MailboxDeviceStop(Mailbox:PMailboxDevice):LongWord;
Note | None documented |
---|
function MailboxDeviceReceive(Mailbox:PMailboxDevice; Channel:LongWord):LongWord;
Note | None documented |
---|
function MailboxDeviceSend(Mailbox:PMailboxDevice; Channel,Data:LongWord):LongWord;
Note | None documented |
---|
function MailboxDeviceCall(Mailbox:PMailboxDevice; Channel,Data:LongWord; var Response:LongWord):LongWord;
Note | None documented |
---|
function MailboxDeviceGetTimeout(Mailbox:PMailboxDevice):LongWord;
Note | None documented |
---|
function MailboxDeviceSetTimeout(Mailbox:PMailboxDevice; Timeout:LongWord):LongWord;
Note | None documented |
---|
function MailboxDeviceCreate:PMailboxDevice;
Return | Pointer to new Mailbox entry or nil if Mailbox could not be created |
---|
function MailboxDeviceCreateEx(Size:LongWord):PMailboxDevice;
Size | Size in bytes to allocate for new Mailbox (Including the Mailbox entry) |
---|---|
Return | Pointer to new Mailbox entry or nil if Mailbox could not be created |
function MailboxDeviceDestroy(Mailbox:PMailboxDevice):LongWord;
Note | None documented |
---|
function MailboxDeviceRegister(Mailbox:PMailboxDevice):LongWord;
Note | None documented |
---|
function MailboxDeviceDeregister(Mailbox:PMailboxDevice):LongWord;
Note | None documented |
---|
function MailboxDeviceFind(MailboxId:LongWord):PMailboxDevice;
Note | None documented |
---|
function MailboxDeviceFindByName(const Name:String):PMailboxDevice; inline;
Note | None documented |
---|
function MailboxDeviceFindByDescription(const Description:String):PMailboxDevice; inline;
Note | None documented |
---|
function MailboxDeviceEnumerate(Callback:TMailboxEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
function MailboxDeviceNotification(Mailbox:PMailboxDevice; Callback:TMailboxNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Note | None documented |
---|
Watchdog device functions
function WatchdogDeviceStart(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceStop(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceRefresh(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceGetRemain(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceGetTimeout(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceSetTimeout(Watchdog:PWatchdogDevice; Timeout:LongWord):LongWord;
Note | None documented |
---|
function WatchdogDeviceCreate:PWatchdogDevice;
Return | Pointer to new Watchdog entry or nil if Watchdog could not be created |
---|
function WatchdogDeviceCreateEx(Size:LongWord):PWatchdogDevice;
Size | Size in bytes to allocate for new Watchdog (Including the Watchdog entry) |
---|---|
Return | Pointer to new Watchdog entry or nil if Watchdog could not be created |
function WatchdogDeviceDestroy(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceRegister(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceDeregister(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceFind(WatchdogId:LongWord):PWatchdogDevice;
Note | None documented |
---|
function WatchdogDeviceFindByName(const Name:String):PWatchdogDevice; inline;
Note | None documented |
---|
function WatchdogDeviceFindByDescription(const Description:String):PWatchdogDevice; inline;
Note | None documented |
---|
function WatchdogDeviceEnumerate(Callback:TWatchdogEnumerate; Data:Pointer):LongWord;
Note | None documented |
---|
function WatchdogDeviceNotification(Watchdog:PWatchdogDevice; Callback:TWatchdogNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Note | None documented |
---|
RTL clock functions
function SysClockRead:LongWord;
Note | None documented |
---|
function SysClockRead64:Int64;
Note | None documented |
---|
RTL timer (counter) functions
function SysTimerAvailable:Boolean;
Note | None documented |
---|
function SysTimerRead:LongWord;
Return | The 32 bit current value of the counter or 0 on failure |
---|
function SysTimerRead64:Int64;
Return | The 64 bit current value of the counter or 0 on failure |
---|
function SysTimerWait:LongWord;
Return | ERROR_SUCCESS if the interval expired or another error code on failure |
---|
function SysTimerEvent(Callback:TTimerCallback; Data:Pointer):LongWord;
Callback | The function to be called when the interval expires |
---|---|
Data | A pointer to be pass to the function when the interval expires (Optional) |
Return | ERROR_SUCCESS if the callback was scheduled successfully or another error code on failure |
function SysTimerCancel:LongWord;
Return | ERROR_SUCCESS if the callback was cancelled successfully or another error code on failure |
---|
function SysTimerGetRate:LongWord;
Return | The current clock rate in Hz or 0 on failure |
---|
function SysTimerSetRate(Rate:LongWord):LongWord;
Rate | The clock rate in Hz to set |
---|---|
Return | ERROR_SUCCESS if the clock rate was set or another error code on failure |
function SysTimerGetInterval:LongWord;
Return | The current interval in ticks or 0 on failure (or not set) |
---|---|
Note | The tick rate is determined by the clock rate |
function SysTimerSetInterval(Interval:LongWord):LongWord;
Interval | The interval in ticks to set |
---|---|
Return | ERROR_SUCCESS if the interval was set or another error code on failure |
Note | The tick rate is determined by the clock rate |
RTL random functions
function SysRandomAvailable:Boolean;
Note | None documented |
---|
procedure SysRandomize;
Note | None documented |
---|
procedure SysRandomSeed(Seed:LongWord);
Note | None documented |
---|
function SysRandomReadLongInt(Limit:LongInt):LongInt;
Note | None documented |
---|
function SysRandomReadInt64(Limit:Int64):Int64;
Note | None documented |
---|
function SysRandomReadExtended:Extended;
Note | None documented |
---|
RTL watchdog functions
function SysWatchdogAvailable:Boolean;
Note | None documented |
---|
function SysWatchdogStart(Milliseconds:LongWord):LongWord;
Note | None documented |
---|
function SysWatchdogStop:LongWord;
Note | None documented |
---|
function SysWatchdogRefresh(Milliseconds:LongWord):LongWord;
Note | None documented |
---|
Device helper functions
function DeviceGetCount:LongWord; inline;
Note | None documented |
---|
function DeviceCheck(Device:PDevice):PDevice;
Note | None documented |
---|
function NotifierGetCount:LongWord; inline;
Note | None documented |
---|
function NotifierCheck(Notifier:PNotifier):PNotifier;
Note | None documented |
---|
function DeviceBusToString(DeviceBus:LongWord):String;
Note | None documented |
---|
function DeviceStateToString(DeviceState:LongWord):String;
Note | None documented |
---|
function DeviceClassToString(DeviceClass:LongWord):String;
Note | None documented |
---|
function NotificationToString(Notification:LongWord):String;
Note | None documented |
---|
procedure DeviceLog(Level:LongWord; Device:PDevice; const AText:String);
Note | None documented |
---|
procedure DeviceLogInfo(Device:PDevice; const AText:String);
Note | None documented |
---|
procedure DeviceLogError(Device:PDevice; const AText:String);
Note | None documented |
---|
procedure DeviceLogDebug(Device:PDevice; const AText:String);
Note | None documented |
---|
Driver helper functions
function DriverGetCount:LongWord; inline;
Note | None documented |
---|
function DriverCheck(Driver:PDriver):PDriver;
Note | None documented |
---|
function DriverStateToString(DriverState:LongWord):String;
Note | None documented |
---|
function DriverClassToString(DriverClass:LongWord):String;
Note | None documented |
---|
Clock device helper functions
function ClockDeviceGetCount:LongWord; inline;
Note | None documented |
---|
function ClockDeviceGetDefault:PClockDevice; inline;
Note | None documented |
---|
function ClockDeviceSetDefault(Clock:PClockDevice):LongWord;
Note | None documented |
---|
function ClockDeviceCheck(Clock:PClockDevice):PClockDevice;
Note | None documented |
---|
Timer device helper functions
function TimerDeviceGetCount:LongWord; inline;
Note | None documented |
---|
function TimerDeviceGetDefault:PTimerDevice; inline;
Note | None documented |
---|
function TimerDeviceSetDefault(Timer:PTimerDevice):LongWord;
Note | None documented |
---|
function TimerDeviceCheck(Timer:PTimerDevice):PTimerDevice;
Note | None documented |
---|
function TimerDeviceCreateWaiter(Timer:PTimerDevice; Callback:TTimerCallback; Data:Pointer):PTimerWaiter;
Note | Waiter must be registered by calling TimerDeviceRegisterWaiter. Caller must hold the Timer device lock. |
---|
function TimerDeviceDestroyWaiter(Timer:PTimerDevice; Waiter:PTimerWaiter):LongWord;
Note | Waiter must be deregistered first by calling TimerDeviceDeregisterWaiter. Caller must hold the Timer device lock. |
---|
function TimerDeviceRegisterWaiter(Timer:PTimerDevice; Waiter:PTimerWaiter):LongWord;
Note | Waiter must be created by calling TimerDeviceCreateWaiter. Caller must hold the Timer device lock. |
---|
function TimerDeviceDeregisterWaiter(Timer:PTimerDevice; Waiter:PTimerWaiter):LongWord;
Note | Waiter must be destroyed by calling TimerDeviceDestroyWaiter. Caller must hold the Timer device lock. |
---|
Random device helper functions
function RandomDeviceGetCount:LongWord; inline;
Note | None documented |
---|
function RandomDeviceGetDefault:PRandomDevice; inline;
Note | None documented |
---|
function RandomDeviceSetDefault(Random:PRandomDevice):LongWord;
Note | None documented |
---|
function RandomDeviceCheck(Random:PRandomDevice):PRandomDevice;
Note | None documented |
---|
Mailbox device helper functions
function MailboxDeviceGetCount:LongWord; inline;
Note | None documented |
---|
function MailboxDeviceGetDefault:PMailboxDevice; inline;
Note | None documented |
---|
function MailboxDeviceSetDefault(Mailbox:PMailboxDevice):LongWord;
Note | None documented |
---|
function MailboxDeviceCheck(Mailbox:PMailboxDevice):PMailboxDevice;
Note | None documented |
---|
Watchdog device helper functions
function WatchdogDeviceGetCount:LongWord; inline;
Note | None documented |
---|
function WatchdogDeviceGetDefault:PWatchdogDevice; inline;
Note | None documented |
---|
function WatchdogDeviceSetDefault(Watchdog:PWatchdogDevice):LongWord;
Note | None documented |
---|
function WatchdogDeviceCheck(Watchdog:PWatchdogDevice):PWatchdogDevice;
Note | None documented |
---|
Return to Unit Reference