@@ -7,7 +7,7 @@ typedef unsigned int uint32_t;
77typedef unsigned long long uint64_t ;
88
99typedef unsigned int size_t ;
10- typedef int bool_t ;
10+ typedef uint8_t bool_t ;
1111
1212typedef signed char int8_t ;
1313typedef signed short int16_t ;
@@ -17,14 +17,96 @@ typedef signed long long int64_t;
1717typedef float float32_t ;
1818typedef double float64_t ;
1919
20+ typedef unsigned long uintptr_t ;
21+ typedef signed long intptr_t ;
22+
23+ typedef volatile uint32_t atomic32_t ;
24+ typedef volatile uint64_t atomic64_t ;
25+
2026#define true 1
2127#define false 0
2228
2329#define NULL ((void *)0)
2430
31+ #define ALIGN_UP (x , align ) (((x) + ((align) - 1)) & ~((align) - 1))
32+ #define ALIGN_DOWN (x , align ) ((x) & ~((align) - 1))
33+
34+ #define PACKED __attribute__((packed))
35+ #define INLINE __attribute__((always_inline)) inline
36+ #define NORETURN __attribute__((noreturn))
37+
38+ #define BIT (n ) (1U << (n))
39+ #define SET_BIT (x , n ) ((x) |= BIT(n))
40+ #define CLEAR_BIT (x , n ) ((x) &= ~BIT(n))
41+ #define TOGGLE_BIT (x , n ) ((x) ^= BIT(n))
42+ #define CHECK_BIT (x , n ) ((x) & BIT(n))
43+
44+ #define UINT8_MAX ((uint8_t)0xFF)
45+ #define UINT16_MAX ((uint16_t)0xFFFF)
46+ #define UINT32_MAX ((uint32_t)0xFFFFFFFF)
47+ #define UINT64_MAX ((uint64_t)0xFFFFFFFFFFFFFFFFULL)
48+
49+ #define OFFSET_OF (type , member ) ((size_t)&(((type *)0)->member))
50+ #define CONTAINER_OF (ptr , type , member ) ((type *)((char *)(ptr) - OFFSET_OF(type, member)))
51+
52+ #define MIN (a , b ) ((a) < (b) ? (a) : (b))
53+ #define MAX (a , b ) ((a) > (b) ? (a) : (b))
54+ #define CLAMP (x , min , max ) (MAX((min), MIN((x), (max))))
55+
56+ #define ARRAY_SIZE (array ) (sizeof(array) / sizeof((array)[0]))
57+
58+ #define UNUSED (x ) (void)(x)
59+ #define STATIC_ASSERT (cond , msg ) typedef char static_assert_##msg[(cond)?1:-1]
60+
61+ #define likely (x ) __builtin_expect(!!(x), 1)
62+ #define unlikely (x ) __builtin_expect(!!(x), 0)
63+
64+ #define MEMORY_BARRIER () __asm__ volatile("" ::: "memory")
65+
66+ #define SWAP (a , b ) do { \
67+ typeof(a) _tmp = (a); \
68+ (a) = (b); \
69+ (b) = _tmp; \
70+ } while(0)
71+
72+ #define DIV_ROUND_UP (n , d ) (((n) + (d) - 1) / (d))
73+ #define IS_ALIGNED (x , a ) (((x) & ((a) - 1)) == 0)
74+
75+ #define CONTAINER_OF_SAFE (ptr , type , member ) \
76+ (ptr ? CONTAINER_OF(ptr, type, member) : NULL)
77+
78+ #define BIT_MASK (len ) ((1U << (len)) - 1)
79+ #define BIT_RANGE (x , start , len ) (((x) >> (start)) & BIT_MASK(len))
80+
81+ #define READ_ONCE (x ) (*(volatile typeof(x) *)&(x))
82+ #define WRITE_ONCE (x , val ) (*(volatile typeof(x) *)&(x) = (val))
83+
84+ #define BUG () __builtin_trap()
85+
86+ #define TYPE_CHECK (x , y ) (!!(sizeof((x) == (y))))
87+
88+ #define ASSERT_ALIGNED (x , a ) STATIC_ASSERT(((a) & ((a) - 1)) == 0, alignment_must_be_power_of_two)
89+
90+ #define PAGE_SIZE 4096
91+ #define PAGE_ALIGN (x ) ALIGN_UP(x, PAGE_SIZE)
92+ #define PAGE_ALIGN_DOWN (x ) ALIGN_DOWN(x, PAGE_SIZE)
93+
94+ #define KB (x ) ((x) * 1024ULL)
95+ #define MB (x ) (KB(x) * 1024ULL)
96+ #define GB (x ) (MB(x) * 1024ULL)
97+
98+ #define PTR_ADD (ptr , val ) ((void *)((uint8_t *)(ptr) + (val)))
99+ #define PTR_SUB (ptr , val ) ((void *)((uint8_t *)(ptr) - (val)))
100+
101+ #define IS_NULL (ptr ) ((ptr) == NULL)
102+ #define BUILD_BUG_ON (cond ) ((void)sizeof(char[1 - 2*!!(cond)]))
103+
104+ #define PREFETCH (x ) __builtin_prefetch(x)
105+ #define CPU_RELAX () __asm__ volatile("pause" ::: "memory")
106+
25107#define TYPES_MODULE_NAME "Types Library"
26108#define TYPES_MODULE_DESC "Types Library for OpenKernel"
27- #define TYPES_MODULE_VER "1 .0"
109+ #define TYPES_MODULE_VER "2 .0"
28110#define TYPES_MODULE_AUTHOR "OpenSoftware-World"
29111#define TYPES_MODULE_FILE_NAME "types.lib"
30112#define TYPES_MODULE_KRNL_VER "2.0"
0 commit comments