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