blob: 8f8bb0d340ef5bf5c1185f8e26e4148a70be5f5c [file] [log] [blame]
Stéphane Marchesin25a26062014-09-12 16:18:59 -07001/*
Daniele Castagna7a755de2016-12-16 17:32:30 -05002 * Copyright 2014 The Chromium OS Authors. All rights reserved.
Stéphane Marchesin25a26062014-09-12 16:18:59 -07003 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7#ifndef UTIL_H
8#define UTIL_H
9
10#define MAX(A, B) ((A) > (B) ? (A) : (B))
Gurchetan Singh1b1d56a2017-03-10 16:25:23 -080011#define ARRAY_SIZE(A) (sizeof(A) / sizeof(*(A)))
Stéphane Marchesin25a26062014-09-12 16:18:59 -070012#define PUBLIC __attribute__((visibility("default")))
Kristian H. Kristensene8778f02018-04-04 14:21:41 -070013#define ALIGN(A, B) (((A) + (B)-1) & ~((B)-1))
14#define IS_ALIGNED(A, B) (ALIGN((A), (B)) == (A))
Gurchetan Singh1b1d56a2017-03-10 16:25:23 -080015#define DIV_ROUND_UP(n, d) (((n) + (d)-1) / (d))
Gurchetan Singhcf9ed9d2019-12-13 09:37:01 -080016#define STRINGIZE_NO_EXPANSION(x) #x
17#define STRINGIZE(x) STRINGIZE_NO_EXPANSION(x)
Stéphane Marchesin25a26062014-09-12 16:18:59 -070018
19#endif