MMgr v1.0.0
Zero-heap memory manager in C11. One borrowed buffer, carved by asserted offset.
Loading...
Searching...
No Matches
InfinitasNs Struct Reference

Type of the iteratio_infinita dispatch table. More...

#include <confinium_exclusivum_infinitas.h>

Data Fields

mmgr_bool(*) init (const InfinCfg *c)
size_t(*) available (const InfinCfg *c)
size_t(*) vacant (const InfinCfg *c)
mmgr_bool(*) read_byte (const InfinCfg *c)
size_t(*) read (const InfinCfg *c)
void(*) peek (const InfinCfg *c)
void(*) consume (const InfinCfg *c)
mmgr_bool(*) put (const InfinCfg *c)
size_t(*) seg_inflight (const InfinCfg *c)
mmgr_bool(*) seg_next (const InfinCfg *c)
void(*) seg_publish (const InfinCfg *c)
mmgr_bool(*) seg_front (const InfinCfg *c)
void(*) seg_release (const InfinCfg *c)
uint8_t *(*) seg_at (const InfinCfg *c)
mmgr_word(*) loculus_ready (const InfinCfg *c)
mmgr_iword(*) loculus_next (const InfinCfg *c)
mmgr_bool(*) loculus_hold (const InfinCfg *c)
const mmgr_ring_span *(*) loculus_keepout (const InfinCfg *c)
void(*) loculus_drop (const InfinCfg *c)
void(*) loculus_mark (const InfinCfg *c)

Detailed Description

Type of the iteratio_infinita dispatch table.

Note
MMGR_NS_LAYOUT asserts the twenty members sit at consecutive MMGR_FP_SIZE offsets, with nothing else.
The first eight are the byte ring, the next six the segment view, the last six the loculi.

Definition at line 124 of file confinium_exclusivum_infinitas.h.

Field Documentation

◆ init

mmgr_bool(*) InfinitasNs::init(const InfinCfg *c)

Lays a fresh ring into the caller's storage.

Definition at line 126 of file confinium_exclusivum_infinitas.h.

◆ available

size_t(*) InfinitasNs::available(const InfinCfg *c)

Bytes waiting to be read.

Definition at line 127 of file confinium_exclusivum_infinitas.h.

◆ vacant

size_t(*) InfinitasNs::vacant(const InfinCfg *c)

Bytes still free to write.

Definition at line 128 of file confinium_exclusivum_infinitas.h.

◆ read_byte

mmgr_bool(*) InfinitasNs::read_byte(const InfinCfg *c)

Takes one byte and advances the tail.

Definition at line 129 of file confinium_exclusivum_infinitas.h.

◆ read

size_t(*) InfinitasNs::read(const InfinCfg *c)

Takes up to bytes and advances the tail once.

Definition at line 130 of file confinium_exclusivum_infinitas.h.

◆ peek

void(*) InfinitasNs::peek(const InfinCfg *c)

Copies bytes out without advancing the tail.

Definition at line 131 of file confinium_exclusivum_infinitas.h.

◆ consume

void(*) InfinitasNs::consume(const InfinCfg *c)

Advances the tail past bytes.

Definition at line 132 of file confinium_exclusivum_infinitas.h.

◆ put

mmgr_bool(*) InfinitasNs::put(const InfinCfg *c)

Writes a whole span, or refuses it entire.

Definition at line 133 of file confinium_exclusivum_infinitas.h.

◆ seg_inflight

size_t(*) InfinitasNs::seg_inflight(const InfinCfg *c)

Segments filled and not yet released.

Definition at line 134 of file confinium_exclusivum_infinitas.h.

◆ seg_next

mmgr_bool(*) InfinitasNs::seg_next(const InfinCfg *c)

Index of the segment the producer fills next.

Definition at line 135 of file confinium_exclusivum_infinitas.h.

◆ seg_publish

void(*) InfinitasNs::seg_publish(const InfinCfg *c)

Makes the filled segment visible to the consumer.

Definition at line 136 of file confinium_exclusivum_infinitas.h.

◆ seg_front

mmgr_bool(*) InfinitasNs::seg_front(const InfinCfg *c)

Index of the segment the consumer takes next.

Definition at line 137 of file confinium_exclusivum_infinitas.h.

◆ seg_release

void(*) InfinitasNs::seg_release(const InfinCfg *c)

Frees the front segment.

Definition at line 138 of file confinium_exclusivum_infinitas.h.

◆ seg_at

uint8_t *(*) InfinitasNs::seg_at(const InfinCfg *c)

The contiguous span of one segment.

Definition at line 139 of file confinium_exclusivum_infinitas.h.

◆ loculus_ready

mmgr_word(*) InfinitasNs::loculus_ready(const InfinCfg *c)

Loculi that are free and not pinned.

Definition at line 140 of file confinium_exclusivum_infinitas.h.

◆ loculus_next

mmgr_iword(*) InfinitasNs::loculus_next(const InfinCfg *c)

Lowest set bit of a mask, or -1.

Definition at line 141 of file confinium_exclusivum_infinitas.h.

◆ loculus_hold

mmgr_bool(*) InfinitasNs::loculus_hold(const InfinCfg *c)

Takes a loculus and records its keepout.

Definition at line 142 of file confinium_exclusivum_infinitas.h.

◆ loculus_keepout

const mmgr_ring_span *(*) InfinitasNs::loculus_keepout(const InfinCfg *c)

The region a pinned loculus keeps out.

Definition at line 143 of file confinium_exclusivum_infinitas.h.

◆ loculus_drop

void(*) InfinitasNs::loculus_drop(const InfinCfg *c)

Gives a loculus back, leaving its bytes alone.

Definition at line 144 of file confinium_exclusivum_infinitas.h.

◆ loculus_mark

void(*) InfinitasNs::loculus_mark(const InfinCfg *c)

Marks a loculus free.

Definition at line 145 of file confinium_exclusivum_infinitas.h.


The documentation for this struct was generated from the following file: