NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | RETURN VALUE | ERRORS | ATTRIBUTES | SEE ALSO
#include <mem/chMem.h>int dcTrunc(KnLcId lcid, VmOffset start, VmOffset end, VmOffset zeroStart);
PXM_EXT
This system call is strictly reserved for internal use only. It MUST NOT be used by any application.
The dcTrunc call grants write access to the nucleus for the range of bytes between start and end, and invalidates the [end+1, K_MAXVMOFFSET] range of the data cache specified by the lcid argument. It then fills with zeros the range of bytes between the zeroStart and end arguments, and marks the range of bytes defined by the start, end arguments as modified. The start and end arguments must be fragment-aligned, and the zeroStart argument must be included between these two limits.
Logically, dcTrunc is a combination of dcFlush and dcFillZero. The VM guarantees that the dcTtrunc operation will never be blocked by a getAcc up-call.
The current implementation is only applicable to trusted supervisor actors.
If successful K_OK is returned, otherwise a negative error code is returned.
At least one of the arguments is not fragment-aligned.
The startZero offset is not within the range defined by start, end.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
dcAlloc(2SEG), dcFlush(2SEG), dcFillZero(2SEG), dcFree(2SEG), dcRead(2SEG), dcWrite(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