h6. [[Hardware Abstraction Layer]] h6(. » [[Other HAL related documentation|Other documentation]] h6((. » HAL TODO h4(#broken). List of broken functionality This list contains functionality that is 100% broken or may break at a future date due to hidden limitations. * (nothing) h4(#nonsensical). List of nonsensical functionality This list contains functionality that doesn't make sense, from the perspective of creating a clean API. * [[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_IRQClear]] has a dual role of servicing devices and servicing the interrupt controller (main problem being that the extra overhead that will slow down interrupt handling a bit). * The [[HALDeviceAudio_AudC]]'s CustomDMAEnable() function returns a RISC OS error block rather than an enumerated value which gets mapped to a RISC OS error, like the IIC return values. h4(#ambiguous). List of ambiguous functionality This list contains functionality that is ambiguous in specification or implementation. * [[HAL_VideoSetPowerSave]] and [[HAL_VideoVetMode]] are ambiguous in specification. * [[HAL_VideoOutputFormat]] 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. * [[HALDeviceVideo_VDU]], [[HALDeviceSysPeri_IntC]] and [[HALDeviceComms_UART]] have no information available about their specification. h4(#docs). List of documentation shortfalls This list contains HAL topics yet to be described. * Update source code to point to wiki as source for documentation * Scan source code and determine actual implemented functionality of all HAL functions * Update wiki with documentation from external sources ** Iyonix website ** StrongHelp manuals * Document other HAL related areas ** HALLib ** HALTester