1 /** @file 2 Macros to simplify boolean expressions and operations. 3 4 This header is not specified by the C95 standard but is included here for 5 operational convenience. 6 7 The macro bool expands to _Bool, as required by the C99 specification. 8 This subsequently expands to BOOLEAN, is a UEFI data type which is automatically 9 defined correctly for the target CPU architecture. 10 11 The remaining three macros are suitable for use in #if preprocessing 12 directives. They are true, which expands to the integer constant 1, 13 false, which expands to the integer constant 0, and 14 __bool_true_false_are_defined which expands to the integer constant 1. 15 16 A program may undefine and perhaps then redefine the 17 macros bool, true, and false. 18 19 Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR> 20 This program and the accompanying materials are licensed and made available under 21 the terms and conditions of the BSD License that accompanies this distribution. 22 The full text of the license may be found at 23 http://opensource.org/licenses/bsd-license. 24 25 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 26 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 27 **/ 28 #ifndef _STDBOOL_H 29 #define _STDBOOL_H 30 #include <sys/EfiCdefs.h> 31 32 #define bool _Bool 33 #define true 1 34 #define false 0 35 #define __bool_true_false_are_defined 1 36 37 #endif /* _STDBOOL_H */ 38