summaryrefslogtreecommitdiff
path: root/static/netbsd/man3/sqlite3_malloc.3
diff options
context:
space:
mode:
Diffstat (limited to 'static/netbsd/man3/sqlite3_malloc.3')
-rw-r--r--static/netbsd/man3/sqlite3_malloc.3128
1 files changed, 128 insertions, 0 deletions
diff --git a/static/netbsd/man3/sqlite3_malloc.3 b/static/netbsd/man3/sqlite3_malloc.3
new file mode 100644
index 00000000..0a5fd072
--- /dev/null
+++ b/static/netbsd/man3/sqlite3_malloc.3
@@ -0,0 +1,128 @@
+.Dd January 24, 2024
+.Dt SQLITE3_MALLOC 3
+.Os
+.Sh NAME
+.Nm sqlite3_malloc ,
+.Nm sqlite3_malloc64 ,
+.Nm sqlite3_realloc ,
+.Nm sqlite3_realloc64 ,
+.Nm sqlite3_free ,
+.Nm sqlite3_msize
+.Nd memory allocation subsystem
+.Sh SYNOPSIS
+.In sqlite3.h
+.Ft void *
+.Fo sqlite3_malloc
+.Fa "int"
+.Fc
+.Ft void *
+.Fo sqlite3_malloc64
+.Fa "sqlite3_uint64"
+.Fc
+.Ft void *
+.Fo sqlite3_realloc
+.Fa "void*"
+.Fa "int"
+.Fc
+.Ft void *
+.Fo sqlite3_realloc64
+.Fa "void*"
+.Fa "sqlite3_uint64"
+.Fc
+.Ft void
+.Fo sqlite3_free
+.Fa "void*"
+.Fc
+.Ft sqlite3_uint64
+.Fo sqlite3_msize
+.Fa "void*"
+.Fc
+.Sh DESCRIPTION
+The SQLite core uses these three routines for all of its own internal
+memory allocation needs.
+"Core" in the previous sentence does not include operating-system specific
+VFS implementation.
+The Windows VFS uses native malloc() and free() for some operations.
+.Pp
+The sqlite3_malloc() routine returns a pointer to a block of memory
+at least N bytes in length, where N is the parameter.
+If sqlite3_malloc() is unable to obtain sufficient free memory, it
+returns a NULL pointer.
+If the parameter N to sqlite3_malloc() is zero or negative then sqlite3_malloc()
+returns a NULL pointer.
+.Pp
+The sqlite3_malloc64(N) routine works just like sqlite3_malloc(N) except
+that N is an unsigned 64-bit integer instead of a signed 32-bit integer.
+.Pp
+Calling sqlite3_free() with a pointer previously returned by sqlite3_malloc()
+or sqlite3_realloc() releases that memory so that it might be reused.
+The sqlite3_free() routine is a no-op if is called with a NULL pointer.
+Passing a NULL pointer to sqlite3_free() is harmless.
+After being freed, memory should neither be read nor written.
+Even reading previously freed memory might result in a segmentation
+fault or other severe error.
+Memory corruption, a segmentation fault, or other severe error might
+result if sqlite3_free() is called with a non-NULL pointer that was
+not obtained from sqlite3_malloc() or sqlite3_realloc().
+.Pp
+The sqlite3_realloc(X,N) interface attempts to resize a prior memory
+allocation X to be at least N bytes.
+If the X parameter to sqlite3_realloc(X,N) is a NULL pointer then its
+behavior is identical to calling sqlite3_malloc(N).
+If the N parameter to sqlite3_realloc(X,N) is zero or negative then
+the behavior is exactly the same as calling sqlite3_free(X).
+sqlite3_realloc(X,N) returns a pointer to a memory allocation of at
+least N bytes in size or NULL if insufficient memory is available.
+If M is the size of the prior allocation, then min(N,M) bytes of the
+prior allocation are copied into the beginning of buffer returned by
+sqlite3_realloc(X,N) and the prior allocation is freed.
+If sqlite3_realloc(X,N) returns NULL and N is positive, then the prior
+allocation is not freed.
+.Pp
+The sqlite3_realloc64(X,N) interfaces works the same as sqlite3_realloc(X,N)
+except that N is a 64-bit unsigned integer instead of a 32-bit signed
+integer.
+.Pp
+If X is a memory allocation previously obtained from sqlite3_malloc(),
+sqlite3_malloc64(), sqlite3_realloc(), or sqlite3_realloc64(), then
+sqlite3_msize(X) returns the size of that memory allocation in bytes.
+The value returned by sqlite3_msize(X) might be larger than the number
+of bytes requested when X was allocated.
+If X is a NULL pointer then sqlite3_msize(X) returns zero.
+If X points to something that is not the beginning of memory allocation,
+or if it points to a formerly valid memory allocation that has now
+been freed, then the behavior of sqlite3_msize(X) is undefined and
+possibly harmful.
+.Pp
+The memory returned by sqlite3_malloc(), sqlite3_realloc(), sqlite3_malloc64(),
+and sqlite3_realloc64() is always aligned to at least an 8 byte boundary,
+or to a 4 byte boundary if the SQLITE_4_BYTE_ALIGNED_MALLOC
+compile-time option is used.
+.Pp
+The pointer arguments to
+.Fn sqlite3_free
+and
+.Fn sqlite3_realloc
+must be either NULL or else pointers obtained from a prior invocation
+of
+.Fn sqlite3_malloc
+or
+.Fn sqlite3_realloc
+that have not yet been released.
+.Pp
+The application must not read or write any part of a block of memory
+after it has been released using
+.Fn sqlite3_free
+or
+.Fn sqlite3_realloc .
+.Sh IMPLEMENTATION NOTES
+These declarations were extracted from the
+interface documentation at line 2993.
+.Bd -literal
+SQLITE_API void *sqlite3_malloc(int);
+SQLITE_API void *sqlite3_malloc64(sqlite3_uint64);
+SQLITE_API void *sqlite3_realloc(void*, int);
+SQLITE_API void *sqlite3_realloc64(void*, sqlite3_uint64);
+SQLITE_API void sqlite3_free(void*);
+SQLITE_API sqlite3_uint64 sqlite3_msize(void*);
+.Ed