DoxigAlpha

setVbits

Set the validity data for addresses zza, copying it from the provided zzvbits array. Return values: 0 if not running on valgrind 1 success 2 [previously indicated unaligned arrays; these are now allowed] 3 if any parts of zza/zzvbits are not addressable. The metadata is not copied in cases 0, 2 or 3 so it should be impossible to segfault your system by using this call.

Function parameters

Parameters

#
zzvbits:[]u8
zza:[]u8

Type definitions in this namespace

Types

#

Mark memory at qzz.ptr as unaddressable for qzz.len bytes.

Functions

#
makeMemNoAccess
Mark memory at qzz.ptr as unaddressable for qzz.len bytes.
makeMemUndefined
Mark memory at qzz.ptr as addressable but undefined for qzz.len bytes.
makeMemDefined
Mark memory at qzz.ptr as addressable and defined or qzz.len bytes.
makeMemDefinedIfAddressable
Similar to makeMemDefined except that addressability is
createBlock
Create a block-description handle.
discard
Discard a block-description-handle.
checkMemIsAddressable
Check that memory at qzz.ptr is addressable for qzz.len bytes.
checkMemIsDefined
Check that memory at qzz.ptr is addressable and defined for
doLeakCheck
Do a full memory leak check (like --leak-check=full) mid-execution.
doAddedLeakCheck
Same as doLeakCheck() but only showing the entries for
doChangedLeakCheck
Same as doAddedLeakCheck() but showing entries with
doQuickLeakCheck
Do a summary memory leak check (like --leak-check=summary) mid-execution.
getVbits
Get the validity data for addresses zza and copy it
setVbits
Set the validity data for addresses zza, copying it
disableAddrErrorReportingInRange
Disable and re-enable reporting of addressing errors in the

Source

Implementation

#
pub fn setVbits(zzvbits: []u8, zza: []u8) u2 {
    std.debug.assert(zzvbits.len >= zza.len / 8);
    return @as(u2, @intCast(doClientRequestExpr(0, .SetVbits, @intFromPtr(zza.ptr), @intFromPtr(zzvbits.ptr), zza.len, 0, 0)));
}