<commit_before>/** @file
  This file provides a definition of the EFI IPv4 Configuration II
  Protocol.

Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution.  The full text of the license may be found at<BR>
http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5

**/
#ifndef __EFI_IP4CONFIG2_PROTOCOL_H__
#define __EFI_IP4CONFIG2_PROTOCOL_H__

#include <Protocol/Ip4.h>

#define EFI_IP4_CONFIG2_PROTOCOL_GUID \
  { \
    0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \
  }

typedef struct _EFI_IP4_CONFIG2_PROTOCOL EFI_IP4_CONFIG2_PROTOCOL;


///
/// EFI_IP4_CONFIG2_DATA_TYPE
///
typedef enum {
  ///
  /// The interface information of the communication device this EFI 
  /// IPv4 Configuration II Protocol instance manages. This type of 
  /// data is read only. The corresponding Data is of type 
  /// EFI_IP4_CONFIG2_INTERFACE_INFO.
  ///
  Ip4Config2DataTypeInterfaceInfo,
  ///
  /// The general configuration policy for the EFI IPv4 network stack 
  /// running on the communication device this EFI IPv4 
  /// Configuration II Protocol instance manages. The policy will 
  /// affect other configuration settings. The corresponding Data is of 
  /// type EFI_IP4_CONFIG2_POLICY.
  ///
  Ip4Config2DataTypePolicy,
  ///
  /// The station addresses set manually for the EFI IPv4 network 
  /// stack. It is only configurable when the policy is 
  /// Ip4Config2PolicyStatic. The corresponding Data is of 
  /// type EFI_IP4_CONFIG2_MANUAL_ADDRESS.
  ///
  Ip4Config2DataTypeManualAddress,
  ///
  /// The gateway addresses set manually for the EFI IPv4 network 
  /// stack running on the communication device this EFI IPv4 
  /// Configuration II Protocol manages. It is not configurable when 
  /// the policy is Ip4Config2PolicyDhcp. The gateway 
  /// addresses must be unicast IPv4 addresses. The corresponding 
  /// Data is a pointer to an array of EFI_IPv4_ADDRESS instances.
  ///
  Ip4Config2DataTypeGateway,
  ///
  /// The DNS server list for the EFI IPv4 network stack running on 
  /// the communication device this EFI IPv4 Configuration II 
  /// Protocol manages. It is not configurable when the policy is 
  /// Ip4Config2PolicyDhcp. The DNS server addresses must be 
  /// unicast IPv4 addresses. The corresponding Data is a pointer to 
  /// an array of EFI_IPv4_ADDRESS instances.
  ///
  Ip4Config2DataTypeDnsServer,
  Ip4Config2DataTypeMaximum
} EFI_IP4_CONFIG2_DATA_TYPE;

///
/// EFI_IP4_CONFIG2_INTERFACE_INFO
///
typedef struct {
  ///
  /// The name of the interface. It is a NULL-terminated Unicode string.
  ///
  CHAR16                Name[32];
  ///
  /// The interface type of the network interface. See RFC 1700, 
  /// section "Number Hardware Type".
  ///
  UINT8                 IfType;
  ///
  /// The size, in bytes, of the network interface's hardware address.
  ///
  UINT32                HwAddressSize;
  ///
  /// The hardware address for the network interface.
  ///
  EFI_MAC_ADDRESS       HwAddress;
  ///
  /// The station IPv4 address of this EFI IPv4 network stack.
  ///
  EFI_IPv4_ADDRESS      StationAddress;
  ///<commit_msg>MdePkg: Remove magic number<commit_after>/** @file
  This file provides a definition of the EFI IPv4 Configuration II
  Protocol.

Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution.  The full text of the license may be found at<BR>
http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

@par Revision Reference:
This Protocol is introduced in UEFI Specification 2.5

**/
#ifndef __EFI_IP4CONFIG2_PROTOCOL_H__
#define __EFI_IP4CONFIG2_PROTOCOL_H__

#include <Protocol/Ip4.h>

#define EFI_IP4_CONFIG2_PROTOCOL_GUID \
  { \
    0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \
  }

typedef struct _EFI_IP4_CONFIG2_PROTOCOL EFI_IP4_CONFIG2_PROTOCOL;


///
/// EFI_IP4_CONFIG2_DATA_TYPE
///
typedef enum {
  ///
  /// The interface information of the communication device this EFI 
  /// IPv4 Configuration II Protocol instance manages. This type of 
  /// data is read only. The corresponding Data is of type 
  /// EFI_IP4_CONFIG2_INTERFACE_INFO.
  ///
  Ip4Config2DataTypeInterfaceInfo,
  ///
  /// The general configuration policy for the EFI IPv4 network stack 
  /// running on the communication device this EFI IPv4 
  /// Configuration II Protocol instance manages. The policy will 
  /// affect other configuration settings. The corresponding Data is of 
  /// type EFI_IP4_CONFIG2_POLICY.
  ///
  Ip4Config2DataTypePolicy,
  ///
  /// The station addresses set manually for the EFI IPv4 network 
  /// stack. It is only configurable when the policy is 
  /// Ip4Config2PolicyStatic. The corresponding Data is of 
  /// type EFI_IP4_CONFIG2_MANUAL_ADDRESS.
  ///
  Ip4Config2DataTypeManualAddress,
  ///
  /// The gateway addresses set manually for the EFI IPv4 network 
  /// stack running on the communication device this EFI IPv4 
  /// Configuration II Protocol manages. It is not configurable when 
  /// the policy is Ip4Config2PolicyDhcp. The gateway 
  /// addresses must be unicast IPv4 addresses. The corresponding 
  /// Data is a pointer to an array of EFI_IPv4_ADDRESS instances.
  ///
  Ip4Config2DataTypeGateway,
  ///
  /// The DNS server list for the EFI IPv4 network stack running on 
  /// the communication device this EFI IPv4 Configuration II 
  /// Protocol manages. It is not configurable when the policy is 
  /// Ip4Config2PolicyDhcp. The DNS server addresses must be 
  /// unicast IPv4 addresses. The corresponding Data is a pointer to 
  /// an array of EFI_IPv4_ADDRESS instances.
  ///
  Ip4Config2DataTypeDnsServer,
  Ip4Config2DataTypeMaximum
} EFI_IP4_CONFIG2_DATA_TYPE;

///
/// EFI_IP4_CONFIG2_INTERFACE_INFO related definitions
///
#define EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE 32

///
/// EFI_IP4_CONFIG2_INTERFACE_INFO
///
typedef struct {
  ///
  /// The name of the interface. It is a NULL-terminated Unicode string.
  ///
  CHAR16                Name[EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE];
  ///
  /// The interface type of the network interface. See RFC 1700, 
  /// section "Number Hardware Type".
  ///
  UINT8                 IfType;
  ///
  /// The size, in bytes, of the network interface's hardware address.
  ///
  UINT32                HwAddressSize;
  ///
  /// The hardware address for the network interface.
  ///
  EFI_MAC_ADDRESS       HwAddress;
  ///
  /// The station IPv4 address of this EFI IPv4 network stack.
  ///
  EFI_IPv4_ADDRESS      StationAddress;
  ///
{'fraction_non_alphanumeric': 0.08049965301873699, 'fraction_numerical': 0.030534351145038167, 'mean_word_length': 2.9463307776560788, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7231372', 'n_tokens_mistral': 2344, 'n_tokens_neox': 2172, 'n_words': 784}