L4Re - L4 Runtime Environment
|
Go to the documentation of this file.
26 #include <l4/sys/ipc.h>
239 m->
mr[1] = cpus->gran_offset;
246 cpus->map = m->
mr[0];
260 m->
mr[1] = sp->affinity.gran_offset;
261 m->
mr[2] = sp->affinity.map;
263 m->
mr[4] = sp->quantum;
278 v->
mr[1] = cpus->gran_offset;
279 v->
mr[2] = cpus->map;
300 r = l4_scheduler_info_u(scheduler, NULL, &s, utcb);
312 return l4_scheduler_info_u(scheduler, cpu_max, cpus,
l4_utcb());
319 return l4_scheduler_run_thread_u(scheduler, thread, sp,
l4_utcb());
326 return l4_scheduler_idle_time_u(scheduler, cpus, us,
l4_utcb());
332 return l4_scheduler_is_online_u(scheduler, cpu,
l4_utcb());
l4_umword_t gran_offset
Combination of granularity and offset.
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
l4_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE
Get the UTCB address.
l4_sched_cpu_set_t l4_sched_cpu_set(l4_umword_t offset, unsigned char granularity, l4_umword_t map=1) L4_NOTHROW
int l4_scheduler_is_online(l4_cap_idx_t scheduler, l4_umword_t cpu) L4_NOTHROW
Query if a CPU is online.
unsigned long l4_cap_idx_t
L4 Capability selector Type.
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.
l4_uint64_t l4_kernel_clock_t
Kernel clock type.
struct l4_sched_param_t l4_sched_param_t
Scheduler parameter set.
L4_scheduler_ops
Operations on the Scheduler object.
long l4_msgtag_label(l4_msgtag_t t) L4_NOTHROW
Get the protocol of tag.
l4_sched_cpu_set_t affinity
CPU affinity.
unsigned char granularity() const
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_msgtag_t l4_msgtag(long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW
Create a message tag from the specified values.
unsigned l4_utcb_mr64_idx(unsigned idx) L4_NOTHROW
Get index into 64bit message registers alias from native-sized index.
l4_umword_t map
Bitmap of CPUs.
@ L4_PROTO_SCHEDULER
Protocol for messages to a scheduler object.
l4_umword_t prio
Priority for scheduling.
l4_umword_t raw
Raw value.
Encapsulation of the message-register block in the UTCB.
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_umword_t mr[L4_UTCB_GENERIC_DATA_SIZE]
Message registers.
Kernel object system calls.
@ L4_SCHEDULER_INFO_OP
Query infos about the scheduler.
l4_uint64_t mr64[L4_UTCB_GENERIC_DATA_SIZE/(sizeof(l4_uint64_t)/sizeof(l4_umword_t))]
Message registers 64bit alias.
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 quantum
Timeslice in micro seconds.
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.
struct l4_sched_cpu_set_t l4_sched_cpu_set_t
CPU sets.
void set(unsigned char granularity, unsigned offset)
Set offset and granularity.
@ L4_SCHEDULER_IDLE_TIME_OP
Query idle time for the scheduler.
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
@ L4_SCHEDULER_RUN_THREAD_OP
Run a thread on this scheduler.
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_CAP_FPAGE_RWS
Read, interface specific 'W', and 'S' rights for capability flex-pages.
unsigned long l4_umword_t
Unsigned machine word.
l4_sched_param_t l4_sched_param(unsigned prio, l4_cpu_time_t quantum=0) L4_NOTHROW
Construct scheduler parameter.
unsigned l4_msgtag_has_error(l4_msgtag_t t) L4_NOTHROW
Test for error indicator flag.
Message tag data structure.
l4_uint64_t l4_cpu_time_t
CPU clock type.