XWOS API
4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
mb.h
浏览该文件的文档.
1
13
#ifndef __xwos_lib_mb_h__
14
#define __xwos_lib_mb_h__
15
16
#include <cfg/project.h>
17
24
#include <xwos/ospl/isa.h>
25
33
// cppcheck-suppress [misra-c2012-20.7]
34
#define xwmb_access(t, p) (*((volatile t *)(p)))
35
36
#if !defined(xwmb_compiler) || defined(__DOXYGEN__)
40
# define xwmb_compiler()
41
#endif
42
43
#if !defined(xwmb_mp_mb) || defined(__DOXYGEN__)
47
# define xwmb_mp_mb()
48
#endif
49
50
#if !defined(xwmb_mp_rmb) || defined(__DOXYGEN__)
54
# define xwmb_mp_rmb()
55
#endif
56
57
#if !defined(xwmb_mp_wmb) || defined(__DOXYGEN__)
61
# define xwmb_mp_wmb()
62
#endif
63
64
#if !defined(xwmb_ddb) || defined(__DOXYGEN__)
132
# define xwmb_ddb() xwmb_compiler()
133
#endif
134
135
#if !defined(xwmb_mp_consume) || defined(__DOXYGEN__)
139
# define xwmb_mp_consume() xwmb_ddb()
140
#endif
141
142
#if !defined(xwmb_mp_acquire) || defined(__DOXYGEN__)
148
# define xwmb_mp_acquire() xwmb_mp_mb()
149
#endif
150
151
#if !defined(xwmb_mp_release) || defined(__DOXYGEN__)
157
# define xwmb_mp_release() xwmb_mp_mb()
158
#endif
159
160
#if !defined(xwmb_mp_load_acquire) || defined(__DOXYGEN__)
169
#define xwmb_mp_load_acquire(t, v, p) \
170
do { \
171
xwmb_access(t, &(v)) = xwmb_access(t, p); \
172
xwmb_mp_acquire(); \
173
} while (0)
174
#endif
175
176
#if !defined(xwmb_mp_store_release) || defined(__DOXYGEN__)
185
#define xwmb_mp_store_release(t, p, v) \
186
do { \
187
xwmb_mp_release(); \
188
xwmb_access(t, (p)) = (v); \
189
} while (0)
190
#endif
191
196
#endif
/* xwos/lib/mb.h */
xwos
lib
mb.h
制作者
1.9.7