Motr  M0
memory.c File Reference
#include "lib/arith.h"
#include "lib/assert.h"
#include "lib/atomic.h"
#include "lib/trace.h"
#include "lib/memory.h"
#include "lib/finject.h"
#include "lib/misc.h"
Include dependency graph for memory.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_MEMORY
 
#define DEV_MODE   (false)
 

Enumerations

enum  { U_POISON_BYTE = 0x5f }
 

Functions

static void poison_before_free (void *data, size_t size)
 
M0_INTERNAL bool m0_is_poisoned (const void *ptr)
 
M0_INTERNAL void * m0_arch_alloc (size_t size)
 
M0_INTERNAL void m0_arch_free (void *data)
 
M0_INTERNAL void m0_arch_allocated_zero (void *data, size_t size)
 
M0_INTERNAL void * m0_arch_alloc_nz (size_t size)
 
M0_INTERNAL void m0_arch_memory_pagein (void *addr, size_t size)
 
M0_INTERNAL size_t m0_arch_alloc_size (void *data)
 
M0_INTERNAL void * m0_arch_alloc_wired (size_t size, unsigned shift)
 
M0_INTERNAL void m0_arch_free_wired (void *data, size_t size, unsigned shift)
 
M0_INTERNAL void * m0_arch_alloc_aligned (size_t alignment, size_t size)
 
M0_INTERNAL void m0_arch_free_aligned (void *addr, size_t size, unsigned shift)
 
M0_INTERNAL int m0_arch_pagesize_get (void)
 
M0_INTERNAL int m0_arch_pageshift_get (void)
 
M0_INTERNAL int m0_arch_dont_dump (void *p, size_t size)
 
M0_INTERNAL int m0_arch_memory_init (void)
 
M0_INTERNAL void m0_arch_memory_fini (void)
 
static void alloc_tail (void *area, size_t size)
 
M0_INTERNAL void * m0_alloc_nz (size_t size)
 
void * m0_alloc (size_t size)
 
void m0_free (void *data)
 
M0_INTERNAL void m0_memory_pagein (void *addr, size_t size)
 
M0_INTERNAL void * m0_alloc_aligned (size_t size, unsigned shift)
 
M0_INTERNAL void m0_free_aligned (void *data, size_t size, unsigned shift)
 
M0_INTERNAL void * m0_alloc_wired (size_t size, unsigned shift)
 
M0_INTERNAL void m0_free_wired (void *data, size_t size, unsigned shift)
 
M0_INTERNAL size_t m0_allocated (void)
 
M0_INTERNAL size_t m0_allocated_total (void)
 
M0_INTERNAL size_t m0_freed_total (void)
 
M0_INTERNAL int m0_pagesize_get (void)
 
M0_INTERNAL int m0_pageshift_get (void)
 
M0_INTERNAL int m0_dont_dump (void *p, size_t size)
 
M0_INTERNAL int m0_memory_init (void)
 
M0_INTERNAL void m0_memory_fini (void)
 

Variables

static struct m0_atomic64 allocated
 
static struct m0_atomic64 cumulative_alloc
 
static struct m0_atomic64 cumulative_free