XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
编译器 的协作图:

宏定义

#define __xwcc_section(s)
 
#define __xwcc_aligned(x)   __attribute__((aligned(x)))
 
#define __xwcc_weak   __attribute__((weak))
 
#define __xwcc_weakref(x)   __attribute__((weakref(s)))
 
#define __xwcc_alias(s)   __attribute__((alias(s)))
 
#define __xwcc_weakalias(s)   __attribute__((weak, alias(s)))
 
#define __xwcc_inline   inline
 
#define __xwcc_pure
 
#define __xwcc_packed   __attribute__((packed))
 
#define __xwcc_must_check   __attribute__((warn_unused_result))
 
#define __xwcc_naked   __attribute__((naked))
 
#define __xwcc_unused   __attribute__((unused))
 
#define __xwcc_used   __attribute__((used))
 
#define __xwcc_hot   __attribute__((hot))
 
#define __xwcc_atomic   volatile
 
#define __xwcc_noreturn   __attribute__((noreturn))
 
#define __xwcc_likely(x)   __builtin_expect(!!(x), 1)
 
#define __xwcc_unlikely(x)   __builtin_expect(!!(x), 0)
 
#define __xwcc_alignl1cache   __xwcc_aligned(CPUCFG_L1_CACHELINE_SIZE)
 
#define __xwcc_alignptr   __xwcc_aligned(sizeof(void *))
 
#define __xwcc_warning(message)   __attribute__((warning(message)))
 
#define __xwcc_error(message)   __attribute__((error(message)))
 
#define __xwos_init_code
 
#define __xwos_init_rodata
 
#define __xwos_exit_code
 
#define __xwos_exit_rodata
 
#define __xwos_ivt
 
#define __xwos_isr
 
#define __xwos_bh   __xwos_isr
 
#define __xwos_inline   __xwcc_inline
 
#define __xwos_code
 
#define __xwos_api   __xwos_code
 
#define __xwos_inline_api   __xwcc_inline
 
#define __xwos_rodata
 
#define __xwos_data
 
#define __image_description
 
#define __image_tail
 
#define __xwlib_code   __xwos_code
 
#define __xwlib_inline   __xwcc_inline
 
#define __xwlib_data   __xwos_data
 
#define __xwlib_rodata   __xwos_rodata
 
#define __xwbsp_init_code   __xwos_init_code
 
#define __xwbsp_init_rodata   __xwos_init_rodata
 
#define __xwbsp_exit_code   __xwos_exit_code
 
#define __xwbsp_exit_rodata   __xwos_exit_rodata
 
#define __xwbsp_code   __xwos_code
 
#define __xwbsp_api   __xwos_api
 
#define __xwbsp_isr   __xwos_isr
 
#define __xwbsp_inline   __xwcc_inline
 
#define __xwbsp_data   __xwos_data
 
#define __xwbsp_rodata   __xwos_rodata
 
#define __xwmp_init_code   __xwos_init_code
 
#define __xwmp_init_rodata   __xwos_init_rodata
 
#define __xwmp_exit_code   __xwos_exit_code
 
#define __xwmp_exit_rodata   __xwos_exit_rodata
 
#define __xwmp_ivt   __xwos_ivt
 
#define __xwmp_isr   __xwos_isr
 
#define __xwmp_bh   __xwos_bh
 
#define __xwmp_code   __xwos_code
 
#define __xwmp_api   __xwos_api
 
#define __xwmp_inline   __xwcc_inline
 
#define __xwmp_inline_api   __xwos_inline_api
 
#define __xwmp_rodata   __xwos_rodata
 
#define __xwmp_data   __xwos_data
 
#define __xwup_init_code   __xwos_init_code
 
#define __xwup_init_rodata   __xwos_init_rodata
 
#define __xwup_exit_code   __xwos_exit_code
 
#define __xwup_exit_rodata   __xwos_exit_rodata
 
#define __xwup_ivt   __xwos_ivt
 
#define __xwup_isr   __xwos_isr
 
