26#include <l4/sys/ipc.h>
310 m->
mr[1] = cpus->gran_offset;
317 cpus->map = m->
mr[0];
323 *sched_classes = m->
mr[2];
334 m->
mr[1] = sp->affinity.gran_offset;
335 m->
mr[2] = sp->affinity.map;
337 m->
mr[4] = sp->quantum;
352 v->
mr[1] = cpus->gran_offset;
353 v->
mr[2] = cpus->map;
374 r = l4_scheduler_info_u(scheduler, NULL, &s, NULL, utcb);
386 return l4_scheduler_info_u(scheduler, cpu_max, cpus, NULL,
l4_utcb());
394 return l4_scheduler_info_u(scheduler, cpu_max, cpus, sched_classes,
l4_utcb());
401 return l4_scheduler_run_thread_u(scheduler, thread, sp,
l4_utcb());
408 return l4_scheduler_idle_time_u(scheduler, cpus, us,
l4_utcb());
414 return l4_scheduler_is_online_u(scheduler, cpu,
l4_utcb());
unsigned long l4_umword_t
Unsigned machine word.
l4_uint64_t l4_kernel_clock_t
Kernel clock type.
unsigned long l4_cap_idx_t
Capability selector type.
l4_fpage_t l4_obj_fpage(l4_cap_idx_t obj, unsigned int order, unsigned char rights) L4_NOTHROW
Create a kernel-object flex page.
@ L4_CAP_FPAGE_RWS
Read, interface specific 'W', and 'S' rights for capability flex-pages.
l4_msgtag_t l4_ipc_call(l4_cap_idx_t object, l4_utcb_t *utcb, l4_msgtag_t tag, l4_timeout_t timeout) L4_NOTHROW
Object call (usual invocation).
l4_umword_t l4_map_obj_control(l4_umword_t spot, unsigned grant) L4_NOTHROW
Create the first word for a map item for the object space.
unsigned l4_msgtag_has_error(l4_msgtag_t t) L4_NOTHROW
Test for error indicator flag.
l4_msgtag_t l4_msgtag(long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW
Create a message tag from the specified values.
long l4_msgtag_label(l4_msgtag_t t) L4_NOTHROW
Get the protocol of tag.
@ L4_PROTO_SCHEDULER
Protocol for messages to a scheduler object.
int l4_scheduler_is_online(l4_cap_idx_t scheduler, l4_umword_t cpu) L4_NOTHROW
Query if a CPU is online.
L4_scheduler_ops
Operations on the Scheduler object.
l4_sched_cpu_set_t l4_sched_cpu_set(l4_umword_t offset, unsigned char granularity, l4_umword_t map=1) L4_NOTHROW
l4_msgtag_t l4_scheduler_run_thread(l4_cap_idx_t scheduler, l4_cap_idx_t thread, l4_sched_param_t const *sp) L4_NOTHROW)
Run a thread on a Scheduler.
L4_scheduler_classes
Supported scheduler classes.
l4_msgtag_t l4_scheduler_info(l4_cap_idx_t scheduler, l4_umword_t *cpu_max, l4_sched_cpu_set_t *cpus) L4_NOTHROW))
Get scheduler information.
l4_sched_param_t l4_sched_param(unsigned prio, l4_umword_t quantum=0) L4_NOTHROW
Construct scheduler parameter.
l4_msgtag_t l4_scheduler_info_with_classes(l4_cap_idx_t scheduler, l4_umword_t *cpu_max, l4_sched_cpu_set_t *cpus, l4_umword_t *sched_classes) L4_NOTHROW))
Get scheduler information.
l4_msgtag_t l4_scheduler_idle_time(l4_cap_idx_t scheduler, l4_sched_cpu_set_t const *cpus, l4_kernel_clock_t *us) L4_NOTHROW)
Query the idle time (in µs) of a CPU.
@ L4_SCHEDULER_RUN_THREAD_OP
Run a thread on this scheduler.
@ L4_SCHEDULER_IDLE_TIME_OP
Query idle time for the scheduler.
@ L4_SCHEDULER_INFO_OP
Query infos about the scheduler.
@ L4_SCHEDULER_CLASS_WFQ
Weighted fair queuing scheduler.
@ L4_SCHEDULER_CLASS_FIXED_PRIO
Fixed-priority scheduler.
unsigned l4_utcb_mr64_idx(unsigned idx) L4_NOTHROW
Get index into 64bit message registers alias from native-sized index.
#define L4_IPC_NEVER
never timeout
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
l4_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE
Get the UTCB address.
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
#define L4_INLINE
L4 Inline function attribute.
Kernel object system calls.
Message tag data structure.
void set(unsigned char granularity, unsigned offset)
Set offset and granularity.
l4_umword_t gran_offset
Combination of granularity and offset.
l4_umword_t map
Bitmap of CPUs.
unsigned char granularity() const
l4_sched_cpu_set_t affinity
CPU affinity.
l4_umword_t prio
Priority for scheduling.
l4_umword_t quantum
Timeslice in micro seconds.
l4_umword_t raw
Raw value.
Encapsulation of the message-register block in the UTCB.
l4_umword_t mr[L4_UTCB_GENERIC_DATA_SIZE]
Message registers.
l4_uint64_t mr64[L4_UTCB_GENERIC_DATA_SIZE/(sizeof(l4_uint64_t)/sizeof(l4_umword_t))]
Message registers 64bit alias.