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