]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/l4sys/include/thread.h
update
[l4.git] / l4 / pkg / l4sys / include / thread.h
index 25f2b0fc063c02e1e28da96988e0368ce0588d34..13b3dc5ab1f2a88003e70d0ab03e095a3f1f2ffa 100644 (file)
@@ -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