Changeset 514d561 in mainline for uspace/lib/c/generic/private/fibril.h
- Timestamp:
- 2018-07-20T16:27:20Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 05208d9
- Parents:
- 7137f74c
- git-author:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-19 21:52:47)
- git-committer:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-20 16:27:20)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/private/fibril.h
r7137f74c r514d561 42 42 context_t ctx; 43 43 44 uspace_arg_t uarg; 44 45 link_t link; 45 46 void *stack; 47 size_t stack_size; 46 48 void *arg; 47 49 errno_t (*func)(void *); … … 51 53 errno_t retval; 52 54 53 fibril_ owner_info_t *waits_for;55 fibril_t *thread_ctx; 54 56 55 atomic_t futex_locks;57 bool is_running : 1; 56 58 bool is_writer : 1; 57 59 /* In some places, we use fibril structs that can't be freed. */ 58 60 bool is_freeable : 1; 61 62 /* Debugging stuff. */ 63 atomic_t futex_locks; 64 fibril_owner_info_t *waits_for; 65 fibril_event_t *sleep_event; 59 66 }; 60 61 typedef enum {62 FIBRIL_PREEMPT,63 FIBRIL_FROM_BLOCKED,64 FIBRIL_FROM_MANAGER,65 FIBRIL_FROM_DEAD66 } fibril_switch_type_t;67 67 68 68 extern fibril_t *fibril_alloc(void); 69 69 extern void fibril_setup(fibril_t *); 70 extern void fibril_teardown(fibril_t *f, bool locked); 71 extern int fibril_switch(fibril_switch_type_t stype); 72 extern void fibril_add_manager(fid_t fid); 73 extern void fibril_remove_manager(void); 70 extern void fibril_teardown(fibril_t *f); 74 71 extern fibril_t *fibril_self(void); 75 72 73 extern void __fibrils_init(void); 74 76 75 #endif
Note:
See TracChangeset
for help on using the changeset viewer.