NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>int rgnFlush(KnCap *actorcap, VmOffset start, VmSize size, VmFlags flags);
PXM_EXT
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The rgnFlush call performs a flush operation on the ranges of data caches mapped to an address range of an actor address space. The address range must be page-aligned.
The target actor is specified by actorcap - a pointer to the actor capability. If actorcap is K_MYACTOR, the address space of the current actor is used. If actorcap is K_SVACTOR, the supervisor address space is used.
The flags argument specifies the way the flush is performed as well as the upper access rights for the target parts after the flush operation.
If the K_COPYBACK flag is set, rgnFlush writes back all (even clean) cached data of the target parts and does not change the parts' access rights.
If the K_WRITABLE flag is set, rgnFlush writes back all modified data of the target parts and does not change the parts' access rights.
If the K_READABLE flag is set, rgnFlush writes back all modified data of the target parts and sets the parts' access rights to read only.
If the K_FREEZE flag is set, rgnFlush writes back all modified data of the target parts and sets the parts to non-accessible.
If the K_NOACCESS flag is set, rgnFlush writes back all modified data of the target parts and invalidates the parts.
If the K_DESTROY flag is set, rgnFlush invalidates the target parts without writing back any data.
If K_ASYNC flag is set, the vm performs the asynchronous write operations required by rgnFlush.
If K_PAGEFAULT flag is set, rgnFlush is the result of a page fault. This type of lcFlushoperation could break the atomicity of an sgRead/sgWrite operation running concurrently on the same local cache parts.
The target actor and the current actor must be located on the same site.
If successful K_OK is returned, otherwise a negative error code is returned.
Some of the arguments provided are outside the caller's address space.
An inconsistent actor capability was provided.
start or size isn't page-aligned.
Some or all the addresses from the target address range are invalid.
Tried to flush a segment outside the valid offset range in a segment.
The flags argument contains invalid flag values.
Tried to invalidate or destroy a no-demand (mapped to a region with the K_NODEMAND attribute) physical memory.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO