/** @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> | |
Copyright (c) 2023, Ampere Computing LLC. All rights reserved.<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> | |
#define MAX_DEVICE_PATH_NODE 40 | |
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[MAX_DEVICE_PATH_NODE]; | |
} REST_EX_SERVICE_DEVICE_PATH_DATA; | |
#endif |