types.h#
types.h中定义了X2W-OS的内建类型
- Author
Shihong Wang (jack4shihong@gmail.com)
- Version
0.1
- Date
2023-04-08
- Copyright
Copyright Shihong Wang (c) 2023 with GNU Public License V3.0
Defines
-
DELIMITER#
分隔符
-
NULL#
NULL被定义为指向内存0x0000000000000000处的void指针, 由于在QEMU的Memory Map中该地址不在内存中, 因此访问该地址最终将会导致报错
-
ARRAY_SIZE(array)#
ARRAY_SIZE宏函数用于计算数组array中的元素个数, 返回值类型为size_t
-
ALIGN64#
ALIGN64宏用于通知GCC/Clang编译器被修饰的变量需要是64-bit对齐, 帮助编译器编译时候生成对应的ELF可执行文件Note
ALIGN64宏本质上是借助了GCC/Clang的__attribute__关键词实现的, 使用的标记(annotation)是:aligned
-
UNUSED#
UNUSED宏用于通知GCC/Clang编译器被修饰的变量可能没有被使用, 从而在编译的时候静默警告Note
UNUSED宏本质上是借助了GCC/Clang的__attribute__关键词实现的, 使用的标记(annotation)是:unused
-
NO_RETURN#
NO_RETURN宏用于通知GCC/Clang编译器被修饰的函数不会返回, 帮助编译器静态分析用Note
NO_RETURN宏本质上是借助了GCC/Clang的__attribute__关键词实现的, 使用的标记(annotation)是:noreturn
-
DEPRECATED#
DEPRECATED宏用于通知GCC/Clang编译器被修饰的对象已经弃用, 帮助编译器静态分析用Note
NO_RETURN宏本质上是借助了GCC/Clang的__attribute__关键词实现的, 使用的标记(annotation)是:deprecated
-
UNREACHABLE#
UNREACHABLE宏用于通知GCC/Clang编译器不会运行到此处, 帮助编译器静态分析用Note
NO_RETURN宏本质上是借助了GCC/Clang内建的__builtin_unreachable()函数实现的
Typedefs
-
typedef unsigned char uint8_t#
LP64中一个char宽度为8 bit
-
typedef unsigned short uint16_t#
LP64中一个short宽度为16 bit
-
typedef unsigned int uint32_t#
LP64中一个int宽度为32 bit
-
typedef unsigned long uint64_t#
LP64中一个long宽度为64 bit
-
typedef char int8_t#
LP64中一个char宽度为8 bit
-
typedef short int16_t#
LP64中一个short宽度为16 bit
-
typedef int int32_t#
LP64中一个int宽度为32 bit
-
typedef long int64_t#
LP64中一个long宽度为64 bit
-
typedef unsigned char Bool#
布尔常量定义