• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2     Provides alternative "spellings" for several C operators.
3 
4     The header <iso646.h> defines the following eleven macros (on the left) that expand
5     to the corresponding tokens (on the right).
6 
7     Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
8     This program and the accompanying materials are licensed and made available under
9     the terms and conditions of the BSD License that accompanies this distribution.
10     The full text of the license may be found at
11     http://opensource.org/licenses/bsd-license.
12 
13     THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14     WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 **/
16 #ifndef _ISO646_H
17 #define _ISO646_H
18 #include  <sys/EfiCdefs.h>
19 
20 #define and     &&    ///< Logical AND of two boolean expressions
21 #define and_eq  &=    ///< Bitwise AND with assignment to lval
22 #define bitand  &     ///< Bitwise AND of two scalar expressions
23 #define bitor   |     ///< Bitwise OR of two scalar expressions
24 #define compl   ~     ///< Binary complement
25 #define not     !     ///< Logical complement of a boolean expression
26 #define not_eq  !=    ///< Not-equal comparison
27 #define or      ||    ///< Logical OR of two boolean expressions
28 #define or_eq   |=    ///< Bitwise OR with assignment to lval
29 #define xor     ^     ///< Exclusive OR
30 #define xor_eq  ^=    ///< Exclusive OR with assignment to lval
31 
32 #endif  /* _ISO646_H */
33