#define __xwup_bh   __xwos_bh
 
#define __xwup_code   __xwos_code
 
#define __xwup_api   __xwos_api
 
#define __xwup_inline   __xwcc_inline
 
#define __xwup_inline_api   __xwos_inline_api
 
#define __xwup_rodata   __xwos_rodata
 
#define __xwup_data   __xwos_data
 
#define __xwmd_code   __xwos_code
 
#define __xwmd_api   __xwmd_code
 
#define __xwmd_inline   __xwcc_inline
 
#define __xwmd_inline_api   __xwos_inline_api
 
#define __xwmd_isr   __xwmd_code
 
#define __xwmd_bh   __xwmd_isr
 
#define __xwmd_rodata   __xwos_rodata
 
#define __xwmd_data   __xwos_data
 
#define __xwcd_code   __xwos_code
 
#define __xwcd_api   __xwcd_code
 
#define __xwcd_inline   __xwcc_inline
 
#define __xwcd_inline_api   __xwos_inline_api
 
#define __xwcd_isr   __xwcd_code
 
#define __xwcd_bh   __xwcd_isr
 
#define __xwcd_rodata   __xwos_rodata
 
#define __xwcd_data   __xwos_data
 
#define xwcc_native_word(t)
 Is this type a native word size
 
#define __stringify(m)   #m
 定义stringify的辅助宏
 
#define stringify(m)   __stringify(m)
 字符串化
 
#define __show_macro(m)   #m ":" stringify(m)
 显示宏的值
 
#define xwcc_offsetof(type, member)   ((xwptr_t)&(((type *)0)->member))
 计算某个成员在结构体中偏移量
 
#define xwcc_derof(baseptr, derclass, member)    ((derclass *)(((xwptr_t)(baseptr)) - (xwptr_t)xwcc_offsetof(derclass, member)))
 将基类结构体指针转换为派生类结构体指针
 

详细描述

宏定义说明

◆ __image_description

#define __image_description

在文件 compiler.h191 行定义.

◆ __image_tail

#define __image_tail

在文件 compiler.h195 行定义.

◆ __show_macro

#define __show_macro (   m)    #m ":" stringify(m)

显示宏的值

参数
[in]m
注解
  • violation of [misra-c2012-20.10]
    • 此宏的用途是显示宏的内容,只能用于调试目的。

在文件 compiler.h478 行定义.

◆ __stringify

#define __stringify (   m)    #m

定义stringify的辅助宏

在文件 compiler.h441 行定义.

◆ __xwbsp_api

#define __xwbsp_api   __xwos_api

在文件 compiler.h235 行定义.

◆ __xwbsp_code

#define __xwbsp_code   __xwos_code

在文件 compiler.h231 行定义.

◆ __xwbsp_data

#define __xwbsp_data   __xwos_data

在文件 compiler.h247 行定义.

◆ __xwbsp_exit_code

#define __xwbsp_exit_code   __xwos_exit_code

在文件 compiler.h223 行定义.

◆ __xwbsp_exit_rodata

#define __xwbsp_exit_rodata   __xwos_exit_rodata

在文件 compiler.h227 行定义.

◆ __xwbsp_init_code

#define __xwbsp_init_code   __xwos_init_code

在文件 compiler.h215 行定义.

◆ __xwbsp_init_rodata

#define __xwbsp_init_rodata   __xwos_init_rodata

在文件 compiler.h219 行定义.

◆ __xwbsp_inline

#define __xwbsp_inline   __xwcc_inline

在文件 compiler.h243 行定义.

◆ __xwbsp_isr

#define __xwbsp_isr   __xwos_isr

在文件 compiler.h239 行定义.

◆ __xwbsp_rodata

#define __xwbsp_rodata   __xwos_rodata

在文件 compiler.h251 行定义.

◆ __xwcc_alias

#define __xwcc_alias (   s)    __attribute__((alias(s)))

在文件 compiler.h71 行定义.

◆ __xwcc_aligned

#define __xwcc_aligned (   x)    __attribute__((aligned(x)))

