1/*++
2
3Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
4This program and the accompanying materials
5are licensed and made available under the terms and conditions of the BSD License
6which accompanies this distribution.  The full text of the license may be found at
7http://opensource.org/licenses/bsd-license.php
8
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12Module Name:
13
14  Ip4Config.h
15
16Abstract:
17
18--*/
19
20#ifndef _IP4CONFIG_H_
21#define _IP4CONFIG_H_
22
23#include EFI_PROTOCOL_DEFINITION (Ip4)
24
25#define EFI_IP4_CONFIG_PROTOCOL_GUID \
26  { 0x3b95aa31, 0x3793, 0x434b, {0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e} }
27
28EFI_FORWARD_DECLARATION (EFI_IP4_CONFIG_PROTOCOL);
29
30#define IP4_CONFIG_VARIABLE_ATTRIBUTES (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)
31
32typedef struct {
33  EFI_IPv4_ADDRESS       StationAddress;
34  EFI_IPv4_ADDRESS       SubnetMask;
35  UINT32                 RouteTableSize;
36  EFI_IP4_ROUTE_TABLE    *RouteTable;
37} EFI_IP4_IPCONFIG_DATA;
38
39
40typedef
41EFI_STATUS
42(EFIAPI *EFI_IP4_CONFIG_START) (
43  IN EFI_IP4_CONFIG_PROTOCOL   *This,
44  IN EFI_EVENT                 DoneEvent,
45  IN EFI_EVENT                 ReconfigEvent
46  );
47
48typedef
49EFI_STATUS
50(EFIAPI *EFI_IP4_CONFIG_STOP) (
51  IN EFI_IP4_CONFIG_PROTOCOL  *This
52  );
53
54typedef
55EFI_STATUS
56(EFIAPI *EFI_IP4_CONFIG_GET_DATA) (
57  IN EFI_IP4_CONFIG_PROTOCOL *This,
58  IN OUT UINTN               *ConfigDataSize,
59  OUT EFI_IP4_IPCONFIG_DATA  *ConfigData    OPTIONAL
60  );
61
62
63struct _EFI_IP4_CONFIG_PROTOCOL {
64  EFI_IP4_CONFIG_START     Start;
65  EFI_IP4_CONFIG_STOP      Stop;
66  EFI_IP4_CONFIG_GET_DATA  GetData;
67};
68
69
70extern EFI_GUID gEfiIp4ConfigProtocolGuid;
71
72#endif
73