#ifndef __OSPATOMOPTH__ #define __OSPATOMOPTH__ #ifdef __cplusplus extern "C" { #endif typedef struct { int32_t counter; } OSP_atomic_t; #define atomic_read(v) (*(volatile int32_t *)&(v)->counter) #define atomic_set(v, i) (((v)->counter) = (i)) /* function prototype */ extern void osp_atomic_inc(int32_t *pVar); extern void osp_atomic_dec(int32_t *pVar); extern int32_t osp_atomic_get(int32_t *pVar); extern void osp_atomic_set(int32_t *pVar, int32_t val); extern void osp_atomic64_inc(int64_t *pVar); extern void osp_atomic64_dec(int64_t *pVar); extern int64_t osp_atomic64_get(int64_t *pVar); extern void osp_atomic64_set(int64_t *pVar, int64_t val); #ifdef __cplusplus } #endif #endif /* __OSPATOMOPTH__ */