1 #ifndef _WIMLIB_TYPES_H
2 #define _WIMLIB_TYPES_H
8 #include "wimlib_tchar.h"
9 #include "wimlib/compiler.h"
12 /* Unsigned integer types of exact size in bits */
18 /* Signed integer types of exact size in bits */
24 /* Unsigned little endian types of exact size */
25 typedef uint16_t _bitwise_attr le16;
26 typedef uint32_t _bitwise_attr le32;
27 typedef uint64_t _bitwise_attr le64;
29 /* Unsigned big endian types of exact size */
30 typedef uint16_t _bitwise_attr be16;
31 typedef uint32_t _bitwise_attr be32;
32 typedef uint64_t _bitwise_attr be64;
35 /* A pointer to 'utf16lechar' indicates a UTF-16LE encoded string */
36 typedef le16 utf16lechar;
38 #ifndef WIMLIB_WIMSTRUCT_DECLARED
39 typedef struct WIMStruct WIMStruct;
40 # define WIMLIB_WIMSTRUCT_DECLARED
44 * Type of a machine word. 'unsigned long' would be logical, but that is only
45 * 32 bits on x86_64 Windows. The same applies to 'uint_fast32_t'. So the best
46 * we can do without a bunch of #ifdefs appears to be 'size_t'.
48 typedef size_t machine_word_t;
50 #define WORDSIZE sizeof(machine_word_t)
52 #endif /* _WIMLIB_TYPES_H */