Unit Devices

From Ultibo.org
Revision as of 23:33, 6 October 2016 by Ultibo (Talk | contribs)

Jump to: navigation, search

Return to Unit Reference


Description


To be documented

Constants


To be documented

Type definitions


To be documented

Public variables


To be documented

Function declarations



Initialization functions

procedure DevicesInit;
Description: Initialize the Devices unit and device, notifier and driver tables
Note Called only during system startup


Device functions

function DeviceCreate:PDevice;
Description: Create a new Device entry
Return Pointer to new Device entry or nil if device could not be created


function DeviceCreateEx(Size:LongWord):PDevice;
Description: Create a new Device entry
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;
Description: Destroy an existing Device entry
Note None documented


function DeviceGetName(Device:PDevice):String;
Description: Get the name of the supplied Device
Note None documented


function DeviceSetName(Device:PDevice; const Name:String):LongWord;
Description: Set the name of the supplied Device
Note None documented


function DeviceGetDescription(Device:PDevice):String;
Description: Get the description of the supplied Device
Note None documented


function DeviceSetDescription(Device:PDevice; const Description:String):LongWord;
Description: Set the description of the supplied Device
Note None documented


function DeviceRegister(Device:PDevice):LongWord;
Description: Register a new Device in the Device table
Note None documented


function DeviceDeregister(Device:PDevice):LongWord;
Description: Deregister a Device from the Device table
Note None documented


function DeviceFind(DeviceClass,DeviceId:LongWord):PDevice;
Description: To be documented
Note None documented


function DeviceFindByName(const Name:String):PDevice;
Description: To be documented
Note None documented


function DeviceFindByDescription(const Description:String):PDevice;
Description: To be documented
Note None documented


