nvml-sys 0.0.6

A low-level FFI wrapper around the Persistent Memory Development Kit, PMDK (formerly NVML) and its libraries, including libpmem, libpmemobj and others. Currently tracks master after version 1.3.1.
==$(N)== Memcheck, a memory error detector
==$(N)== Copyright $(*)
==$(N)== Using $(*)
==$(N)== Command: $(*)
==$(N)== Parent PID: $(*)
==$(N)== 
==$(N)== Invalid write of size 4
==$(N)==    at 0x$(X): main (obj_constructor.c:$(N))
==$(N)==  Address 0x$(X) is $(N) bytes after a block of size $(N) free'd
==$(N)==    at 0x$(X): alloc_prep_block (palloc.c:$(N))
==$(N)==    by 0x$(X): palloc_reservation_create (palloc.c:$(N))
==$(N)==    by 0x$(X): palloc_operation (palloc.c:$(N))
==$(N)==    by 0x$(X): pmalloc_operation (pmalloc.c:$(N))
==$(N)==    by 0x$(X): obj_alloc_construct (obj.c:$(N))
==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
$(OPT)==$(N)==  Block was alloc'd at
$(OPT)==$(N)==    at 0x$(X): alloc_prep_block (palloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): palloc_reservation_create (palloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): palloc_operation (palloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): pmalloc_operation (pmalloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): obj_alloc_construct (obj.c:$(N))
$(OPT)==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
$(OPT)==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
==$(N)== 
==$(N)== Unaddressable byte(s) found during client check request
==$(N)==    at 0x$(X): pmem_flush (pmem.c:$(N))
==$(N)==    by 0x$(X): pmem_persist (pmem.c:$(N))
==$(N)==    by 0x$(X): obj_norep_persist (obj.c:$(N))
==$(N)==    by 0x$(X): pmemops_persist (pmemops.h:$(N))
==$(N)==    by 0x$(X): pmemobj_persist (obj.c:$(N))
==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
==$(N)==  Address 0x$(X) is 16 bytes after a block of size 112 free'd
==$(N)==    at 0x$(X): alloc_prep_block (palloc.c:$(N))
==$(N)==    by 0x$(X): palloc_reservation_create (palloc.c:$(N))
==$(N)==    by 0x$(X): palloc_operation (palloc.c:$(N))
==$(N)==    by 0x$(X): pmalloc_operation (pmalloc.c:$(N))
==$(N)==    by 0x$(X): obj_alloc_construct (obj.c:$(N))
==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
$(OPT)==$(N)==  Block was alloc'd at
$(OPT)==$(N)==    at 0x$(X): alloc_prep_block (palloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): palloc_reservation_create (palloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): palloc_operation (palloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): pmalloc_operation (pmalloc.c:$(N))
$(OPT)==$(N)==    by 0x$(X): obj_alloc_construct (obj.c:$(N))
$(OPT)==$(N)==    by 0x$(X): pmemobj_alloc (obj.c:$(N))
$(OPT)==$(N)==    by 0x$(X): main (obj_constructor.c:$(N))
==$(N)== 
==$(N)== 
==$(N)== HEAP SUMMARY:
$(OPT)==$(N)==     in use at exit: 0 bytes in 0 blocks
$(OPX)==$(N)==     in use at exit: $(NC) bytes in $(N) blocks
==$(N)==   total heap usage: $(NC) allocs, $(NC) frees, $(NC) bytes allocated
==$(N)== 
$(OPT)==$(N)== All heap blocks were freed -- no leaks are possible
$(OPT)==$(N)== 
$(OPX)==$(N)== LEAK SUMMARY:
$(OPT)==$(N)==    definitely lost: 0 bytes in 0 blocks
$(OPT)==$(N)==    indirectly lost: 0 bytes in 0 blocks
$(OPT)==$(N)==      possibly lost: 0 bytes in 0 blocks
$(OPT)==$(N)==    still reachable: 0 bytes in 0 blocks
$(OPT)==$(N)==         suppressed: $(NC) bytes in $(N) blocks
$(OPT)==$(N)== Reachable blocks (those to which a pointer was found) are not shown.
$(OPT)==$(N)== To see them, rerun with: --leak-check=full --show-leak-kinds=all
$(OPT)==$(N)== 
==$(N)== For counts of detected and suppressed errors, rerun with: -v
==$(N)== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: $(N) from $(N))