SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: | Releases the ISR lock from within an ISR. 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: do { (void) ${.:/params[1]/name}; } while ( 0 ) params: - ${lock:/name} *${.:/params[0]/name} - ${lock-context:/name} *${.:/params[1]/name} return: void variants: - definition: attributes: null body: | ${/score/smp/if/lock-release:/name}( &( ${.:/params[0]/name} )->Lock, &( ${.:/params[1]/name} )->Lock_context ) params: - ${lock:/name} *${.:/params[0]/name} - ${lock-context:/name} *${.:/params[1]/name} return: void enabled-by: defined(${/build-options/if/smp:/name}) description: | This directive releases the ISR lock specified by ${.:/params[0]/name} using the lock context provided by ${.:/params[1]/name}. The interrupt level will remain unchanged. enabled-by: true index-entries: [] interface-type: macro links: - role: interface-placement uid: header - role: interface-ingroup uid: group - role: constraint uid: /constraint/directive-ctx-any - role: constraint uid: /constraint/directive-no-preempt name: rtems_interrupt_lock_release_isr notes: | The lock context shall be the one used to acquire the lock, otherwise the result is unpredictable. Where the system was built with SMP support enabled, this directive releases an SMP lock. params: - description: | is the ISR lock to release within an ISR. dir: inout name: _lock - description: | is the ISR lock context. This lock context shall have been used to acquire the lock by calling ${lock-acquire-isr:/name}. dir: inout name: _lock_context return: null type: interface