26 #include <l4/sys/ipc.h> 66 unsigned char granularity()
const {
return gran_offset >> 24; }
69 unsigned offset()
const {
return gran_offset & 0x00ffffff; }
246 cpus->
map = m->
mr[0];
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());
Encapsulation of the message-register block in the UTCB.
Run a thread on this scheduler.
l4_umword_t gran_offset
Combination of granularity and offset.
unsigned l4_utcb_mr64_idx(unsigned idx) L4_NOTHROW
Get index into 64bit message registers alias from native-sized index.
l4_umword_t prio
Priority for scheduling.
unsigned l4_msgtag_has_error(l4_msgtag_t t) L4_NOTHROW
Test for error indicator flag.
l4_umword_t mr[L4_UTCB_GENERIC_DATA_SIZE]
Message registers.
Read-write-execute flex page.
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 map
Bitmap of CPUs.
unsigned long l4_cap_idx_t
L4 Capability selector Type.
l4_sched_cpu_set_t l4_sched_cpu_set(l4_umword_t offset, unsigned char granularity, l4_umword_t map=1) L4_NOTHROW
struct l4_utcb_t l4_utcb_t
Opaque type for 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.
#define L4_IPC_NEVER
never timeout
l4_uint64_t mr64[L4_UTCB_GENERIC_DATA_SIZE/(sizeof(l4_uint64_t)/sizeof(l4_umword_t))]
Message registers 64bit alias.
long l4_msgtag_label(l4_msgtag_t t) L4_NOTHROW
Get the protocol of tag.
unsigned char granularity() const
Query idle time for the scheduler.
l4_sched_param_t l4_sched_param(unsigned prio, l4_cpu_time_t quantum=0) L4_NOTHROW
Construct scheduler parameter.
Query infos about the scheduler.
l4_uint64_t l4_cpu_time_t
CPU clock type.
unsigned long l4_umword_t
Unsigned machine word.
l4_uint64_t l4_kernel_clock_t
Kernel clock type.
l4_umword_t raw
Raw value.
int l4_scheduler_is_online(l4_cap_idx_t scheduler, l4_umword_t cpu) L4_NOTHROW
Query if a CPU is online.
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_utcb_t * l4_utcb(void) L4_NOTHROW L4_PURE
Get the UTCB address.
l4_msgtag_t l4_msgtag(long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW
Create a message tag from the specified values.
struct l4_sched_cpu_set_t l4_sched_cpu_set_t
CPU sets.
l4_sched_cpu_set_t affinity
CPU affinity.
l4_umword_t quantum
Timeslice in micro seconds.
Kernel object system calls.
Protocol for messages to a scheduler object.
struct l4_sched_param_t l4_sched_param_t
Scheduler parameter set.
L4_scheduler_ops
Operations on the Scheduler object.
Message tag data structure.
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_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_fpage_t l4_obj_fpage(l4_cap_idx_t obj, unsigned int order, unsigned char rights) L4_NOTHROW
Create a kernel-object flex page.
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.