Software APIs
iso646.h
Go to the documentation of this file.
1 // Copyright lowRISC contributors (OpenTitan project).
2 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
3 // SPDX-License-Identifier: Apache-2.0
4 
5 #ifndef OPENTITAN_SW_DEVICE_LIB_BASE_FREESTANDING_ISO646_H_
6 #define OPENTITAN_SW_DEVICE_LIB_BASE_FREESTANDING_ISO646_H_
7 
8 /**
9  * @file
10  * @brief C library Alternative Spellings (Freestanding)
11  *
12  * This header implements the iso646.h standard header, as required by C11 S4p6.
13  * See S7.9 of the same for a description.
14  *
15  * This file is provided only for standards compliance reason; including this
16  * file is a style violation.
17  */
18 
19 // The below macro definitions cause clang-format to freak out somewhat, so we
20 // need to turn it off.
21 // clang-format off
22 
23 #define and &&
24 #define and_eq &=
25 #define bitand &
26 
27 #define or ||
28 #define or_eq |=
29 #define bitor |
30 
31 #define xor ^
32 #define xor_eq ^=
33 
34 #define not !
35 #define not_eq !=
36 
37 #define compl ~
38 
39 // clang-format on
40 
41 #endif // OPENTITAN_SW_DEVICE_LIB_BASE_FREESTANDING_ISO646_H_