1 /** @file
2   GCD Operations and data structure used to
3   convert from GCD attributes to EFI Memory Map attributes.
4 
5 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution.  The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10 
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 #ifndef _GCD_H_
17 #define _GCD_H_
18 
19 //
20 // GCD Operations
21 //
22 #define GCD_MEMORY_SPACE_OPERATION 0x20
23 #define GCD_IO_SPACE_OPERATION     0x40
24 
25 #define GCD_ADD_MEMORY_OPERATION               (GCD_MEMORY_SPACE_OPERATION | 0)
26 #define GCD_ALLOCATE_MEMORY_OPERATION          (GCD_MEMORY_SPACE_OPERATION | 1)
27 #define GCD_FREE_MEMORY_OPERATION              (GCD_MEMORY_SPACE_OPERATION | 2)
28 #define GCD_REMOVE_MEMORY_OPERATION            (GCD_MEMORY_SPACE_OPERATION | 3)
29 #define GCD_SET_ATTRIBUTES_MEMORY_OPERATION    (GCD_MEMORY_SPACE_OPERATION | 4)
30 #define GCD_SET_CAPABILITIES_MEMORY_OPERATION  (GCD_MEMORY_SPACE_OPERATION | 5)
31 
32 #define GCD_ADD_IO_OPERATION                   (GCD_IO_SPACE_OPERATION | 0)
33 #define GCD_ALLOCATE_IO_OPERATION              (GCD_IO_SPACE_OPERATION | 1)
34 #define GCD_FREE_IO_OPERATION                  (GCD_IO_SPACE_OPERATION | 2)
35 #define GCD_REMOVE_IO_OPERATION                (GCD_IO_SPACE_OPERATION | 3)
36 
37 //
38 // The data structure used to convert from GCD attributes to EFI Memory Map attributes
39 //
40 typedef struct {
41   UINT64   Attribute;
42   UINT64   Capability;
43   BOOLEAN  Memory;
44 } GCD_ATTRIBUTE_CONVERSION_ENTRY;
45 
46 #endif
47