X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/45e1f8b055043e54be35462852ab6649d634da7c..bffa3430fbbaaad29bec0b5bee9c1f0bfc7fd068:/lunaix-os/includes/lunaix/types.h diff --git a/lunaix-os/includes/lunaix/types.h b/lunaix-os/includes/lunaix/types.h index 5a6fb90..e065273 100644 --- a/lunaix-os/includes/lunaix/types.h +++ b/lunaix-os/includes/lunaix/types.h @@ -1,11 +1,9 @@ #ifndef __LUNAIX_TYPES_H #define __LUNAIX_TYPES_H +#include #include -#include -#include - -#define PACKED __attribute__((packed)) +#include // TODO: WTERMSIG @@ -14,14 +12,48 @@ typedef unsigned char u8_t; typedef unsigned short u16_t; typedef unsigned int u32_t; -typedef unsigned long long u64_t; typedef unsigned long ptr_t; +typedef unsigned long reg_t; + +#ifndef CONFIG_ARCH_BITS_64 +typedef unsigned long long u64_t; +#else +typedef unsigned long u64_t; +#endif -typedef signed long ssize_t; typedef int pid_t; -typedef unsigned long size_t; -typedef unsigned long off_t; +typedef signed long ssize_t; + +typedef unsigned int cpu_t; typedef u64_t lba_t; +#define true 1 +#define false 0 +typedef int bool; + +/** + * container_of - cast a member of a structure out to the containing structure + * + * @ptr: the pointer to the member. + * @type: the type of the container struct this is embedded in. + * @member: the name of the member within the struct. + * + */ +#define container_of(ptr, type, member) \ + ({ \ + const typeof(((type*)0)->member)* __mptr = (ptr); \ + ((ptr_t)ptr != 0UL) ? (type*)((char*)__mptr - offsetof(type, member)) : 0; \ + }) + +#define offset(data, off) \ + ((typeof(data))(__ptr(data) + (off))) + +#define offset_t(data, type, off) \ + ((type*)(__ptr(data) + (off))) + +#define __ptr(val) ((ptr_t)(val)) + +typedef va_list* sc_va_list; + #endif /* __LUNAIX_TYPES_H */