ChorusOS 5.0 Features and Architecture Overview

Memory Management API

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