Home | History | Annotate | Download | only in Include
      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