summaryrefslogtreecommitdiff
path: root/ReferenceCode/Chipset/LynxPoint/Ppi/PchDmiTcVcMap/PchDmiTcVcMap.h
blob: 7a2e555ae1815e081009e34ce4d96c8b0205ca0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/** @file
  This file defines the PCH DMI TC/VC mapping PPI

@copyright
  Copyright (c) 2009 - 2012 Intel Corporation. All rights reserved
  This software and associated documentation (if any) is furnished
  under a license and may only be used or copied in accordance
  with the terms of the license. Except as permitted by such
  license, no part of this software or documentation may be
  reproduced, stored in a retrieval system, or transmitted in any
  form or by any means without the express written consent of
  Intel Corporation.

  This file contains a 'Sample Driver' and is licensed as such
  under the terms of your license agreement with Intel or your
  vendor.  This file may be modified by the user, subject to
  the additional terms of the license agreement
**/
#ifndef _PCH_DMI_TC_VC_MAP_H_
#define _PCH_DMI_TC_VC_MAP_H_

///
/// Define the PCH DMI TC VC Mapping PPI GUID
///
///
/// EDK and EDKII have different GUID formats
///
#if !defined(EDK_RELEASE_VERSION) || (EDK_RELEASE_VERSION < 0x00020000)
#define PCH_DMI_TC_VC_PPI_GUID \
  { \
    0xed097352, 0x9041, 0x445a, 0x80, 0xb6, 0xb2, 0x9d, 0x50, 0x9e, 0x88, 0x45 \
  }
#else
#define PCH_DMI_TC_VC_PPI_GUID \
  { \
    0xed097352, 0x9041, 0x445a, \
    { \
      0x80, 0xb6, 0xb2, 0x9d, 0x50, 0x9e, 0x88, 0x45 \
    } \
  }
#endif
//
// Extern the GUID for PPI users.
//
extern EFI_GUID                   gPchDmiTcVcMapPpiGuid;

//
// Forward reference for ANSI C compatibility
//
typedef struct _PCH_DMI_TC_VC_PPI PCH_DMI_TC_VC_PPI;

typedef enum {
  DmiVcTypeVc0,
  DmiVcTypeVc1,
  DmiVcTypeVcp,
  DmiVcTypeVcm,
  DmiVcTypeMax
} PCH_DMI_VC_TYPE;

typedef struct {
  PCH_DMI_VC_TYPE Vc; ///< The Virtual Channel to which the TC is mapped
} PCH_DMI_TC_CONFIG;

typedef struct {
  BOOLEAN Enable;     ///< 0: Disable; 1: Enable
  UINT8   VcId;       ///< Vc ID Encoding for the Virtual Channel
} PCH_DMI_VC_CONFIG;

#define DmiTcTypeMax  8

///
/// PCH_DMI_TC_VC_PPI Structure Definition
/// Note: The default DMI TC/VC mapping will be used if it's not initialized
///
struct _PCH_DMI_TC_VC_PPI {
  PCH_DMI_TC_CONFIG DmiTc[DmiTcTypeMax];  ///< Configures PCH DMI Traffic class mapping.
  PCH_DMI_VC_CONFIG DmiVc[DmiVcTypeMax];  ///< Configures PCH DMI Virtual Channel setting.
};

#endif