source: mainline/uspace/lib/c/include/align.h@ cd1e3fc0

Last change on this file since cd1e3fc0 was d7f7a4a, checked in by Jiří Zárevúcky <zarevucky.jiri@…>, 3 years ago

Replace some license headers with SPDX identifier

Headers are replaced using tools/transorm-copyright.sh only
when it can be matched verbatim with the license header used
throughout most of the codebase.

  • Property mode set to 100644
File size: 861 bytes
Line 
1/*
2 * SPDX-FileCopyrightText: 2005 Jakub Jermar
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/** @addtogroup libc
8 * @{
9 */
10/** @file
11 */
12
13#ifndef _LIBC_ALIGN_H_
14#define _LIBC_ALIGN_H_
15
16/** Align to the nearest lower address which is a power of two.
17 *
18 * @param s Address or size to be aligned.
19 * @param a Size of alignment, must be power of 2.
20 */
21#define ALIGN_DOWN(s, a) ((s) & ~((a) - 1))
22
23/** Align to the nearest higher address which is a power of two.
24 *
25 * @param s Address or size to be aligned.
26 * @param a Size of alignment, must be power of 2.
27 */
28#define ALIGN_UP(s, a) ((long)((s) + ((a) - 1)) & ~((long) (a) - 1))
29
30/** Round up to the nearest higher boundary.
31 *
32 * @param n Number to be aligned.
33 * @param b Boundary, arbitrary unsigned number.
34 */
35#define ROUND_UP(n, b) (((n) / (b) + ((n) % (b) != 0)) * (b))
36
37#endif
38
39/** @}
40 */
Note: See TracBrowser for help on using the repository browser.