#include <adt/list.h>#include <fibril.h>#include <thread.h>#include <tls.h>#include <malloc.h>#include <unistd.h>#include <stdio.h>#include <arch/barrier.h>#include <libarch/faddr.h>#include <futex.h>#include <assert.h>#include <async.h>Go to the source code of this file.
Defines | |
| #define | FIBRIL_INITIAL_STACK_PAGES_NO 1 |
Functions | |
| void | fibril_add_manager (fid_t fid) |
| Add a fibril to the manager list. | |
| void | fibril_add_ready (fid_t fid) |
| Add a fibril to the ready list. | |
| fid_t | fibril_create (int(*func)(void *), void *arg) |
| Create a new fibril. | |
| void | fibril_dec_sercount (void) |
| Restore the preemption counter to the previous state. | |
| fid_t | fibril_get_id (void) |
| Return fibril id of the currently running fibril. | |
| int | fibril_get_sercount (void) |
| void | fibril_inc_sercount (void) |
| Disable preemption. | |
| static void | fibril_main (void) |
| Function that spans the whole life-cycle of a fibril. | |
| void | fibril_remove_manager (void) |
| Remove one manager from the manager list. | |
| fibril_t * | fibril_setup (void) |
| Setup fibril information into TCB structure. | |
| int | fibril_switch (fibril_switch_type_t stype) |
| Switch from the current fibril. | |
| void | fibril_teardown (fibril_t *fibril) |
Variables | |
| static atomic_t | fibril_futex = FUTEX_INITIALIZER |
| This futex serializes access to ready_list, serialized_list and manager_list. | |
| static fibril_local int | serialization_count |
| Fibril-local count of serialization. | |
| static int | serialized_threads |
| Number of threads that are executing a manager fibril and are serialized. | |
| static int | threads_in_manager |
| Number of threads that are executing a manager fibril. | |
Definition in file fibril.c.
1.4.7