import "generic_ts.idl";
Public Member Functions | |
long | allocate ([in] unsigned long taskno,[out] l4_taskid_t *taskid) |
Allocate a new task id. | |
long | allocate2 ([in] unsigned long taskno,[out] l4_taskid_t *taskid) |
Allocate a new task in the same way as allocate(). | |
long | create ([in, out] l4_taskid_t *taskid,[in] l4_addr_t entry,[in] l4_addr_t stack,[in] unsigned long mcp,[in] l4_taskid_t pager,[in] l4_taskid_t caphandler,[in] l4_quota_desc_t kquota,[in] long prio,[in, string] char *resname,[in] unsigned long flags) |
Create the task. | |
long | free ([in] l4_taskid_t taskid) |
Free previously allocated task id. | |
long | free2 ([in] l4_taskid_t taskid) |
Free previously allocated task id and return chief rights. | |
long | kill ([in] l4_taskid_t taskid,[in] l4_uint8_t options) |
Terminate task. | |
long | kill_recursive ([in] l4_taskid_t taskid) |
Terminate all tasks owned tasknr recursivly! | |
long | owner ([in] l4_taskid_t taskid,[in] l4_taskid_t owner) |
Transfer ownership of a task. | |
long | taskno_to_taskid ([in] unsigned long tasknr,[out] l4_taskid_t *taskid) |
Deliver the corresponding task id. | |
long | exit (void) |
Terminate the caller. | |
void | dump () |
Dump list of all allocated tasks. | |
void | do_kill_reply ([in] l4_threadid_t client) |
INTERNAL, used by events thread. |
long l4::ts::allocate | ( | [in] unsigned long | taskno, | |
[out] l4_taskid_t * | taskid | |||
) |
Allocate a new task id.
Returns -L4_ENOTASK if no task is available. We have to split allocating and creating the task in two steps because creating a task means that the task starts immediatly. If the task starts before the task's pager knows the task ID of the new task, the pager gets confused and should deny the page fault handling for that task. Therefore we allocate the task ID in the first step and can tell the new task ID to the pager in the next step. Finally we create the task.
taskno | if != 0, use the specific task number |
taskid | Id of new task assigned to calling client |
long l4::ts::allocate2 | ( | [in] unsigned long | taskno, | |
[out] l4_taskid_t * | taskid | |||
) |
Allocate a new task in the same way as allocate().
However, this _really_ transfers ownership to the client by making it the new task's chief.
taskno | if != 0, use the specific task number |
taskid | Id of new task assigned to calling client |
long l4::ts::create | ( | [in, out] l4_taskid_t * | taskid, | |
[in] l4_addr_t | entry, | |||
[in] l4_addr_t | stack, | |||
[in] unsigned long | mcp, | |||
[in] l4_taskid_t | pager, | |||
[in] l4_taskid_t | caphandler, | |||
[in] l4_quota_desc_t | kquota, | |||
[in] long | prio, | |||
[in, string] char * | resname, | |||
[in] unsigned long | flags | |||
) |
Create the task.
The taskid must be owned by the client.
taskid | Id of pre-allocated task belonging to client | |
entry | Initial instruction pointer of first thread | |
stack | Initial stack pointer of first thread | |
mcp | Maximum allowed priority | |
pager | Id of first thread's pager | |
caphandler | Capfault handler | |
kquota | In-kernel memory quota | |
prio | Priority of first thread | |
resname | Module name as reserved in RMGR. | |
flags | Flags |
long l4::ts::free | ( | [in] l4_taskid_t | taskid | ) |
Free previously allocated task id.
taskid | Id of the task to free. |
long l4::ts::free2 | ( | [in] l4_taskid_t | taskid | ) |
Free previously allocated task id and return chief rights.
taskid | Id of the task to free. |
long l4::ts::kill | ( | [in] l4_taskid_t | taskid, | |
[in] l4_uint8_t | options | |||
) |
Terminate task.
taskid | Task ID of task to kill | |
options |
long l4::ts::kill_recursive | ( | [in] l4_taskid_t | taskid | ) |
Terminate all tasks owned tasknr recursivly!
taskid | Task ID of task to start from |
long l4::ts::owner | ( | [in] l4_taskid_t | taskid, | |
[in] l4_taskid_t | owner | |||
) |
Transfer ownership of a task.
taskid | Task ID of task which ownership to transfer | |
owner | Task ID of the owner of the task. IF set to L4_NIL_ID, the owner is not checked. |
long l4::ts::taskno_to_taskid | ( | [in] unsigned long | tasknr, | |
[out] l4_taskid_t * | taskid | |||
) |
Deliver the corresponding task id.
tasknr | Task number |