# AllocMemList

Creates a private memory list.

### Synopsis

`MemList *AllocMemList( const void *p, char *name )`

### Description

A task can do its own memory management by creating one or more private memory lists. Use this procedure to allocate a private memory list.

A memory list you create with `AllocMemList()` is initially empty. To add memory to the list, use the `FreeMemToMemList()` procedure.

Note: A single memory list can store either DRAM or VRAM, but not both. The p argument points to an example of the memory the task wants to manage with this MemList.

### Arguments

p
  A pointer to a memory address whose memory type (either DRAM or VRAM) is the type you want to store in the list. You control actual type of memory in the list by controlling what you free into the list.

name
  The optional name of the memory list.

### Return Value

The procedure returns a pointer to the MemList structure that is created or NULL if an error occurs.

### Implementation

Folio call implemented in kernel folio V20.

### Associated Files

mem.h
  ANSI C Prototype

clib.lib
  ARM Link Library

### Notes

To deallocate a memory list created with `AllocMemList()`, use `FreeMemList()`.

### See Also

``AllocMemFromMemList`(), FreeMemList(), FreeMemToMemList()`

#