RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Software | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

HAL TODO

Hardware Abstraction Layer
» Other documentation
» HAL TODO

List of broken functionality

This list contains functionality that is 100% broken or may break at a future date due to hidden limitations.

  • RISCOS_AccessPhysicalAddress and RISCOS_ReleasePhysicalAddress, despite being specified in documentation and implemented, are not exported by the kernel source code in Kernel.hdr.OSEntries.
  • The number of supported IRQ/FIQ devices is hard-coded in the kernel source, which could cause problems with HAL_IRQSource/HAL_FIQSource (and all other functions that return device numbers!)
  • RISC OS does not yet support the shared interrupt bit in HAL_ATAControllerInfo

List of nonsensical functionality

This list contains functionality that doesn’t make sense, from the perspective of creating a clean API.

  • RISCOS_IICOpV provides functionality that is mostly identical to the IIC wrapper that was later implemented for the HALDeviceSysPeri_RTC API.
  • RISCOS_IICOpV returns a kernel_error pointer instead of a more OS-independent set of error codes.
  • RISCOS_AddDevice can theoretically fail (if a device with that address is already registered and something prevents it from being removed), but no return value is given to indicate this failure. However this may be a non-issue since you’re just trying to add a device which is already added, so the device will be there whatever the outcome.
  • HAL_Video_IICOp returns a kernel_error pointer instead of a more OS-independent set of error codes.
  • HAL_IRQClear and HAL_FIQClear have dual roles of servicing devices and servicing the interrupt controller (main problem being that the extra overhead that will slow down interrupt handling a bit)
  • The kernel ignores HALDeviceSysPeri_RTC devices that aren’t attached to IIC bus 0, under the assumption that the device uses the iicop wrapper for IIC access. However the device could easily implement its own methods for accessing the RTC.

List of ambiguous functionality

This list contains functionality that is ambiguous in specification or implementation.

  • RISCOS_AddDevice has no specification for what the ‘flags’ parameter does.
  • RISCOS_MapInIO does not specify what the remaining flag bits do.
  • RISCOS_AddDevice does not specify what the flag bits do.
  • HAL_Video_SetPowerSave and HAL_Video_VetMode are ambiguous in specification.
  • HAL_TimerIRQClear and HAL_TimerIRQStatus have no information available about their behaviour.
  • HAL_USBControllerInfo is ambiguous in how it should handle changes in size of the usbinfo struct.
  • HAL_USBPortIRQ has an ambiguous return value specification for a mode of 1.
  • HAL_USBPortPower has a parameter with an unknown purpose.
  • HAL_USBPortStatus has a parameter with an unknown purpose.
  • HAL_Video_OutputFormat has ambiguous return codes.
  • HAL_IRQEnable/HAL_FIQEnable have ambiguous behaviour if an attempt is made to enable both IRQ and FIQ interrupts for the same device.
  • HAL_FIQClear is ambiguous as to whether it has to service timer/vsync interrupts.
  • HAL_PCIFeatures and HAL_PCISpecialCycle have ambiguous specifications.
  • HAL_TouchscreenRead and HAL_TouchscreenMode have no information available about their specification.
  • HALDeviceVideo_VDU, HALDeviceSysPeri_IntC and HALDeviceComms_UART have no information available about thier specification.
Revised on November 29, 2011 13:48:09 by Jeffrey Lee (213) (195.72.173.130)
Edit | Back in time (10 revisions) | See changes | History | Views: Print | Source | Linked from: Hardware Abstraction Layer, Other HAL related documentation

Search the Wiki

Commercial use

For commercial enquiries, please contact the owners of RISC OS, Castle Technology Ltd.

ROOL Store

The official C/C++ Development kit and more here.

Donate! Why?

Help ROOL make things happen – please consider donating!

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
Site design © RISC OS Open Limited 2011 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys