diff options
Diffstat (limited to 'man/libsimple_vmemalloc.3')
-rw-r--r-- | man/libsimple_vmemalloc.3 | 301 |
1 files changed, 0 insertions, 301 deletions
diff --git a/man/libsimple_vmemalloc.3 b/man/libsimple_vmemalloc.3 deleted file mode 100644 index b661f29..0000000 --- a/man/libsimple_vmemalloc.3 +++ /dev/null @@ -1,301 +0,0 @@ -.TH LIBSIMPLE_VMEMALLOC 3 2018-11-03 libsimple -.SH NAME -libsimple_vmemalloc \- allocate memory in a flexible manner -.SH SYNOPSIS -.nf -#include <libsimple.h> - -enum libsimple_memalloc_option { - /* constants omitted, see \fBDESCRIPTION\fP */ -}; - -void *libsimple_vmemalloc(size_t \fIn\fP, va_list \fIap\fP); -void *libsimple_envmemalloc(int \fIstatus\fP, size_t \fIn\fP, va_list \fIap\fP); -static inline void *libsimple_evmemalloc(size_t \fIn\fP, va_list \fIap\fP); -static inline void *libsimple_memalloc(size_t \fIn\fP, ..., /* LIBSIMPLE_MEMALLOC_END */); -static inline void *libsimple_enmemalloc(int \fIstatus\fP, size_t \fIn\fP, ..., /* LIBSIMPLE_MEMALLOC_END */); -static inline void *libsimple_ememalloc(size_t \fIn\fP, ..., /* LIBSIMPLE_MEMALLOC_END */); -.fi -.PP -Link with -.IR \-lsimple . -.SH DESCRIPTION -The -.BR libsimple_vmemalloc () -function is a flexible alternative to standard allocation -functions. -.PP -.I va -is a list of options that specify the behaviour, its -end is marked by -.BR LIBSIMPLE_MEMALLOC_END , -the following options (which is the type -.BR "enum libsimple_memalloc_option" ) -are recognised: -.TP -.B LIBSIMPLE_MEMALLOC_ZERO_INIT -The allocated memory shall be initialisd with NUL bytes. -.TP -.B LIBSIMPLE_MEMALLOC_CONDITIONAL_ZERO_INIT -The allocated memory shall be initialisd with NUL bytes -with the argument, which should be of the type -.BR int , -is nonzero. -.TP -.B LIBSIMPLE_MEMALLOC_UNIQUE_IF_ZERO -If attempting to allocate 0 bytes, -rather than failing with -.I errno -set to -.BR EINVAL , -a unique pointer (that can be deallocated) -should be returned. -.TP -.B LIBSIMPLE_MEMALLOC_NULL_IF_ZERO -If attempting to allocate 0 bytes, -rather than failing with -.I errno -set to -.BR EINVAL , -a -.B NULL -should be returned. -.TP -.B LIBSIMPLE_MEMALLOC_ALIGNMENT -The value of the next argument, which should be of the type -.BR size_t , -should be used as the alignment of the returned pointer. -By default the alignment is -.IR "alignof(max_align_t)" . -.TP -.B LIBSIMPLE_MEMALLOC_PAGE_ALIGNMENT -The alignment of the returned pointer should be the page size. -By default the alignment is -.IR "alignof(max_align_t)" . -.TP -.B LIBSIMPLE_MEMALLOC_ROUND_UP_SIZE_TO_ALIGNMENT -The number of bytes to allocated should be rounded up to -the next multiple of the alignment, unless it already is -a multiple of the alignment. -.TP -.B LIBSIMPLE_MEMALLOC_ELEMENT_SIZE -The next argument, which should be of the type -.BR size_t , -shall act as a multiplier for the number of bytes to allocate -(default multiplier is 1), effectively, making the specified -allocation size specified in elements rather than in bytes. -.TP -.B LIBSIMPLE_MEMALLOC_PRODUCT_SIZE -If -.I n -is zero, the product of the following arguments, -which should be of the type -.BR size_t , -up to the first 0, shall be used as the allocation size. -If -.I n -is not zero, the product of the following -.I n -arguments, also of type -.BR size_t , -shall be used as the allocation size. -By default -.I n -bytes are allocated. -.TP -.B LIBSIMPLE_MEMALLOC_VA_PRODUCT_SIZE -Like -.BR LIBSIMPLE_MEMALLOC_PRODUCT_SIZE , -the arguments are read from the next argument, -which should be of the type -.BR va_list . -.TP -.B LIBSIMPLE_MEMALLOC_1_VA_PRODUCT_SIZE -Like -.BR LIBSIMPLE_MEMALLOC_PRODUCT_SIZE , -except two arguments read from -.IR ap : -a -.BR size_t , -which act as the first factor, and a -.B va_list -with the rest of the factors. -.TP -.B LIBSIMPLE_MEMALLOC_VA_LIST -Arguments from the next argument, which should be of the type -.B va_list -and should end with -.BR LIBSIMPLE_MEMALLOC_END , -shall be parsed as options for the memory allocation. -.PP -Each -.B enum libsimple_memalloc_option -constant have a self-referencing macros defined -which can be used to test which constants are defined. -.PP -The -.BR libsimple_envmemalloc () -and -.BR libsimple_evmemalloc () -functions are versions of the -.BR libsimple_vmemalloc () -that terminate the process by calling the -.BR libsimple_enprintf (3) -(with -.I status -as the exit value) and -.BR libsimple_eprintf (3) -functions, respectively. -.PP -The -.BR libsimple_memalloc (), -.BR libsimple_enmemalloc (), -and -.BR libsimple_ememalloc () -functions are versions of the -.BR libsimple_vmemalloc (), -.BR libsimple_envmemalloc (), -and -.BR libsimple_evmemalloc () -functions, respectively, that use variadic arguments -instead of -.BR va_list . -.SH RETURN VALUE -The -.BR libsimple_vmemalloc (), -.BR libsimple_envmemalloc (), -.BR libsimple_ememalloc (), -.BR libsimple_memalloc (), -.BR libsimple_enmemalloc (), -and -.BR libsimple_ememalloc () -functions return the a pointer to the allocated -memory upon successful completion; otherwise the -.BR libsimple_vmemalloc () -and -.BR libsimple_memalloc () -functions return -.B NULL -and set -.I errno -to indicate the error, whereas the -.BR libsimple_envmemalloc (), -.BR libsimple_ememalloc (), -.BR libsimple_enmemalloc (), -and -.BR libsimple_ememalloc () -functions terminate the process. -.SH ERRORS -The -.BR libsimple_vmemalloc () -and -.BR libsimple_memalloc () -functions will fail if -.TP -.B EINVAL -An invalid argument is specified. -.TP -.B EINVAL -An option is specified twice or in -conjunction with a mutually exclusive option. -.TP -.B ENOMEM -Enough memory could not be allocated. -.PP -The -.BR libsimple_envmemalloc (), -.BR libsimple_ememalloc (), -.BR libsimple_enmemalloc (), -and -.BR libsimple_ememalloc () -functions terminate the process on failure. -.SH ATTRIBUTES -For an explanation of the terms used in this section, see -.BR attributes (7). -.TS -allbox; -lb lb lb -l l l. -Interface Attribute Value -T{ -.BR libsimple_vmemalloc (), -.br -.BR libsimple_envmemalloc (), -.br -.BR libsimple_ememalloc (), -.br -.BR libsimple_memalloc (), -.br -.BR libsimple_enmemalloc (), -.br -.BR libsimple_ememalloc () -T} Thread safety MT-Safe -T{ -.BR libsimple_vmemalloc (), -.br -.BR libsimple_envmemalloc (), -.br -.BR libsimple_ememalloc (), -.br -.BR libsimple_memalloc (), -.br -.BR libsimple_enmemalloc (), -.br -.BR libsimple_ememalloc () -T} Async-signal safety AS-Safe -T{ -.BR libsimple_vmemalloc (), -.br -.BR libsimple_envmemalloc (), -.br -.BR libsimple_ememalloc (), -.br -.BR libsimple_memalloc (), -.br -.BR libsimple_enmemalloc (), -.br -.BR libsimple_ememalloc () -T} Async-cancel safety AC-Safe -.TE -.SH EXAMPLES -None. -.SH APPLICATION USAGE -None. -.SH RATIONALE -None. -.SH FUTURE DIRECTIONS -None. -.SH NOTES -None. -.SH BUGS -None. -.SH SEE ALSO -.BR libsimple_varrayalloc (3), -.BR libsimple_enmalloc (3), -.BR libsimple_mallocz (3), -.BR libsimple_vmallocn (3), -.BR libsimple_vmalloczn (3), -.BR libsimple_encalloc (3), -.BR libsimple_vcallocn (3), -.BR libsimple_enrealloc (3), -.BR libsimple_vreallocn (3), -.BR libsimple_memalign (3), -.BR libsimple_memalignz (3), -.BR libsimple_vmemalignn (3), -.BR libsimple_vmemalignzn (3), -.BR libsimple_enposix_memalign (3), -.BR libsimple_posix_memalignz (3), -.BR libsimple_vposix_memalignn (3), -.BR libsimple_vposix_memalignzn (3), -.BR libsimple_enaligned_alloc (3), -.BR libsimple_aligned_allocz (3), -.BR libsimple_valigned_allocn (3), -.BR libsimple_valigned_alloczn (3), -.BR libsimple_pvalloc (3), -.BR libsimple_pvallocz (3), -.BR libsimple_vpvallocn (3), -.BR libsimple_vpvalloczn (3), -.BR libsimple_valloc (3), -.BR libsimple_vallocz (3), -.BR libsimple_vvallocn (3), -.BR libsimple_vvalloczn (3) |