在文件 compiler.h62 行定义.

◆ __xwcc_alignl1cache

#define __xwcc_alignl1cache   __xwcc_aligned(CPUCFG_L1_CACHELINE_SIZE)

在文件 compiler.h123 行定义.

◆ __xwcc_alignptr

#define __xwcc_alignptr   __xwcc_aligned(sizeof(void *))

在文件 compiler.h129 行定义.

◆ __xwcc_atomic

#define __xwcc_atomic   volatile

在文件 compiler.h109 行定义.

◆ __xwcc_error

#define __xwcc_error (   message)    __attribute__((error(message)))

在文件 compiler.h135 行定义.

◆ __xwcc_hot

#define __xwcc_hot   __attribute__((hot))

在文件 compiler.h98 行定义.

◆ __xwcc_inline

#define __xwcc_inline   inline

在文件 compiler.h77 行定义.

◆ __xwcc_likely

#define __xwcc_likely (   x)    __builtin_expect(!!(x), 1)

在文件 compiler.h116 行定义.

◆ __xwcc_must_check

#define __xwcc_must_check   __attribute__((warn_unused_result))

在文件 compiler.h86 行定义.

◆ __xwcc_naked

#define __xwcc_naked   __attribute__((naked))

在文件 compiler.h89 行定义.

◆ __xwcc_noreturn

#define __xwcc_noreturn   __attribute__((noreturn))

在文件 compiler.h112 行定义.

◆ __xwcc_packed

#define __xwcc_packed   __attribute__((packed))

在文件 compiler.h83 行定义.

◆ __xwcc_pure

#define __xwcc_pure

在文件 compiler.h80 行定义.

◆ __xwcc_section

#define __xwcc_section (   s)

在文件 compiler.h59 行定义.

◆ __xwcc_unlikely

#define __xwcc_unlikely (   x)    __builtin_expect(!!(x), 0)

在文件 compiler.h119 行定义.

◆ __xwcc_unused

#define __xwcc_unused   __attribute__((unused))

在文件 compiler.h92 行定义.

◆ __xwcc_used

#define __xwcc_used   __attribute__((used))

在文件 compiler.h95 行定义.

◆ __xwcc_warning

#define __xwcc_warning (   message)    __attribute__((warning(message)))

在文件 compiler.h132 行定义.

◆ __xwcc_weak

#define __xwcc_weak   __attribute__((weak))

在文件 compiler.h65 行定义.

◆ __xwcc_weakalias

#define __xwcc_weakalias (   s)    __attribute__((weak, alias(s)))

在文件 compiler.h74 行定义.

◆ __xwcc_weakref

#define __xwcc_weakref (   x)    __attribute__((weakref(s)))

在文件 compiler.h68 行定义.

◆ __xwcd_api

#define __xwcd_api   __xwcd_code

在文件 compiler.h395 行定义.

◆ __xwcd_bh

#define __xwcd_bh   __xwcd_isr

在文件 compiler.h411 行定义.

◆ __xwcd_code

#define __xwcd_code   __xwos_code

在文件 compiler.h391 行定义.

◆ __xwcd_data

#define __xwcd_data   __xwos_data

在文件 compiler.h419 行定义.

◆ __xwcd_inline

#define __xwcd_inline   __xwcc_inline

在文件 compiler.h399 行定义.

◆ __xwcd_inline_api

#define __xwcd_inline_api   __xwos_inline_api

在文件 compiler.h403 行定义.

◆ __xwcd_isr

#define __xwcd_isr   __xwcd_code

在文件 compiler.h407 行定义.

◆ __xwcd_rodata

#define __xwcd_rodata   __xwos_rodata

在文件 compiler.h415 行定义.

◆ __xwlib_code

#define __xwlib_code   __xwos_code

在文件 compiler.h199 行定义.

◆ __xwlib_data

#define __xwlib_data   __xwos_data

在文件 compiler.h207 行定义.

◆ __xwlib_inline

#define __xwlib_inline   __xwcc_inline

