summaryrefslogtreecommitdiffstats
path: root/spec/rtems/signal/if/send.yml
blob: 35d06d0dd848920ee6ed08484b369fccbe8db73a (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
brief: |
  Sends the signal set to the task.
copyrights:
- Copyright (C) 2021 embedded brains GmbH & Co. KG
- Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
definition:
  default:
    attributes: null
    body: null
    params:
    - ${../../type/if/id:/name} ${.:/params[0]/name}
    - ${set:/name} ${.:/params[1]/name}
    return: ${../../status/if/code:/name}
  variants: []
description: |
  This directive sends the signal set, ${.:/params[1]/name}, to the target
  task identified by ${.:/params[0]/name}.

  If a caller sends a signal set to a task with an invalid
  ${/glossary/asr:/term}, then an error code is returned to the caller.  If a
  caller sends a signal set to a task whose ASR is valid but disabled, then the
  signal set will be caught and left pending for the ASR to process when it is
  enabled.  If a caller sends a signal set to a task with an ASR that is both
  valid and enabled, then the signal set is caught and the ASR will execute the
  next time the task is dispatched to run.
enabled-by: true
index-entries:
- send signal set
interface-type: function
links:
- role: interface-placement
  uid: header
- role: interface-ingroup
  uid: group
- 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-local
- role: constraint
  uid: /constraint/directive-remote
name: rtems_signal_send
notes: |
  Sending a signal set to a task has no effect on that task's state.  If a
  signal set is sent to a blocked task, then the task will remain blocked and
  the signals will be processed when the task becomes the running task.

  Sending a signal set to a global task which does not reside on the local node
  will generate a request telling the remote node to send the signal set to the
  specified task.
params:
- description: |
    is the identifier of the target task to receive the signal set.
  dir: null
  name: id
- description: |
    is the signal set to send.
  dir: null
  name: signal_set
return:
  return: null
  return-values:
  - description: |
      The requested operation was successful.
    value: ${../../status/if/successful:/name}
  - description: |
      The ${.:/params[1]/name} parameter was 0.
    value: ${../../status/if/invalid-number:/name}
  - description: |
      There was no task associated with the identifier specified by
      ${.:/params[0]/name}.
    value: ${../../status/if/invalid-id:/name}
  - description: |
      The target task had no valid ASR installed.
    value: ${../../status/if/not-defined:/name}
type: interface