SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: | Establishes an interrupt service routine. copyrights: - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) - Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR) definition: default: attributes: null body: null params: - ${isr-entry:/name} ${.:/params[0]/name} - ${vector-number:/name} ${.:/params[1]/name} - ${isr-entry:/name} *${.:/params[2]/name} return: ${../../status/if/code:/name} variants: [] description: | This directive establishes an interrupt service routine (ISR) for the interrupt specified by the ${.:/params[1]/name} number. The ${.:/params[0]/name} parameter specifies the entry point of the ISR. The entry point of the previous ISR for the specified vector is returned in ${.:/params[2]/name}. To release an interrupt vector, pass the old handler's address obtained when the vector was first capture. enabled-by: true index-entries: - establish an ISR - install an ISR interface-type: function links: - role: interface-placement uid: header - role: interface-ingroup uid: group - role: constraint uid: /constraint/directive-not-pre-qualified - role: constraint uid: /constraint/directive-ctx-isr - role: constraint uid: /constraint/directive-ctx-devinit - role: constraint uid: /constraint/directive-ctx-task - role: constraint uid: /constraint/directive-no-preempt - role: constraint uid: /constraint/cpu-simple-vectored-interrupts name: rtems_interrupt_catch notes: null params: - description: | is the new interrupt service routine. dir: null name: new_isr_handler - description: | is the interrupt vector number. dir: null name: vector - description: | is the pointer to an ${isr-entry:/name} object. When the directive call is successful, the previous interrupt service routine established for this interrupt vector will be stored in this object. dir: out name: old_isr_handler return: return: null return-values: - description: | The requested operation was successful. value: ${../../status/if/successful:/name} - description: | The interrupt vector number was illegal. value: ${../../status/if/invalid-number:/name} - description: | The ${.:/params[0]/name} parameter was ${/c/if/null:/name}. value: ${../../status/if/invalid-address:/name} - description: | The ${.:/params[2]/name} parameter was ${/c/if/null:/name}. value: ${../../status/if/invalid-address:/name} type: interface