---
title: Memory
framework: kernel
role: collectionGroup
role_heading: API Collection
path: kernel/iokit_fundamentals/memory
---

# Memory

Allocate, map, free, and manage memory in the kernel.

## Topics

### Descriptors

- [IOBufferMemoryDescriptor](kernel/iobuffermemorydescriptor.md)
- [IODeviceMemory](kernel/iodevicememory.md)
- [IOGeneralMemoryDescriptor](kernel/iogeneralmemorydescriptor.md)
- [IOInterleavedMemoryDescriptor](kernel/iointerleavedmemorydescriptor.md)
- [IOMultiMemoryDescriptor](kernel/iomultimemorydescriptor.md)
- [IOSubMemoryDescriptor](kernel/iosubmemorydescriptor.md)
- [IOMemoryDescriptor](kernel/iomemorydescriptor.md)

### Direct Memory Access (DMA)

- [IODMACommand](kernel/iodmacommand.md)
- [IODMAController](kernel/iodmacontroller.md)
- [IODMAEventSource](kernel/iodmaeventsource.md)

### Deallocation

- [IOFree](kernel/1575290-iofree.md)
- [IOFreeAligned](kernel/1575330-iofreealigned.md)
- [IOFreePageable](kernel/1575300-iofreepageable.md)

### Allocation

- [IOMalloc](kernel/1575326-iomalloc.md)
- [IOMallocAligned](kernel/1575291-iomallocaligned.md)
- [IOMallocPageable](kernel/1575327-iomallocpageable.md)
- [IOMallocZero](kernel/3074962-iomalloczero.md)
- [IORangeAllocator](kernel/iorangeallocator.md)

### Mapped Memory

- [IOMapper](kernel/iomapper.md)
- [IOMemoryMap](kernel/iomemorymap.md)
- [IOMappedRead16](kernel/1575322-iomappedread16.md)
- [IOMappedRead32](kernel/1575311-iomappedread32.md)
- [IOMappedRead64](kernel/1575301-iomappedread64.md)
- [IOMappedRead8](kernel/1575317-iomappedread8.md)
- [IOMappedWrite16](kernel/1575315-iomappedwrite16.md)
- [IOMappedWrite32](kernel/1575310-iomappedwrite32.md)
- [IOMappedWrite64](kernel/1575313-iomappedwrite64.md)
- [IOMappedWrite8](kernel/1575318-iomappedwrite8.md)
- [IOMapperIOVMAlloc](kernel/1532986-iomapperiovmalloc.md)
- [IOMapperIOVMFree](kernel/1532978-iomapperiovmfree.md)
- [IOMapperInsertPage](kernel/1532970-iomapperinsertpage.md)
- [IOFlushProcessorCache](kernel/1575308-ioflushprocessorcache.md)

### Cursors

- [IOBigMemoryCursor](kernel/iobigmemorycursor.md)
- [IOLittleMemoryCursor](kernel/iolittlememorycursor.md)
- [IONaturalMemoryCursor](kernel/ionaturalmemorycursor.md)
- [IOMemoryCursor](kernel/iomemorycursor.md)

## See Also

### Resources

- [Workflow and Control](kernel/iokit_fundamentals/workflow_and_control.md)
- [Locks](kernel/iokit_fundamentals/locks.md)
- [Data Types](kernel/libkern/data_types.md)
