diff options
Diffstat (limited to 'MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.h')
-rw-r--r-- | MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.h | 298 |
1 files changed, 149 insertions, 149 deletions
diff --git a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.h b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.h index d81d68fa1e..7a04109f4d 100644 --- a/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.h +++ b/MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Impl.h @@ -1,34 +1,34 @@ -/** @file - -Copyright (c) 2006, Intel Corporation -All rights reserved. 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 -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. - -Module Name: - - Dhcp4Impl.h - -Abstract: - - EFI DHCP protocol implementation - RFCs supported are: - RFC 2131: Dynamic Host Configuration Protocol - RFC 2132: DHCP Options and BOOTP Vendor Extensions - RFC 1534: Interoperation Between DHCP and BOOTP - RFC 3396: Encoding Long Options in DHCP - - -**/ - -#ifndef __EFI_DHCP4_IMPL_H__ -#define __EFI_DHCP4_IMPL_H__ - - +/** @file
+
+Copyright (c) 2006, Intel Corporation
+All rights reserved. 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
+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.
+
+Module Name:
+
+ Dhcp4Impl.h
+
+Abstract:
+
+ EFI DHCP protocol implementation
+ RFCs supported are:
+ RFC 2131: Dynamic Host Configuration Protocol
+ RFC 2132: DHCP Options and BOOTP Vendor Extensions
+ RFC 1534: Interoperation Between DHCP and BOOTP
+ RFC 3396: Encoding Long Options in DHCP
+
+
+**/
+
+#ifndef __EFI_DHCP4_IMPL_H__
+#define __EFI_DHCP4_IMPL_H__
+
+
#include <PiDxe.h>
@@ -39,121 +39,121 @@ Abstract: #include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiLib.h>
-#include <Library/BaseLib.h> -#include <Library/NetLib.h> - -typedef struct _DHCP_SERVICE DHCP_SERVICE; -typedef struct _DHCP_PROTOCOL DHCP_PROTOCOL; - -#include "Dhcp4Option.h" -#include "Dhcp4Io.h" - -enum { - DHCP_SERVICE_SIGNATURE = EFI_SIGNATURE_32 ('D', 'H', 'C', 'P'), - DHCP_PROTOCOL_SIGNATURE = EFI_SIGNATURE_32 ('d', 'h', 'c', 'p'), - - // - // The state of the DHCP service. It starts as UNCONFIGED. If - // and active child configures the service successfully, it - // goes to CONFIGED. If the active child configures NULL, it - // goes back to UNCONFIGED. It becomes DESTORY if it is (partly) - // destoried. - // - DHCP_UNCONFIGED = 0, - DHCP_CONFIGED, - DHCP_DESTORY -}; - -struct _DHCP_PROTOCOL { - UINT32 Signature; - EFI_DHCP4_PROTOCOL Dhcp4Protocol; - NET_LIST_ENTRY Link; - EFI_HANDLE Handle; - DHCP_SERVICE *Service; - - BOOLEAN InDestory; - - EFI_EVENT CompletionEvent; - EFI_EVENT RenewRebindEvent; - - EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN *Token; -}; - -// -// DHCP driver is specical in that it is a singleton. Although it -// has a service binding, there can be only one active child. -// -struct _DHCP_SERVICE { - UINT32 Signature; - EFI_SERVICE_BINDING_PROTOCOL ServiceBinding; - - INTN ServiceState; // CONFIGED, UNCONFIGED, and DESTORY - BOOLEAN InDestory; - - EFI_HANDLE Controller; - EFI_HANDLE Image; - - NET_LIST_ENTRY Children; - UINTN NumChildren; - - INTN DhcpState; - EFI_STATUS IoStatus; // the result of last user operation - UINT32 Xid; - - IP4_ADDR ClientAddr; // lease IP or configured client address - IP4_ADDR Netmask; - IP4_ADDR ServerAddr; - - EFI_DHCP4_PACKET *LastOffer; // The last received offer - EFI_DHCP4_PACKET *Selected; - DHCP_PARAMETER *Para; - - UINT32 Lease; - UINT32 T1; - UINT32 T2; - INTN ExtraRefresh; // This refresh is reqested by user - - UDP_IO_PORT *UdpIo; // Udp child receiving all DHCP message - UDP_IO_PORT *LeaseIoPort; // Udp child with lease IP - NET_BUF *LastPacket; // The last sent packet for retransmission - EFI_MAC_ADDRESS Mac; - UINT8 HwType; - UINT8 HwLen; - - DHCP_PROTOCOL *ActiveChild; - EFI_DHCP4_CONFIG_DATA ActiveConfig; - UINT32 UserOptionLen; - - // - // Timer event and various timer - // - EFI_EVENT Timer; - - UINT32 PacketToLive; // Retransmission timer for our packets - INTN CurRetry; - INTN MaxRetries; - - UINT32 WaitOffer; // Time to collect the offers - UINT32 LeaseLife; -}; - -typedef struct { - EFI_DHCP4_PACKET_OPTION **Option; - UINT32 OptionCount; - UINT32 Index; -} DHCP_PARSE_CONTEXT; - -#define DHCP_INSTANCE_FROM_THIS(Proto) \ - CR ((Proto), DHCP_PROTOCOL, Dhcp4Protocol, DHCP_PROTOCOL_SIGNATURE) - -#define DHCP_SERVICE_FROM_THIS(Sb) \ - CR ((Sb), DHCP_SERVICE, ServiceBinding, DHCP_SERVICE_SIGNATURE) - -extern EFI_DHCP4_PROTOCOL mDhcp4ProtocolTemplate; - -VOID -DhcpYieldControl ( - IN DHCP_SERVICE *DhcpSb - ); - -#endif +#include <Library/BaseLib.h>
+#include <Library/NetLib.h>
+
+typedef struct _DHCP_SERVICE DHCP_SERVICE;
+typedef struct _DHCP_PROTOCOL DHCP_PROTOCOL;
+
+#include "Dhcp4Option.h"
+#include "Dhcp4Io.h"
+
+enum {
+ DHCP_SERVICE_SIGNATURE = EFI_SIGNATURE_32 ('D', 'H', 'C', 'P'),
+ DHCP_PROTOCOL_SIGNATURE = EFI_SIGNATURE_32 ('d', 'h', 'c', 'p'),
+
+ //
+ // The state of the DHCP service. It starts as UNCONFIGED. If
+ // and active child configures the service successfully, it
+ // goes to CONFIGED. If the active child configures NULL, it
+ // goes back to UNCONFIGED. It becomes DESTORY if it is (partly)
+ // destoried.
+ //
+ DHCP_UNCONFIGED = 0,
+ DHCP_CONFIGED,
+ DHCP_DESTORY
+};
+
+struct _DHCP_PROTOCOL {
+ UINT32 Signature;
+ EFI_DHCP4_PROTOCOL Dhcp4Protocol;
+ NET_LIST_ENTRY Link;
+ EFI_HANDLE Handle;
+ DHCP_SERVICE *Service;
+
+ BOOLEAN InDestory;
+
+ EFI_EVENT CompletionEvent;
+ EFI_EVENT RenewRebindEvent;
+
+ EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN *Token;
+};
+
+//
+// DHCP driver is specical in that it is a singleton. Although it
+// has a service binding, there can be only one active child.
+//
+struct _DHCP_SERVICE {
+ UINT32 Signature;
+ EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
+
+ INTN ServiceState; // CONFIGED, UNCONFIGED, and DESTORY
+ BOOLEAN InDestory;
+
+ EFI_HANDLE Controller;
+ EFI_HANDLE Image;
+
+ NET_LIST_ENTRY Children;
+ UINTN NumChildren;
+
+ INTN DhcpState;
+ EFI_STATUS IoStatus; // the result of last user operation
+ UINT32 Xid;
+
+ IP4_ADDR ClientAddr; // lease IP or configured client address
+ IP4_ADDR Netmask;
+ IP4_ADDR ServerAddr;
+
+ EFI_DHCP4_PACKET *LastOffer; // The last received offer
+ EFI_DHCP4_PACKET *Selected;
+ DHCP_PARAMETER *Para;
+
+ UINT32 Lease;
+ UINT32 T1;
+ UINT32 T2;
+ INTN ExtraRefresh; // This refresh is reqested by user
+
+ UDP_IO_PORT *UdpIo; // Udp child receiving all DHCP message
+ UDP_IO_PORT *LeaseIoPort; // Udp child with lease IP
+ NET_BUF *LastPacket; // The last sent packet for retransmission
+ EFI_MAC_ADDRESS Mac;
+ UINT8 HwType;
+ UINT8 HwLen;
+
+ DHCP_PROTOCOL *ActiveChild;
+ EFI_DHCP4_CONFIG_DATA ActiveConfig;
+ UINT32 UserOptionLen;
+
+ //
+ // Timer event and various timer
+ //
+ EFI_EVENT Timer;
+
+ UINT32 PacketToLive; // Retransmission timer for our packets
+ INTN CurRetry;
+ INTN MaxRetries;
+
+ UINT32 WaitOffer; // Time to collect the offers
+ UINT32 LeaseLife;
+};
+
+typedef struct {
+ EFI_DHCP4_PACKET_OPTION **Option;
+ UINT32 OptionCount;
+ UINT32 Index;
+} DHCP_PARSE_CONTEXT;
+
+#define DHCP_INSTANCE_FROM_THIS(Proto) \
+ CR ((Proto), DHCP_PROTOCOL, Dhcp4Protocol, DHCP_PROTOCOL_SIGNATURE)
+
+#define DHCP_SERVICE_FROM_THIS(Sb) \
+ CR ((Sb), DHCP_SERVICE, ServiceBinding, DHCP_SERVICE_SIGNATURE)
+
+extern EFI_DHCP4_PROTOCOL mDhcp4ProtocolTemplate;
+
+VOID
+DhcpYieldControl (
+ IN DHCP_SERVICE *DhcpSb
+ );
+
+#endif
|