20#ifndef REALM_IB_MEMORY_H
21#define REALM_IB_MEMORY_H
45 bool need_alloc_result,
52 virtual void get_bytes(off_t offset,
void *dst,
size_t size);
53 virtual void put_bytes(off_t offset,
const void *
src,
size_t size);
57 const size_t *sizes, off_t *offsets);
62 void free_multiple(
size_t count,
const off_t *offsets,
const size_t *sizes);
91 const void *data,
size_t msglen);
101 const void *data,
size_t msglen);
110 const void *data,
size_t msglen);
118 const void *data,
size_t msglen);
127 const void *data,
size_t msglen);
134 const void *data,
size_t msglen);
Definition ib_memory.h:30
off_t do_alloc(size_t size)
virtual void * get_direct_ptr(off_t offset, size_t size)
void enqueue_requests(PendingIBRequests *reqs)
std::map< off_t, off_t > free_blocks
Definition ib_memory.h:72
void free_multiple(size_t count, const off_t *offsets, const size_t *sizes)
PendingIBRequests * satisfy_pending_reqs()
Mutex mutex
Definition ib_memory.h:71
char * base
Definition ib_memory.h:73
virtual void free_bytes_local(off_t offset, size_t size)
virtual AllocationResult allocate_storage_immediate(RegionInstanceImpl *inst, bool need_alloc_result, bool poisoned, TimeLimit work_until)
bool attempt_immediate_allocation(NodeID requestor, uintptr_t req_op, size_t count, const size_t *sizes, off_t *offsets)
PendingIBRequests ** ibreq_tail
Definition ib_memory.h:75
virtual off_t alloc_bytes_local(size_t size)
PendingIBRequests * ibreq_head
Definition ib_memory.h:74
virtual void put_bytes(off_t offset, const void *src, size_t size)
IBMemory(RuntimeImpl *_runtime_impl, Memory _me, size_t _size, MemoryKind _kind, Memory::Kind _lowlevel_kind, void *prealloc_base, NetworkSegment *_segment)
void do_free(off_t offset, size_t size)
void forward_satisfied_reqs(PendingIBRequests *reqs)
virtual void get_bytes(off_t offset, void *dst, size_t size)
virtual void release_storage_immediate(RegionInstanceImpl *inst, bool poisoned, TimeLimit work_until)
MemoryKind
Definition mem_impl.h:53
AllocationResult
Definition mem_impl.h:89
Kind
Definition memory.h:59
Definition mem_impl.h:220
Definition inst_impl.h:54
Definition runtime_impl.h:264
#define REALM_INTERNAL_API_EXTERNAL_LINKAGE
Definition compiler_support.h:218
Definition activemsg.h:38
void free_intermediate_buffer(Memory mem, off_t offset, size_t size)
int NodeID
Definition nodeset.h:40
Definition ib_memory.h:94
unsigned curr_index
Definition ib_memory.h:96
unsigned count
Definition ib_memory.h:96
NodeID requestor
Definition ib_memory.h:95
bool immediate
Definition ib_memory.h:98
static void handle_message(NodeID sender, const RemoteIBAllocRequestMultiple &args, const void *data, size_t msglen)
unsigned first_index
Definition ib_memory.h:96
uintptr_t req_op
Definition ib_memory.h:97
Definition ib_memory.h:83
static void handle_message(NodeID sender, const RemoteIBAllocRequestSingle &args, const void *data, size_t msglen)
bool immediate
Definition ib_memory.h:88
uintptr_t req_op
Definition ib_memory.h:86
Memory memory
Definition ib_memory.h:84
size_t size
Definition ib_memory.h:85
unsigned req_index
Definition ib_memory.h:87
Definition ib_memory.h:113
uintptr_t req_op
Definition ib_memory.h:114
static void handle_message(NodeID sender, const RemoteIBAllocResponseMultiple &args, const void *data, size_t msglen)
unsigned first_index
Definition ib_memory.h:115
unsigned count
Definition ib_memory.h:115
Definition ib_memory.h:104
static void handle_message(NodeID sender, const RemoteIBAllocResponseSingle &args, const void *data, size_t msglen)
off_t offset
Definition ib_memory.h:107
uintptr_t req_op
Definition ib_memory.h:105
unsigned req_index
Definition ib_memory.h:106
Definition ib_memory.h:130
unsigned count
Definition ib_memory.h:131
static void handle_message(NodeID sender, const RemoteIBReleaseMultiple &args, const void *data, size_t msglen)
Definition ib_memory.h:121
size_t size
Definition ib_memory.h:123
static void handle_message(NodeID sender, const RemoteIBReleaseSingle &args, const void *data, size_t msglen)
off_t offset
Definition ib_memory.h:124
Memory memory
Definition ib_memory.h:122
NodeID src
Definition ucp_internal.h:1