Build gcc with USE_PT_GNU_EH_FRAME (XCC)
[akaros.git] / kern / arch / x86 / types.h
index 4b49e0c..a561b2f 100644 (file)
@@ -1,16 +1,10 @@
-#ifndef ROS_INC_TYPES_H
-#define ROS_INC_TYPES_H
+#pragma once
 
 #include <stddef.h>
 #ifndef LITTLE_ENDIAN
 #define LITTLE_ENDIAN
 #endif /* !LITTLE_ENDIAN */
 
-// Represents true-or-false values
-
-#define NUM_ADDR_BITS 32
-#define MAX_VADDR     ((uint64_t)(~0) >> (64-NUM_ADDR_BITS))
-
 //Constants for byte sizes
 #define ONE_KILOBYTE  (1L<<10)
 #define ONE_MEGABYTE  (1L<<20)
@@ -31,9 +25,11 @@ typedef int pid_t;
 typedef int uid_t;
 typedef int gid_t;
 
-// Pointers and addresses are 32 bits long.
-// We use pointer types to represent virtual addresses and
-// uintptr_t to represent the numerical values of virtual addresses.
-typedef uint32_t uintptr_t;
-
-#endif /* !ROS_INC_TYPES_H */
+#define NUM_ADDR_BITS 64
+#define BITS_PER_LONG 64
+#define MAX_VADDR     ((uint64_t)(~0) >> (64-NUM_ADDR_BITS))
+typedef uint64_t uintptr_t;
+typedef int64_t intptr_t;
+#define PAGE_SHIFT 12
+#define PAGE_SIZE (1<<PAGE_SHIFT)
+#define PAGE_MASK 0xFFFFFFFFfffff000