/** @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.
(C) Copyright 2020 Hewlett Packard Enterprise Development LP
Copyright (c) 2023, Ampere Computing LLC. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef REST_EX_SERVICE_DEVICE_PATH_H_
#define REST_EX_SERVICE_DEVICE_PATH_H_
#include
#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