NVMLib  very early alpha
A library to optimally use a Hybrid RAM setup.
globals.h
Go to the documentation of this file.
1 #ifndef __NVM_GLOBALS__
2 #define __NVM_GLOBALS__
3 
4 #include <stdlib.h>
5 #include <string.h>
6 #include <stdio.h>
7 #include <stdbool.h>
8 #include <math.h>
9 #include <uv.h>
10 #include <errno.h>
11 
12 
19 #define DRAM_STACK 0
20 
26 #define NVRAM_STACK 1
27 
33 #define DRAM_HEAP 2
34 
40 #define NVRAM_HEAP 3
41 
48 #define ANY_RAM 4
49 
50 typedef __uint128_t uint128_t;
51 typedef __uint64_t uint64_t;
52 typedef __uint32_t uint32_t;
53 typedef __uint16_t uint16_t;
54 typedef __uint8_t uint8_t;
55 
56 typedef unsigned long int uintptr_t;
57 typedef long int intptr_t;
58 
61 #define TYPES_TABLE_POOL strcat(program_invocation_short_name, "types_table")
62 #define ALLOC_LIST_POOL strcat(program_invocation_short_name, "alloc_list")
63 
64 // The predefined layouts
65 #define TYPES_TABLE_LAYOUT "types_table"
66 #define ALLOC_LIST_LAYOUT "alloc_list"
67 
69 #define MAIN_LOG_FILE_NAME "./nvm_main_log.log"
71 #define MAIN_LOG_FILE main_log_file_fd
72 
73 
75 extern uv_mutex_t object_maintainence_hashmap_mutex;
77 extern uv_mutex_t object_maintainence_memory_mutex;
81 extern uv_mutex_t object_maintainence_addtion_mutex;
83 extern uv_mutex_t object_maintainence_deletion_mutex;
85 extern uv_mutex_t read_splay_tree_mutex;
87 extern uv_mutex_t write_splay_tree_mutex;
88 #endif // !__NVM_GLOBALS__
uint128_t
__uint128_t uint128_t
Definition: globals.h:50
intptr_t
long int intptr_t
Definition: globals.h:57
uint64_t
__uint64_t uint64_t
Definition: globals.h:51
uint16_t
__uint16_t uint16_t
Definition: globals.h:53
object_maintainence_deletion_mutex
uv_mutex_t object_maintainence_deletion_mutex
The mutex used during manupulation of maintainance map
Definition: object_maintainance.c:17
read_splay_tree_mutex
uv_mutex_t read_splay_tree_mutex
The mutex used during manupulation of read splay tree
Definition: object_maintainance.c:18
object_maintainence_maintain_map_mutex
uv_mutex_t object_maintainence_maintain_map_mutex
The mutex used during manupulation of maintainance map
Definition: object_maintainance.c:15
main_log_file_fd
FILE * main_log_file_fd
Definition: globals.h:70
write_splay_tree_mutex
uv_mutex_t write_splay_tree_mutex
The mutex used during manupulation of read splay tree
Definition: object_maintainance.c:19
uintptr_t
unsigned long int uintptr_t
Definition: globals.h:56
uint8_t
__uint8_t uint8_t
Definition: globals.h:54
object_maintainence_addtion_mutex
uv_mutex_t object_maintainence_addtion_mutex
The mutex used during manupulation of maintainance map
Definition: object_maintainance.c:16
uint32_t
__uint32_t uint32_t
Definition: globals.h:52
program_invocation_short_name
char * program_invocation_short_name
The predefined pools.
object_maintainence_hashmap_mutex
uv_mutex_t object_maintainence_hashmap_mutex
The mutex used during manupulation of types map
Definition: object_maintainance.c:13
object_maintainence_memory_mutex
uv_mutex_t object_maintainence_memory_mutex
The mutex used during nvm_free / access too.
Definition: object_maintainance.c:14