drivers_mem.h
Typedefs
-
typedef void *(*mem_malloc_fn)(size_t size)
-
typedef void (*mem_free_fn)(void *ptr)
-
typedef void *(*mem_realloc_fn)(void *ptr, size_t size)
-
typedef void (*mem_pressure_cb)(struct mem_buffer *mb, size_t requested, enum mem_pressure_level level)
-
typedef void (*mem_global_pressure_cb)(enum mem_pressure_level level)
-
typedef size_t (*mem_drain_fn)(struct mem_buffer *mb, void *user, size_t budget)
Enums
-
enum mem_pressure_level
Values:
-
enumerator MEM_PRESSURE_NONE
-
enumerator MEM_PRESSURE_MILD
-
enumerator MEM_PRESSURE_HIGH
-
enumerator MEM_PRESSURE_SEVERE
-
enumerator MEM_PRESSURE_CRITICAL
-
enumerator MEM_PRESSURE_GLOBAL
-
enumerator MEM_PRESSURE_NONE
-
enum mem_buffer_type
Values:
-
enumerator MEM_BUFFER_RING
-
enumerator MEM_BUFFER_POOL
-
enumerator MEM_BUFFER_FILE
-
enumerator MEM_BUFFER_RING
Values:
-
enumerator MEM_FILE_MAX_SLOTS
-
enumerator MEM_FILE_MAX_SLOTS
-
struct mem_file_slot
- #include <drivers_mem.h>
-
struct mem_buffer
- #include <drivers_mem.h>
Public Members
-
enum mem_buffer_type type
-
uint8_t *buf
-
size_t initial_size
-
size_t current_size
-
size_t max_size
-
uint8_t flags
-
enum mem_pressure_level last_pressure_level
-
size_t step
-
uint8_t grow_threshold_pct
-
uint8_t shrink_threshold_pct
-
uint16_t shrink_hold_count
-
uint16_t shrink_hold_base
-
uint16_t shrink_hold_next
-
uint8_t shrink_stage
-
uint16_t shrink_hits
-
mem_pressure_cb pressure_cb
-
struct mem_buffer *stats_next
-
size_t len
-
size_t head
-
mem_drain_fn drain_fn
-
void *drain_fn_data
-
struct mem_buffer ring
-
size_t pool_block_size
-
size_t pool_block_count
-
size_t pool_used_blocks
-
uint8_t *pool_bitmap
-
size_t pool_bitmap_bytes
-
struct mem_buffer pool
-
size_t used_bytes
-
size_t max_slots
-
struct mem_file_slot *slots
-
struct mem_buffer file
-
union mem_buffer u
-
enum mem_buffer_type type
-
struct mem_buffer_pool_cfg
- #include <drivers_mem.h>
-
struct mem_accounting_stats
- #include <drivers_mem.h>
Public Members
-
size_t total_heap
-
size_t pbuf_pool_size
-
size_t pbuf_pool_used
-
size_t heap_limit
-
size_t heap_used
-
size_t heap_free
-
size_t user_reserved
-
size_t tls_used
-
size_t tls_limit
-
size_t rx_ring_used
-
size_t rx_ring_size
-
size_t socket_ring_used
-
size_t socket_ring_size
-
enum mem_pressure_level pbuf_pressure
-
enum mem_pressure_level heap_pressure
-
enum mem_pressure_level effective_pressure
-
size_t total_heap