Package org.lwjgl.system.jemalloc
Class ExtentHooks
java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<ExtentHooks>
org.lwjgl.system.jemalloc.ExtentHooks
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
public class ExtentHooks
extends org.lwjgl.system.Struct<ExtentHooks>
implements org.lwjgl.system.NativeResource
The
extent_hooks_t structure comprises function pointers which are described individually below. jemalloc uses these functions to manage extent
lifetime, which starts off with allocation of mapped committed memory, in the simplest case followed by deallocation. However, there are performance
and platform reasons to retain extents for later reuse. Cleanup attempts cascade from deallocation to decommit to forced purging to lazy purging, which
gives the extent management functions opportunities to reject the most permanent cleanup operations in favor of less permanent (and often less costly)
operations. All operations except allocation can be universally opted out of by setting the hook pointers to NULL, or selectively opted out of by
returning failure.
Layout
struct extent_hooks_t {
extent_alloc_t alloc();
extent_dalloc_t dalloc();
extent_destroy_t destroy();
extent_commit_t commit();
extent_decommit_t decommit();
extent_purge_t purge_lazy();
extent_purge_t purge_forced();
extent_split_t split();
extent_merge_t merge();
}-
Nested Class Summary
Nested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionExtentHooks(ByteBuffer container) Creates aExtentHooksinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionalloc()the extent allocation hookalloc(ExtentAllocI value) Sets the specified value to thealloc()field.static ExtentHookscalloc()Returns a newExtentHooksinstance allocated withmemCalloc.static ExtentHookscalloc(org.lwjgl.system.MemoryStack stack) Returns a newExtentHooksinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static ExtentHooksDeprecated.static ExtentHookscallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.@Nullable ExtentCommitcommit()the extent commit hookcommit(@Nullable ExtentCommitI value) Sets the specified value to thecommit()field.static ExtentHookscreate()Returns a newExtentHooksinstance allocated withBufferUtils.static ExtentHookscreate(long address) Returns a newExtentHooksinstance for the specified memory address.static @Nullable ExtentHookscreateSafe(long address) @Nullable ExtentDallocdalloc()the extent deallocation hookdalloc(@Nullable ExtentDallocI value) Sets the specified value to thedalloc()field.@Nullable ExtentDecommitdecommit()the extent decommit hookdecommit(@Nullable ExtentDecommitI value) Sets the specified value to thedecommit()field.@Nullable ExtentDestroydestroy()the extent destruction hookdestroy(@Nullable ExtentDestroyI value) Sets the specified value to thedestroy()field.static ExtentHooksmalloc()Returns a newExtentHooksinstance allocated withmemAlloc.static ExtentHooksmalloc(org.lwjgl.system.MemoryStack stack) Returns a newExtentHooksinstance allocated on the specifiedMemoryStack.static ExtentHooksDeprecated.static ExtentHooksmallocStack(org.lwjgl.system.MemoryStack stack) Deprecated.@Nullable ExtentMergemerge()the extent merge hookmerge(@Nullable ExtentMergeI value) Sets the specified value to themerge()field.static ExtentAllocnalloc(long struct) Unsafe version ofalloc().static voidnalloc(long struct, ExtentAllocI value) Unsafe version ofalloc.static @Nullable ExtentCommitncommit(long struct) Unsafe version ofcommit().static voidncommit(long struct, @Nullable ExtentCommitI value) Unsafe version ofcommit.static @Nullable ExtentDallocndalloc(long struct) Unsafe version ofdalloc().static voidndalloc(long struct, @Nullable ExtentDallocI value) Unsafe version ofdalloc.static @Nullable ExtentDecommitndecommit(long struct) Unsafe version ofdecommit().static voidndecommit(long struct, @Nullable ExtentDecommitI value) Unsafe version ofdecommit.static @Nullable ExtentDestroyndestroy(long struct) Unsafe version ofdestroy().static voidndestroy(long struct, @Nullable ExtentDestroyI value) Unsafe version ofdestroy.static @Nullable ExtentMergenmerge(long struct) Unsafe version ofmerge().static voidnmerge(long struct, @Nullable ExtentMergeI value) Unsafe version ofmerge.static @Nullable ExtentPurgenpurge_forced(long struct) Unsafe version ofpurge_forced().static voidnpurge_forced(long struct, @Nullable ExtentPurgeI value) Unsafe version ofpurge_forced.static @Nullable ExtentPurgenpurge_lazy(long struct) Unsafe version ofpurge_lazy().static voidnpurge_lazy(long struct, @Nullable ExtentPurgeI value) Unsafe version ofpurge_lazy.static @Nullable ExtentSplitnsplit(long struct) Unsafe version ofsplit().static voidnsplit(long struct, @Nullable ExtentSplitI value) Unsafe version ofsplit.@Nullable ExtentPurgethe extent forced purge hookpurge_forced(@Nullable ExtentPurgeI value) Sets the specified value to thepurge_forced()field.@Nullable ExtentPurgethe extent lazy purge hookpurge_lazy(@Nullable ExtentPurgeI value) Sets the specified value to thepurge_lazy()field.set(ExtentAllocI alloc, ExtentDallocI dalloc, ExtentDestroyI destroy, ExtentCommitI commit, ExtentDecommitI decommit, ExtentPurgeI purge_lazy, ExtentPurgeI purge_forced, ExtentSplitI split, ExtentMergeI merge) Initializes this struct with the specified values.set(ExtentHooks src) Copies the specified struct data to this struct.intsizeof()@Nullable ExtentSplitsplit()the extent split hooksplit(@Nullable ExtentSplitI value) Sets the specified value to thesplit()field.static voidvalidate(long struct) Validates pointer members that should not beNULL.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
ALLOC
public static final int ALLOCThe struct member offsets. -
DALLOC
public static final int DALLOCThe struct member offsets. -
DESTROY
public static final int DESTROYThe struct member offsets. -
COMMIT
public static final int COMMITThe struct member offsets. -
DECOMMIT
public static final int DECOMMITThe struct member offsets. -
PURGE_LAZY
public static final int PURGE_LAZYThe struct member offsets. -
PURGE_FORCED
public static final int PURGE_FORCEDThe struct member offsets. -
SPLIT
public static final int SPLITThe struct member offsets. -
MERGE
public static final int MERGEThe struct member offsets.
-
-
Constructor Details
-
ExtentHooks
Creates aExtentHooksinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<ExtentHooks>
-
alloc
the extent allocation hook -
dalloc
the extent deallocation hook -
destroy
the extent destruction hook -
commit
the extent commit hook -
decommit
the extent decommit hook -
purge_lazy
the extent lazy purge hook -
purge_forced
the extent forced purge hook -
split
the extent split hook -
merge
the extent merge hook -
alloc
Sets the specified value to thealloc()field. -
dalloc
Sets the specified value to thedalloc()field. -
destroy
Sets the specified value to thedestroy()field. -
commit
Sets the specified value to thecommit()field. -
decommit
Sets the specified value to thedecommit()field. -
purge_lazy
Sets the specified value to thepurge_lazy()field. -
purge_forced
Sets the specified value to thepurge_forced()field. -
split
Sets the specified value to thesplit()field. -
merge
Sets the specified value to themerge()field. -
set
public ExtentHooks set(ExtentAllocI alloc, ExtentDallocI dalloc, ExtentDestroyI destroy, ExtentCommitI commit, ExtentDecommitI decommit, ExtentPurgeI purge_lazy, ExtentPurgeI purge_forced, ExtentSplitI split, ExtentMergeI merge) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newExtentHooksinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newExtentHooksinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newExtentHooksinstance allocated withBufferUtils. -
create
Returns a newExtentHooksinstance for the specified memory address. -
createSafe
-
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
mallocStack
Deprecated.Deprecated for removal in 3.4.0. Usemalloc(MemoryStack)instead. -
callocStack
Deprecated.Deprecated for removal in 3.4.0. Usecalloc(MemoryStack)instead. -
malloc
Returns a newExtentHooksinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newExtentHooksinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
nalloc
Unsafe version ofalloc(). -
ndalloc
Unsafe version ofdalloc(). -
ndestroy
Unsafe version ofdestroy(). -
ncommit
Unsafe version ofcommit(). -
ndecommit
Unsafe version ofdecommit(). -
npurge_lazy
Unsafe version ofpurge_lazy(). -
npurge_forced
Unsafe version ofpurge_forced(). -
nsplit
Unsafe version ofsplit(). -
nmerge
Unsafe version ofmerge(). -
nalloc
Unsafe version ofalloc. -
ndalloc
Unsafe version ofdalloc. -
ndestroy
Unsafe version ofdestroy. -
ncommit
Unsafe version ofcommit. -
ndecommit
Unsafe version ofdecommit. -
npurge_lazy
Unsafe version ofpurge_lazy. -
npurge_forced
Unsafe version ofpurge_forced. -
nsplit
Unsafe version ofsplit. -
nmerge
Unsafe version ofmerge. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-