X-Git-Url: https://rtime.felk.cvut.cz/gitweb/l4.git/blobdiff_plain/7d8b3f45f98773ba02057b81b90c31a12320c09e..8d9e85aaae867f39cdd610261e3a4181c25add2d:/l4/pkg/l4sys/include/thread.h diff --git a/l4/pkg/l4sys/include/thread.h b/l4/pkg/l4sys/include/thread.h index 25f2b0fc0..13b3dc5ab 100644 --- a/l4/pkg/l4sys/include/thread.h +++ b/l4/pkg/l4sys/include/thread.h @@ -166,7 +166,6 @@ l4_thread_ex_regs_ret_u(l4_cap_idx_t thread, l4_addr_t *ip, l4_addr_t *sp, * After this functions any of following functions may be called in any order. * - l4_thread_control_pager() * - l4_thread_control_exc_handler() - * - l4_thread_control_scheduler() * - l4_thread_control_bind() * - l4_thread_control_alien() * - l4_thread_control_ux_host_syscall() (Fiasco-UX only) @@ -228,25 +227,6 @@ L4_INLINE void l4_thread_control_exc_handler_u(l4_cap_idx_t exc_handler, l4_utcb_t *utcb) L4_NOTHROW; -/** - * \brief Set the scheduler. - * \ingroup l4_thread_control_api - * - * \param scheduler Capability selector invoked to send a scheduling IPC. - * - * \note The scheduler capability selector is interpreted in the task the - * thread is bound to (executes in). - */ -L4_INLINE void -l4_thread_control_scheduler(l4_cap_idx_t scheduler) L4_NOTHROW; - -/** - * \internal - * \ingroup l4_thread_control_api - */ -L4_INLINE void -l4_thread_control_scheduler_u(l4_cap_idx_t scheduler, l4_utcb_t *utcb) L4_NOTHROW; - /** * \brief Bind the thread to a task. * \ingroup l4_thread_control_api @@ -413,7 +393,9 @@ l4_thread_vcpu_resume_start_u(l4_utcb_t *utcb) L4_NOTHROW; * for the current thread. * \param tag Tag to use, returned by l4_thread_vcpu_resume_start() * - * \return System call result message tag. + * \return System call result message tag. In extended vCPU mode and when + * the virtual interrupts are cleared, the return code 1 flags an incoming + * IPC message, whereas 0 indicates a VM exit. * * To resume into another address space the capability to the target task * must be set in the vCPU-state (\see l4_vcpu_state_t). The task needs @@ -629,8 +611,6 @@ enum L4_thread_control_flags { /** The pager will be given. */ L4_THREAD_CONTROL_SET_PAGER = 0x0010000, - /** The scheduler will be given. */ - L4_THREAD_CONTROL_SET_SCHEDULER = 0x0020000, /** The task to bind the thread to will be given. */ L4_THREAD_CONTROL_BIND_TASK = 0x0200000, /** Alien state of the thread is set. */ @@ -655,7 +635,6 @@ enum L4_thread_control_mr_indices L4_THREAD_CONTROL_MR_IDX_FLAGS = 0, /**< \see #L4_thread_control_flags. */ L4_THREAD_CONTROL_MR_IDX_PAGER = 1, /**< Index for pager cap */ L4_THREAD_CONTROL_MR_IDX_EXC_HANDLER = 2, /**< Index for exception handler */ - L4_THREAD_CONTROL_MR_IDX_SCHEDULER = 3, /**< Index for scheduler */ L4_THREAD_CONTROL_MR_IDX_FLAG_VALS = 4, /**< Index for feature values */ L4_THREAD_CONTROL_MR_IDX_BIND_UTCB = 5, /**< Index for UTCB address for bind */ L4_THREAD_CONTROL_MR_IDX_BIND_TASK = 6, /**< Index for task flex-page for bind */ @@ -728,14 +707,6 @@ l4_thread_control_exc_handler_u(l4_cap_idx_t exc_handler, v->mr[L4_THREAD_CONTROL_MR_IDX_EXC_HANDLER] = exc_handler; } -L4_INLINE void -l4_thread_control_scheduler_u(l4_cap_idx_t scheduler, l4_utcb_t *utcb) L4_NOTHROW -{ - l4_msg_regs_t *v = l4_utcb_mr_u(utcb); - v->mr[L4_THREAD_CONTROL_MR_IDX_FLAGS] |= L4_THREAD_CONTROL_SET_SCHEDULER; - v->mr[L4_THREAD_CONTROL_MR_IDX_SCHEDULER] = scheduler; -} - L4_INLINE void l4_thread_control_bind_u(l4_utcb_t *thread_utcb, l4_cap_idx_t task, l4_utcb_t *utcb) L4_NOTHROW @@ -845,12 +816,6 @@ l4_thread_control_exc_handler(l4_cap_idx_t exc_handler) L4_NOTHROW l4_thread_control_exc_handler_u(exc_handler, l4_utcb()); } -L4_INLINE void -l4_thread_control_scheduler(l4_cap_idx_t scheduler) L4_NOTHROW -{ - l4_thread_control_scheduler_u(scheduler, l4_utcb()); -} - L4_INLINE void l4_thread_control_bind(l4_utcb_t *thread_utcb, l4_cap_idx_t task) L4_NOTHROW