function DeviceEnumerate(DeviceClass:LongWord; Callback:TDeviceEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function DeviceNotification(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


function NotifierAllocate(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer; Notification,Flags:LongWord):PNotifier;
Description: Create and Register a new Notifier entry in the Notifier table
Note None documented


function NotifierRelease(Notifier:PNotifier):LongWord;
Description: Deregister and Destroy a Notifier from the Notifier table
Note None documented


function NotifierFind(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer):PNotifier;
Description: To be documented
Note None documented


function NotifierNotify(Device:PDevice; Notification:LongWord):LongWord;
Description: To be documented
Note None documented


Driver functions

function DriverCreate:PDriver;
Description: Create a new Driver entry
Return Pointer to new Driver entry or nil if driver could not be created


function DriverCreateEx(Size:LongWord):PDriver;
Description: Create a new Driver entry
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;
Description: Destroy an existing Driver entry
Note None documented


function DriverGetName(Driver:PDriver):String;
Description: Get the name of the supplied Driver
Note None documented


function DriverSetName(Driver:PDriver; const Name:String):LongWord;
Description: Set the name of the supplied Driver
Note None documented


function DriverRegister(Driver:PDriver):LongWord;
Description: Register a new Driver in the Driver table
Note None documented


function DriverDeregister(Driver:PDriver):LongWord;
Description: Deregister a Driver from the Driver table
Note None documented


function DriverFind(DriverClass,DriverId:LongWord):PDriver;
Description: To be documented
Note None documented


function DriverFindByName(const Name:String):PDriver;
Description: To be documented
Note None documented


function DriverEnumerate(DriverClass:LongWord; Callback:TDriverEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


Clock device functions

function ClockDeviceStart(Clock:PClockDevice):LongWord;
Description: To be documented
Note None documented


function ClockDeviceStop(Clock:PClockDevice):LongWord;
Description: To be documented
Note None documented


function ClockDeviceRead(Clock:PClockDevice):LongWord;
Description: To be documented
Note None documented


function ClockDeviceRead64(Clock:PClockDevice):Int64;
Description: To be documented
Note None documented


function ClockDeviceWrite64(Clock:PClockDevice; const Value:Int64):LongWord;
Description: To be documented
Note None documented


function ClockDeviceGetRate(Clock:PClockDevice):LongWord;
Description: To be documented
Note None documented


function ClockDeviceCreate:PClockDevice;
Description: Create a new Clock entry
Return Pointer to new Clock entry or nil if Clock could not be created


function ClockDeviceCreateEx(Size:LongWord):PClockDevice;
Description: Create a new Clock entry
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;
Description: Destroy an existing Clock entry
Note None documented


function ClockDeviceRegister(Clock:PClockDevice):LongWord;
Description: Register a new Clock in the Clock table
Note None documented


function ClockDeviceDeregister(Clock:PClockDevice):LongWord;
Description: Deregister a Clock from the Clock table
Note None documented


function ClockDeviceFind(ClockId:LongWord):PClockDevice;
Description: To be documented
Note None documented


function ClockDeviceFindByName(const Name:String):PClockDevice; inline;
Description: To be documented
Note None documented


function ClockDeviceFindByDescription(const Description:String):PClockDevice; inline;
Description: To be documented
Note None documented


function ClockDeviceEnumerate(Callback:TClockEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function ClockDeviceNotification(Clock:PClockDevice; Callback:TClockNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


Timer device functions

function TimerDeviceStart(Timer:PTimerDevice):LongWord;
Description: Start the clock and counter of the specified Timer device
Timer The Timer device to start
Return ERROR_SUCCESS if completed or another error code on failure


function TimerDeviceStop(Timer:PTimerDevice):LongWord;
Description: Stop the clock and counter of the specified Timer device
Timer The Timer device to stop
Return ERROR_SUCCESS if completed or another error code on failure


function TimerDeviceRead(Timer:PTimerDevice):LongWord;
Description: Read the current value of the specified Timer device
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;
Description: Read the current value of the specified Timer device
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;
Description: Wait for the current interval to expire on the specified Timer device
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;
Description: Schedule a function to be called when the current interval expires on the specified Timer device
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;
Description: Cancel a previously scheduled event callback function on the specified Timer device
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;
Description: To be documented
Note None documented


function TimerDeviceSetRate(Timer:PTimerDevice; Rate:LongWord):LongWord;
Description: To be documented
Note None documented


function TimerDeviceGetInterval(Timer:PTimerDevice):LongWord;
Description: To be documented
Note None documented


function TimerDeviceSetInterval(Timer:PTimerDevice; Interval:LongWord):LongWord;
Description: To be documented
Note None documented


function TimerDeviceProperties(Timer:PTimerDevice; Properties:PTimerProperties):LongWord;
Description: To be documented
Note None documented


function TimerDeviceCreate:PTimerDevice;
Description: Create a new Timer entry
Return Pointer to new Timer entry or nil if Timer could not be created


function TimerDeviceCreateEx(Size:LongWord):PTimerDevice;
Description: Create a new Timer entry
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;
Description: Destroy an existing Timer entry
Note None documented


function TimerDeviceRegister(Timer:PTimerDevice):LongWord;
Description: Register a new Timer in the Timer table
Note None documented


function TimerDeviceDeregister(Timer:PTimerDevice):LongWord;
Description: Deregister a Timer from the Timer table
Note None documented


function TimerDeviceFind(TimerId:LongWord):PTimerDevice;
Description: To be documented
Note None documented


function TimerDeviceFindByName(const Name:String):PTimerDevice; inline;
Description: To be documented
Note None documented


function TimerDeviceFindByDescription(const Description:String):PTimerDevice; inline;
Description: To be documented
Note None documented


function TimerDeviceEnumerate(Callback:TTimerEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function TimerDeviceNotification(Timer:PTimerDevice; Callback:TTimerNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


Random device functions

function RandomDeviceStart(Random:PRandomDevice):LongWord;
Description: To be documented
Note None documented


function RandomDeviceStop(Random:PRandomDevice):LongWord;
Description: To be documented
Note None documented


function RandomDeviceSeed(Random:PRandomDevice; Seed:LongWord):LongWord;
Description: To be documented
Note None documented


function RandomDeviceReadByte(Random:PRandomDevice):Byte;
Description: To be documented
Note None documented


function RandomDeviceReadWord(Random:PRandomDevice):Word;
Description: To be documented
Note None documented


function RandomDeviceReadLongWord(Random:PRandomDevice):LongWord;
Description: To be documented
Note None documented


function RandomDeviceReadQuadWord(Random:PRandomDevice):Int64;
Description: To be documented
Note None documented


function RandomDeviceReadExtended(Random:PRandomDevice):Extended;
Description: To be documented
Note None documented


function RandomDeviceCreate:PRandomDevice;
Description: Create a new Random entry
Return Pointer to new Random entry or nil if Random could not be created


function RandomDeviceCreateEx(Size:LongWord):PRandomDevice;
Description: Create a new Random entry
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;
Description: Destroy an existing Random entry
Note None documented


function RandomDeviceRegister(Random:PRandomDevice):LongWord;
Description: Register a new Random in the Random table
Note None documented


function RandomDeviceDeregister(Random:PRandomDevice):LongWord;
Description: Deregister a Random from the Random table
Note None documented


function RandomDeviceFind(RandomId:LongWord):PRandomDevice;
Description: To be documented
Note None documented


function RandomDeviceFindByName(const Name:String):PRandomDevice; inline;
Description: To be documented
Note None documented


function RandomDeviceFindByDescription(const Description:String):PRandomDevice; inline;
Description: To be documented
Note None documented


function RandomDeviceEnumerate(Callback:TRandomEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function RandomDeviceNotification(Random:PRandomDevice; Callback:TRandomNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


Mailbox device functions

function MailboxDeviceStart(Mailbox:PMailboxDevice):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceStop(Mailbox:PMailboxDevice):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceReceive(Mailbox:PMailboxDevice; Channel:LongWord):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceSend(Mailbox:PMailboxDevice; Channel,Data:LongWord):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceCall(Mailbox:PMailboxDevice; Channel,Data:LongWord; var Response:LongWord):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceGetTimeout(Mailbox:PMailboxDevice):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceSetTimeout(Mailbox:PMailboxDevice; Timeout:LongWord):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceCreate:PMailboxDevice;
Description: Create a new Mailbox entry
Return Pointer to new Mailbox entry or nil if Mailbox could not be created


function MailboxDeviceCreateEx(Size:LongWord):PMailboxDevice;
Description: Create a new Mailbox entry
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;
Description: Destroy an existing Mailbox entry
Note None documented


function MailboxDeviceRegister(Mailbox:PMailboxDevice):LongWord;
Description: Register a new Mailbox in the Mailbox table
Note None documented


function MailboxDeviceDeregister(Mailbox:PMailboxDevice):LongWord;
Description: Deregister a Mailbox from the Mailbox table
Note None documented


function MailboxDeviceFind(MailboxId:LongWord):PMailboxDevice;
Description: To be documented
Note None documented


function MailboxDeviceFindByName(const Name:String):PMailboxDevice; inline;
Description: To be documented
Note None documented


function MailboxDeviceFindByDescription(const Description:String):PMailboxDevice; inline;
Description: To be documented
Note None documented


function MailboxDeviceEnumerate(Callback:TMailboxEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function MailboxDeviceNotification(Mailbox:PMailboxDevice; Callback:TMailboxNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


Watchdog device functions

function WatchdogDeviceStart(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented
Note None documented


function WatchdogDeviceStop(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented
Note None documented


function WatchdogDeviceRefresh(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented
Note None documented


function WatchdogDeviceGetRemain(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented
Note None documented


function WatchdogDeviceGetTimeout(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented
Note None documented


function WatchdogDeviceSetTimeout(Watchdog:PWatchdogDevice; Timeout:LongWord):LongWord;
Description: To be documented
Note None documented


function WatchdogDeviceCreate:PWatchdogDevice;
Description: Create a new Watchdog entry
Return Pointer to new Watchdog entry or nil if Watchdog could not be created


function WatchdogDeviceCreateEx(Size:LongWord):PWatchdogDevice;
Description: Create a new Watchdog entry
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;
Description: Destroy an existing Watchdog entry
Note None documented


function WatchdogDeviceRegister(Watchdog:PWatchdogDevice):LongWord;
Description: Register a new Watchdog in the Watchdog table
Note None documented


function WatchdogDeviceDeregister(Watchdog:PWatchdogDevice):LongWord;
Description: Deregister a Watchdog from the Watchdog table
Note None documented


function WatchdogDeviceFind(WatchdogId:LongWord):PWatchdogDevice;
Description: To be documented
Note None documented


function WatchdogDeviceFindByName(const Name:String):PWatchdogDevice; inline;
Description: To be documented
Note None documented


function WatchdogDeviceFindByDescription(const Description:String):PWatchdogDevice; inline;
Description: To be documented
Note None documented


function WatchdogDeviceEnumerate(Callback:TWatchdogEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function WatchdogDeviceNotification(Watchdog:PWatchdogDevice; Callback:TWatchdogNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


RTL clock functions

function SysClockRead:LongWord;
Description: To be documented
Note None documented


function SysClockRead64:Int64;
Description: To be documented
Note None documented


RTL timer (counter) functions

function SysTimerAvailable:Boolean;
Description: Check if a timer device is available
Note None documented


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


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


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


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


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


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


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


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


RTL random functions

function SysRandomAvailable:Boolean;
Description: Check if a random (RNG) device is available
Note None documented


procedure SysRandomize;
Description: To be documented
Note None documented


procedure SysRandomSeed(Seed:LongWord);
Description: To be documented
Note None documented


function SysRandomReadLongInt(Limit:LongInt):LongInt;
Description: To be documented
Note None documented


function SysRandomReadInt64(Limit:Int64):Int64;
Description: To be documented
Note None documented


function SysRandomReadExtended:Extended;
Description: To be documented
Note None documented


RTL watchdog functions

function SysWatchdogAvailable:Boolean;
Description: Check if a watchdog timer device is available
Note None documented


function SysWatchdogStart(Milliseconds:LongWord):LongWord; 
Description: To be documented
Note None documented


function SysWatchdogStop:LongWord;
Description: To be documented
Note None documented


function SysWatchdogRefresh(Milliseconds:LongWord):LongWord;
Description: To be documented
Note None documented


Device helper functions

function DeviceGetCount:LongWord; inline;
Description: Get the current device count
Note None documented


function DeviceCheck(Device:PDevice):PDevice;
Description: Check if the supplied Device is in the device table
Note None documented


function NotifierGetCount:LongWord; inline;
Description: Get the current notifier count
Note None documented


function NotifierCheck(Notifier:PNotifier):PNotifier;
Description: Check if the supplied Notifier is in the notifier table
Note None documented


function DeviceBusToString(DeviceBus:LongWord):String;
Description: To be documented
Note None documented


function DeviceStateToString(DeviceState:LongWord):String;
Description: To be documented
Note None documented


function DeviceClassToString(DeviceClass:LongWord):String;
Description: To be documented
Note None documented


function NotificationToString(Notification:LongWord):String;
Description: To be documented
Note None documented


procedure DeviceLog(Level:LongWord; Device:PDevice; const AText:String);
Description: To be documented
Note None documented


procedure DeviceLogInfo(Device:PDevice; const AText:String);
Description: To be documented
Note None documented


procedure DeviceLogError(Device:PDevice; const AText:String);
Description: To be documented
Note None documented


procedure DeviceLogDebug(Device:PDevice; const AText:String);
Description: To be documented
Note None documented


Driver helper functions

function DriverGetCount:LongWord; inline;
Description: Get the current driver count
Note None documented


function DriverCheck(Driver:PDriver):PDriver;
Description: Check if the supplied Driver is in the driver table
Note None documented


function DriverStateToString(DriverState:LongWord):String;
Description: To be documented
Note None documented


function DriverClassToString(DriverClass:LongWord):String;
Description: To be documented
Note None documented


Clock device helper functions

function ClockDeviceGetCount:LongWord; inline;
Description: Get the current clock device count
Note None documented


function ClockDeviceGetDefault:PClockDevice; inline;
Description: Get the current default clock device
Note None documented


function ClockDeviceSetDefault(Clock:PClockDevice):LongWord;
Description: Set the current default clock device
Note None documented


function ClockDeviceCheck(Clock:PClockDevice):PClockDevice;
Description: Check if the supplied Clock is in the Clock table
Note None documented


Timer device helper functions

function TimerDeviceGetCount:LongWord; inline;
Description: Get the current timer device count
Note None documented


function TimerDeviceGetDefault:PTimerDevice; inline;
Description: Get the current default timer device
Note None documented


function TimerDeviceSetDefault(Timer:PTimerDevice):LongWord; 
Description: Set the current default timer device
Note None documented


function TimerDeviceCheck(Timer:PTimerDevice):PTimerDevice;
Description: Check if the supplied Timer is in the Timer table
Note None documented


Random device helper functions

function RandomDeviceGetCount:LongWord; inline;
Description: Get the current random device count
Note None documented


function RandomDeviceGetDefault:PRandomDevice; inline;
Description: Get the current default random device
Note None documented


function RandomDeviceSetDefault(Random:PRandomDevice):LongWord;
Description: Set the current default random device
Note None documented


function RandomDeviceCheck(Random:PRandomDevice):PRandomDevice;
Description: Check if the supplied Random is in the Random table
Note None documented


Mailbox device helper functions

function MailboxDeviceGetCount:LongWord; inline;
Description: Get the current mailbox device count
Note None documented


function MailboxDeviceGetDefault:PMailboxDevice; inline;
Description: Get the current default mailbox device
Note None documented


function MailboxDeviceSetDefault(Mailbox:PMailboxDevice):LongWord; 
Description: Set the current default mailbox device
Note None documented


function MailboxDeviceCheck(Mailbox:PMailboxDevice):PMailboxDevice;
Description: Check if the supplied Mailbox is in the Mailbox table
Note None documented


Watchdog device helper functions

function WatchdogDeviceGetCount:LongWord; inline;
Description: Get the current watchdog device count
Note None documented


function WatchdogDeviceGetDefault:PWatchdogDevice; inline;
Description: Get the current default watchdog device
Note None documented


function WatchdogDeviceSetDefault(Watchdog:PWatchdogDevice):LongWord;
Description: Set the current default watchdog device
Note None documented


function WatchdogDeviceCheck(Watchdog:PWatchdogDevice):PWatchdogDevice;
Description: Check if the supplied Watchdog is in the Watchdog table
Note None documented


Return to Unit Reference