NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>int dcAlloc(KnSgId sgid, KnExtPxMapper * pxm, VmFlags flags, KnLcId * lcidp);
PXM_EXT
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The dcAlloc function allocates a new data cache object associated with the data segment identified by the sgId parameter. Two subsequent calls to dcAlloc with the same segment identifier will allocate two different data cache objects. It is thus the responsibility of the invoker to insure a one-to- one mapping between data cache objects and data segments. The sgId is an opaque value for the nucleus which is only used as an argument within upcalls from the VM to the external Proxy-Mapper managing the data segment. The pxm argument specifies the routines which will be used to perform upcalls required for this data segment (see dcPxmDeclare(2SEG) ). The flags argument specifies the required properties of the data segment. It must be either K_NOSWAPOUT if the data cache must not be swapped, or 0. If successful, dcAlloc returns K_OK and sets the lcidp output argument to the identifier of the newly allocated data cache object, otherwise an error code is returned and the value of the lcidp field is undefined. The lcidp returned by dcAlloc is an opaque for the External Proxy-Mapper and must only be used as an argument for the appropriate nucleus calls. The dcFree nucleus call destroys the data cache object specified by the lcidp argument. The External Proxy-Mapper can destroy a data cache object only if it is empty (it does not contain any physical pages) and the corresponding data segment is used neither by the Proxy-Mapper nor by the VM.
The current implementation is only applicable to trusted supervisor actors.
If successful K_OK is returned, otherwise a negative error code is returned.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
dcFlush(2SEG) , dcRead(2SEG) , dcWrite(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