summaryrefslogtreecommitdiffstats
path: root/man/man3/roundup.3
diff options
context:
space:
mode:
Diffstat (limited to 'man/man3/roundup.3')
-rw-r--r--man/man3/roundup.356
1 files changed, 56 insertions, 0 deletions
diff --git a/man/man3/roundup.3 b/man/man3/roundup.3
new file mode 100644
index 000000000..376591a11
--- /dev/null
+++ b/man/man3/roundup.3
@@ -0,0 +1,56 @@
+.\" Copyright (C) 2023 Alejandro Colomar <alx@kernel.org>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH roundup 3 (date) "Linux man-pages (unreleased)"
+.SH NAME
+roundup \- round up in steps
+.SH LIBRARY
+Standard C library
+.RI ( libc )
+.SH SYNOPSIS
+.nf
+.B #include <sys/param.h>
+.P
+.BI roundup( x ", " step );
+.fi
+.SH DESCRIPTION
+This macro rounds
+.I x
+to the nearest multiple of
+.I step
+that is not less than
+.IR x .
+.P
+It is typically used for
+rounding up a pointer to align it or
+increasing a buffer to be allocated.
+.P
+This API is not designed to be generic,
+and doesn't work in some cases
+that are not important for the typical use cases described above.
+See CAVEATS.
+.SH RETURN VALUE
+This macro returns the rounded value.
+.SH STANDARDS
+None.
+.SH CAVEATS
+The arguments may be evaluated more than once.
+.P
+.I x
+should be nonnegative,
+and
+.I step
+should be positive.
+.P
+If
+.I x + step
+would overflow or wrap around,
+the behavior is undefined.
+.SH SEE ALSO
+.BR ceil (3),
+.BR floor (3),
+.BR lrint (3),
+.BR rint (3),
+.BR lround (3),
+.BR round (3)