#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