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 

 

 

+