#include "memory.h"

This page has information from files memory.h and memory.c.

Contents


Public Routines in File memory.c

Index

bytes_pallocedfree_memmega_mem_callsset_max_megs
disable_max_megsget_cmemmegs_mallocedset_max_megs_proc
enable_max_megsget_memmemory_reporttp_alloc

Details


int bytes_palloced(void);
How many bytes have been allocated by the palloc() routine? This includes all of the get_mem() calls.
void disable_max_megs(void);

void enable_max_megs(void);

void free_mem(void *q, unsigned n);
Free a chunk of memory that holds n pointers (not n bytes) that was returned from a previous get_mem() or get_cmem() call.
void *get_cmem(unsigned n);
Get a chunk of memory that will hold n pointers (NOT n BYTES). The memory is initialized to all 0.
void *get_mem(unsigned n);
Get a chunk of memory that will hold n pointers (NOT n BYTES). The memory is NOT initialized.
unsigned mega_mem_calls(void);

int megs_malloced(void);
This routine returns the number of megabytes that palloc() has obtained from the operating system by malloc();
void memory_report(FILE *fp);

void set_max_megs(int megs);
This routine changes the limit on the amount of memory obtained from malloc() by palloc(). The argument is in megabytes. The default value is DEFAULT_MAX_MEGS.
void set_max_megs_proc(void (*proc)(void));
This routine is used to specify the routine that will be called if max_megs is exceeded.
void *tp_alloc(size_t n);
Allocate n bytes of memory, aligned on a pointer boundary. The memory is not initialized, and it cannot be freed.

Public Definitions in File memory.h

/* The following definitions exist because the memory get/free
   routines measure memory by pointers instead of bytes. */

#define CEILING(n,d)   ((n)%(d) == 0 ? (n)/(d) : (n)/(d) + 1)
#define BYTES_POINTER  sizeof(void *)  /* bytes per pointer */
#define PTRS(n)        CEILING(n, BYTES_POINTER) /* ptrs needed for n bytes */


Introduction