NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>int rgnInitFromDtCache(KnCap *actorcap, KnRgnDesc *rgndesc, KnLcId lcid, VmOffset start, VmOffset end);
PXM_EXT
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The rgnInitFromDtCache call allocates a region in the actor address space specified by actorcap. It initializes from the segment associated with the data cache specified by lcid. If actorcap is set to K_MYACTOR, the current actor is used. If actorcap is set to K_SVACTOR, the region is allocated in supervisor address space and is not attached to any particular supervisor actor.
The rgnDesc pointer points to a KnRgnDesc structure containing the specification for the region to be created, as described in rgnAllocate(2K). Note that the K_FILLZERO option is interpreted differently here; the range of bytes comprised between rgndesc->startAddr+end+1 and rgndesc->startAddr+size-1 will be zero-filled.
The start argument specifies which offset of the segment will be mapped to the first location of the newly created region. Its value must be aligned on a virtual page boundary. The end argument specifies the offset of the last byte of the data segment to be mapped to the created region.
The current implementation is only applicable to trusted supervisor actors.
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.
The end argument and the size field of the rgndesc argument are inconsistent.
The system is out of resources, or some or all of the memory identified by the operation could not be locked when K_NODEMAND and K_NOWAITFORMEMORY have both been specified.
Attempted to map a segment outside its valid offset range.
The K_ANYWHERE option was specified and there is insufficient room in the address space to allocate the region. The K_RETSRICTIVE option was specified and there is insufficient room in the target address range. The region specified overlaps an existing region. The K_RESTRICTIVE option was specified and the right boundary is less than the left one.
The start argument is not a multiple of the page size as returned by vmPageSize(2K).
Attempted to allocate a region outside the valid range for the address space of an actor as returned by vmStat(2K)
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO