Create ros/vmm/vmx.h, prepare to move lots of code to user mode from kernel driver.
[akaros.git] / kern / arch / x86 / types.h
1 #ifndef ROS_INC_TYPES_H
2 #define ROS_INC_TYPES_H
3
4 #include <stddef.h>
5 #ifndef LITTLE_ENDIAN
6 #define LITTLE_ENDIAN
7 #endif /* !LITTLE_ENDIAN */
8
9 //Constants for byte sizes
10 #define ONE_KILOBYTE  (1L<<10)
11 #define ONE_MEGABYTE  (1L<<20)
12 #define ONE_GIGABYTE  (1L<<30)
13
14 // Explicitly-sized versions of integer types
15 typedef __signed char int8_t;
16 typedef unsigned char uint8_t;
17 typedef short int16_t;
18 typedef unsigned short uint16_t;
19 typedef int int32_t;
20 typedef unsigned int uint32_t;
21 typedef long long int64_t;
22 typedef unsigned long long uint64_t;
23
24 typedef long ssize_t;
25 typedef int pid_t;
26 typedef int uid_t;
27 typedef int gid_t;
28
29 #define NUM_ADDR_BITS 64
30 #define BITS_PER_LONG 64
31 #define MAX_VADDR     ((uint64_t)(~0) >> (64-NUM_ADDR_BITS))
32 typedef uint64_t uintptr_t;
33 #define PAGE_SHIFT 12
34 #define PAGE_SIZE (1<<PAGE_SHIFT)
35 #define PAGE_MASK 0xFFFFFFFFfffff000
36
37 #endif /* !ROS_INC_TYPES_H */