In this chapter, we have discussed:
IOMalloc*()
functions or the IOBufferMemoryDescriptor
.IOMemoryDescriptor
and related subclasses are used by many parts of the I/O Kit to manage and describe memory buffers. The IOBufferMemoryDescriptor
is one such subclass, which in addition to providing a memory descriptor also allocates memory in various forms, with alignment or even physically contiguous memory.IOMemoryMap
class is used to manage memory mappings and allows the kernel to map a user space buffer into its virtual address space so memory can be manipulated by the kernel.IOUserClient
class provides a useful method, clientMemoryForType()
, which will handle the details of mapping a kernel buffer into user space.IOMemoryDescriptor
provides methods such as getPhysicalSegment()
that allow mapping of virtual memory addresses to physical addresses.3.144.21.190