Add interrupt server set affinity

Update #3071.
This commit is contained in:
Sebastian Huber
2017-07-11 09:08:15 +02:00
parent a961e1980c
commit d1841406b3
2 changed files with 69 additions and 0 deletions

View File

@@ -750,3 +750,36 @@ rtems_status_code rtems_interrupt_server_resume(uint32_t server_index)
);
return RTEMS_SUCCESSFUL;
}
rtems_status_code rtems_interrupt_server_set_affinity(
uint32_t server_index,
size_t affinity_size,
const cpu_set_t *affinity,
rtems_task_priority priority
)
{
rtems_status_code sc;
bsp_interrupt_server_context *s;
rtems_id scheduler;
s = bsp_interrupt_server_get_context(server_index, &sc);
if (s == NULL) {
return sc;
}
sc = rtems_scheduler_ident_by_processor_set(
affinity_size,
affinity,
&scheduler
);
if (sc != RTEMS_SUCCESSFUL) {
return sc;
}
sc = rtems_task_set_scheduler(s->server, scheduler, priority);
if (sc != RTEMS_SUCCESSFUL) {
return sc;
}
return rtems_task_set_affinity(s->server, affinity_size, affinity);
}