summaryrefslogtreecommitdiffstats
path: root/RedfishPkg/Include/Pcd/RestExServiceDevicePath.h
blob: 91b1198297c206e261912524214f991c4af67596 (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
/** @file
  This library defines the UEFI device path data of network device for REST
  service to decide which should be used as the Redfish host interface.

  Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
  (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>

    SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef REST_EX_SERVICE_DEVICE_PATH_H_
#define REST_EX_SERVICE_DEVICE_PATH_H_

#include <Protocol/DevicePath.h>

typedef enum {
  DEVICE_PATH_MATCH_MAC_NODE = 1,
  DEVICE_PATH_MATCH_PCI_NODE = 2,
  DEVICE_PATH_MATCH_MODE_MAX
} DEVICE_PATH_MATCH_MODE;

typedef struct {
  UINT32    DevicePathMatchMode;
  UINT32    DevicePathNum;
  //
  // Example:
  //   {DEVICE_PATH("PciRoot(0)/Pci(0,0)/MAC(005056C00002,0x1)")}
  // DevicePath will be parsed as below:
  //   {0x02,0x01,0x0c,0x00,0xd0,0x41,0x03,0x0a,0x00,0x00,0x00,0x00,
  //    0x01,0x01,0x06,0x00,0x00,0x00,
  //    0x03,0x0b,0x25,0x00,0x00,0x50,0x56,0xc0,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  //    0x7f,0xff,0x04,0x00}
  //
  EFI_DEVICE_PATH_PROTOCOL    DevicePath[];
} REST_EX_SERVICE_DEVICE_PATH_DATA;

#endif