在文件 compiler.h203 行定义.

◆ __xwlib_rodata

#define __xwlib_rodata   __xwos_rodata

在文件 compiler.h211 行定义.

◆ __xwmd_api

#define __xwmd_api   __xwmd_code

在文件 compiler.h363 行定义.

◆ __xwmd_bh

#define __xwmd_bh   __xwmd_isr

在文件 compiler.h379 行定义.

◆ __xwmd_code

#define __xwmd_code   __xwos_code

在文件 compiler.h359 行定义.

◆ __xwmd_data

#define __xwmd_data   __xwos_data

在文件 compiler.h387 行定义.

◆ __xwmd_inline

#define __xwmd_inline   __xwcc_inline

在文件 compiler.h367 行定义.

◆ __xwmd_inline_api

#define __xwmd_inline_api   __xwos_inline_api

在文件 compiler.h371 行定义.

◆ __xwmd_isr

#define __xwmd_isr   __xwmd_code

在文件 compiler.h375 行定义.

◆ __xwmd_rodata

#define __xwmd_rodata   __xwos_rodata

在文件 compiler.h383 行定义.

◆ __xwmp_api

#define __xwmp_api   __xwos_api

在文件 compiler.h287 行定义.

◆ __xwmp_bh

#define __xwmp_bh   __xwos_bh

在文件 compiler.h279 行定义.

◆ __xwmp_code

#define __xwmp_code   __xwos_code

在文件 compiler.h283 行定义.

◆ __xwmp_data

#define __xwmp_data   __xwos_data

在文件 compiler.h303 行定义.

◆ __xwmp_exit_code

#define __xwmp_exit_code   __xwos_exit_code

在文件 compiler.h263 行定义.

◆ __xwmp_exit_rodata

#define __xwmp_exit_rodata   __xwos_exit_rodata

在文件 compiler.h267 行定义.

◆ __xwmp_init_code

#define __xwmp_init_code   __xwos_init_code

在文件 compiler.h255 行定义.

◆ __xwmp_init_rodata

#define __xwmp_init_rodata   __xwos_init_rodata

在文件 compiler.h259 行定义.

◆ __xwmp_inline

#define __xwmp_inline   __xwcc_inline

在文件 compiler.h291 行定义.

◆ __xwmp_inline_api

#define __xwmp_inline_api   __xwos_inline_api

在文件 compiler.h295 行定义.

◆ __xwmp_isr

#define __xwmp_isr   __xwos_isr

在文件 compiler.h275 行定义.

◆ __xwmp_ivt

#define __xwmp_ivt   __xwos_ivt

在文件 compiler.h271 行定义.

◆ __xwmp_rodata

#define __xwmp_rodata   __xwos_rodata

在文件 compiler.h299 行定义.

◆ __xwos_api

#define __xwos_api   __xwos_code

在文件 compiler.h175 行定义.

◆ __xwos_bh

#define __xwos_bh   __xwos_isr

在文件 compiler.h163 行定义.

◆ __xwos_code

#define __xwos_code

在文件 compiler.h171 行定义.

◆ __xwos_data

#define __xwos_data

在文件 compiler.h187 行定义.

◆ __xwos_exit_code

#define __xwos_exit_code

在文件 compiler.h147 行定义.

◆ __xwos_exit_rodata

#define __xwos_exit_rodata

在文件 compiler.h151 行定义.

◆ __xwos_init_code

#define __xwos_init_code

在文件 compiler.h139 行定义.

◆ __xwos_init_rodata

#define __xwos_init_rodata

在文件 compiler.h143 行定义.

◆ __xwos_inline

#define __xwos_inline   __xwcc_inline

在文件 compiler.h167 行定义.

◆ __xwos_inline_api

#define __xwos_inline_api   __xwcc_inline

在文件 compiler.h179 行定义.

◆ __xwos_isr

#define __xwos_isr

在文件 compiler.h159 行定义.

◆ __xwos_ivt

#define __xwos_ivt

在文件 compiler.h155 行定义.

