x86: fixes early core_id() calls
[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 #ifdef CONFIG_X86_64
30
31 #define NUM_ADDR_BITS 64
32 #define MAX_VADDR     ((uint64_t)(~0) >> (64-NUM_ADDR_BITS))
33 typedef uint64_t uintptr_t;
34
35 #else /* 32 bit */
36
37 #define NUM_ADDR_BITS 32
38 #define MAX_VADDR     ((uint64_t)(~0) >> (64-NUM_ADDR_BITS))
39 typedef uint32_t uintptr_t;
40
41 #endif /* 64bit / 32bit */
42
43
44 #endif /* !ROS_INC_TYPES_H */