NAME | SYNOPSIS | FEATURES | DESCRIPTION | RETURN VALUE | ERRORS | RESTRICTIONS | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>int lcRead(int srccacheli, VmOffset srcoffseti, KnCap * dstactorcap, VmAdd dstaddress, VmSize * sizep);
MEM_VM
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The lcRead function reads data from a segment through a local cache into the actor address space specified by dstactorcap - a pointer to the actor capability. If dstactorcap is K_MYACTOR, the address space of the current actor is used. If dstactorcap is K_SVACTOR, the supervisor address space is used.
The source data is specified by the srccacheli argument, which is the local id of the local cache corresponding to the source segment and the srcoffset argument, which is the data start offset within the segment. The destination is specified by the dstaddress argument, which is the start address in the destination actor address space.
The lcWrite function writes data from an actor address space into a segment through a local cache. The source address space is specified by srcactorcap , which is a pointer to the actor capability. If srcactorcap is K_MYACTOR, the address space of the current actor is used. If srcactorcap is K_SVACTOR, the supervisor address space is used.
The source data is specified by the srcaddress argument, which is the data start address in the source actor address space. The destination is specified by the dstcacheli argument, which is the local id of the local cache corresponding to the destination segment and the dstoffset argument, which is the data start offset within the segment.
The data size is specified by the sizep argument - a pointer to the variable containing the size of data.
If any error occurs during an lcRead or lcWrite operation, the number of bytes read or written before the error occurrred is returned to the variable pointed to by the sizep argument.
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.
dstactorcap or srcactorcap does not specify a reachable actor.
Attempted to access a segment outside its valid offset range as returned by vmStat.
Attempted to write to a read-only region.
The read or write buffer is outside any allocated region.
The mapper doesn't respect the vm/mapper protocol.
The caller, the target actor and the local cache 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