|
typedef | VOID (EFIAPI *UDP_IO_CALLBACK)(IN NET_BUF *Packet |
|
typedef | EFI_STATUS (EFIAPI *UDP_IO_CONFIG)(IN UDP_IO *UdpIo |
|
typedef | BOOLEAN (EFIAPI *UDP_IO_TO_CANCEL)(IN UDP_TX_TOKEN *Token |
|
VOID EFIAPI | UdpIoCancelDgrams (IN UDP_IO *UdpIo, IN EFI_STATUS IoStatus, IN UDP_IO_TO_CANCEL ToCancel, IN VOID *Context) |
|
UDP_IO *EFIAPI | UdpIoCreateIo (IN EFI_HANDLE Controller, IN EFI_HANDLE ImageHandle, IN UDP_IO_CONFIG Configure, IN UINT8 UdpVersion, IN VOID *Context) |
|
EFI_STATUS EFIAPI | UdpIoFreeIo (IN UDP_IO *UdpIo) |
|
VOID EFIAPI | UdpIoCleanIo (IN UDP_IO *UdpIo) |
|
EFI_STATUS EFIAPI | UdpIoSendDatagram (IN UDP_IO *UdpIo, IN NET_BUF *Packet, IN UDP_END_POINT *EndPoint, IN EFI_IP_ADDRESS *Gateway, IN UDP_IO_CALLBACK CallBack, IN VOID *Context) |
|
VOID EFIAPI | UdpIoCancelSentDatagram (IN UDP_IO *UdpIo, IN NET_BUF *Packet) |
|
EFI_STATUS EFIAPI | UdpIoRecvDatagram (IN UDP_IO *UdpIo, IN UDP_IO_CALLBACK CallBack, IN VOID *Context, IN UINT32 HeadLen) |
|
This library is used to share code between UEFI network stack modules. It provides the helper routines to access UDP service. It is used by both DHCP and MTFTP.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
UDP_IO* EFIAPI UdpIoCreateIo |
( |
IN EFI_HANDLE |
Controller, |
|
|
IN EFI_HANDLE |
ImageHandle, |
|
|
IN UDP_IO_CONFIG |
Configure, |
|
|
IN UINT8 |
UdpVersion, |
|
|
IN VOID * |
Context |
|
) |
| |
Creates a UDP_IO to access the UDP service. It creates and configures a UDP child.
If Configure is NULL, then ASSERT(). If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().
It locates the UDP service binding prototype on the Controller parameter uses the UDP service binding prototype to create a UDP child (also known as a UDP instance) configures the UDP child by calling Configure function prototype. Any failures in creating or configuring the UDP child return NULL for failure.
- Parameters
-
[in] | Controller | The controller that has the UDP service binding. protocol installed. |
[in] | ImageHandle | The image handle for the driver. |
[in] | Configure | The function to configure the created UDP child. |
[in] | UdpVersion | The UDP protocol version, UDP4 or UDP6. |
[in] | Context | The opaque parameter for the Configure function. |
- Returns
- The newly-created UDP_IO, or NULL if failed.
EFI_STATUS EFIAPI UdpIoRecvDatagram |
( |
IN UDP_IO * |
UdpIo, |
|
|
IN UDP_IO_CALLBACK |
CallBack, |
|
|
IN VOID * |
Context, |
|
|
IN UINT32 |
HeadLen |
|
) |
| |
Issue a receive request to the UDP_IO.
If Udp version is not UDP_IO_UDP4_VERSION or UDP_IO_UDP6_VERSION, then ASSERT().
This function is called when upper-layer needs packet from UDP for processing. Only one receive request is acceptable at a time. Therefore, one common usage model is to invoke this function inside its Callback function when the former packet is processed.
- Parameters
-
[in] | UdpIo | The UDP_IO to receive the packet from. |
[in] | CallBack | The call back function to execute when the packet is received. |
[in] | Context | The opaque context passed to Callback. |
[in] | HeadLen | The length of the upper-layer's protocol header. |
- Return values
-
EFI_ALREADY_STARTED | There is already a pending receive request. Only one receive request is supported at a time. |
EFI_OUT_OF_RESOURCES | Failed to allocate needed resources. |
EFI_SUCCESS | The receive request was issued successfully. |
EFI_UNSUPPORTED | The UDP version in UDP_IO is not supported. |
typedef VOID |
( |
EFIAPI * |
PKT_SENT_NOTIFY | ) |
|
Prototype called when receiving or sending packets to or from a UDP point.
This prototype is used by both receive and sending when calling UdpIoRecvDatagram() or UdpIoSendDatagram(). When receiving, Netbuf is allocated by the UDP access point and released by the user. When sending, the user allocates the NetBuf, which is then provided to the callback as a reference.
- Parameters
-
[in] | Packet | The packet received or sent. |
[in] | EndPoint | The UDP address pair corresponds to the UDP IO. |
[in] | IoStatus | The packet receiving or sending status. |
[in] | Context | The user-defined data when calling UdpIoRecvDatagram() or UdpIoSendDatagram(). |
The prototype is called back when an IP packet is sent.
- Parameters
-
[in] | Status | Result of the IP packet being sent. |
[in] | Context | The data provided by user for the received packet when the callback is registered in IP_IO_OPEN_DATA::SndContext. |
[in] | Sender | A Union type to specify a pointer of EFI_IP4_PROTOCOL or EFI_IP6_PROTOCOL. |
[in] | NotifyData | The Context data specified when calling IpIoSend() |