Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

map_util.h File Reference

#include "l4_types.h"
#include "mapdb.h"
#include "std_macros.h"
#include "config.h"

Go to the source code of this file.

Functions

Ipc_err io_map (Space *from, Address fp_from_iopage, Mword fp_from_size, bool fp_from_grant, bool fp_from_is_whole_space, Space *to, Address fp_to_iopage, Mword fp_to_size, bool fp_to_is_iopage, bool fp_to_is_whole_space)
void io_fpage_unmap (Space *space, L4_fpage fp, bool me_too)
void handle_sigma0_adapter_address (Address &phys, unsigned &page_flags)
Mapdbmapdb_instance ()
 The mapping database.
void update_lipc_kip (Space *, Address, Mword, Space *, Address, Mword, Address)
Ipc_err mem_map (Space *from, Address fp_from_page, Mword fp_from_size, bool fp_from_write, bool fp_from_grant, Space *to, Address fp_to_page, Mword fp_to_size, Address offs, bool flush=false)
 Map the region described by "fp_from" of address space "from" into region "fp_to" at offset "offs" of address space "to", updating the mapping database as we do so.
void mem_fpage_unmap (Space *space, L4_fpage fp, bool me_too, bool only_read_only)
 Unmap the mappings in the region described by "fp" from the address space "space" and/or the address spaces the mappings have been mapped into.
void fpage_unmap (Space *space, L4_fpage fp, bool me_too, bool only_read_only)
 Flexpage unmapping.
Ipc_err fpage_map (Space *from, L4_fpage fp_from, Space *to, L4_fpage fp_to, Address offs, bool grant)
 Flexpage mapping.


Function Documentation

Ipc_err fpage_map Space from,
L4_fpage  fp_from,
Space to,
L4_fpage  fp_to,
Address  offs,
bool  grant
[inline]
 

Flexpage mapping.

divert to mem_map (for memory fpages) or io_map (for IO fpages)

Parameters:
from source address space
fp_from flexpage descriptor for virtual-address space range in source address space
to destination address space
fp_to flexpage descriptor for virtual-address space range in destination address space
offs sender-specified offset into destination flexpage
grant if set, grant the fpage, otherwise map
Precondition:
page_aligned(offs)
Returns:
IPC error code that describes the status of the operation

void fpage_unmap Space space,
L4_fpage  fp,
bool  me_too,
bool  only_read_only
[inline]
 

Flexpage unmapping.

divert to mem_fpage_unmap (for memory fpages) or io_fpage_unmap (for IO fpages)

Parameters:
space address space that should be flushed
fp flexpage descriptor of address-space range that should be flushed
me_too If flase, only flush recursive mappings. If false, additionally flush the region in the given address space.
only_read_only Do not flush pages, but only revoke write-access privileges
Returns:
true if successful

void handle_sigma0_adapter_address Address &  phys,
unsigned &  page_flags
[inline]
 

void io_fpage_unmap Space space,
L4_fpage  fp,
bool  me_too
 

Ipc_err io_map Space from,
Address  fp_from_iopage,
Mword  fp_from_size,
bool  fp_from_grant,
bool  fp_from_is_whole_space,
Space to,
Address  fp_to_iopage,
Mword  fp_to_size,
bool  fp_to_is_iopage,
bool  fp_to_is_whole_space
 

Mapdb* mapdb_instance  ) 
 

The mapping database.

This is the system's instance of the mapping database.

void mem_fpage_unmap Space space,
L4_fpage  fp,
bool  me_too,
bool  only_read_only
 

Unmap the mappings in the region described by "fp" from the address space "space" and/or the address spaces the mappings have been mapped into.

Parameters:
space address space that should be flushed
fp flexpage descriptor of address-space range that should be flushed
me_too If false, only flush recursive mappings. If true, additionally flush the region in the given address space.
only_read_only Do not flush pages, but only revoke write-access privileges
Returns:
true if successful

Ipc_err mem_map Space from,
Address  fp_from_page,
Mword  fp_from_size,
bool  fp_from_write,
bool  fp_from_grant,
Space to,
Address  fp_to_page,
Mword  fp_to_size,
Address  offs,
bool  flush
 

Map the region described by "fp_from" of address space "from" into region "fp_to" at offset "offs" of address space "to", updating the mapping database as we do so.

Parameters:
from source address space
fp_from_{page,size,write,grant} flexpage description for virtual-address space range in source address space
to destination address space
fp_to_{page,size} flexpage descripton for virtual-address space range in destination address space
offs sender-specified offset into destination flexpage
flush Controls the behaviour if there's already sth. mapped in the rcv page and we can't do an access rights upgrade. If set, flush the rcv page and do the requested mapping. If not set, skip the operation and give up.
Precondition:
page_aligned(offs)
Returns:
IPC error code that describes the status of the operation

void update_lipc_kip Space ,
Address  ,
Mword  ,
Space ,
Address  ,
Mword  ,
Address 
[inline]
 


Generated on Mon Sep 26 14:20:13 2005 for Fiasco by  doxygen 1.4.2