blob: e336ed4f9ea8b938fa05c7b5a77e288a5c1af0a1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
brief: |
Flashes interrupts on the current processor.
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: ${/score/isr/if/local-flash:/name}( ${.:/params[0]/name} )
params: []
return: null
variants: []
description: |
This directive is functionally equivalent to a calling ${enable:/name}
immediately followed by a ${disable:/name}. On some architectures it is
possible to provide an optimized implementation for this sequence.
enabled-by:
not: RTEMS_SMP
index-entries:
- flash interrupts
interface-type: macro
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-any
- role: constraint
uid: /constraint/directive-no-preempt
- role: constraint
uid: ../constraint/no-smp
name: rtems_interrupt_flash
notes: |
The ${.:/params[0]/name} parameter value must be obtained by a previous
call to ${disable:/name} or ${flash:/name}. Using an otherwise obtained
value is undefined behaviour.
Historically, the interrupt flash directive was heavily used in the
operating system implementation. However, this is no longer the case. The
interrupt flash directive is provided for backward compatibility reasons.
params:
- description: |
is the previous interrupt level.
dir: inout
name: _isr_cookie
return: null
type: interface
|