SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: | Sets the processor affinity of the interrupt server. copyrights: - Copyright (C) 2017, 2021 embedded brains GmbH (http://www.embedded-brains.de) definition: default: attributes: null body: null params: - ${/c/if/uint32_t:/name} ${.:/params[0]/name} - ${/c/if/size_t:/name} ${.:/params[1]/name} - const ${/c/if/cpu_set_t:/name} *${.:/params[2]/name} - ${../../type/if/priority:/name} ${.:/params[3]/name} return: ${../../status/if/code:/name} variants: [] description: null enabled-by: true index-entries: [] 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/affinity-may-preempt - role: constraint uid: /constraint/priority-may-preempt name: rtems_interrupt_server_set_affinity notes: | The scheduler is set determined by the highest numbered processor in the affinity set specified by ${.:/params[2]/name}. This operation is only reliable in case the interrupt server was suspended via ${server-suspend:/name}. params: - description: | is the interrupt server index. The constant ${server-default:/name} may be used to specify the default interrupt server. dir: null name: server_index - description: | is the size of the processor set referenced by ${.:/params[2]/name} in bytes. dir: null name: affinity_size - description: | is the pointer to a ${/c/if/cpu_set_t:/name} object. The processor set defines the new processor affinity set of the interrupt server. A set bit in the processor set means that the corresponding processor shall be in the processor affinity set of the task, otherwise the bit shall be cleared. dir: null name: affinity - description: | is the new ${/glossary/priority-real:/term} for the interrupt server. dir: null name: priority return: return: | The directive uses ${../../scheduler/if/ident-by-processor-set:/name}, ${../../task/if/set-scheduler:/name}, and ${../../task/if/set-affinity:/name}. If one of these directive fails, then its error status will be returned. return-values: - description: | The requested operation was successful. value: ${../../status/if/successful:/name} - description: | There was no interrupt server associated with the index specified by ${.:/params[0]/name}. value: ${../../status/if/invalid-id:/name} type: interface