diff --git a/include/kernel/types.h b/include/kernel/types.h new file mode 100644 index 0000000..9aed79e --- /dev/null +++ b/include/kernel/types.h @@ -0,0 +1,77 @@ +#ifndef KERNELTYPES_H +#define KERNELTYPES_H + +#pragma pack(2) + +#define PAGE_SIZE 4096 +#define PAGE_BITS 12 +#define PAGE_MASK 0xfffff000 + +#define KILO 1024 +#define MEGA (KILO*KILO) +#define GIGA (KILO*KILO*KILO) + +#define MAX_ARGV_LENGTH 256 + +#define MIN(x,y) ( ((x)<(y)) ? (x) : (y) ) +#define MAX(x,y) ( ((x)>(y)) ? (x) : (y) ) + +typedef long long int64_t; +typedef int int32_t; +typedef short int16_t; +typedef char int8_t; + +typedef unsigned long long uint64_t; +typedef unsigned int uint32_t; +typedef unsigned short uint16_t; +typedef unsigned char uint8_t; + +typedef uint8_t bool; + +typedef uint32_t addr_t; + +struct rtc_time { + uint8_t second; + uint8_t minute; + uint8_t hour; + uint8_t day; + uint8_t month; + uint16_t year; +}; + +struct process_info { + int pid; + int exitcode; + int exitreason; +}; + +typedef enum { + KOBJECT_FILE, + KOBJECT_DIR, + KOBJECT_DEVICE, + KOBJECT_WINDOW, + KOBJECT_PIPE, + KOBJECT_CONSOLE +} kobject_type_t; + +typedef enum { + KERNEL_FLAGS_READ=0, + KERNEL_FLAGS_WRITE=1, + KERNEL_FLAGS_CREATE=2, + KERNEL_FLAGS_RANDOM=4, + KERNEL_FLAGS_DIRECT=8 +} kernel_flags_t; + +typedef enum { + KERNEL_IO_NONBLOCK=1, + KERNEL_IO_POST=2, + KERNEL_IO_DIRECT=4, +} kernel_io_flags_t; + +#define KNO_STDIN 0 +#define KNO_STDOUT 1 +#define KNO_STDERR 2 +#define KNO_STDWIN 3 +#define KNO_STDDIR 4 + +#endif