Retype an untyped object Given a capability, , to an untyped object, creates of the requested type. Creates capabilities to the new objects starting at in the CNode specified by , , and . For variable-sized kernel objects, the argument is used to determine the size of objects to create. The relationship between and object size depends on the type of object being created. See for more information about object sizes. See for more information about how untyped memory is retyped. See for more information about the placement of capabilities to created objects. The , , or is invalid (see ). The is a CPtr to a capability of the wrong type. The is too big or too small for the requested object type. Or, cannot be created from a device untyped (see ). Or, the requested object does not exist. The is a CPtr to a capability of the wrong type. The do not fit in the destination CNode at . Or, is greater than . Or, is too large. Read a thread's registers into the first fields of a given seL4_UserContext See The is a CPtr to a capability of the wrong type. Or, is the current thread's TCB. The is a CPtr to a capability of the wrong type. The requested too few or too many registers. Set a thread's registers to the first fields of a given seL4_UserContext See The is a CPtr to a capability of the wrong type. Or, is the current thread's TCB. The is a CPtr to a capability of the wrong type. Copy the registers from one thread to another In the context of this function, frame registers are those that are read, modified or preserved by a system call and integer registers are those that are not. Refer to the seL4 userland library source for specifics. The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. Set the parameters of a TCB See The , , , or is a CPtr to a capability of the wrong type. Or, is not assigned to an ASID pool. Or, is invalid. Or, is not aligned. Or, is retyped from a device untyped (see ). The is a CPtr to a capability of the wrong type. The , , or is a CPtr to a capability of the wrong type. Set the parameters of a TCB See The is not aligned. The , , , or is a CPtr to a capability of the wrong type. Or, is not assigned to an ASID pool. Or, is invalid. Or, is retyped from a device untyped (see ). The is a CPtr to a capability of the wrong type. The , , or is a CPtr to a capability of the wrong type. Change a thread's priority See The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. The is greater than the maximum controlled priority of . Change a thread's maximum controlled priority See The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. The is greater than the maximum controlled priority of . Change a thread's priority and maximum controlled priority. See The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. The is greater than the maximum controlled priority of . Or, is greater than the maximum controlled priority of . Change a thread's priority, maximum controlled priority, scheduling context and fault handler. See The is a CPtr to a capability of the wrong type. Or, or is already bound. Or, is the current thread's TCB. Or, is a TCB in the blocked state and is not schedulable. The , , , or is a CPtr to a capability of the wrong type. Or, does not have both Write rights and either Grant or GrantReply rights to the Endpoint (see ). The is greater than the maximum controlled priority of . Or, is greater than the maximum controlled priority of . Set a thread's timeout endpoint. Timeout exception messages will be delivered to this endpoint if it is not a null capability. The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. Or, does not have both Write rights and either Grant or GrantReply rights to the Endpoint (see ). Set a thread's IPC buffer See Sections and The is not aligned. The or is a CPtr to a capability of the wrong type. Or, is retyped from a device untyped (see ). The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. Set the fault endpoint, CSpace and VSpace of a thread See The , , or is a CPtr to a capability of the wrong type. Or, is not assigned to an ASID pool. Or, is invalid. The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. Set the fault endpoint, CSpace and VSpace of a thread See The , , or is a CPtr to a capability of the wrong type. Or, is not assigned to an ASID pool. Or, is invalid. The or is a CPtr to a capability of the wrong type. Or, does not have both Write rights and either Grant or GrantReply rights to the Endpoint (see ). The or is a CPtr to a capability of the wrong type. Suspend a thread See The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. Resume a thread See The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. Binds a notification object to a See The or is a CPtr to a capability of the wrong type. Or, or is already bound. Or, does not have Read rights to the Notification (see ). The is a CPtr to a capability of the wrong type. Unbinds any notification object from a See The is a CPtr to a capability of the wrong type. Or, is not bound to a notification. The is a CPtr to a capability of the wrong type. Change a thread's current CPU in multicore machine See The is a CPtr to a capability of the wrong type. Or, is not a valid CPU number. The is a CPtr to a capability of the wrong type. Set or modify a thread's breakpoints or watchpoints. Calls to this function overwrite previous configurations for the target breakpoint. Do not use this with seL4_SingleStep: the API will reject the call and return an error. Instead, use seL4_TCB_ConfigureSingleStepping to configure single-stepping. See The is not aligned to bytes. The is a CPtr to a capability of the wrong type. The , , or is not valid for the given . Or, argument values are inappropriate for the target architecture. Or, is in the kernel virtual address range. The is a CPtr to a capability of the wrong type. The argument values are inappropriate for the target architecture. Read a breakpoint or watchpoint's current configuration. See A : Struct that contains , an seL4 API error value, , the virtual address at which the breakpoint will currently be triggered; , the type of operation which will currently trigger the breakpoint, whether instruction execution, or data access; , integer value for the span-size of the breakpoint. Usually a power of two (1, 2, 4, etc.); , the access direction that will currently trigger the breakpoint, whether read, write, or both and , which indicates whether or not the breakpoint will currently be triggered if the match conditions are met. The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. The argument values are inappropriate for the target architecture. Disables a hardware breakpoint or watchpoint. The caller should assume that the underlying configuration of the hardware registers has also been cleared. Do not use this to clear single-stepping: the API will reject the call and return an error. Instead, use seL4_TCB_ConfigureSingleStepping to disable single-stepping. See The is a CPtr to a capability of the wrong type. Or, the argument values are inappropriate for the target architecture. The is a CPtr to a capability of the wrong type. The argument values are inappropriate for the target architecture. Set or modify single stepping options for the target TCB. Subsequent calls to this function overwrite previous configuration. Depending on your processor architecture, this may or may not require the consumption of a hardware register. See Sections and A : Struct that contains , an seL4 API error value, , a boolean which indicates whether or not the breakpoint ID that was passed to the function, was consumed in the setup of the single-stepping functionality: if this is , the caller should not attempt to re-use until it has disabled the single-stepping functionality via a subsequent call to seL4_TCB_ConfigureSingleStepping with an argument of 0. The is a CPtr to a capability of the wrong type. Or, the argument values are inappropriate for the target architecture. The argument values are inappropriate for the target architecture. The is a CPtr to a capability of the wrong type. Set the TLS base of the target TCB. This intended for use on architectures where the register used for TLS can only be written to in privilidged mode The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. Delete all child capabilities of a capability See . The or is invalid (see ). The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. The is invalid (see ). Delete a capability See . The or is invalid (see ). The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. The is invalid (see ). The cancel badged sends method is intend to allow for the reuse of badges by an authority. When used with a badged endpoint capability it will cancel any outstanding send operations for that endpoint and badge. This operation has no effect on un-badged or other objects. See . The or is invalid (see ). The is a CPtr to a capability of the wrong type. Or, the capability does not have full rights to the Endpoint (see ). The is a CPtr to a capability of the wrong type. The is invalid (see ). Copy a capability, setting its access rights whilst doing so See . The rights inherited by the new capability.Possible values for this type are given in . The index or depth of the source or destination is invalid (see ). Or, is a CPtr to a capability of the wrong type. Or, the source slot is empty. The is a CPtr to a capability of the wrong type. Or, the source capability cannot be derived (see ). The is a CPtr to a capability of the wrong type. The or is invalid (see ). The source capability cannot be derived (see ). Copy a capability, setting its access rights and badge whilst doing so See . The rights inherited by the new capability.Possible values for this type are given in . The index or depth of the source or destination is invalid (see ). Or, is a CPtr to a capability of the wrong type. Or, the source slot is empty. The is a CPtr to a capability of the wrong type. Or, the source capability cannot be derived (see ). Or, the badge or guard value is invalid. The is a CPtr to a capability of the wrong type. The or is invalid (see ). The source capability cannot be derived (see ). Move a capability See . The index or depth of the source or destination is invalid (see ). Or, is a CPtr to a capability of the wrong type. Or, the source slot is empty. The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. The or is invalid (see ). Move a capability, setting its badge in the process See . The index or depth of the source or destination is invalid (see ). Or, is a CPtr to a capability of the wrong type. Or, the source slot is empty. The is a CPtr to a capability of the wrong type. Or, the guard value is invalid. The is a CPtr to a capability of the wrong type. The or is invalid (see ). Given 3 capability slots - a destination, pivot and source - move the capability in the pivot slot to the destination slot and the capability in the source slot to the pivot slot See . The index or depth of the source, destination, or pivot is invalid (see ). Or, or is a CPtr to a capability of the wrong type. Or, the source or pivot slot is empty. The is a CPtr to a capability of the wrong type. Or, the pivot is the same slot as the source or destination. Or, the guard value on the destination or pivot is invalid. The is a CPtr to a capability of the wrong type. The , , or is invalid (see ). Save the reply capability from the last time the thread was called in the given CSpace so that it can be invoked later See . The or is invalid (see ). The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. The is invalid (see ). Create an IRQ handler capability See . The , , or is invalid (see ). The is a CPtr to a capability of the wrong type. Or, on x86, an IOAPIC is being used. The is a CPtr to a capability of the wrong type. The is invalid for the target architecture. Or, on x86, is not in the ISA IRQ range. Or, is invalid (see ). An IRQ handler capability for has already been created. Acknowledge the receipt of an interrupt and re-enable it See . The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. Set the notification which the kernel will signal on interrupts controlled by the supplied IRQ handler capability See . The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. Or, does not have the Write right (see ). Clear the handler capability from the IRQ slot See . The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. Change the domain of a thread. See . The is a CPtr to a capability of the wrong type. The is greater than . Or, is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. Set the parameters of a scheduling context by invoking the scheduling control capability. If the scheduling context is bound to a currently running thread, the parameters will take effect immediately: that is the current budget will be increased or reduced by the difference between the new and previous budget and the replenishment time will be updated according to any difference in the period. This can result in active threads being post-poned or released depending on the nature of the parameter change and the state of the thread. Additionally, if the scheduling context was previously empty (no budget) but bound to a runnable thread, this can result in a thread running for the first time since it now has access to CPU time. This call will return seL4 Invalid Argument if the parameters are too small (smaller than the kernel WCET for this platform) or too large (will overflow the timer). See The is a CPtr to a capability of the wrong type. The or is a CPtr to a capability of the wrong type. The or or is too big or too small. Or, is greater than . Bind an object to a scheduling context. The object can be a notification object or a thread. If the object is a thread and the thread is in a runnable state and the scheduling context has available budget, this will start the thread running. If the object is a notification, when passive threads wait on the notification object and a signal arrives, the passive thread will receive the scheduling context and possess it until it waits on the notification object again. This operation will fail for notification objects if the scheduling context is already bound to a notification object, and for thread objects if the the scheduling context is already bound to a thread. See The is a CPtr to a capability of the wrong type. Or, or is already bound to the same type of object. Or, is a TCB in the blocked state and is not schedulable. The or is a CPtr to a capability of the wrong type. Unbind any objects (threads or notification objects) from a scheduling context. This will render the bound thread passive, see Section 6.1.5. See The is a CPtr to a capability of the wrong type. Or, the current thread's TCB is bound to . The is a CPtr to a capability of the wrong type. Unbind an object from a scheduling context. The object can be either a thread or a notification. If the thread being unbound is the thread that is bound to this scheduling context, this will render the thread passive. However if the thread being unbound received the scheduling context via scheduling context donation over IPC, the scheduling context will be returned to the thread that it was originally bound to. If the object is a notification and it is bound to the scheduling context, unbind it. See The is a CPtr to a capability of the wrong type. Or, is not bound to . Or, is the current thread's TCB. The or is a CPtr to a capability of the wrong type. Return the amount of time used by this scheduling context since this function was last called or a timeout exception triggered. See The is a CPtr to a capability of the wrong type. The is a CPtr to a capability of the wrong type. If a thread is currently runnable and running on this scheduling context and the scheduling context has available budget, place it at the head of the scheduling queue. If the caller is at an equal priority to the thread this will result in the thread being scheduled. If the caller is at a higher priority the thread will not run until the threads priority is the highest priority in the system. The caller must have a maximum control priority greater than or equal to the threads priority. TODO The is a CPtr to a capability of the wrong type. Or, is not bound to a TCB or is bound to the current thread's TCB. Or, the target thread's priority is greater than the current thread's maximum controlled priority (see ). The is a CPtr to a capability of the wrong type.