NAME | SYNOPSIS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | RESTRICTIONS | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>int sgRead(KnObjDesc * srcsegdesc, KnCap * dstactorcap, VmAddr dstaddress, VmFlags flags);
MEM_VM
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The sgRead function reads data from a segment into an actor address space. The source data is specified by the srcsegdesc argument, which points to a KnObjDesc structure described in rgnInit(2SEG) . The destination is specified by dstactorcap - the destination actor capability, and dstaddress - the start address in the destination actor address space.
The sgWrite function writes data from an actor address space into a segment. The source data is specified by srcactorcap - the source actor capability, and srcaddress - the data start address in the source actor address space. The destination is specified by the dstsegdesc argument which points to a KnObjDesc structure described in rgnInit(2SEG) .
If srcactorcap and/or dstactorcap is K_MYACTOR, the current actor is used. If srcactorcap and/or dstactorcap is K_SUPERVISOR, the supervisor address space is used.
The flags argument is a combination of the following options:
K_MOVE This option indicates that after the operation the contents of the source, from the start to the end of the target data, may be undefined. In this case, the system will try to remap the physical pages containing the data rather than copying them.
K_MOVEAL This option indicates that even if the target data size is not aligned on a page boundary (see vmPageSize(2K) ), the last page partially covered by the data may be remapped. This means that after the operation the contents of the source, from the start to the next page boundary following the end of the target data, and the contents of the destination, from the end of the target data to the next page boundary, may be undefined.
If any error occurs during an sgRead or sgWrite operation, the number of bytes read or written before the error is returned in the size field of the corresponding KnObjDesc structure.
If successful K_OK is returned, otherwise a negative error code is returned.
The address is out of any allocated region.
Some of the arguments provided are outside the caller's address space.
An inconsistent actor capability was given.
The startOffset and size fields of the KnObjDesc structure are inconsistent.
Attempted to map a segment outside its valid offset range returned by vmStat.
Attempted to write to a read only region.
srcactorcap or dstactorcap does not specify a reachable actor.
The target actor, the source actor and the current actor must be located on the same site.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | RESTRICTIONS | ATTRIBUTES | SEE ALSO