Changeset 53ee27e for libcfa/src/concurrency/invoke.h
- Timestamp:
- Aug 4, 2020, 5:13:51 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- eafec07
- Parents:
- 3f850d7 (diff), 21b0a23 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
libcfa/src/concurrency/invoke.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/invoke.h
r3f850d7 r53ee27e 17 17 #include "bits/defs.hfa" 18 18 #include "bits/locks.hfa" 19 #include "kernel/fwd.hfa" 19 20 20 21 #ifdef __cforall … … 25 26 #ifndef _INVOKE_H_ 26 27 #define _INVOKE_H_ 27 28 #ifdef __ARM_ARCH29 // function prototypes are only really used by these macros on ARM30 void disable_global_interrupts();31 void enable_global_interrupts();32 33 #define TL_GET( member ) ( { __typeof__( kernelTLS.member ) target; \34 disable_global_interrupts(); \35 target = kernelTLS.member; \36 enable_global_interrupts(); \37 target; } )38 #define TL_SET( member, value ) disable_global_interrupts(); \39 kernelTLS.member = value; \40 enable_global_interrupts();41 #else42 #define TL_GET( member ) kernelTLS.member43 #define TL_SET( member, value ) kernelTLS.member = value;44 #endif45 46 #ifdef __cforall47 extern "Cforall" {48 extern __attribute__((aligned(128))) thread_local struct KernelThreadData {49 struct $thread * volatile this_thread;50 struct processor * volatile this_processor;51 struct __stats_t * volatile this_stats;52 53 struct {54 volatile unsigned short disable_count;55 volatile bool enabled;56 volatile bool in_progress;57 } preemption_state;58 59 #if defined(__SIZEOF_INT128__)60 __uint128_t rand_seed;61 #else62 uint64_t rand_seed;63 #endif64 } kernelTLS __attribute__ ((tls_model ( "initial-exec" )));65 }66 #endif67 28 68 29 struct __stack_context_t { … … 98 59 99 60 enum __Coroutine_State { Halted, Start, Primed, Blocked, Ready, Active }; 100 enum __Preemption_Reason { __NO_PREEMPTION, __ALARM_PREEMPTION, __POLL_PREEMPTION, __MANUAL_PREEMPTION };101 61 102 62 struct $coroutine {
Note:
See TracChangeset
for help on using the changeset viewer.