xref: /freebsd/lib/libc/stdlib/memalignment.3 (revision 6c57e368eb1777f6097158eeca2fcc175d068dba)
1*6c57e368SRobert Clausecker.\"
2*6c57e368SRobert Clausecker.\" Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org>
3*6c57e368SRobert Clausecker.\"
4*6c57e368SRobert Clausecker.\" SPDX-License-Identifier: BSD-2-Clause
5*6c57e368SRobert Clausecker.\"
6*6c57e368SRobert Clausecker.Dd November 10, 2025
7*6c57e368SRobert Clausecker.Dt MEMALIGNMENT 3
8*6c57e368SRobert Clausecker.Os
9*6c57e368SRobert Clausecker.Sh NAME
10*6c57e368SRobert Clausecker.Nm memalignment
11*6c57e368SRobert Clausecker.Nd find the memory alignment of an object
12*6c57e368SRobert Clausecker.Sh SYNOPSIS
13*6c57e368SRobert Clausecker.Lb libc
14*6c57e368SRobert Clausecker.In stdlib.h
15*6c57e368SRobert Clausecker.Ft size_t
16*6c57e368SRobert Clausecker.Fn memalignment "const void *ptr"
17*6c57e368SRobert Clausecker.Sh DESCRIPTION
18*6c57e368SRobert ClauseckerThe
19*6c57e368SRobert Clausecker.Fn memalignment
20*6c57e368SRobert Clauseckerfunction determines the alignment of the object pointed to by
21*6c57e368SRobert Clausecker.Fa ptr .
22*6c57e368SRobert ClauseckerThis alignment is a power of\~2, and may be larger than the range
23*6c57e368SRobert Clauseckersupported by the
24*6c57e368SRobert Clausecker.Sy alignof
25*6c57e368SRobert Clauseckeroperator.
26*6c57e368SRobert ClauseckerThe value returned can be compared to the result of
27*6c57e368SRobert Clausecker.Sy alignof ,
28*6c57e368SRobert Clauseckerand if it is greater or equal, the alignment requirement of the operand
29*6c57e368SRobert Clauseckeris satisfied.
30*6c57e368SRobert Clausecker.Sh RETURN VALUES
31*6c57e368SRobert ClauseckerReturns the alignment of
32*6c57e368SRobert Clausecker.Fa ptr
33*6c57e368SRobert Clauseckeras a power of\~2.
34*6c57e368SRobert ClauseckerIf
35*6c57e368SRobert Clausecker.Fa ptr
36*6c57e368SRobert Clauseckeris a null pointer, an alignment of zero is returned.
37*6c57e368SRobert ClauseckerAn alignment of zero indicates that the tested pointer cannot be used to
38*6c57e368SRobert Clauseckeraccess an object of any type.
39*6c57e368SRobert Clausecker.Sh SEE ALSO
40*6c57e368SRobert Clausecker.Xr aligned_alloc 3 ,
41*6c57e368SRobert Clausecker.Xr posix_memalign 3
42*6c57e368SRobert Clausecker.Sh STANDARDS
43*6c57e368SRobert ClauseckerThe
44*6c57e368SRobert Clausecker.Fn memalignment
45*6c57e368SRobert Clauseckerfunction conforms to
46*6c57e368SRobert Clausecker.St -isoC-2023 .
47*6c57e368SRobert Clausecker.Sh HISTORY
48*6c57e368SRobert ClauseckerThe
49*6c57e368SRobert Clausecker.Fn memalignment
50*6c57e368SRobert Clauseckerfunction was added in
51*6c57e368SRobert Clausecker.Fx 15.1.
52*6c57e368SRobert Clausecker.Sh AUTHOR
53*6c57e368SRobert Clausecker.An Robert Clausecker Aq Mt fuz@FreeBSD.org
54