h6. [[OS SWI Calls]] h6(. » OS_ReleaseDeviceVector h2. OS_ReleaseDeviceVector h5. (SWI &4C) |_<^{width:4em}. Entry | | |<^. R0 |<^. [[System Device Numbers|Device number]]| |<^. R1 |<^. Address of device driver routine | |<^. R2 |<^. Value to be passed in R12 when driver is called| |<^. R3 |<^. Address of interrupt status if R0 = podule "IRQ" or "FIQ as IRQ" on entry| |<^. R4 |<^. Interrupt mask to use, if R0 = podule "IRQ" or "FIQ as IRQ" on entry| |_<^{width:4em}. Exit | | |<^. R0 |<^. Preserved | |<^. R1 |<^. Preserved | |<^. R2 |<^. Preserved | |<^. R3 |<^. Preserved | |<^. R4 |<^. Preserved | h4. Use The purpose of this call is to remove a driver from the list of claimants of a device vector. h4. Notes The device vector is identified by the contents of the register on entry; R0-R2 (R0-R4 if R0 relates to one of the podule device numbers (see [[Podule_ReadInfo]]) when registered) must be the same as when the vector was claimed. The previous vector owner is re-installed at the head of the chain. If there is no previous owner, then the IRQs from the corresponding device are disabled. You must not attempt to disable a device's IRQs within the IO controller when you release its vector. For expansion card IRQs, you should prevent your device from interrupting again by programming the hardware locally on your expansion card. h4. See also * [[OS_ClaimDeviceVector]] * [[Podule_ReadInfo]] * [[System Device Numbers]]