00001 00007 #ifndef _TXC_FUTEX_H 00008 #define _TXC_FUTEX_H 00009 00010 typedef struct txc_cond_event_s txc_cond_event_t; 00011 00012 struct txc_cond_event_s { 00013 int event; 00014 int loops; 00015 }; 00016 00017 #define TM_PURE __attribute__((tm_pure)) 00018 #define TM_CALLABLE __attribute__((tm_callable)) 00019 00020 TM_PURE int futex_wait(void * futex, int val); 00021 TM_PURE int futex_wake(void * futex, int nwake); 00022 00023 00024 TM_PURE int txc_cond_event_init(txc_cond_event_t * ev); 00025 TM_PURE int txc_cond_event_signal(txc_cond_event_t * ev); 00026 TM_PURE int txc_cond_event_wait(txc_cond_event_t * ev); 00027 TM_PURE int txc_cond_event_broadcast(txc_cond_event_t * ev); 00028 TM_CALLABLE int txc_cond_event_get(txc_cond_event_t * ev); 00029 TM_PURE int txc_cond_event_deferred_wait(txc_cond_event_t * ev, int val); 00030 00031 00032 TM_PURE int txc_cond_event_tm_signal_body(txc_cond_event_t * ev) ; 00033 TM_CALLABLE int txc_cond_event_tm_signal(txc_cond_event_t * ev) ; 00034 TM_PURE void txc_cond_event_inc(txc_cond_event_t * ev) ; 00035 00036 #endif /* _TXC_FUTEX_H */