NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>void PxmPullIn(KnPxmPullInArgs *pullArg, void *cookie);
PXM_EXT
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The PxmPullIn routine is provided by the Proxy-Mapper and is invoked as an up-call by the CHORUS VM. It is invoked as a lap; its second argument is the lap cookie as defined at svLapCreate time. The PxmPullIn up-call is invoked by the VM in order to read data from the data segment into the data cache. The KnPxmPullInArgs structure has the following members:
KnDtPxMapper* pxm ; KnSgId sgId ; KnPage* page ; |
The sgId field specifies the corresponding data segment. The page field field specifies the list of pages to be read. It points to a KnPage structure (see PxmGetAcc(2SEG) ) which specifies the first page of the list.
The pages of the PxmPullIn page list are fully attached to the data cache and write locked (exclusively). This means that all Nucleus calls (including dcFlush, dcFillZero and dcTrunc) which acquire a lock on this type of page are blocked until pullIn is finished.
The VM calls PxmPullIn when access rights have already been obtained by a previous PxmGetAcc. In the case of page fault, the PxmRelAccLock (see the PxmGetAcc(2SEG) man page) up-call is invoked after PxmPullIn.
The current implementation is only applicable to trusted supervisor actors.
None.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
dcPxmDeclare(2SEG), dcAlloc(2SEG), dcFree(2SEG), svLapCreate(2K), lapInvoke(2K), PxmGetAcc(2SEG), PxmRelAccLock(2SEG), pageMap(2SEG)
NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ATTRIBUTES | SEE ALSO