summaryrefslogtreecommitdiffstats
path: root/spec/rtems/intr/if/flash.yml
blob: 77d920ac2b1de661f5f2619b7319db6c3433e381 (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
52
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:
    - ${level:/name} ${.:/params[0]/name}
    return: void
  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