]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcSupport.h
MdeModulePkg: Update PXE driver to follow edk2 coding standards.
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcSupport.h
1 /** @file
2 Support routines for PxeBc.
3 Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 **/
13
14 #ifndef __EFI_PXEBC_SUPPORT_H__
15 #define __EFI_PXEBC_SUPPORT_H__
16
17
18 /**
19 The common notify function associated with various PxeBc events.
20
21 @param Event The event signaled.
22 @param Context The context.
23
24 **/
25 VOID
26 EFIAPI
27 PxeBcCommonNotify (
28 IN EFI_EVENT Event,
29 IN VOID *Context
30 );
31
32
33 /**
34 This function initialize(or configure) the Udp4Write instance.
35
36 @param Udp4 Pointer to the EFI_UDP4_PROTOCOL instance.
37 @param StationIp Pointer to the station ip address.
38 @param SubnetMask Pointer to the subnetmask of the station ip address.
39 @param Gateway Pointer to the gateway ip address.
40 @param SrcPort Pointer to the srouce port of the station.
41 @param Ttl The time to live field of the IP header.
42 @param ToS The type of service field of the IP header.
43
44 @retval EFI_SUCCESS The configuration settings were set, changed, or reset successfully.
45 @retval EFI_NO_MAPPING When using a default address, configuration (DHCP, BOOTP,
46 RARP, etc.) is not finished yet.
47 @retval EFI_INVALID_PARAMETER One or more following conditions are TRUE:
48 @retval EFI_ALREADY_STARTED The EFI UDPv4 Protocol instance is already started/configured
49 and must be stopped/reset before it can be reconfigured.
50 @retval EFI_ACCESS_DENIED UdpConfigData. AllowDuplicatePort is FALSE
51 and UdpConfigData.StationPort is already used by
52 other instance.
53 @retval EFI_OUT_OF_RESOURCES The EFI UDPv4 Protocol driver cannot allocate memory for this
54 EFI UDPv4 Protocol instance.
55 @retval EFI_DEVICE_ERROR An unexpected network or system error occurred and this instance
56 was not opened.
57 @retval Others Please examine the function Udp4->Routes(Udp4, FALSE, &mZeroIp4Addr, &mZeroIp4Addr, Gateway) returns.
58
59 **/
60 EFI_STATUS
61 PxeBcConfigureUdpWriteInstance (
62 IN EFI_UDP4_PROTOCOL *Udp4,
63 IN EFI_IPv4_ADDRESS *StationIp,
64 IN EFI_IPv4_ADDRESS *SubnetMask,
65 IN EFI_IPv4_ADDRESS *Gateway,
66 IN OUT UINT16 *SrcPort,
67 IN UINT8 Ttl,
68 IN UINT8 ToS
69 );
70 /**
71 Convert number to ASCII value.
72
73 @param Number Numeric value to convert to decimal ASCII value.
74 @param Buffer Buffer to place ASCII version of the Number.
75 @param Length Length of Buffer.
76
77 **/
78 VOID
79 CvtNum (
80 IN UINTN Number,
81 IN UINT8 *Buffer,
82 IN UINTN Length
83 );
84
85
86 /**
87 Convert unsigned int number to decimal number.
88
89 @param Number The unsigned int number will be converted.
90 @param Buffer Pointer to the buffer to store the decimal number after transform.
91 @param[in] BufferSize The maxsize of the buffer.
92
93 @return the length of the number after transform.
94
95 **/
96 UINTN
97 UtoA10 (
98 IN UINTN Number,
99 IN CHAR8 *Buffer,
100 IN UINTN BufferSize
101
102 );
103
104
105 /**
106 Convert ASCII numeric string to a UINTN value.
107
108 @param Buffer Pointer to the 8-byte unsigned int value.
109
110 @return UINTN value of the ASCII string.
111
112 **/
113 UINT64
114 AtoU64 (
115 IN UINT8 *Buffer
116 );
117
118
119 #endif
120