h6. [[Hardware Abstraction Layer]] h6(. » [[HAL Device API]] h6((. » Creation and removal of devices h4. Adding devices - from the HAL Once the OS calls [[HAL_InitDevices]], the HAL is free to register as many devices it wants, whenever it wants. However it's usually best to register all the devices inside the implementation of HAL_InitDevices, to ensure that they're made available to the OS as early as possible during initialisation. [[RISCOS_AddDevice]] is the entry point that the HAL should use to register a device with the OS. Note that it is not possible for the HAL to deregister devices. h4. Adding devices - from the OS "OS_Hardware 2":OS_Hardware#2 should be used to register devices. h4. Removing devices - from the OS "OS_Hardware 3":OS_Hardware#3 should be used to deregister devices. h4. Enumerating and detecting devices "OS_Hardware 4":OS_Hardware#4 can be used to search the device list for devices of a specific type. "OS_Hardware 5":OS_Hardware#5 can be used to search the device list in a similar manner to OS_Hardware 4, except that the results are returned in the same order that the devices were registered. [[Service_Hardware]] is issued by the OS when devices are registered and deregistered. h6. Information source: Kernel.Docs.HAL.NewAPI in CVS