◆ __xwos_rodata

#define __xwos_rodata

在文件 compiler.h183 行定义.

◆ __xwup_api

#define __xwup_api   __xwos_api

在文件 compiler.h339 行定义.

◆ __xwup_bh

#define __xwup_bh   __xwos_bh

在文件 compiler.h331 行定义.

◆ __xwup_code

#define __xwup_code   __xwos_code

在文件 compiler.h335 行定义.

◆ __xwup_data

#define __xwup_data   __xwos_data

在文件 compiler.h355 行定义.

◆ __xwup_exit_code

#define __xwup_exit_code   __xwos_exit_code

在文件 compiler.h315 行定义.

◆ __xwup_exit_rodata

#define __xwup_exit_rodata   __xwos_exit_rodata

在文件 compiler.h319 行定义.

◆ __xwup_init_code

#define __xwup_init_code   __xwos_init_code

在文件 compiler.h307 行定义.

◆ __xwup_init_rodata

#define __xwup_init_rodata   __xwos_init_rodata

在文件 compiler.h311 行定义.

◆ __xwup_inline

#define __xwup_inline   __xwcc_inline

在文件 compiler.h343 行定义.

◆ __xwup_inline_api

#define __xwup_inline_api   __xwos_inline_api

在文件 compiler.h347 行定义.

◆ __xwup_isr

#define __xwup_isr   __xwos_isr

在文件 compiler.h327 行定义.

◆ __xwup_ivt

#define __xwup_ivt   __xwos_ivt

在文件 compiler.h323 行定义.

◆ __xwup_rodata

#define __xwup_rodata   __xwos_rodata

在文件 compiler.h351 行定义.

◆ stringify

#define stringify (   m)    __stringify(m)

字符串化

参数
[in]m将m变为字符串
注解
C语言宏展开的规则:遇到 ### 就停止展开。 因此如果直接定义 stringify(m)#m , 遇到下面的代码将不能正常工作:
#define stringify(m) #m
#define NAME Roy
const char my_name[] = stringify(NAME);
// 结果是 my_name[] = "NAME";
#define stringify(m)
字符串化
Definition compiler.h:467
正确的定义方法应该是:
C
#define __stringify(m) #m
#define stringify(m) __stringify(m)
#define NAME Roy
const char my_name[] = stringify(NAME);
// 结果是 my_name[] = "Roy";
因为 NAMEstringify(m) 中展开,没有遇到 ###

在文件 compiler.h467 行定义.

◆ xwcc_derof

#define xwcc_derof (   baseptr,
  derclass,
  member 
)     ((derclass *)(((xwptr_t)(baseptr)) - (xwptr_t)xwcc_offsetof(derclass, member)))

将基类结构体指针转换为派生类结构体指针

参数
[in]baseptr基类结构体指针
[in]derclass派生类结构体类型
[in]member基类在派生类结构体中成员符号名
注解
  • 违反 MISRA-C:2012-11.5
    • XWOS内核虽然是C语言编写,但使用了面向对象的思想, 具有继承关系的基类结构体指针可转换为派生类结构体指针。

在文件 compiler.h501 行定义.

◆ xwcc_native_word

#define xwcc_native_word (   t)
值:
(sizeof(t) == sizeof(xwu8_t) || \
sizeof(t) == sizeof(xwu16_t) || \
sizeof(t) == sizeof(xwu32_t) || \
sizeof(t) == sizeof(xwu64_t))
uint8_t xwu8_t
Definition type.h:194
uint64_t xwu64_t
Definition type.h:303
uint16_t xwu16_t
Definition type.h:230
uint32_t xwu32_t
Definition type.h:266

Is this type a native word size

参数
tsomething to be checked

在文件 compiler.h428 行定义.

◆ xwcc_offsetof

#define xwcc_offsetof (   type,
  member 
)    ((xwptr_t)&(((type *)0)->member))

计算某个成员在结构体中偏移量

参数
[in]type结构体类型
[in]member成员在结构体中符号名

在文件 compiler.h487 行定义.