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