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指针, 由于在QEMUMemory 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#

布尔常量定义

typedef uint64_t size_t#

计数类型定义

typedef uint8_t byte#

字节类型定义

typedef int64_t offset_t#

偏移类型定义

typedef uint64_t addr_t#

地址类型

typedef uint64_t ireg_t#

整型寄存器类型

typedef uint64_t freg_t#

浮点寄存器类型

Enums

enum [anonymous]#

Values:

enumerator False#

等价于unsigned int false = 0

enumerator True#

等价于unsigned int true = 1