NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>int dcRead(KnLcId lcid, VmOffset start, VmOffset end, KnCap * actcap, VmAddr addr, void * acclock);
PXM_EXT
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The dcRead function reads data from the data cache object named by lcid into an actor address space. The source data is specified by the start and end offsets which define the offset of the first byte to be read and the offset of the last byte to be read. These offsets are related to the data segment associated with the data cache object of a previous dcAlloc. The data is copied, starting at the location defined by the addr input/output argument, within the actor defined by the actcap argument. If actcap is set to the value K_MYACTOR the destination actor is the current one. The addr argument is updated by the dcRead nucleus call, and upon return, points to an address beyond the last read byte upon return. The acclock argument is an opaque field for the nucleus, which will be passed to the external Proxy-Mapper as an argument of the getAcc up-call, if any.
The dcWrite function writes data from an actor address space to the data cache object named by lcid .The destination data is specified by the start and end offsets which define the offset of the first byte to be written and the offset of the last byte to be written. These offsets are related to the data segment associated with the data cache object by a previous dcAlloc. The data is copied, starting at the location defined by the addr input/output argument, within the actor defined by the actcap argument. If actcap is set to the value K_MYACTOR the source actor is the current one. The addr argument is updated by the dcWrite nucleus call, and upon return, points to an address beyond the last byte written. The acclock argument is an opaque field for the nucleus, which will be passed to the external Proxy-Mapper as an argument of the getAcc up-call, if any.
The current implementation is only applicable to trusted supervisor actors.
If successful K_OK is returned, otherwise a negative error code is returned. In either case, the addr argument is set to an address beyond the last byte read/written.
The address is outside any allocated region.
Some of the arguments provided are outside the caller's or target's address space.
An inconsistent actor capability was given.
Attempt to access a segment oustside its valid offset range.
Attempt to write a read only data cache.
actcap does not specify a reachable actor.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
dcAlloc(2SEG) , dcFree(2SEG) , dcFlush(2SEG) , dcFillZero(2SEG) , dcPgNumber(2SEG) , dcCluster(2SEG) , dcSync(2SEG) , dcPxmDeclare(2SEG) , rgnMapFromDtCache(2SEG) , rgnInitFromDtCache(2SEG) , rgnFlush(2SEG)
NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO