The memory management API is summarized in the following table:
Function |
Description |
Flat |
Protected |
Virtual |
---|---|---|---|---|
rgnAllocate() |
Allocate a region |
+ |
+ |
+ |
rgnDup() |
Duplicate an address space |
|
+ |
+ |
rgnFree() |
Free a region |
+ |
+ |
+ |
rgnInit() |
Allocate a region initialized from a segment |
|
|
+ |
rgnInitFromActor() |
Allocate a region initialized from another region |
|
+ |
+ |
rgnMap() |
Create a region and map it to a segment |
|
|
+ |
rgnMapFromActor() |
Allocate a region mapping another region |
+ |
+ |
+ |
rgnSetInherit() |
Set inheritance options for a region |
|
|
+ |
rgnSetPaging() |
Set paging options for a region |
|
|
+ |
rgnSetProtect() |
Set protection options for a region |
+ |
+ |
+ |
rgnStat() |
Get statistics of a region |
+ |
+ |
+ |
svCopyIn() |
Byte copy from user address space |
+ |
+ |
+ |
svCopyInString() |
String copy to user address space |
+ |
+ |
+ |
svCopyOut() |
Byte to user address space |
+ |
+ |
+ |
svPagesAllocate() |
Supervisor address space page allocator |
+ |
+ |
+ |
svPagesFree() |
Free memory allocated by svPagesAllocate() |
+ |
+ |
+ |
svPhysAlloc() |
Physical memory page allocator |
+ |
+ |
+ |
svPhysFree() |
Free memory allocated by svPhysAlloc() |
+ |
+ |
+ |
svPhysMap() |
Map a physical address to the supervisor space |
+ |
+ |
+ |
svPhysUnMap() |
Destroy a mapping created by svPhysMap() |
+ |
+ |
+ |
svMemMap() |
Map a physical address to the supervisor space |
+ |
+ |
+ |
svMemUnMap() |
Destroy a mapping created by svMemUnMap() |
+ |
+ |
+ |
vmCopy() |
Copy data between address spaces |
+ |
+ |
+ |
vmFree() |
Free physical memory |
|
|
+ |
vmLock() |
Lock virtual memory in physical memory |
|
|
+ |
vmMapToPhys() |
Map a physical address to a virtual address |
|
+ |
+ |
vmPageSize() |
Get the page or block size |
+ |
+ |
+ |
vmPhysAddr() |
Get a physical address for a virtual address |
+ |
+ |
+ |
vmSetPar() |
Set the memory management parameters |
|
|
+ |
vmUnLock() |
Unlock virtual memory from physical memory |
|
|
+ |