Finishes removal of x86_32 (XCC)
[akaros.git] / kern / arch / riscv / types.h
1 #ifndef ROS_INC_TYPES_H
2 #define ROS_INC_TYPES_H
3
4 #include <stddef.h>
5
6 #define LITTLE_ENDIAN
7
8 #ifdef __riscv64
9 # define NUM_ADDR_BITS 64
10 #else
11 # define NUM_ADDR_BITS 32
12 #endif
13
14 #define MAX_VADDR     ((uint64_t)(~0) >> (64-NUM_ADDR_BITS))
15
16 //Constants for byte sizes
17 #define ONE_KILOBYTE  (1L<<10)
18 #define ONE_MEGABYTE  (1L<<20)
19 #define ONE_GIGABYTE  (1L<<30)
20
21 // Explicitly-sized versions of integer types
22 typedef __signed char int8_t;
23 typedef unsigned char uint8_t;
24 typedef short int16_t;
25 typedef unsigned short uint16_t;
26 typedef int int32_t;
27 typedef unsigned int uint32_t;
28 typedef long long int64_t;
29 typedef unsigned long long uint64_t;
30
31 typedef int64_t ssize_t;
32 typedef int32_t pid_t;
33 typedef int32_t uid_t;
34 typedef int32_t gid_t;
35
36 typedef unsigned long uintptr_t;
37
38 #endif /* !ROS_INC_TYPES_H */