1 /*++ 2 3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 4 This program and the accompanying materials 5 are licensed and made available under the terms and conditions of the BSD License 6 which accompanies this distribution. The full text of the license may be found at 7 http://opensource.org/licenses/bsd-license.php 8 9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 11 12 Module Name: 13 14 EfiCommon.h 15 16 Abstract: 17 18 --*/ 19 20 #ifndef _EFI_COMMON_H_ 21 #define _EFI_COMMON_H_ 22 23 #include <EfiBind.h> 24 #include "EfiTypes.h" 25 #include "EfiStdArg.h" 26 #include "EfiError.h" 27 28 // 29 // Define macros for including Protocols and Guids. 30 // 31 #define EFI_STRINGIZE(a) #a 32 #define EFI_PROTOCOL_DEFINITION(a) EFI_STRINGIZE (Protocol/a/a.h) 33 #define EFI_GUID_DEFINITION(a) EFI_STRINGIZE (Guid/a/a.h) 34 35 // 36 // These should be used to include protocols. If they are followed, 37 // intelligent build tools can be created to check dependencies at build 38 // time. 39 // 40 #define EFI_PROTOCOL_PRODUCER(a) EFI_PROTOCOL_DEFINITION (a) 41 #define EFI_PROTOCOL_CONSUMER(a) EFI_PROTOCOL_DEFINITION (a) 42 #define EFI_PROTOCOL_DEPENDENCY(a) EFI_PROTOCOL_DEFINITION (a) 43 44 // 45 // Mechanism to associate a short and long ascii string with a GUID. 46 // For normal builds the strings are not included. A build utility 47 // can be constructed to extract the strings and build a table. It may 48 // be possible to add a build opption to automatically generate a GUID 49 // string table for a GUID to string utility build. 50 // 51 #define EFI_GUID_STRING(guidpointer, shortstring, longstring) 52 53 #endif 54