The ROme OpTimistic Simulator  2.0.0
A General-Purpose Multithreaded Parallel/Distributed Simulation Platform
mm.h
Go to the documentation of this file.
1 
30 #pragma once
31 
32 #include <stdlib.h>
33 #include <sys/mman.h>
34 #include <pthread.h>
35 #include <core/core.h>
36 #include <scheduler/process.h>
37 #include <arch/atomic.h>
38 
39 struct _malloc_state;
40 
41 struct memory_map {
42  struct _malloc_state *m_state;
43  struct buddy *buddy;
44  struct slab_chain *slab;
45  struct segment *segment;
46 };
47 
48 extern bool allocator_init(void);
49 extern void allocator_fini(void);
50 extern void segment_init(void);
51 extern struct segment *get_segment(GID_t i);
52 extern void *get_base_pointer(GID_t gid);
53 
54 extern void initialize_memory_map(struct lp_struct *lp);
55 extern void finalize_memory_map(struct lp_struct *lp);
56 
57 extern struct slab_chain *slab_init(const size_t itemsize);
58 extern void *slab_alloc(struct slab_chain *);
59 extern void slab_free(struct slab_chain *, const void *const addr);
60 
61 
62 // Checkpointing API
63 extern void *log_full(struct lp_struct *);
64 extern void *log_state(struct lp_struct *);
65 extern void log_restore(struct lp_struct *, state_t *);
66 extern void log_delete(void *);
67 extern void clean_buffers_on_gvt(struct lp_struct *, simtime_t);
68 
69 /* Simulation Platform Memory APIs */
70 extern inline void *rsalloc(size_t);
71 extern inline void *rszalloc(size_t size);
72 extern inline void rsfree(void *);
73 extern inline void *rsrealloc(void *, size_t);
74 extern inline void *rscalloc(size_t, size_t);
75 
76 extern void malloc_state_wipe(struct memory_map *);
Structure for LP&#39;s state.
Definition: state.h:49
Core ROOT-Sim functionalities.
Definition: mm.h:41
void log_delete(void *)
Definition: checkpoints.c:371
double simtime_t
This defines the type with whom timestamps are represented.
Definition: ROOT-Sim.h:56
Definition: dymelor.h:208
void * log_state(struct lp_struct *)
Definition: checkpoints.c:195
LP control blocks.
Atomic operations.
void log_restore(struct lp_struct *, state_t *)
Definition: checkpoints.c:355
Definition of a GID.
Definition: core.h:132
Definition of the memory map.
Definition: dymelor.h:120
void * log_full(struct lp_struct *)
Definition: checkpoints.c:76