drivers_mem.h

Defines

LWIP_MEM_ACCOUNTING_TYPES_DEFINED
LWIP_MEM_ACCOUNTING_STATS_DEFINED

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
enum mem_buffer_type

Values:

enumerator MEM_BUFFER_RING
enumerator MEM_BUFFER_POOL
enumerator MEM_BUFFER_FILE

Values:

enumerator MEM_FILE_MAX_SLOTS
enum mem_buffer_flags

Values:

enumerator BUFFER_SECURE_MODE
enumerator BUFFER_LOCK_SIZE
enumerator BUFFER_USER_ALLOC
enumerator BUFFER_LWIP_PBUF_POOL
enumerator BUFFER_RX_RING
enumerator BUFFER_SOCKET_RING
enumerator BUFFER_TLS_ALLOC
struct mem_file_slot
#include <drivers_mem.h>

Public Members

uint8_t *ptr
size_t size
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
struct mem_buffer_pool_cfg
#include <drivers_mem.h>

Public Members

size_t block_size
size_t block_count
size_t max_size
uint8_t flags
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