#include <oskit/machine/boolean.h>
This header file defines a number of types whose exact definitions are dependent on the processor architecture and compiler in use.The following set of types are guaranteed to be exactly the indicated width regardless of processor architecture; they are used to get around the fact that different C compilers assign different meanings to the built-in C types such as int and long:
- oskit_s8_t
- Signed 8-bit integer
- oskit_s16_t
- Signed 16-bit integer
- oskit_s32_t
- Signed 32-bit integer
- oskit_s64_t
- Signed 64-bit integer
- oskit_u8_t
- Unsigned 8-bit integer
- oskit_u16_t
- Unsigned 16-bit integer
- oskit_u32_t
- Unsigned 32-bit integer
- oskit_u64_t
- Unsigned 64-bit integer
- oskit_f32_t
- 32-bit floating point type
- oskit_f64_t
- 64-bit floating point type
The following types depend in various ways on the target processor architecture:
- oskit_bool_t
- This type represents the most efficient integer type for storage of simple boolean values; on typical architectures it is the smallest integer type that the processor can handle with no extra overhead.
- oskit_addr_t
- This is an unsigned integer type the same size as a pointer, which can therefore be used to hold virtual or physical addresses and offsets.
- oskit_size_t
- This is an unsigned integer type equivalent to oskit_addr_t, except that it is generally used to represent the size of a data structure or memory buffer, or a difference between two oskit_addr_ts.
- oskit_ssize_t
- This is a signed integer type the same size as oskit_size.
- oskit_reg_t
- This is an unsigned integer type of the same size as a general-purpose processor register; it is generally but not necessarily always equivalent to oskit_addr_t.
- oskit_sreg_t
- This is a signed integer type the same size as oskit_reg_t.