X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/b58b151ff3f69422ba1d553f66455700cd3c204b..f6ab9c9ababa2cf6e5c723b83ffb9362094054e8:/lunaix-os/includes/lunaix/types.h diff --git a/lunaix-os/includes/lunaix/types.h b/lunaix-os/includes/lunaix/types.h index 4a1f275..a6af3c1 100644 --- a/lunaix-os/includes/lunaix/types.h +++ b/lunaix-os/includes/lunaix/types.h @@ -1,25 +1,44 @@ #ifndef __LUNAIX_TYPES_H #define __LUNAIX_TYPES_H +#include +#include #include -#include +#include -#define PEXITTERM 0x100 -#define PEXITSTOP 0x200 -#define PEXITSIG 0x400 +#define PACKED __attribute__((packed)) -#define PEXITNUM(flag, code) (flag | (code & 0xff)) +// TODO: WTERMSIG -#define WNOHANG 1 -#define WUNTRACED 2 -#define WEXITSTATUS(wstatus) ((wstatus & 0xff)) -#define WIFSTOPPED(wstatus) ((wstatus & PEXITSTOP)) -#define WIFEXITED(wstatus) \ - ((wstatus & PEXITTERM) && ((char)WEXITSTATUS(wstatus) >= 0)) +// TODO: replace the integer type with these. To make thing more portable. -#define WIFSIGNALED(wstatus) ((wstatus & PEXITSIG)) -// TODO: WTERMSIG +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 signed long ssize_t; +typedef int pid_t; +typedef unsigned long size_t; +typedef unsigned long off_t; + +typedef unsigned int cpu_t; + +typedef u64_t lba_t; -typedef int32_t pid_t; +/** + * 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) ? (type*)((char*)__mptr - offsetof(type, member)) : 0; \ + }) #endif /* __LUNAIX_TYPES_H */