103072c61abd0fe19f3717b5ab39c6701d697f1e
[people/mcb30/edk2.git] / edk2 / MdeModulePkg / Universal / Network / Ip4ConfigDxe / NicIp4Variable.h
1 /** @file\r
2 \r
3 Copyright (c) 2006, Intel Corporation\r
4 All rights reserved. This program and the accompanying materials\r
5 are licensed and made available under the terms and conditions of the BSD License\r
6 which accompanies this distribution.  The full text of the license may be found at\r
7 http://opensource.org/licenses/bsd-license.php\r
8 \r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11 \r
12 Module Name:\r
13 \r
14   NicIp4Variable.h\r
15 \r
16 Abstract:\r
17 \r
18   Routines used to operate the Ip4 configure variable\r
19 \r
20 \r
21 **/\r
22 \r
23 #ifndef _NIC_IP4_VARIABLE_H_\r
24 #define _NIC_IP4_VARIABLE_H_\r
25 \r
26 \r
27 #include <Protocol/NicIp4Config.h>\r
28 \r
29 //\r
30 // Return the size of NIC_IP4_CONFIG_INFO and EFI_IP4_IPCONFIG_DATA.\r
31 // They are of variable size\r
32 //\r
33 #define SIZEOF_IP4_CONFIG_INFO(Ip4Config) \\r
34   (sizeof (EFI_IP4_IPCONFIG_DATA) + \\r
35    sizeof (EFI_IP4_ROUTE_TABLE) * (MAX (1, (Ip4Config)->RouteTableSize) - 1))\r
36 \r
37 #define SIZEOF_NIC_IP4_CONFIG_INFO(NicConfig) \\r
38   (sizeof (NIC_IP4_CONFIG_INFO) + \\r
39    sizeof (EFI_IP4_ROUTE_TABLE) * (MAX (1, (NicConfig)->Ip4Info.RouteTableSize) - 1))\r
40 \r
41 //\r
42 // Compare whether two NIC address are equal includes their type and length.\r
43 //\r
44 #define NIC_ADDR_EQUAL(Nic1, Nic2) \\r
45   (((Nic1)->Type == (Nic2)->Type) && ((Nic1)->Len == (Nic2)->Len) && \\r
46    NET_MAC_EQUAL (&(Nic1)->MacAddr, &(Nic2)->MacAddr, (Nic1)->Len))\r
47 \r
48 BOOLEAN\r
49 Ip4ConfigIsValid (\r
50   IN NIC_IP4_CONFIG_INFO    *NicConfig\r
51   );\r
52 \r
53 IP4_CONFIG_VARIABLE *\r
54 Ip4ConfigReadVariable (\r
55   VOID\r
56   );\r
57 \r
58 EFI_STATUS\r
59 Ip4ConfigWriteVariable (\r
60   IN IP4_CONFIG_VARIABLE    *Config       OPTIONAL\r
61   );\r
62 \r
63 NIC_IP4_CONFIG_INFO *\r
64 Ip4ConfigFindNicVariable (\r
65   IN IP4_CONFIG_VARIABLE    *Variable,\r
66   IN NIC_ADDR               *NicAddr\r
67   );\r
68 \r
69 IP4_CONFIG_VARIABLE *\r
70 Ip4ConfigModifyVariable (\r
71   IN IP4_CONFIG_VARIABLE    *Variable,    OPTIONAL\r
72   IN NIC_ADDR               *NicAddr,\r
73   IN NIC_IP4_CONFIG_INFO    *Config       OPTIONAL\r
74   );\r
75 #endif\r