Difference between revisions of "Unit Devices"

From Ultibo.org
Jump to: navigation, search
Line 2,233: Line 2,233:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| Called only during system startup
 
| Called only during system startup
 
|-
 
|-
Line 2,248: Line 2,248:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Device entry or nil if device could not be created
 
| Pointer to new Device entry or nil if device could not be created
 
|-
 
|-
Line 2,260: Line 2,260:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new device (Including the device entry)
 
| Size in bytes to allocate for new device (Including the device entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Device entry or nil if device could not be created
 
| Pointer to new Device entry or nil if device could not be created
 
|-
 
|-
Line 2,275: Line 2,275:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to destroy
 
| The device to destroy
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,290: Line 2,290:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to get the name from
 
| The device to get the name from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The name of the device or a blank string on error
 
| The name of the device or a blank string on error
 
|-
 
|-
Line 2,305: Line 2,305:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to set the name for
 
| The device to set the name for
 
|-
 
|-
! '''Name'''
+
! Name
 
| The device name to set
 
| The device name to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,323: Line 2,323:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to get the description from
 
| The device to get the description from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The description of the device or a blank string on error
 
| The description of the device or a blank string on error
 
|-
 
|-
Line 2,338: Line 2,338:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to set the description for
 
| The device to set the description for
 
|-
 
|-
! '''Description'''
+
! Description
 
| The device description to set
 
| The device description to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,356: Line 2,356:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to register
 
| The device to register
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,371: Line 2,371:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to deregister
 
| The device to deregister
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,386: Line 2,386:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''DeviceClass'''
+
! DeviceClass
 
| The class of the device to find (DEVICE_CLASS_ANY for all classes)
 
| The class of the device to find (DEVICE_CLASS_ANY for all classes)
 
|-
 
|-
! '''DeviceId'''
+
! DeviceId
 
| The ID number of the device to find
 
| The ID number of the device to find
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to device entry or nil if not found
 
| Pointer to device entry or nil if not found
 
|-
 
|-
Line 2,404: Line 2,404:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''DeviceData'''
+
! DeviceData
 
| The value to match against the DeviceData property
 
| The value to match against the DeviceData property
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to device entry or nil if not found
 
| Pointer to device entry or nil if not found
 
|-
 
|-
Line 2,419: Line 2,419:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Name'''
+
! Name
 
| The name of the device to find (eg Timer0)
 
| The name of the device to find (eg Timer0)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to device entry or nil if not found
 
| Pointer to device entry or nil if not found
 
|-
 
|-
Line 2,434: Line 2,434:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Description'''
+
! Description
 
| The description of the device to find (eg BCM2836 ARM Timer)
 
| The description of the device to find (eg BCM2836 ARM Timer)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to device entry or nil if not found
 
| Pointer to device entry or nil if not found
 
|-
 
|-
Line 2,449: Line 2,449:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''DeviceClass'''
+
! DeviceClass
 
| The class of device to enumerate (DEVICE_CLASS_ANY for all classes)
 
| The class of device to enumerate (DEVICE_CLASS_ANY for all classes)
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The callback function to call for each device in the table
 
| The callback function to call for each device in the table
 
|-
 
|-
! '''Data'''
+
! Data
 
| A private data pointer to pass to callback for each device in the table
 
| A private data pointer to pass to callback for each device in the table
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,470: Line 2,470:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Device'''
+
! Device
 
| The device to notify changes for (Optional, pass nil for all devices)
 
| The device to notify changes for (Optional, pass nil for all devices)
 
|-
 
|-
! '''DeviceClass'''
+
! DeviceClass
 
| The class of device to notify changes for (DEVICE_CLASS_ANY for all classes)
 
| The class of device to notify changes for (DEVICE_CLASS_ANY for all classes)
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The function to call when a notification event occurs
 
| The function to call when a notification event occurs
 
|-
 
|-
! '''Data'''
+
! Data
 
| A private data pointer to pass to callback when a notification event occurs
 
| A private data pointer to pass to callback when a notification event occurs
 
|-
 
|-
! '''Notification'''
+
! Notification
 
| The events to register for notification of (eg DEVICE_NOTIFICATION_REGISTER)
 
| The events to register for notification of (eg DEVICE_NOTIFICATION_REGISTER)
 
|-
 
|-
! '''Flags'''
+
! Flags
 
| The flags to control the notification (eg NOTIFIER_FLAG_WORKER)
 
| The flags to control the notification (eg NOTIFIER_FLAG_WORKER)
 
|-
 
|-
Line 2,497: Line 2,497:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 2,509: Line 2,509:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 2,521: Line 2,521:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 2,533: Line 2,533:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 2,545: Line 2,545:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 2,560: Line 2,560:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Driver entry or nil if driver could not be created
 
| Pointer to new Driver entry or nil if driver could not be created
 
|-
 
|-
Line 2,572: Line 2,572:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new driver (Including the driver entry)
 
| Size in bytes to allocate for new driver (Including the driver entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Driver entry or nil if driver could not be created
 
| Pointer to new Driver entry or nil if driver could not be created
 
|-
 
|-
Line 2,587: Line 2,587:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Driver'''
+
! Driver
 
| The driver to destroy
 
| The driver to destroy
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,602: Line 2,602:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Driver'''
+
! Driver
 
| The driver to get the name from
 
| The driver to get the name from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The name of the driver or a blank string on error
 
| The name of the driver or a blank string on error
 
|-
 
|-
Line 2,617: Line 2,617:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Driver'''
+
! Driver
 
| The driver to set the name for
 
| The driver to set the name for
 
|-
 
|-
! '''Name'''
+
! Name
 
| The driver name to set
 
| The driver name to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,635: Line 2,635:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Driver'''
+
! Driver
 
| The driver to register
 
| The driver to register
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,650: Line 2,650:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Driver'''
+
! Driver
 
| The driver to deregister
 
| The driver to deregister
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,665: Line 2,665:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''DriverClass'''
+
! DriverClass
 
| The class of the driver to find (DRIVER_CLASS_ANY for all classes)
 
| The class of the driver to find (DRIVER_CLASS_ANY for all classes)
 
|-
 
|-
! '''DriverId'''
+
! DriverId
 
| The ID number of the driver to find
 
| The ID number of the driver to find
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to driver entry or nil if not found
 
| Pointer to driver entry or nil if not found
 
|-
 
|-
Line 2,683: Line 2,683:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Name'''
+
! Name
 
| The name of the driver to find (eg USB Hub Driver)
 
| The name of the driver to find (eg USB Hub Driver)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to driver entry or nil if not found
 
| Pointer to driver entry or nil if not found
 
|-
 
|-
Line 2,698: Line 2,698:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''DriverClass'''
+
! DriverClass
 
| The class of driver to enumerate (DRIVER_CLASS_ANY for all classes)
 
| The class of driver to enumerate (DRIVER_CLASS_ANY for all classes)
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The callback function to call for each driver in the table
 
| The callback function to call for each driver in the table
 
|-
 
|-
! '''Data'''
+
! Data
 
| A private data pointer to pass to callback for each driver in the table
 
| A private data pointer to pass to callback for each driver in the table
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,722: Line 2,722:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to start
 
| The Clock device to start
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,737: Line 2,737:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to stop
 
| The Clock device to stop
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,752: Line 2,752:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to read from
 
| The Clock device to read from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The 32 bit counter value of the clock or 0 on failure
 
| The 32 bit counter value of the clock or 0 on failure
 
|-
 
|-
Line 2,767: Line 2,767:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to read from
 
| The Clock device to read from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The 64 bit counter value of the clock or 0 on failure
 
| The 64 bit counter value of the clock or 0 on failure
 
|-
 
|-
Line 2,782: Line 2,782:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to write to
 
| The Clock device to write to
 
|-
 
|-
! '''Value'''
+
! Value
 
| The counter value to write
 
| The counter value to write
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the counter was set or another error code on failure
 
| ERROR_SUCCESS if the counter was set or another error code on failure
 
|-
 
|-
! '''Note'''
+
! Note
 
| Not all clock devices support setting the counter value, will return an error if unsupported.
 
| Not all clock devices support setting the counter value, will return an error if unsupported.
 
|-
 
|-
Line 2,803: Line 2,803:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to get the rate from
 
| The Clock device to get the rate from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The current clock rate in Hz or 0 on failure
 
| The current clock rate in Hz or 0 on failure
 
|-
 
|-
Line 2,818: Line 2,818:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to set the rate for
 
| The Clock device to set the rate for
 
|-
 
|-
! '''Rate'''
+
! Rate
 
| The clock rate in Hz to set
 
| The clock rate in Hz to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the clock rate was set or another error code on failure
 
| ERROR_SUCCESS if the clock rate was set or another error code on failure
 
|-
 
|-
! '''Note'''
+
! Note
 
| Not all clock devices support setting the clock rate, will return an error if unsupported.
 
| Not all clock devices support setting the clock rate, will return an error if unsupported.
 
|-
 
|-
Line 2,839: Line 2,839:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to get properties from
 
| The Clock device to get properties from
 
|-
 
|-
! '''Properties'''
+
! Properties
 
| Pointer to a TClockProperties structure to fill in
 
| Pointer to a TClockProperties structure to fill in
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
! '''Note'''
+
! Note
 
| Replaced by ClockDeviceGetProperties for consistency
 
| Replaced by ClockDeviceGetProperties for consistency
 
|-
 
|-
Line 2,860: Line 2,860:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The Clock device to get properties from
 
| The Clock device to get properties from
 
|-
 
|-
! '''Properties'''
+
! Properties
 
| Pointer to a TClockProperties structure to fill in
 
| Pointer to a TClockProperties structure to fill in
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,878: Line 2,878:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Clock entry or nil if Clock could not be created
 
| Pointer to new Clock entry or nil if Clock could not be created
 
|-
 
|-
Line 2,890: Line 2,890:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new Clock (Including the Clock entry)
 
| Size in bytes to allocate for new Clock (Including the Clock entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Clock entry or nil if Clock could not be created
 
| Pointer to new Clock entry or nil if Clock could not be created
 
|-
 
|-
Line 2,905: Line 2,905:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The clock device to destroy
 
| The clock device to destroy
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,920: Line 2,920:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The clock device to register
 
| The clock device to register
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,935: Line 2,935:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The clock device to deregister
 
| The clock device to deregister
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 2,950: Line 2,950:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''ClockId'''
+
! ClockId
 
| The ID number of the clock to find
 
| The ID number of the clock to find
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to clock device entry or nil if not found
 
| Pointer to clock device entry or nil if not found
 
|-
 
|-
Line 2,965: Line 2,965:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Name'''
+
! Name
 
| The name of the clock to find (eg Clock0)
 
| The name of the clock to find (eg Clock0)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to clock device entry or nil if not found
 
| Pointer to clock device entry or nil if not found
 
|-
 
|-
Line 2,980: Line 2,980:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Description'''
+
! Description
 
| The description of the clock to find (eg BCM2836 ARM Timer Clock)
 
| The description of the clock to find (eg BCM2836 ARM Timer Clock)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to clock device entry or nil if not found
 
| Pointer to clock device entry or nil if not found
 
|-
 
|-
Line 2,995: Line 2,995:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The callback function to call for each clock in the table
 
| The callback function to call for each clock in the table
 
|-
 
|-
! '''Data'''
+
! Data
 
| A private data pointer to pass to callback for each clock in the table
 
| A private data pointer to pass to callback for each clock in the table
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,013: Line 3,013:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Clock'''
+
! Clock
 
| The clock device to notify changes for (Optional, pass nil for all clocks)
 
| The clock device to notify changes for (Optional, pass nil for all clocks)
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The function to call when a notification event occurs
 
| The function to call when a notification event occurs
 
|-
 
|-
! '''Data'''
+
! Data
 
| A private data pointer to pass to callback when a notification event occurs
 
| A private data pointer to pass to callback when a notification event occurs
 
|-
 
|-
! '''Notification'''
+
! Notification
 
| The events to register for notification of (eg DEVICE_NOTIFICATION_REGISTER)
 
| The events to register for notification of (eg DEVICE_NOTIFICATION_REGISTER)
 
|-
 
|-
! '''Flags'''
+
! Flags
 
| The flags to control the notification (eg NOTIFIER_FLAG_WORKER)
 
| The flags to control the notification (eg NOTIFIER_FLAG_WORKER)
 
|-
 
|-
Line 3,040: Line 3,040:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to start
 
| The Timer device to start
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,055: Line 3,055:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to stop
 
| The Timer device to stop
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,070: Line 3,070:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to read from
 
| The Timer device to read from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The 32 bit current value of the timer or 0 on failure
 
| The 32 bit current value of the timer or 0 on failure
 
|-
 
|-
Line 3,085: Line 3,085:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to read from
 
| The Timer device to read from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The 64 bit current value of the timer or 0 on failure
 
| The 64 bit current value of the timer or 0 on failure
 
|-
 
|-
Line 3,100: Line 3,100:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to wait for
 
| The Timer device to wait for
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the interval expired or another error code on failure
 
| ERROR_SUCCESS if the interval expired or another error code on failure
 
|-
 
|-
Line 3,115: Line 3,115:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to schedule the callback for
 
| The Timer device to schedule the callback for
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The function to be called when the interval expires
 
| The function to be called when the interval expires
 
|-
 
|-
! '''Data'''
+
! Data
 
| A pointer to be pass to the function when the interval expires (Optional)
 
| A pointer to be pass to the function when the interval expires (Optional)
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the callback was scheduled successfully or another error code on failure
 
| ERROR_SUCCESS if the callback was scheduled successfully or another error code on failure
 
|-
 
|-
Line 3,136: Line 3,136:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to cancel the callback for
 
| The Timer device to cancel the callback for
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the callback was cancelled successfully or another error code on failure
 
| ERROR_SUCCESS if the callback was cancelled successfully or another error code on failure
 
|-
 
|-
Line 3,151: Line 3,151:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to get the rate from
 
| The Timer device to get the rate from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The current clock rate in Hz or 0 on failure
 
| The current clock rate in Hz or 0 on failure
 
|-
 
|-
Line 3,166: Line 3,166:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to set the rate for
 
| The Timer device to set the rate for
 
|-
 
|-
! '''Rate'''
+
! Rate
 
| The clock rate in Hz to set
 
| The clock rate in Hz to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the clock rate was set or another error code on failure
 
| ERROR_SUCCESS if the clock rate was set or another error code on failure
 
|-
 
|-
Line 3,184: Line 3,184:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to get the interval from
 
| The Timer device to get the interval from
 
|-
 
|-
! '''Return'''
+
! Return
 
| The current interval in ticks or 0 on failure (or not set)
 
| The current interval in ticks or 0 on failure (or not set)
 
|-
 
|-
! '''Note'''
+
! Note
 
| The tick rate is determined by the clock rate
 
| The tick rate is determined by the clock rate
 
|-
 
|-
Line 3,202: Line 3,202:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to set the interval for
 
| The Timer device to set the interval for
 
|-
 
|-
! '''Interval'''
+
! Interval
 
| The interval in ticks to set
 
| The interval in ticks to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the interval was set or another error code on failure
 
| ERROR_SUCCESS if the interval was set or another error code on failure
 
|-
 
|-
! '''Note'''
+
! Note
 
| The tick rate is determined by the clock rate
 
| The tick rate is determined by the clock rate
 
|-
 
|-
Line 3,223: Line 3,223:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to get properties from
 
| The Timer device to get properties from
 
|-
 
|-
! '''Properties'''
+
! Properties
 
| Pointer to a TTimerProperties structure to fill in
 
| Pointer to a TTimerProperties structure to fill in
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
! '''Note'''
+
! Note
 
| Replaced by TimerDeviceGetProperties for consistency
 
| Replaced by TimerDeviceGetProperties for consistency
 
|-
 
|-
Line 3,244: Line 3,244:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The Timer device to get properties from
 
| The Timer device to get properties from
 
|-
 
|-
! '''Properties'''
+
! Properties
 
| Pointer to a TTimerProperties structure to fill in
 
| Pointer to a TTimerProperties structure to fill in
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,262: Line 3,262:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Timer entry or nil if Timer could not be created
 
| Pointer to new Timer entry or nil if Timer could not be created
 
|-
 
|-
Line 3,274: Line 3,274:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new Timer (Including the Timer entry)
 
| Size in bytes to allocate for new Timer (Including the Timer entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Timer entry or nil if Timer could not be created
 
| Pointer to new Timer entry or nil if Timer could not be created
 
|-
 
|-
Line 3,289: Line 3,289:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The timer device to destroy
 
| The timer device to destroy
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,304: Line 3,304:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The timer device to register
 
| The timer device to register
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,319: Line 3,319:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The timer device to deregister
 
| The timer device to deregister
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,334: Line 3,334:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''TimerId'''
+
! TimerId
 
| The ID number of the timer to find
 
| The ID number of the timer to find
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to timer device entry or nil if not found
 
| Pointer to timer device entry or nil if not found
 
|-
 
|-
Line 3,349: Line 3,349:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Name'''
+
! Name
 
| The name of the timer to find (eg Timer0)
 
| The name of the timer to find (eg Timer0)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to timer device entry or nil if not found
 
| Pointer to timer device entry or nil if not found
 
|-
 
|-
Line 3,364: Line 3,364:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Description'''
+
! Description
 
| The description of the timer to find (eg BCM2836 ARM Timer)
 
| The description of the timer to find (eg BCM2836 ARM Timer)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to timer device entry or nil if not found
 
| Pointer to timer device entry or nil if not found
 
|-
 
|-
Line 3,379: Line 3,379:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The callback function to call for each timer in the table
 
| The callback function to call for each timer in the table
 
|-
 
|-
! '''Data'''
+
! Data
 
| A private data pointer to pass to callback for each timer in the table
 
| A private data pointer to pass to callback for each timer in the table
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 3,397: Line 3,397:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Timer'''
+
! Timer
 
| The timer device to notify changes for (Optional, pass nil for all timers)
 
| The timer device to notify changes for (Optional, pass nil for all timers)
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The function to call when a notification event occurs
 
| The function to call when a notification event occurs
 
|-
 
|-
! '''Data'''
+
! Data
 
| A private data pointer to pass to callback when a notification event occurs
 
| A private data pointer to pass to callback when a notification event occurs
 
|-
 
|-
! '''Notification'''
+
! Notification
 
| The events to register for notification of (eg DEVICE_NOTIFICATION_REGISTER)
 
| The events to register for notification of (eg DEVICE_NOTIFICATION_REGISTER)
 
|-
 
|-
! '''Flags'''
+
! Flags
 
| The flags to control the notification (eg NOTIFIER_FLAG_WORKER)
 
| The flags to control the notification (eg NOTIFIER_FLAG_WORKER)
 
|-
 
|-
Line 3,424: Line 3,424:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,436: Line 3,436:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,448: Line 3,448:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,460: Line 3,460:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,472: Line 3,472:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,484: Line 3,484:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,496: Line 3,496:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,508: Line 3,508:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,520: Line 3,520:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Random entry or nil if Random could not be created
 
| Pointer to new Random entry or nil if Random could not be created
 
|-
 
|-
Line 3,532: Line 3,532:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new Random (Including the Random entry)
 
| Size in bytes to allocate for new Random (Including the Random entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Random entry or nil if Random could not be created
 
| Pointer to new Random entry or nil if Random could not be created
 
|-
 
|-
Line 3,547: Line 3,547:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,559: Line 3,559:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,571: Line 3,571:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,583: Line 3,583:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,595: Line 3,595:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,607: Line 3,607:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,619: Line 3,619:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,631: Line 3,631:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,646: Line 3,646:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,658: Line 3,658:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,670: Line 3,670:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,682: Line 3,682:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,694: Line 3,694:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,706: Line 3,706:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,718: Line 3,718:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,730: Line 3,730:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Mailbox entry or nil if Mailbox could not be created
 
| Pointer to new Mailbox entry or nil if Mailbox could not be created
 
|-
 
|-
Line 3,742: Line 3,742:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new Mailbox (Including the Mailbox entry)
 
| Size in bytes to allocate for new Mailbox (Including the Mailbox entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Mailbox entry or nil if Mailbox could not be created
 
| Pointer to new Mailbox entry or nil if Mailbox could not be created
 
|-
 
|-
Line 3,757: Line 3,757:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,769: Line 3,769:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,781: Line 3,781:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,793: Line 3,793:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,805: Line 3,805:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,817: Line 3,817:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,829: Line 3,829:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,841: Line 3,841:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,856: Line 3,856:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,868: Line 3,868:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,880: Line 3,880:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,892: Line 3,892:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,904: Line 3,904:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,916: Line 3,916:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,928: Line 3,928:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Watchdog entry or nil if Watchdog could not be created
 
| Pointer to new Watchdog entry or nil if Watchdog could not be created
 
|-
 
|-
Line 3,940: Line 3,940:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new Watchdog (Including the Watchdog entry)
 
| Size in bytes to allocate for new Watchdog (Including the Watchdog entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Watchdog entry or nil if Watchdog could not be created
 
| Pointer to new Watchdog entry or nil if Watchdog could not be created
 
|-
 
|-
Line 3,955: Line 3,955:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,967: Line 3,967:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,979: Line 3,979:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 3,991: Line 3,991:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,003: Line 4,003:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,015: Line 4,015:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,027: Line 4,027:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,039: Line 4,039:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,054: Line 4,054:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,066: Line 4,066:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,081: Line 4,081:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,093: Line 4,093:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| The 32 bit current value of the counter  or 0 on failure
 
| The 32 bit current value of the counter  or 0 on failure
 
|-
 
|-
Line 4,105: Line 4,105:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| The 64 bit current value of the counter  or 0 on failure
 
| The 64 bit current value of the counter  or 0 on failure
 
|-
 
|-
Line 4,117: Line 4,117:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the interval expired or another error code on failure
 
| ERROR_SUCCESS if the interval expired or another error code on failure
 
|-
 
|-
Line 4,129: Line 4,129:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Callback'''
+
! Callback
 
| The function to be called when the interval expires
 
| The function to be called when the interval expires
 
|-
 
|-
! '''Data'''
+
! Data
 
| A pointer to be pass to the function when the interval expires (Optional)
 
| A pointer to be pass to the function when the interval expires (Optional)
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the callback was scheduled successfully or another error code on failure
 
| ERROR_SUCCESS if the callback was scheduled successfully or another error code on failure
 
|-
 
|-
Line 4,147: Line 4,147:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the callback was cancelled successfully or another error code on failure
 
| ERROR_SUCCESS if the callback was cancelled successfully or another error code on failure
 
|-
 
|-
Line 4,159: Line 4,159:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| The current clock rate in Hz or 0 on failure
 
| The current clock rate in Hz or 0 on failure
 
|-
 
|-
Line 4,171: Line 4,171:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Rate'''
+
! Rate
 
| The clock rate in Hz to set
 
| The clock rate in Hz to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the clock rate was set or another error code on failure
 
| ERROR_SUCCESS if the clock rate was set or another error code on failure
 
|-
 
|-
Line 4,186: Line 4,186:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| The current interval in ticks or 0 on failure (or not set)
 
| The current interval in ticks or 0 on failure (or not set)
 
|-
 
|-
! '''Note'''
+
! Note
 
| The tick rate is determined by the clock rate
 
| The tick rate is determined by the clock rate
 
|-
 
|-
Line 4,201: Line 4,201:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Interval'''
+
! Interval
 
| The interval in ticks to set
 
| The interval in ticks to set
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if the interval was set or another error code on failure
 
| ERROR_SUCCESS if the interval was set or another error code on failure
 
|-
 
|-
! '''Note'''
+
! Note
 
| The tick rate is determined by the clock rate
 
| The tick rate is determined by the clock rate
 
|-
 
|-
Line 4,222: Line 4,222:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,234: Line 4,234:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,246: Line 4,246:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,258: Line 4,258:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,270: Line 4,270:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,282: Line 4,282:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,297: Line 4,297:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,309: Line 4,309:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,321: Line 4,321:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,333: Line 4,333:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,348: Line 4,348:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,360: Line 4,360:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,372: Line 4,372:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,384: Line 4,384:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,396: Line 4,396:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,408: Line 4,408:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,420: Line 4,420:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,432: Line 4,432:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,444: Line 4,444:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,456: Line 4,456:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,468: Line 4,468:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,480: Line 4,480:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,492: Line 4,492:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,507: Line 4,507:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,519: Line 4,519:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,531: Line 4,531:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,543: Line 4,543:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,558: Line 4,558:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,570: Line 4,570:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,582: Line 4,582:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,594: Line 4,594:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,606: Line 4,606:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,618: Line 4,618:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,633: Line 4,633:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,645: Line 4,645:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,657: Line 4,657:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,669: Line 4,669:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,681: Line 4,681:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,693: Line 4,693:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,705: Line 4,705:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| Waiter must be registered by calling TimerDeviceRegisterWaiter. Caller must hold the Timer device lock.
 
| Waiter must be registered by calling TimerDeviceRegisterWaiter. Caller must hold the Timer device lock.
 
|-
 
|-
Line 4,717: Line 4,717:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| Waiter must be deregistered first by calling TimerDeviceDeregisterWaiter. Caller must hold the Timer device lock.
 
| Waiter must be deregistered first by calling TimerDeviceDeregisterWaiter. Caller must hold the Timer device lock.
 
|-
 
|-
Line 4,729: Line 4,729:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| Waiter must be created by calling TimerDeviceCreateWaiter. Caller must hold the Timer device lock.
 
| Waiter must be created by calling TimerDeviceCreateWaiter. Caller must hold the Timer device lock.
 
|-
 
|-
Line 4,741: Line 4,741:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| Waiter must be destroyed by calling TimerDeviceDestroyWaiter. Caller must hold the Timer device lock.
 
| Waiter must be destroyed by calling TimerDeviceDestroyWaiter. Caller must hold the Timer device lock.
 
|-
 
|-
Line 4,756: Line 4,756:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,768: Line 4,768:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,780: Line 4,780:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,792: Line 4,792:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,804: Line 4,804:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,816: Line 4,816:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,831: Line 4,831:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,843: Line 4,843:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,855: Line 4,855:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,867: Line 4,867:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,879: Line 4,879:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,891: Line 4,891:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,906: Line 4,906:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,918: Line 4,918:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,930: Line 4,930:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,942: Line 4,942:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,954: Line 4,954:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 4,966: Line 4,966:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Revision as of 00:41, 17 April 2018

Return to Unit Reference


Description


Ultibo Device interface unit

To be documented

Constants



[Expand]
Device specific constants DEVICE_*


[Expand]
Device signature DEVICE_SIGNATURE_*


[Expand]
Device bus DEVICE_BUS_*


[Expand]
Device state DEVICE_STATE_*


[Expand]
Device Id DEVICE_ID_*


[Expand]
Device class DEVICE_CLASS_*


[Expand]
Device notification flag DEVICE_NOTIFICATION_*


[Expand]
Notifier signature NOTIFIER_SIGNATURE_*


[Expand]
Notifier state NOTIFIER_STATE_*


[Expand]
Notifier flag NOTIFIER_FLAG_*


[Expand]
Device logging DEVICE_LOG_*


[Expand]
Driver specific constants DRIVER_*


[Expand]
Driver signature DRIVER_SIGNATURE_*


[Expand]
Driver state DRIVER_STATE_*


[Expand]
Driver Id DRIVER_ID_*


[Expand]
Driver class DRIVER_CLASS_*


[Expand]
Host specific constants HOST_*


[Expand]
Host signature HOST_SIGNATURE_*


[Expand]
Host state HOST_STATE_*


[Expand]
Host Id HOST_ID_*


[Expand]
Host class HOST_CLASS_*


[Expand]
Clock specific constants CLOCK_*


[Expand]
Clock device type CLOCK_TYPE_*


[Expand]
Clock device state CLOCK_STATE_*


[Expand]
Clock device flag CLOCK_FLAG_*


[Expand]
Timer specific constants TIMER_*


[Expand]
Timer device type TIMER_TYPE_*


[Expand]
Timer device state TIMER_STATE_*


[Expand]
Timer device flag TIMER_FLAG_*


[Expand]
Timer event flag TIMER_EVENT_FLAG_*


[Expand]
Random specific constants RANDOM_*


[Expand]
Random device type RANDOM_TYPE_*


[Expand]
Random device state RANDOM_STATE_*


[Expand]
Random device flag RANDOM_FLAG_*


[Expand]
Mailbox specific constants MAILBOX_*


[Expand]
Mailbox device type MAILBOX_TYPE_*


[Expand]
Mailbox device state MAILBOX_STATE_*


[Expand]
Mailbox device flag MAILBOX_FLAG_*


[Expand]
Watchdog specific constants WATCHDOG_*


[Expand]
Watchdog device type WATCHDOG_TYPE_*


[Expand]
Watchdog device state WATCHDOG_STATE_*


[Expand]
Watchdog device flag WATCHDOG_FLAG_*


Type definitions



Device enumeration callback

TDeviceEnumerate = function(Device:PDevice; Data:Pointer):LongWord;

Device notification callback

TDeviceNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

Device entry

[Expand]

PDevice = ^TDevice;

TDevice = record

Notifier entry

[Expand]

PNotifier = ^TNotifier;

TNotifier = record

Notifier task

[Expand]

PNotifierTask = ^TNotifierTask;

TNotifierTask = record

Driver enumeration callback

TDriverEnumerate = function(Driver:PDriver; Data:Pointer):LongWord;

Driver entry

[Expand]

PDriver = ^TDriver;

TDriver = record

Host enumeration callback

THostEnumerate = function(Host:PHost; Data:Pointer):LongWord;

Host entry

[Expand]

PHost = ^THost;

THost = record

Clock properties

[Expand]

PClockProperties = ^TClockProperties;

TClockProperties = record

Clock enumeration callback

TClockEnumerate = function(Clock:PClockDevice; Data:Pointer):LongWord;

Clock notification callback

TClockNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

Clock device start

TClockDeviceStart = function(Clock:PClockDevice):LongWord;

Clock device stop

TClockDeviceStop = function(Clock:PClockDevice):LongWord;

Clock device read

TClockDeviceRead = function(Clock:PClockDevice):LongWord;

Clock device read 64

TClockDeviceRead64 = function(Clock:PClockDevice):Int64;

Clock device write 64

TClockDeviceWrite64 = function(Clock:PClockDevice; const Value:Int64):LongWord;

Clock device get rate

TClockDeviceGetRate = function(Clock:PClockDevice):LongWord;

Clock device set rate

TClockDeviceSetRate = function(Clock:PClockDevice; Rate:LongWord):LongWord;

Clock device get properties

TClockDeviceGetProperties = function(Clock:PClockDevice; Properties:PClockProperties):LongWord;

Clock device

[Expand]

PClockDevice = ^TClockDevice;

TClockDevice = record

Timer callback

TTimerCallback = TCounterCallback; Counter callback from Platform

Timer properties

[Expand]

PTimerProperties = ^TTimerProperties;

TTimerProperties = record

Timer waiter

[Expand]

PTimerWaiter = ^TTimerWaiter;

TTimerWaiter = record

Timer enumeration callback

TTimerEnumerate = function(Timer:PTimerDevice; Data:Pointer):LongWord;

Timer notification callback

TTimerNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

TImer device start

TTimerDeviceStart = function(Timer:PTimerDevice):LongWord;

Timer device stop

TTimerDeviceStop = function(Timer:PTimerDevice):LongWord;

Timer device read

TTimerDeviceRead = function(Timer:PTimerDevice):LongWord;

Timer device read 64

TTimerDeviceRead64 = function(Timer:PTimerDevice):Int64;

Timer device wait

TTimerDeviceWait = function(Timer:PTimerDevice):LongWord;

Timer device event

TTimerDeviceEvent = function(Timer:PTimerDevice; Flags:LongWord; Callback:TTimerCallback; Data:Pointer):LongWord;

Timer device cancel

TTimerDeviceCancel = function(Timer:PTimerDevice):LongWord;

Timer device get rate

TTimerDeviceGetRate = function(Timer:PTimerDevice):LongWord;

Timer device set rate

TTimerDeviceSetRate = function(Timer:PTimerDevice; Rate:LongWord):LongWord;

Timer device get interval

TTimerDeviceGetInterval = function(Timer:PTimerDevice):LongWord;

Timer device set interval

TTimerDeviceSetInterval = function(Timer:PTimerDevice; Interval:LongWord):LongWord;

Timer device get properties

TTimerDeviceGetProperties = function(Timer:PTimerDevice; Properties:PTimerProperties):LongWord;

Timer device

[Expand]

PTimerDevice = ^TTimerDevice;

TTimerDevice = record

Random enumeration callback

TRandomEnumerate = function(Random:PRandomDevice; Data:Pointer):LongWord;

Random notification callback

TRandomNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

Random device start

TRandomDeviceStart = function(Random:PRandomDevice):LongWord;

Random device stop

TRandomDeviceStop = function(Random:PRandomDevice):LongWord;

Random device seed

TRandomDeviceSeed = function(Random:PRandomDevice; Seed:LongWord):LongWord;

Random device read byte

TRandomDeviceReadByte = function(Random:PRandomDevice):Byte;

Random device read word

TRandomDeviceReadWord = function(Random:PRandomDevice):Word;

Random device read long word

TRandomDeviceReadLongWord = function(Random:PRandomDevice):LongWord;

Random device read quad word

TRandomDeviceReadQuadWord = function(Random:PRandomDevice):Int64;

Random device read extended

TRandomDeviceReadExtended = function(Random:PRandomDevice):Extended;

Random device

[Expand]

PRandomDevice = ^TRandomDevice;

TRandomDevice = record

Mailbox enumeration callback

TMailboxEnumerate = function(Mailbox:PMailboxDevice; Data:Pointer):LongWord;

Mailbox notification callback

TMailboxNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

Mailbox device start

TMailboxDeviceStart = function(Mailbox:PMailboxDevice):LongWord;

Mailbox device stop

TMailboxDeviceStop = function(Mailbox:PMailboxDevice):LongWord;

Mailbox device receive

TMailboxDeviceReceive = function(Mailbox:PMailboxDevice; Channel:LongWord):LongWord;

Mailbox device send

TMailboxDeviceSend = function(Mailbox:PMailboxDevice; Channel,Data:LongWord):LongWord;

Mailbox device call

TMailboxDeviceCall = function(Mailbox:PMailboxDevice; Channel,Data:LongWord; var Response:LongWord):LongWord;

Mailbox device get timeout

TMailboxDeviceGetTimeout = function(Mailbox:PMailboxDevice):LongWord;

Mailbox device set timeout

TMailboxDeviceSetTimeout = function(Mailbox:PMailboxDevice; Timeout:LongWord):LongWord;

Mailbox device

[Expand]

PMailboxDevice = ^TMailboxDevice;

TMailboxDevice = record

Watchdog enumeration callback

TWatchdogEnumerate = function(Watchdog:PWatchdogDevice; Data:Pointer):LongWord;

Watchdog notification callback

TWatchdogNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

Watchdog device start

TWatchdogDeviceStart = function(Watchdog:PWatchdogDevice):LongWord;

Watchdog device stop

TWatchdogDeviceStop = function(Watchdog:PWatchdogDevice):LongWord;

Watchdog device refresh

TWatchdogDeviceRefresh = function(Watchdog:PWatchdogDevice):LongWord;

Watchdog device get remain

TWatchdogDeviceGetRemain = function(Watchdog:PWatchdogDevice):LongWord;

Watchdog device get timeout

TWatchdogDeviceGetTimeout = function(Watchdog:PWatchdogDevice):LongWord;

Watchdog device set timeout

TWatchdogDeviceSetTimeout = function(Watchdog:PWatchdogDevice; Timeout:LongWord):LongWord;

Watchdog device

[Expand]

PWatchdogDevice = ^TWatchdogDevice;

TWatchdogDevice = record


Public variables



Device logging

DEVICE_DEFAULT_LOG_LEVEL:LongWord = DEVICE_LOG_LEVEL_DEBUG; Minimum level for Device messages. Only messages with level greater than or equal to this will be printed.
DEVICE_LOG_ENABLED:Boolean;


Function declarations



Initialization functions

[Expand]
procedure DevicesInit;
Description: Initialize the Devices unit and device, notifier and driver tables


Device functions

[Expand]
function DeviceCreate:PDevice;
Description: Create a new Device entry


[Expand]
function DeviceCreateEx(Size:LongWord):PDevice;
Description: Create a new Device entry


[Expand]
function DeviceDestroy(Device:PDevice):LongWord;
Description: Destroy an existing Device entry


[Expand]
function DeviceGetName(Device:PDevice):String;
Description: Get the name of the supplied Device


[Expand]
function DeviceSetName(Device:PDevice; const Name:String):LongWord;
Description: Set the name of the supplied Device


[Expand]
function DeviceGetDescription(Device:PDevice):String;
Description: Get the description of the supplied Device


[Expand]
function DeviceSetDescription(Device:PDevice; const Description:String):LongWord;
Description: Set the description of the supplied Device


[Expand]
function DeviceRegister(Device:PDevice):LongWord;
Description: Register a new Device in the Device table


[Expand]
function DeviceDeregister(Device:PDevice):LongWord;
Description: Deregister a Device from the Device table


[Expand]
function DeviceFind(DeviceClass,DeviceId:LongWord):PDevice;
Description: Find a device by ID in the device table


[Expand]
function DeviceFindByDeviceData(DeviceData:Pointer):PDevice;
Description: Find a device with matching DeviceData property in the device table


[Expand]
function DeviceFindByName(const Name:String):PDevice;
Description: Find a device by name in the device table


[Expand]
function DeviceFindByDescription(const Description:String):PDevice;
Description: Find a device by description in the device table


[Expand]
function DeviceEnumerate(DeviceClass:LongWord; Callback:TDeviceEnumerate; Data:Pointer):LongWord;
Description: Enumerate all devices in the device table


[Expand]
function DeviceNotification(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: Register a notification for device changes


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


[Expand]
function NotifierRelease(Notifier:PNotifier):LongWord;
Description: Deregister and Destroy a Notifier from the Notifier table


[Expand]
function NotifierFind(Device:PDevice; DeviceClass:LongWord; Callback:TDeviceNotification; Data:Pointer):PNotifier;
Description: To be documented


[Expand]
function NotifierNotify(Device:PDevice; Notification:LongWord):LongWord;
Description: To be documented


[Expand]
procedure NotifierWorker(Task:PNotifierTask);
Description: To be documented


Driver functions

[Expand]
function DriverCreate:PDriver;
Description: Create a new Driver entry


[Expand]
function DriverCreateEx(Size:LongWord):PDriver;
Description: Create a new Driver entry


[Expand]
function DriverDestroy(Driver:PDriver):LongWord;
Description: Destroy an existing Driver entry


[Expand]
function DriverGetName(Driver:PDriver):String;
Description: Get the name of the supplied Driver


[Expand]
function DriverSetName(Driver:PDriver; const Name:String):LongWord;
Description: Set the name of the supplied Driver


[Expand]
function DriverRegister(Driver:PDriver):LongWord;
Description: Register a new Driver in the Driver table


[Expand]
function DriverDeregister(Driver:PDriver):LongWord;
Description: Deregister a Driver from the Driver table


[Expand]
function DriverFind(DriverClass,DriverId:LongWord):PDriver;
Description: Find a driver by ID in the driver table


[Expand]
function DriverFindByName(const Name:String):PDriver;
Description: Find a driver by name in the driver table


[Expand]
function DriverEnumerate(DriverClass:LongWord; Callback:TDriverEnumerate; Data:Pointer):LongWord;
Description: Enumerate all drivers in the driver table


Clock device functions

[Expand]
function ClockDeviceStart(Clock:PClockDevice):LongWord;
Description: Start the counter of the specified clock device


[Expand]
function ClockDeviceStop(Clock:PClockDevice):LongWord;
Description: Stop the counter of the specified clock device


[Expand]
function ClockDeviceRead(Clock:PClockDevice):LongWord;
Description: Read the counter value of the specified clock device


[Expand]
function ClockDeviceRead64(Clock:PClockDevice):Int64;
Description: Read the counter value of the specified clock device


[Expand]
function ClockDeviceWrite64(Clock:PClockDevice; const Value:Int64):LongWord;
Description: Write the counter value of the specified clock device


[Expand]
function ClockDeviceGetRate(Clock:PClockDevice):LongWord;
Description: Get the current clock rate in Hz of the specified clock device


[Expand]
function ClockDeviceSetRate(Clock:PClockDevice; Rate:LongWord):LongWord;
Description: Set the current clock rate in Hz of the specified clock device


[Expand]
function ClockDeviceProperties(Clock:PClockDevice; Properties:PClockProperties):LongWord; inline;
Description: Get the properties for the specified clock device


[Expand]
function ClockDeviceGetProperties(Clock:PClockDevice; Properties:PClockProperties):LongWord;
Description: Get the properties for the specified clock device


[Expand]
function ClockDeviceCreate:PClockDevice;
Description: Create a new Clock entry


[Expand]
function ClockDeviceCreateEx(Size:LongWord):PClockDevice;
Description: Create a new Clock entry


[Expand]
function ClockDeviceDestroy(Clock:PClockDevice):LongWord;
Description: Destroy an existing clock entry


[Expand]
function ClockDeviceRegister(Clock:PClockDevice):LongWord;
Description: Register a new clock in the clock table


[Expand]
function ClockDeviceDeregister(Clock:PClockDevice):LongWord;
Description: Deregister a clock from the clock table


[Expand]
function ClockDeviceFind(ClockId:LongWord):PClockDevice;
Description: Find a clock device by ID in the clock table


[Expand]
function ClockDeviceFindByName(const Name:String):PClockDevice; inline;
Description: Find a clock device by name in the clock table


[Expand]
function ClockDeviceFindByDescription(const Description:String):PClockDevice; inline;
Description: Find a clock device by description in the clock table


[Expand]
function ClockDeviceEnumerate(Callback:TClockEnumerate; Data:Pointer):LongWord;
Description: Enumerate all clock devices in the clock table


[Expand]
function ClockDeviceNotification(Clock:PClockDevice; Callback:TClockNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: Register a notification for clock device changes


Timer device functions

[Expand]
function TimerDeviceStart(Timer:PTimerDevice):LongWord;
Description: Start the clock and counter of the specified Timer device


[Expand]
function TimerDeviceStop(Timer:PTimerDevice):LongWord;
Description: Stop the clock and counter of the specified Timer device


[Expand]
function TimerDeviceRead(Timer:PTimerDevice):LongWord;
Description: Read the current value of the specified Timer device


[Expand]
function TimerDeviceRead64(Timer:PTimerDevice):Int64;
Description: Read the current value of the specified Timer device


[Expand]
function TimerDeviceWait(Timer:PTimerDevice):LongWord;
Description: Wait for the current interval to expire on the specified Timer device


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


[Expand]
function TimerDeviceCancel(Timer:PTimerDevice):LongWord;
Description: Cancel a previously scheduled event callback function on the specified Timer device


[Expand]
function TimerDeviceGetRate(Timer:PTimerDevice):LongWord;
Description: Get the current clock rate in Hz of the specified Timer device


[Expand]
function TimerDeviceSetRate(Timer:PTimerDevice; Rate:LongWord):LongWord;
Description: Set the current clock rate in Hz of the specified Timer device


[Expand]
function TimerDeviceGetInterval(Timer:PTimerDevice):LongWord;
Description: Get the current interval in ticks of the specified Timer device


[Expand]
function TimerDeviceSetInterval(Timer:PTimerDevice; Interval:LongWord):LongWord;
Description: Set the current interval in ticks of the specified Timer device


[Expand]
function TimerDeviceProperties(Timer:PTimerDevice; Properties:PTimerProperties):LongWord; inline;
Description: Get the properties for the specified Timer device


[Expand]
function TimerDeviceGetProperties(Timer:PTimerDevice; Properties:PTimerProperties):LongWord;
Description: Get the properties for the specified Timer device


[Expand]
function TimerDeviceCreate:PTimerDevice;
Description: Create a new Timer entry


[Expand]
function TimerDeviceCreateEx(Size:LongWord):PTimerDevice;
Description: Create a new Timer entry


[Expand]
function TimerDeviceDestroy(Timer:PTimerDevice):LongWord;
Description: Destroy an existing Timer entry


[Expand]
function TimerDeviceRegister(Timer:PTimerDevice):LongWord;
Description: Register a new Timer in the Timer table


[Expand]
function TimerDeviceDeregister(Timer:PTimerDevice):LongWord;
Description: Deregister a Timer from the Timer table


[Expand]
function TimerDeviceFind(TimerId:LongWord):PTimerDevice;
Description: Find a timer device by ID in the timer table


[Expand]
function TimerDeviceFindByName(const Name:String):PTimerDevice; inline;
Description: Find a timer device by name in the timer table


[Expand]
function TimerDeviceFindByDescription(const Description:String):PTimerDevice; inline;
Description: Find a timer device by description in the timer table


[Expand]
function TimerDeviceEnumerate(Callback:TTimerEnumerate; Data:Pointer):LongWord;
Description: Enumerate all timer devices in the timer table


[Expand]
function TimerDeviceNotification(Timer:PTimerDevice; Callback:TTimerNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: Register a notification for timer device changes


Random device functions

[Expand]
function RandomDeviceStart(Random:PRandomDevice):LongWord;
Description: To be documented


[Expand]
function RandomDeviceStop(Random:PRandomDevice):LongWord;
Description: To be documented


[Expand]
function RandomDeviceSeed(Random:PRandomDevice; Seed:LongWord):LongWord;
Description: To be documented


[Expand]
function RandomDeviceReadByte(Random:PRandomDevice):Byte;
Description: To be documented


[Expand]
function RandomDeviceReadWord(Random:PRandomDevice):Word;
Description: To be documented


[Expand]
function RandomDeviceReadLongWord(Random:PRandomDevice):LongWord;
Description: To be documented


[Expand]
function RandomDeviceReadQuadWord(Random:PRandomDevice):Int64;
Description: To be documented


[Expand]
function RandomDeviceReadExtended(Random:PRandomDevice):Extended;
Description: To be documented


[Expand]
function RandomDeviceCreate:PRandomDevice;
Description: Create a new Random entry


[Expand]
function RandomDeviceCreateEx(Size:LongWord):PRandomDevice;
Description: Create a new Random entry


[Expand]
function RandomDeviceDestroy(Random:PRandomDevice):LongWord;
Description: Destroy an existing Random entry


[Expand]
function RandomDeviceRegister(Random:PRandomDevice):LongWord;
Description: Register a new Random in the Random table


[Expand]
function RandomDeviceDeregister(Random:PRandomDevice):LongWord;
Description: Deregister a Random from the Random table


[Expand]
function RandomDeviceFind(RandomId:LongWord):PRandomDevice;
Description: To be documented


[Expand]
function RandomDeviceFindByName(const Name:String):PRandomDevice; inline;
Description: To be documented


[Expand]
function RandomDeviceFindByDescription(const Description:String):PRandomDevice; inline;
Description: To be documented


[Expand]
function RandomDeviceEnumerate(Callback:TRandomEnumerate; Data:Pointer):LongWord;
Description: To be documented


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


Mailbox device functions

[Expand]
function MailboxDeviceStart(Mailbox:PMailboxDevice):LongWord;
Description: To be documented


[Expand]
function MailboxDeviceStop(Mailbox:PMailboxDevice):LongWord;
Description: To be documented


[Expand]
function MailboxDeviceReceive(Mailbox:PMailboxDevice; Channel:LongWord):LongWord;
Description: To be documented


[Expand]
function MailboxDeviceSend(Mailbox:PMailboxDevice; Channel,Data:LongWord):LongWord;
Description: To be documented


[Expand]
function MailboxDeviceCall(Mailbox:PMailboxDevice; Channel,Data:LongWord; var Response:LongWord):LongWord;
Description: To be documented


[Expand]
function MailboxDeviceGetTimeout(Mailbox:PMailboxDevice):LongWord;
Description: To be documented


[Expand]
function MailboxDeviceSetTimeout(Mailbox:PMailboxDevice; Timeout:LongWord):LongWord;
Description: To be documented


[Expand]
function MailboxDeviceCreate:PMailboxDevice;
Description: Create a new Mailbox entry


[Expand]
function MailboxDeviceCreateEx(Size:LongWord):PMailboxDevice;
Description: Create a new Mailbox entry


[Expand]
function MailboxDeviceDestroy(Mailbox:PMailboxDevice):LongWord;
Description: Destroy an existing Mailbox entry


[Expand]
function MailboxDeviceRegister(Mailbox:PMailboxDevice):LongWord;
Description: Register a new Mailbox in the Mailbox table


[Expand]
function MailboxDeviceDeregister(Mailbox:PMailboxDevice):LongWord;
Description: Deregister a Mailbox from the Mailbox table


[Expand]
function MailboxDeviceFind(MailboxId:LongWord):PMailboxDevice;
Description: To be documented


[Expand]
function MailboxDeviceFindByName(const Name:String):PMailboxDevice; inline;
Description: To be documented


[Expand]
function MailboxDeviceFindByDescription(const Description:String):PMailboxDevice; inline;
Description: To be documented


[Expand]
function MailboxDeviceEnumerate(Callback:TMailboxEnumerate; Data:Pointer):LongWord;
Description: To be documented


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


Watchdog device functions

[Expand]
function WatchdogDeviceStart(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented


[Expand]
function WatchdogDeviceStop(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented


[Expand]
function WatchdogDeviceRefresh(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented


[Expand]
function WatchdogDeviceGetRemain(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented


[Expand]
function WatchdogDeviceGetTimeout(Watchdog:PWatchdogDevice):LongWord;
Description: To be documented


[Expand]
function WatchdogDeviceSetTimeout(Watchdog:PWatchdogDevice; Timeout:LongWord):LongWord;
Description: To be documented


[Expand]
function WatchdogDeviceCreate:PWatchdogDevice;
Description: Create a new Watchdog entry


[Expand]
function WatchdogDeviceCreateEx(Size:LongWord):PWatchdogDevice;
Description: Create a new Watchdog entry


[Expand]
function WatchdogDeviceDestroy(Watchdog:PWatchdogDevice):LongWord;
Description: Destroy an existing Watchdog entry


[Expand]
function WatchdogDeviceRegister(Watchdog:PWatchdogDevice):LongWord;
Description: Register a new Watchdog in the Watchdog table


[Expand]
function WatchdogDeviceDeregister(Watchdog:PWatchdogDevice):LongWord;
Description: Deregister a Watchdog from the Watchdog table


[Expand]
function WatchdogDeviceFind(WatchdogId:LongWord):PWatchdogDevice;
Description: To be documented


[Expand]
function WatchdogDeviceFindByName(const Name:String):PWatchdogDevice; inline;
Description: To be documented


[Expand]
function WatchdogDeviceFindByDescription(const Description:String):PWatchdogDevice; inline;
Description: To be documented


[Expand]
function WatchdogDeviceEnumerate(Callback:TWatchdogEnumerate; Data:Pointer):LongWord;
Description: To be documented


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


RTL clock functions

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


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


RTL timer (counter) functions

[Expand]
function SysTimerAvailable:Boolean;
Description: Check if a timer device is available


[Expand]
function SysTimerRead:LongWord;
Description: Read the current value of the default counter


[Expand]
function SysTimerRead64:Int64;
Description: Read the current value of the default counter


[Expand]
function SysTimerWait:LongWord;
Description: Wait for the current interval to expire on the default counter


[Expand]
function SysTimerEvent(Callback:TTimerCallback; Data:Pointer):LongWord;
Description: Schedule a function to be called when the current interval expires on the default counter


[Expand]
function SysTimerCancel:LongWord;
Description: Cancel a previously scheduled event callback function on the default counter


[Expand]
function SysTimerGetRate:LongWord;
Description: Get the current clock rate in Hz of the default counter


[Expand]
function SysTimerSetRate(Rate:LongWord):LongWord;
Description: Set the current clock rate in Hz of the default counter


[Expand]
function SysTimerGetInterval:LongWord;
Description: Get the current interval in ticks of the default counter


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


RTL random functions

[Expand]
function SysRandomAvailable:Boolean;
Description: Check if a random (RNG) device is available


[Expand]
procedure SysRandomize;
Description: To be documented


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


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


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


[Expand]
function SysRandomReadExtended:Extended;
Description: To be documented


RTL watchdog functions

[Expand]
function SysWatchdogAvailable:Boolean;
Description: Check if a watchdog timer device is available


[Expand]
function SysWatchdogStart(Milliseconds:LongWord):LongWord; 
Description: To be documented


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


[Expand]
function SysWatchdogRefresh(Milliseconds:LongWord):LongWord;
Description: To be documented


Device helper functions

[Expand]
function DeviceGetCount:LongWord; inline;
Description: Get the current device count


[Expand]
function DeviceCheck(Device:PDevice):PDevice;
Description: Check if the supplied Device is in the device table


[Expand]
function NotifierGetCount:LongWord; inline;
Description: Get the current notifier count


[Expand]
function NotifierCheck(Notifier:PNotifier):PNotifier;
Description: Check if the supplied Notifier is in the notifier table


[Expand]
function DeviceBusToString(DeviceBus:LongWord):String;
Description: To be documented


[Expand]
function DeviceStateToString(DeviceState:LongWord):String;
Description: To be documented


[Expand]
function DeviceClassToString(DeviceClass:LongWord):String;
Description: To be documented


[Expand]
function NotificationToString(Notification:LongWord):String;
Description: To be documented


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


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


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


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


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


Driver helper functions

[Expand]
function DriverGetCount:LongWord; inline;
Description: Get the current driver count


[Expand]
function DriverCheck(Driver:PDriver):PDriver;
Description: Check if the supplied Driver is in the driver table


[Expand]
function DriverStateToString(DriverState:LongWord):String;
Description: To be documented


[Expand]
function DriverClassToString(DriverClass:LongWord):String;
Description: To be documented


Clock device helper functions

[Expand]
function ClockDeviceGetCount:LongWord; inline;
Description: Get the current clock device count


[Expand]
function ClockDeviceGetDefault:PClockDevice; inline;
Description: Get the current default clock device


[Expand]
function ClockDeviceSetDefault(Clock:PClockDevice):LongWord;
Description: Set the current default clock device


[Expand]
function ClockDeviceCheck(Clock:PClockDevice):PClockDevice;
Description: Check if the supplied Clock is in the Clock table


[Expand]
function ClockTypeToString(ClockType:LongWord):String;
Description: Convert a Clock type value to a string


[Expand]
function ClockStateToString(ClockState:LongWord):String;
Description: Convert a Clock state value to a string


Timer device helper functions

[Expand]
function TimerDeviceGetCount:LongWord; inline;
Description: Get the current timer device count


[Expand]
function TimerDeviceGetDefault:PTimerDevice; inline;
Description: Get the current default timer device


[Expand]
function TimerDeviceSetDefault(Timer:PTimerDevice):LongWord; 
Description: Set the current default timer device


[Expand]
function TimerDeviceCheck(Timer:PTimerDevice):PTimerDevice;
Description: Check if the supplied Timer is in the Timer table


[Expand]
function TimerTypeToString(TimerType:LongWord):String;
Description: Convert a Timer type value to a string


[Expand]
function TimerStateToString(TimerState:LongWord):String;
Description: Convert a Timer state value to a string


[Expand]
function TimerDeviceCreateWaiter(Timer:PTimerDevice; Callback:TTimerCallback; Data:Pointer):PTimerWaiter;
Description: Create a new waiter using the supplied parameters


[Expand]
function TimerDeviceDestroyWaiter(Timer:PTimerDevice; Waiter:PTimerWaiter):LongWord;
Description: Destroy an existing waiter


[Expand]
function TimerDeviceRegisterWaiter(Timer:PTimerDevice; Waiter:PTimerWaiter):LongWord;
Description: Register a waiter in the waiter list of the supplied Timer


[Expand]
function TimerDeviceDeregisterWaiter(Timer:PTimerDevice; Waiter:PTimerWaiter):LongWord;
Description: Deregister a waiter from the waiter list of the supplied Timer


Random device helper functions

[Expand]
function RandomDeviceGetCount:LongWord; inline;
Description: Get the current random device count


[Expand]
function RandomDeviceGetDefault:PRandomDevice; inline;
Description: Get the current default random device


[Expand]
function RandomDeviceSetDefault(Random:PRandomDevice):LongWord;
Description: Set the current default random device


[Expand]
function RandomDeviceCheck(Random:PRandomDevice):PRandomDevice;
Description: Check if the supplied Random is in the Random table


[Expand]
function RandomTypeToString(RandomType:LongWord):String;
Description: Convert a Random type value to a string


[Expand]
function RandomStateToString(RandomState:LongWord):String;
Description: Convert a Random state value to a string


Mailbox device helper functions

[Expand]
function MailboxDeviceGetCount:LongWord; inline;
Description: Get the current mailbox device count


[Expand]
function MailboxDeviceGetDefault:PMailboxDevice; inline;
Description: Get the current default mailbox device


[Expand]
function MailboxDeviceSetDefault(Mailbox:PMailboxDevice):LongWord; 
Description: Set the current default mailbox device


[Expand]
function MailboxDeviceCheck(Mailbox:PMailboxDevice):PMailboxDevice;
Description: Check if the supplied Mailbox is in the Mailbox table


[Expand]
function MailboxTypeToString(MailboxType:LongWord):String;
Description: Convert a Mailbox type value to a string


[Expand]
function MailboxStateToString(MailboxState:LongWord):String;
Description: Convert a Mailbox state value to a string


Watchdog device helper functions

[Expand]
function WatchdogDeviceGetCount:LongWord; inline;
Description: Get the current watchdog device count


[Expand]
function WatchdogDeviceGetDefault:PWatchdogDevice; inline;
Description: Get the current default watchdog device


[Expand]
function WatchdogDeviceSetDefault(Watchdog:PWatchdogDevice):LongWord;
Description: Set the current default watchdog device


[Expand]
function WatchdogDeviceCheck(Watchdog:PWatchdogDevice):PWatchdogDevice;
Description: Check if the supplied Watchdog is in the Watchdog table


[Expand]
function WatchdogTypeToString(WatchdogType:LongWord):String;
Description: Convert a Watchdog type value to a string


[Expand]
function WatchdogStateToString(WatchdogState:LongWord):String;
Description: Convert a Watchdog state value to a string


Return to Unit Reference