61#define LOS_ASSERT_COND(expression) LOS_ASSERT(expression)
75#define LOS_WAIT_FOREVER 0xFFFFFFFF
83#define ALIGN(addr, boundary) LOS_Align(addr, boundary)
90#define TRUNCATE(addr, size) ((UINTPTR)(addr) & ~((size) - 1))
96#define READ_UINT8(value, addr) ({ (value) = *((volatile UINT8 *)((UINTPTR)(addr))); DSB; })
102#define READ_UINT16(value, addr) ({ (value) = *((volatile UINT16 *)((UINTPTR)(addr))); DSB; })
108#define READ_UINT32(value, addr) ({ (value) = *((volatile UINT32 *)((UINTPTR)(addr))); DSB; })
114#define READ_UINT64(value, addr) ({ (value) = *((volatile UINT64 *)((UINTPTR)(addr))); DSB; })
120#define WRITE_UINT8(value, addr) ({ DSB; *((volatile UINT8 *)((UINTPTR)(addr))) = (value); })
126#define WRITE_UINT16(value, addr) ({ DSB; *((volatile UINT16 *)((UINTPTR)(addr))) = (value); })
132#define WRITE_UINT32(value, addr) ({ DSB; *((volatile UINT32 *)((UINTPTR)(addr))) = (value); })
138#define WRITE_UINT64(value, addr) ({ DSB; *((volatile UINT64 *)((UINTPTR)(addr))) = (value); })
144#define GET_UINT8(addr) ({ UINT8 r = *((volatile UINT8 *)((UINTPTR)(addr))); DSB; r; })
150#define GET_UINT16(addr) ({ UINT16 r = *((volatile UINT16 *)((UINTPTR)(addr))); DSB; r; })
156#define GET_UINT32(addr) ({ UINT32 r = *((volatile UINT32 *)((UINTPTR)(addr))); DSB; r; })
162#define GET_UINT64(addr) ({ UINT64 r = *((volatile UINT64 *)((UINTPTR)(addr))); l; r; })
164#ifdef LOSCFG_DEBUG_VERSION
165#define LOS_ASSERT(judge) do { \
166 if ((UINT32)(judge) == 0) { \
167 (VOID)LOS_IntLock(); \
168 PRINT_ERR("ASSERT ERROR! %s, %d, %s\n", __FILE__, __LINE__, __FUNCTION__); \
174#define LOS_ASSERT_MSG(judge, msg) do { \
175 if ((UINT32)(judge) == 0) { \
176 (VOID)LOS_IntLock(); \
177 PRINT_ERR("ASSERT ERROR! %s, %d, %s\n", __FILE__, __LINE__, __FUNCTION__); \
185#define LOS_ASSERT(judge)
186#define LOS_ASSERT_MSG(judge, msg)
189#define STATIC_ASSERT _Static_assert
VOID LOS_Msleep(UINT32 msecs)
Sleep the current task.
UINTPTR LOS_Align(UINTPTR addr, UINT32 boundary)
Align the value (addr) by some bytes (boundary) you specify.
VOID PrintExcInfo(const CHAR *fmt,...)
打印异常信息
双向链表由内联函数实现 http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-apx-dll....