6 #ifndef ABTD_CONTEXT_H_INCLUDED
7 #define ABTD_CONTEXT_H_INCLUDED
11 #ifndef ABT_CONFIG_USE_FCONTEXT
18 typedef struct ABTD_ythread_context ABTD_ythread_context;
20 typedef struct ABTD_ythread_context_atomic_ptr {
22 } ABTD_ythread_context_atomic_ptr;
24 static inline ABTD_ythread_context *
25 ABTD_atomic_relaxed_load_ythread_context_ptr(
26 const ABTD_ythread_context_atomic_ptr *ptr)
28 return (ABTD_ythread_context *)ABTD_atomic_relaxed_load_ptr(&ptr->val);
31 static inline ABTD_ythread_context *
32 ABTD_atomic_acquire_load_ythread_context_ptr(
33 const ABTD_ythread_context_atomic_ptr *ptr)
35 return (ABTD_ythread_context *)ABTD_atomic_acquire_load_ptr(&ptr->val);
38 static inline void ABTD_atomic_relaxed_store_ythread_context_ptr(
39 ABTD_ythread_context_atomic_ptr *ptr, ABTD_ythread_context *p_ctx)
41 ABTD_atomic_relaxed_store_ptr(&ptr->val, (
void *)p_ctx);
44 static inline void ABTD_atomic_release_store_ythread_context_ptr(
45 ABTD_ythread_context_atomic_ptr *ptr, ABTD_ythread_context *p_ctx)
47 ABTD_atomic_release_store_ptr(&ptr->val, (
void *)p_ctx);
50 void ABTD_ythread_func_wrapper(ABTD_ythread_context *p_arg);
51 void ABTD_ythread_print_context(ABTI_ythread *p_ythread, FILE *p_os,
54 #ifdef ABT_CONFIG_USE_FCONTEXT