mirror of https://github.com/acidanthera/audk.git
Update to use DOS format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6321 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
e82e1acc55
commit
97b38d4e35
|
@ -1,374 +1,374 @@
|
|||
/** @file
|
||||
This library provides IpIo layer upon EFI IP4 Protocol.
|
||||
|
||||
Copyright (c) 2005 - 2008, 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _IP_IO_H_
|
||||
#define _IP_IO_H_
|
||||
|
||||
#include <Protocol/Ip4.h>
|
||||
#include <Library/IpIoLib.h>
|
||||
#include <Library/NetLib.h>
|
||||
|
||||
//
|
||||
// type and code define for ICMP protocol error got
|
||||
// from IP
|
||||
//
|
||||
#define ICMP_TYPE_UNREACH 3
|
||||
#define ICMP_TYPE_TIMXCEED 11
|
||||
#define ICMP_TYPE_PARAMPROB 12
|
||||
#define ICMP_TYPE_SOURCEQUENCH 4
|
||||
|
||||
#define ICMP_CODE_UNREACH_NET 0
|
||||
#define ICMP_CODE_UNREACH_HOST 1
|
||||
#define ICMP_CODE_UNREACH_PROTOCOL 2
|
||||
#define ICMP_CODE_UNREACH_PORT 3
|
||||
#define ICMP_CODE_UNREACH_NEEDFRAG 4
|
||||
#define ICMP_CODE_UNREACH_SRCFAIL 5
|
||||
#define ICMP_CODE_UNREACH_NET_UNKNOWN 6
|
||||
#define ICMP_CODE_UNREACH_HOST_UNKNOWN 7
|
||||
#define ICMP_CODE_UNREACH_ISOLATED 8
|
||||
#define ICMP_CODE_UNREACH_NET_PROHIB 9
|
||||
#define ICMP_CODE_UNREACH_HOST_PROHIB 10
|
||||
#define ICMP_CODE_UNREACH_TOSNET 11
|
||||
#define ICMP_CODE_UNREACH_TOSHOST 12
|
||||
|
||||
//
|
||||
// this error will be delivered to the
|
||||
// listening transportation layer protocol
|
||||
// consuming IpIO
|
||||
//
|
||||
typedef enum {
|
||||
ICMP_ERR_UNREACH_NET = 0,
|
||||
ICMP_ERR_UNREACH_HOST,
|
||||
ICMP_ERR_UNREACH_PROTOCOL,
|
||||
ICMP_ERR_UNREACH_PORT,
|
||||
ICMP_ERR_MSGSIZE,
|
||||
ICMP_ERR_UNREACH_SRCFAIL,
|
||||
ICMP_ERR_TIMXCEED_INTRANS,
|
||||
ICMP_ERR_TIMXCEED_REASS,
|
||||
ICMP_ERR_QUENCH,
|
||||
ICMP_ERR_PARAMPROB
|
||||
} ICMP_ERROR;
|
||||
|
||||
typedef struct _ICMP_ERROR_INFO {
|
||||
BOOLEAN IsHard;
|
||||
BOOLEAN Notify;
|
||||
} ICMP_ERROR_INFO;
|
||||
|
||||
#define EFI_IP4_HEADER_LEN(HdrPtr) ((HdrPtr)->HeaderLength << 2)
|
||||
|
||||
extern EFI_IP4_CONFIG_DATA mIpIoDefaultIpConfigData;
|
||||
|
||||
typedef struct _EFI_NET_SESSION_DATA {
|
||||
IP4_ADDR Source;
|
||||
IP4_ADDR Dest;
|
||||
EFI_IP4_HEADER *IpHdr;
|
||||
} EFI_NET_SESSION_DATA;
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*PKT_RCVD_NOTIFY) (
|
||||
IN EFI_STATUS Status, // rcvd pkt result
|
||||
IN ICMP_ERROR IcmpErr, // if Status == EFI_ICMP_ERROR, this
|
||||
// field is valid for user
|
||||
IN EFI_NET_SESSION_DATA *NetSession, // the communication point
|
||||
IN NET_BUF *Pkt, // packet received
|
||||
IN VOID *Context // the Context provided by user for recive data
|
||||
);
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*PKT_SENT_NOTIFY) (
|
||||
IN EFI_STATUS Status, // sent pkt result
|
||||
IN VOID *Context, // the context provided by user for sending data
|
||||
IN VOID *Sender, // the sender to be notified
|
||||
IN VOID *NotifyData // sent pkt related data to notify
|
||||
);
|
||||
|
||||
typedef struct _IP_IO {
|
||||
|
||||
//
|
||||
// the node used to link this IpIo to the active IpIo list.
|
||||
//
|
||||
LIST_ENTRY Entry;
|
||||
|
||||
// the list used to maintain the IP instance for different sending purpose.
|
||||
//
|
||||
LIST_ENTRY IpList;
|
||||
|
||||
//
|
||||
// the ip instance consumed by this IP IO
|
||||
//
|
||||
EFI_HANDLE Controller;
|
||||
EFI_HANDLE Image;
|
||||
EFI_HANDLE ChildHandle;
|
||||
EFI_IP4_PROTOCOL *Ip;
|
||||
BOOLEAN IsConfigured;
|
||||
|
||||
//
|
||||
// some ip config data can be changed
|
||||
//
|
||||
UINT8 Protocol;
|
||||
|
||||
//
|
||||
// token and event used to get data from IP
|
||||
//
|
||||
EFI_IP4_COMPLETION_TOKEN RcvToken;
|
||||
|
||||
//
|
||||
// list entry used to link the token passed to IP_IO
|
||||
//
|
||||
LIST_ENTRY PendingSndList;
|
||||
|
||||
//
|
||||
// User interface used to get notify from IP_IO
|
||||
//
|
||||
VOID *RcvdContext;
|
||||
VOID *SndContext;
|
||||
PKT_RCVD_NOTIFY PktRcvdNotify;
|
||||
PKT_SENT_NOTIFY PktSentNotify;
|
||||
} IP_IO;
|
||||
|
||||
typedef struct _IP_IO_OPEN_DATA {
|
||||
EFI_IP4_CONFIG_DATA IpConfigData;
|
||||
VOID *RcvdContext;
|
||||
VOID *SndContext;
|
||||
PKT_RCVD_NOTIFY PktRcvdNotify;
|
||||
PKT_SENT_NOTIFY PktSentNotify;
|
||||
} IP_IO_OPEN_DATA;
|
||||
|
||||
typedef struct _IP_IO_SEND_ENTRY {
|
||||
LIST_ENTRY Entry;
|
||||
IP_IO *IpIo;
|
||||
VOID *Context;
|
||||
VOID *NotifyData;
|
||||
EFI_IP4_PROTOCOL *Ip;
|
||||
NET_BUF *Pkt;
|
||||
EFI_IP4_COMPLETION_TOKEN *SndToken;
|
||||
} IP_IO_SEND_ENTRY;
|
||||
|
||||
typedef EFI_IP4_OVERRIDE_DATA IP_IO_OVERRIDE;
|
||||
|
||||
typedef struct _IP_IO_IP_INFO {
|
||||
IP4_ADDR Addr;
|
||||
IP4_ADDR SubnetMask;
|
||||
LIST_ENTRY Entry;
|
||||
EFI_HANDLE ChildHandle;
|
||||
EFI_IP4_PROTOCOL *Ip;
|
||||
EFI_IP4_COMPLETION_TOKEN DummyRcvToken;
|
||||
INTN RefCnt;
|
||||
} IP_IO_IP_INFO;
|
||||
|
||||
/**
|
||||
Create a new IP_IO instance.
|
||||
|
||||
@param Image The image handle of an IP_IO consumer protocol.
|
||||
@param Controller The controller handle of an IP_IO consumer protocol
|
||||
installed on.
|
||||
|
||||
@return Pointer to a newly created IP_IO instance.
|
||||
|
||||
**/
|
||||
IP_IO *
|
||||
EFIAPI
|
||||
IpIoCreate (
|
||||
IN EFI_HANDLE Image,
|
||||
IN EFI_HANDLE Controller
|
||||
);
|
||||
|
||||
/**
|
||||
Destroy an IP_IO instance.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance that needs to
|
||||
destroy.
|
||||
|
||||
@retval EFI_SUCCESS The IP_IO instance destroyed successfully.
|
||||
@retval other Error condition occurred.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoDestroy (
|
||||
IN IP_IO *IpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Stop an IP_IO instance.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance that needs to stop.
|
||||
|
||||
@retval EFI_SUCCESS The IP_IO instance stopped successfully.
|
||||
@retval other Error condition occurred.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoStop (
|
||||
IN IP_IO *IpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Open an IP_IO instance for use.
|
||||
|
||||
@param IpIo Pointer to an IP_IO instance that needs to open.
|
||||
@param OpenData The configuration data for the IP_IO instance.
|
||||
|
||||
@retval EFI_SUCCESS The IP_IO instance opened with OpenData
|
||||
successfully.
|
||||
@retval other Error condition occurred.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
IpIoOpen (
|
||||
IN IP_IO *IpIo,
|
||||
IN IP_IO_OPEN_DATA *OpenData
|
||||
);
|
||||
|
||||
/**
|
||||
Send out an IP packet.
|
||||
|
||||
@param IpIo Pointer to an IP_IO instance used for sending IP
|
||||
packet.
|
||||
@param Pkt Pointer to the IP packet to be sent.
|
||||
@param Sender The IP protocol instance used for sending.
|
||||
@param Context
|
||||
@param NotifyData
|
||||
@param Dest The destination IP address to send this packet to.
|
||||
@param OverrideData The data to override some configuration of the IP
|
||||
instance used for sending.
|
||||
|
||||
@retval EFI_SUCCESS The operation is completed successfully.
|
||||
@retval EFI_NOT_STARTED The IpIo is not configured.
|
||||
@retval EFI_OUT_OF_RESOURCES Failed due to resource limit.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoSend (
|
||||
IN IP_IO *IpIo,
|
||||
IN NET_BUF *Pkt,
|
||||
IN IP_IO_IP_INFO *Sender,
|
||||
IN VOID *Context OPTIONAL,
|
||||
IN VOID *NotifyData OPTIONAL,
|
||||
IN IP4_ADDR Dest,
|
||||
IN IP_IO_OVERRIDE *OverrideData
|
||||
);
|
||||
|
||||
/**
|
||||
Cancel the IP transmit token which wraps this Packet.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance.
|
||||
@param Packet Pointer to the packet to cancel.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
IpIoCancelTxToken (
|
||||
IN IP_IO *IpIo,
|
||||
IN VOID *Packet
|
||||
);
|
||||
|
||||
/**
|
||||
Add a new IP instance for sending data.
|
||||
|
||||
@param IpIo Pointer to a IP_IO instance to add a new IP
|
||||
instance for sending purpose.
|
||||
|
||||
@return Pointer to the created IP_IO_IP_INFO structure, NULL is failed.
|
||||
|
||||
**/
|
||||
IP_IO_IP_INFO *
|
||||
EFIAPI
|
||||
IpIoAddIp (
|
||||
IN IP_IO *IpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Configure the IP instance of this IpInfo and start the receiving if Ip4ConfigData
|
||||
is not NULL.
|
||||
|
||||
@param IpInfo Pointer to the IP_IO_IP_INFO instance.
|
||||
@param Ip4ConfigData The IP4 configure data used to configure the ip
|
||||
instance, if NULL the ip instance is reseted. If
|
||||
UseDefaultAddress is set to TRUE, and the configure
|
||||
operation succeeds, the default address information
|
||||
is written back in this Ip4ConfigData.
|
||||
|
||||
@retval EFI_STATUS The status returned by IP4->Configure or
|
||||
IP4->Receive.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoConfigIp (
|
||||
IN IP_IO_IP_INFO *IpInfo,
|
||||
IN OUT EFI_IP4_CONFIG_DATA *Ip4ConfigData OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Destroy an IP instance maintained in IpIo->IpList for
|
||||
sending purpose.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance.
|
||||
@param IpInfo Pointer to the IpInfo to be removed.
|
||||
|
||||
@return None.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
IpIoRemoveIp (
|
||||
IN IP_IO *IpIo,
|
||||
IN IP_IO_IP_INFO *IpInfo
|
||||
);
|
||||
|
||||
/**
|
||||
Find the first IP protocol maintained in IpIo whose local
|
||||
address is the same with Src.
|
||||
|
||||
@param IpIo Pointer to the pointer of the IP_IO instance.
|
||||
@param Src The local IP address.
|
||||
|
||||
@return Pointer to the IP protocol can be used for sending purpose and its local
|
||||
@return address is the same with Src.
|
||||
|
||||
**/
|
||||
IP_IO_IP_INFO *
|
||||
EFIAPI
|
||||
IpIoFindSender (
|
||||
IN OUT IP_IO **IpIo,
|
||||
IN IP4_ADDR Src
|
||||
);
|
||||
|
||||
/**
|
||||
Get the ICMP error map information, the ErrorStatus will be returned.
|
||||
The IsHard and Notify are optional. If they are not NULL, this rouine will
|
||||
fill them.
|
||||
We move IcmpErrMap[] to local variable to enable EBC build.
|
||||
|
||||
@param IcmpError IcmpError Type
|
||||
@param IsHard Whether it is a hard error
|
||||
@param Notify Whether it need to notify SockError
|
||||
|
||||
@return ICMP Error Status
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoGetIcmpErrStatus (
|
||||
IN ICMP_ERROR IcmpError,
|
||||
OUT BOOLEAN *IsHard, OPTIONAL
|
||||
OUT BOOLEAN *Notify OPTIONAL
|
||||
);
|
||||
|
||||
#endif
|
||||
/** @file
|
||||
This library provides IpIo layer upon EFI IP4 Protocol.
|
||||
|
||||
Copyright (c) 2005 - 2008, 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _IP_IO_H_
|
||||
#define _IP_IO_H_
|
||||
|
||||
#include <Protocol/Ip4.h>
|
||||
#include <Library/IpIoLib.h>
|
||||
#include <Library/NetLib.h>
|
||||
|
||||
//
|
||||
// type and code define for ICMP protocol error got
|
||||
// from IP
|
||||
//
|
||||
#define ICMP_TYPE_UNREACH 3
|
||||
#define ICMP_TYPE_TIMXCEED 11
|
||||
#define ICMP_TYPE_PARAMPROB 12
|
||||
#define ICMP_TYPE_SOURCEQUENCH 4
|
||||
|
||||
#define ICMP_CODE_UNREACH_NET 0
|
||||
#define ICMP_CODE_UNREACH_HOST 1
|
||||
#define ICMP_CODE_UNREACH_PROTOCOL 2
|
||||
#define ICMP_CODE_UNREACH_PORT 3
|
||||
#define ICMP_CODE_UNREACH_NEEDFRAG 4
|
||||
#define ICMP_CODE_UNREACH_SRCFAIL 5
|
||||
#define ICMP_CODE_UNREACH_NET_UNKNOWN 6
|
||||
#define ICMP_CODE_UNREACH_HOST_UNKNOWN 7
|
||||
#define ICMP_CODE_UNREACH_ISOLATED 8
|
||||
#define ICMP_CODE_UNREACH_NET_PROHIB 9
|
||||
#define ICMP_CODE_UNREACH_HOST_PROHIB 10
|
||||
#define ICMP_CODE_UNREACH_TOSNET 11
|
||||
#define ICMP_CODE_UNREACH_TOSHOST 12
|
||||
|
||||
//
|
||||
// this error will be delivered to the
|
||||
// listening transportation layer protocol
|
||||
// consuming IpIO
|
||||
//
|
||||
typedef enum {
|
||||
ICMP_ERR_UNREACH_NET = 0,
|
||||
ICMP_ERR_UNREACH_HOST,
|
||||
ICMP_ERR_UNREACH_PROTOCOL,
|
||||
ICMP_ERR_UNREACH_PORT,
|
||||
ICMP_ERR_MSGSIZE,
|
||||
ICMP_ERR_UNREACH_SRCFAIL,
|
||||
ICMP_ERR_TIMXCEED_INTRANS,
|
||||
ICMP_ERR_TIMXCEED_REASS,
|
||||
ICMP_ERR_QUENCH,
|
||||
ICMP_ERR_PARAMPROB
|
||||
} ICMP_ERROR;
|
||||
|
||||
typedef struct _ICMP_ERROR_INFO {
|
||||
BOOLEAN IsHard;
|
||||
BOOLEAN Notify;
|
||||
} ICMP_ERROR_INFO;
|
||||
|
||||
#define EFI_IP4_HEADER_LEN(HdrPtr) ((HdrPtr)->HeaderLength << 2)
|
||||
|
||||
extern EFI_IP4_CONFIG_DATA mIpIoDefaultIpConfigData;
|
||||
|
||||
typedef struct _EFI_NET_SESSION_DATA {
|
||||
IP4_ADDR Source;
|
||||
IP4_ADDR Dest;
|
||||
EFI_IP4_HEADER *IpHdr;
|
||||
} EFI_NET_SESSION_DATA;
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*PKT_RCVD_NOTIFY) (
|
||||
IN EFI_STATUS Status, // rcvd pkt result
|
||||
IN ICMP_ERROR IcmpErr, // if Status == EFI_ICMP_ERROR, this
|
||||
// field is valid for user
|
||||
IN EFI_NET_SESSION_DATA *NetSession, // the communication point
|
||||
IN NET_BUF *Pkt, // packet received
|
||||
IN VOID *Context // the Context provided by user for recive data
|
||||
);
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(*PKT_SENT_NOTIFY) (
|
||||
IN EFI_STATUS Status, // sent pkt result
|
||||
IN VOID *Context, // the context provided by user for sending data
|
||||
IN VOID *Sender, // the sender to be notified
|
||||
IN VOID *NotifyData // sent pkt related data to notify
|
||||
);
|
||||
|
||||
typedef struct _IP_IO {
|
||||
|
||||
//
|
||||
// the node used to link this IpIo to the active IpIo list.
|
||||
//
|
||||
LIST_ENTRY Entry;
|
||||
|
||||
// the list used to maintain the IP instance for different sending purpose.
|
||||
//
|
||||
LIST_ENTRY IpList;
|
||||
|
||||
//
|
||||
// the ip instance consumed by this IP IO
|
||||
//
|
||||
EFI_HANDLE Controller;
|
||||
EFI_HANDLE Image;
|
||||
EFI_HANDLE ChildHandle;
|
||||
EFI_IP4_PROTOCOL *Ip;
|
||||
BOOLEAN IsConfigured;
|
||||
|
||||
//
|
||||
// some ip config data can be changed
|
||||
//
|
||||
UINT8 Protocol;
|
||||
|
||||
//
|
||||
// token and event used to get data from IP
|
||||
//
|
||||
EFI_IP4_COMPLETION_TOKEN RcvToken;
|
||||
|
||||
//
|
||||
// list entry used to link the token passed to IP_IO
|
||||
//
|
||||
LIST_ENTRY PendingSndList;
|
||||
|
||||
//
|
||||
// User interface used to get notify from IP_IO
|
||||
//
|
||||
VOID *RcvdContext;
|
||||
VOID *SndContext;
|
||||
PKT_RCVD_NOTIFY PktRcvdNotify;
|
||||
PKT_SENT_NOTIFY PktSentNotify;
|
||||
} IP_IO;
|
||||
|
||||
typedef struct _IP_IO_OPEN_DATA {
|
||||
EFI_IP4_CONFIG_DATA IpConfigData;
|
||||
VOID *RcvdContext;
|
||||
VOID *SndContext;
|
||||
PKT_RCVD_NOTIFY PktRcvdNotify;
|
||||
PKT_SENT_NOTIFY PktSentNotify;
|
||||
} IP_IO_OPEN_DATA;
|
||||
|
||||
typedef struct _IP_IO_SEND_ENTRY {
|
||||
LIST_ENTRY Entry;
|
||||
IP_IO *IpIo;
|
||||
VOID *Context;
|
||||
VOID *NotifyData;
|
||||
EFI_IP4_PROTOCOL *Ip;
|
||||
NET_BUF *Pkt;
|
||||
EFI_IP4_COMPLETION_TOKEN *SndToken;
|
||||
} IP_IO_SEND_ENTRY;
|
||||
|
||||
typedef EFI_IP4_OVERRIDE_DATA IP_IO_OVERRIDE;
|
||||
|
||||
typedef struct _IP_IO_IP_INFO {
|
||||
IP4_ADDR Addr;
|
||||
IP4_ADDR SubnetMask;
|
||||
LIST_ENTRY Entry;
|
||||
EFI_HANDLE ChildHandle;
|
||||
EFI_IP4_PROTOCOL *Ip;
|
||||
EFI_IP4_COMPLETION_TOKEN DummyRcvToken;
|
||||
INTN RefCnt;
|
||||
} IP_IO_IP_INFO;
|
||||
|
||||
/**
|
||||
Create a new IP_IO instance.
|
||||
|
||||
@param Image The image handle of an IP_IO consumer protocol.
|
||||
@param Controller The controller handle of an IP_IO consumer protocol
|
||||
installed on.
|
||||
|
||||
@return Pointer to a newly created IP_IO instance.
|
||||
|
||||
**/
|
||||
IP_IO *
|
||||
EFIAPI
|
||||
IpIoCreate (
|
||||
IN EFI_HANDLE Image,
|
||||
IN EFI_HANDLE Controller
|
||||
);
|
||||
|
||||
/**
|
||||
Destroy an IP_IO instance.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance that needs to
|
||||
destroy.
|
||||
|
||||
@retval EFI_SUCCESS The IP_IO instance destroyed successfully.
|
||||
@retval other Error condition occurred.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoDestroy (
|
||||
IN IP_IO *IpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Stop an IP_IO instance.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance that needs to stop.
|
||||
|
||||
@retval EFI_SUCCESS The IP_IO instance stopped successfully.
|
||||
@retval other Error condition occurred.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoStop (
|
||||
IN IP_IO *IpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Open an IP_IO instance for use.
|
||||
|
||||
@param IpIo Pointer to an IP_IO instance that needs to open.
|
||||
@param OpenData The configuration data for the IP_IO instance.
|
||||
|
||||
@retval EFI_SUCCESS The IP_IO instance opened with OpenData
|
||||
successfully.
|
||||
@retval other Error condition occurred.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
IpIoOpen (
|
||||
IN IP_IO *IpIo,
|
||||
IN IP_IO_OPEN_DATA *OpenData
|
||||
);
|
||||
|
||||
/**
|
||||
Send out an IP packet.
|
||||
|
||||
@param IpIo Pointer to an IP_IO instance used for sending IP
|
||||
packet.
|
||||
@param Pkt Pointer to the IP packet to be sent.
|
||||
@param Sender The IP protocol instance used for sending.
|
||||
@param Context
|
||||
@param NotifyData
|
||||
@param Dest The destination IP address to send this packet to.
|
||||
@param OverrideData The data to override some configuration of the IP
|
||||
instance used for sending.
|
||||
|
||||
@retval EFI_SUCCESS The operation is completed successfully.
|
||||
@retval EFI_NOT_STARTED The IpIo is not configured.
|
||||
@retval EFI_OUT_OF_RESOURCES Failed due to resource limit.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoSend (
|
||||
IN IP_IO *IpIo,
|
||||
IN NET_BUF *Pkt,
|
||||
IN IP_IO_IP_INFO *Sender,
|
||||
IN VOID *Context OPTIONAL,
|
||||
IN VOID *NotifyData OPTIONAL,
|
||||
IN IP4_ADDR Dest,
|
||||
IN IP_IO_OVERRIDE *OverrideData
|
||||
);
|
||||
|
||||
/**
|
||||
Cancel the IP transmit token which wraps this Packet.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance.
|
||||
@param Packet Pointer to the packet to cancel.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
IpIoCancelTxToken (
|
||||
IN IP_IO *IpIo,
|
||||
IN VOID *Packet
|
||||
);
|
||||
|
||||
/**
|
||||
Add a new IP instance for sending data.
|
||||
|
||||
@param IpIo Pointer to a IP_IO instance to add a new IP
|
||||
instance for sending purpose.
|
||||
|
||||
@return Pointer to the created IP_IO_IP_INFO structure, NULL is failed.
|
||||
|
||||
**/
|
||||
IP_IO_IP_INFO *
|
||||
EFIAPI
|
||||
IpIoAddIp (
|
||||
IN IP_IO *IpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Configure the IP instance of this IpInfo and start the receiving if Ip4ConfigData
|
||||
is not NULL.
|
||||
|
||||
@param IpInfo Pointer to the IP_IO_IP_INFO instance.
|
||||
@param Ip4ConfigData The IP4 configure data used to configure the ip
|
||||
instance, if NULL the ip instance is reseted. If
|
||||
UseDefaultAddress is set to TRUE, and the configure
|
||||
operation succeeds, the default address information
|
||||
is written back in this Ip4ConfigData.
|
||||
|
||||
@retval EFI_STATUS The status returned by IP4->Configure or
|
||||
IP4->Receive.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoConfigIp (
|
||||
IN IP_IO_IP_INFO *IpInfo,
|
||||
IN OUT EFI_IP4_CONFIG_DATA *Ip4ConfigData OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
Destroy an IP instance maintained in IpIo->IpList for
|
||||
sending purpose.
|
||||
|
||||
@param IpIo Pointer to the IP_IO instance.
|
||||
@param IpInfo Pointer to the IpInfo to be removed.
|
||||
|
||||
@return None.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
IpIoRemoveIp (
|
||||
IN IP_IO *IpIo,
|
||||
IN IP_IO_IP_INFO *IpInfo
|
||||
);
|
||||
|
||||
/**
|
||||
Find the first IP protocol maintained in IpIo whose local
|
||||
address is the same with Src.
|
||||
|
||||
@param IpIo Pointer to the pointer of the IP_IO instance.
|
||||
@param Src The local IP address.
|
||||
|
||||
@return Pointer to the IP protocol can be used for sending purpose and its local
|
||||
@return address is the same with Src.
|
||||
|
||||
**/
|
||||
IP_IO_IP_INFO *
|
||||
EFIAPI
|
||||
IpIoFindSender (
|
||||
IN OUT IP_IO **IpIo,
|
||||
IN IP4_ADDR Src
|
||||
);
|
||||
|
||||
/**
|
||||
Get the ICMP error map information, the ErrorStatus will be returned.
|
||||
The IsHard and Notify are optional. If they are not NULL, this rouine will
|
||||
fill them.
|
||||
We move IcmpErrMap[] to local variable to enable EBC build.
|
||||
|
||||
@param IcmpError IcmpError Type
|
||||
@param IsHard Whether it is a hard error
|
||||
@param Notify Whether it need to notify SockError
|
||||
|
||||
@return ICMP Error Status
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
IpIoGetIcmpErrStatus (
|
||||
IN ICMP_ERROR IcmpError,
|
||||
OUT BOOLEAN *IsHard, OPTIONAL
|
||||
OUT BOOLEAN *Notify OPTIONAL
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,244 +1,244 @@
|
|||
/** @file
|
||||
The helper routines to access UDP service. It is used by both
|
||||
DHCP and MTFTP.
|
||||
|
||||
Copyright (c) 2006 - 2008, 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _UDP4IO_H_
|
||||
#define _UDP4IO_H_
|
||||
|
||||
#include <Protocol/Udp4.h>
|
||||
|
||||
#include <Library/UdpIoLib.h>
|
||||
#include <Library/NetLib.h>
|
||||
|
||||
typedef struct _UDP_IO_PORT UDP_IO_PORT;
|
||||
|
||||
typedef enum {
|
||||
UDP_IO_RX_SIGNATURE = EFI_SIGNATURE_32 ('U', 'D', 'P', 'R'),
|
||||
UDP_IO_TX_SIGNATURE = EFI_SIGNATURE_32 ('U', 'D', 'P', 'T'),
|
||||
UDP_IO_SIGNATURE = EFI_SIGNATURE_32 ('U', 'D', 'P', 'I')
|
||||
} UDP_IO_SIGNATURE_TYPE;
|
||||
|
||||
typedef struct {
|
||||
IP4_ADDR LocalAddr;
|
||||
UINT16 LocalPort;
|
||||
IP4_ADDR RemoteAddr;
|
||||
UINT16 RemotePort;
|
||||
} UDP_POINTS;
|
||||
|
||||
//
|
||||
// This prototype is used by both receive and transmission.
|
||||
// When receiving Netbuf is allocated by UDP access point, and
|
||||
// released by user. When transmitting, the NetBuf is from user,
|
||||
// and provided to the callback as a reference.
|
||||
//
|
||||
typedef
|
||||
VOID
|
||||
(*UDP_IO_CALLBACK) (
|
||||
IN NET_BUF *Packet,
|
||||
IN UDP_POINTS *Points,
|
||||
IN EFI_STATUS IoStatus,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
//
|
||||
// Each receive request is wrapped in an UDP_RX_TOKEN. Upon completion,
|
||||
// the CallBack will be called. Only one receive request is send to UDP.
|
||||
// HeadLen gives the length of the application's header. UDP_IO will
|
||||
// make the application's header continous before delivery up.
|
||||
//
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UDP_IO_PORT *UdpIo;
|
||||
|
||||
UDP_IO_CALLBACK CallBack;
|
||||
VOID *Context;
|
||||
|
||||
UINT32 HeadLen;
|
||||
EFI_UDP4_COMPLETION_TOKEN UdpToken;
|
||||
} UDP_RX_TOKEN;
|
||||
|
||||
//
|
||||
// Each transmit request is wrapped in an UDP_TX_TOKEN. Upon completion,
|
||||
// the CallBack will be called. There can be several transmit requests.
|
||||
//
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
UDP_IO_PORT *UdpIo;
|
||||
|
||||
UDP_IO_CALLBACK CallBack;
|
||||
NET_BUF *Packet;
|
||||
VOID *Context;
|
||||
|
||||
EFI_UDP4_SESSION_DATA UdpSession;
|
||||
EFI_IPv4_ADDRESS Gateway;
|
||||
|
||||
EFI_UDP4_COMPLETION_TOKEN UdpToken;
|
||||
EFI_UDP4_TRANSMIT_DATA UdpTxData;
|
||||
} UDP_TX_TOKEN;
|
||||
|
||||
struct _UDP_IO_PORT {
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
INTN RefCnt;
|
||||
|
||||
//
|
||||
// Handle used to create/destory UDP child
|
||||
//
|
||||
EFI_HANDLE Controller;
|
||||
EFI_HANDLE Image;
|
||||
EFI_HANDLE UdpHandle;
|
||||
|
||||
EFI_UDP4_PROTOCOL *Udp;
|
||||
EFI_UDP4_CONFIG_DATA UdpConfig;
|
||||
EFI_SIMPLE_NETWORK_MODE SnpMode;
|
||||
|
||||
LIST_ENTRY SentDatagram;
|
||||
UDP_RX_TOKEN *RecvRequest;
|
||||
};
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UDP_IO_CONFIG) (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
typedef
|
||||
BOOLEAN
|
||||
(*UDP_IO_TO_CANCEL) (
|
||||
IN UDP_TX_TOKEN *Token,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Create a UDP IO port to access the UDP service. It will
|
||||
create and configure a UDP child.
|
||||
|
||||
@param Controller The controller that has the UDP service binding
|
||||
protocol installed.
|
||||
@param ImageHandle The image handle for the driver.
|
||||
@param Configure The function to configure the created UDP child
|
||||
@param Context The opaque parameter for the Configure funtion.
|
||||
|
||||
@return A point to just created UDP IO port or NULL if failed.
|
||||
|
||||
**/
|
||||
UDP_IO_PORT *
|
||||
EFIAPI
|
||||
UdpIoCreatePort (
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN UDP_IO_CONFIG Configure,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Free the UDP IO port and all its related resources including
|
||||
all the transmitted packet.
|
||||
|
||||
@param UdpIo The UDP IO port to free.
|
||||
|
||||
@retval EFI_SUCCESS The UDP IO port is freed.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
UdpIoFreePort (
|
||||
IN UDP_IO_PORT *UdpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Clean up the UDP IO port. It will release all the transmitted
|
||||
datagrams and receive request. It will also configure NULL the
|
||||
UDP child.
|
||||
|
||||
@param UdpIo UDP IO port to clean up.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
UdpIoCleanPort (
|
||||
IN UDP_IO_PORT *UdpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Send a packet through the UDP IO port.
|
||||
|
||||
@param UdpIo The UDP IO Port to send the packet through
|
||||
@param Packet The packet to send
|
||||
@param EndPoint The local and remote access point
|
||||
@param Gateway The gateway to use
|
||||
@param CallBack The call back function to call when packet is
|
||||
transmitted or failed.
|
||||
@param Context The opque parameter to the CallBack
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES Failed to allocate resource for the packet
|
||||
@retval EFI_SUCCESS The packet is successfully delivered to UDP for
|
||||
transmission.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
UdpIoSendDatagram (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN NET_BUF *Packet,
|
||||
IN UDP_POINTS *EndPoint, OPTIONAL
|
||||
IN IP4_ADDR Gateway,
|
||||
IN UDP_IO_CALLBACK CallBack,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Cancel a single sent datagram.
|
||||
|
||||
@param UdpIo The UDP IO port to cancel the packet from
|
||||
@param Packet The packet to cancel
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
UdpIoCancelSentDatagram (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN NET_BUF *Packet
|
||||
);
|
||||
|
||||
/**
|
||||
Issue a receive request to the UDP IO port.
|
||||
|
||||
@param UdpIo The UDP IO port to recieve the packet from.
|
||||
@param CallBack The call back function to execute when receive
|
||||
finished.
|
||||
@param Context The opque context to the call back
|
||||
@param HeadLen The lenght of the application's header
|
||||
|
||||
@retval EFI_ALREADY_STARTED There is already a pending receive request. Only
|
||||
one receive request is supported.
|
||||
@retval EFI_OUT_OF_RESOURCES Failed to allocate some resource.
|
||||
@retval EFI_SUCCESS The receive request is issued successfully.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
UdpIoRecvDatagram (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN UDP_IO_CALLBACK CallBack,
|
||||
IN VOID *Context,
|
||||
IN UINT32 HeadLen
|
||||
);
|
||||
#endif
|
||||
/** @file
|
||||
The helper routines to access UDP service. It is used by both
|
||||
DHCP and MTFTP.
|
||||
|
||||
Copyright (c) 2006 - 2008, 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _UDP4IO_H_
|
||||
#define _UDP4IO_H_
|
||||
|
||||
#include <Protocol/Udp4.h>
|
||||
|
||||
#include <Library/UdpIoLib.h>
|
||||
#include <Library/NetLib.h>
|
||||
|
||||
typedef struct _UDP_IO_PORT UDP_IO_PORT;
|
||||
|
||||
typedef enum {
|
||||
UDP_IO_RX_SIGNATURE = EFI_SIGNATURE_32 ('U', 'D', 'P', 'R'),
|
||||
UDP_IO_TX_SIGNATURE = EFI_SIGNATURE_32 ('U', 'D', 'P', 'T'),
|
||||
UDP_IO_SIGNATURE = EFI_SIGNATURE_32 ('U', 'D', 'P', 'I')
|
||||
} UDP_IO_SIGNATURE_TYPE;
|
||||
|
||||
typedef struct {
|
||||
IP4_ADDR LocalAddr;
|
||||
UINT16 LocalPort;
|
||||
IP4_ADDR RemoteAddr;
|
||||
UINT16 RemotePort;
|
||||
} UDP_POINTS;
|
||||
|
||||
//
|
||||
// This prototype is used by both receive and transmission.
|
||||
// When receiving Netbuf is allocated by UDP access point, and
|
||||
// released by user. When transmitting, the NetBuf is from user,
|
||||
// and provided to the callback as a reference.
|
||||
//
|
||||
typedef
|
||||
VOID
|
||||
(*UDP_IO_CALLBACK) (
|
||||
IN NET_BUF *Packet,
|
||||
IN UDP_POINTS *Points,
|
||||
IN EFI_STATUS IoStatus,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
//
|
||||
// Each receive request is wrapped in an UDP_RX_TOKEN. Upon completion,
|
||||
// the CallBack will be called. Only one receive request is send to UDP.
|
||||
// HeadLen gives the length of the application's header. UDP_IO will
|
||||
// make the application's header continous before delivery up.
|
||||
//
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UDP_IO_PORT *UdpIo;
|
||||
|
||||
UDP_IO_CALLBACK CallBack;
|
||||
VOID *Context;
|
||||
|
||||
UINT32 HeadLen;
|
||||
EFI_UDP4_COMPLETION_TOKEN UdpToken;
|
||||
} UDP_RX_TOKEN;
|
||||
|
||||
//
|
||||
// Each transmit request is wrapped in an UDP_TX_TOKEN. Upon completion,
|
||||
// the CallBack will be called. There can be several transmit requests.
|
||||
//
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
UDP_IO_PORT *UdpIo;
|
||||
|
||||
UDP_IO_CALLBACK CallBack;
|
||||
NET_BUF *Packet;
|
||||
VOID *Context;
|
||||
|
||||
EFI_UDP4_SESSION_DATA UdpSession;
|
||||
EFI_IPv4_ADDRESS Gateway;
|
||||
|
||||
EFI_UDP4_COMPLETION_TOKEN UdpToken;
|
||||
EFI_UDP4_TRANSMIT_DATA UdpTxData;
|
||||
} UDP_TX_TOKEN;
|
||||
|
||||
struct _UDP_IO_PORT {
|
||||
UINT32 Signature;
|
||||
LIST_ENTRY Link;
|
||||
INTN RefCnt;
|
||||
|
||||
//
|
||||
// Handle used to create/destory UDP child
|
||||
//
|
||||
EFI_HANDLE Controller;
|
||||
EFI_HANDLE Image;
|
||||
EFI_HANDLE UdpHandle;
|
||||
|
||||
EFI_UDP4_PROTOCOL *Udp;
|
||||
EFI_UDP4_CONFIG_DATA UdpConfig;
|
||||
EFI_SIMPLE_NETWORK_MODE SnpMode;
|
||||
|
||||
LIST_ENTRY SentDatagram;
|
||||
UDP_RX_TOKEN *RecvRequest;
|
||||
};
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(*UDP_IO_CONFIG) (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
typedef
|
||||
BOOLEAN
|
||||
(*UDP_IO_TO_CANCEL) (
|
||||
IN UDP_TX_TOKEN *Token,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Create a UDP IO port to access the UDP service. It will
|
||||
create and configure a UDP child.
|
||||
|
||||
@param Controller The controller that has the UDP service binding
|
||||
protocol installed.
|
||||
@param ImageHandle The image handle for the driver.
|
||||
@param Configure The function to configure the created UDP child
|
||||
@param Context The opaque parameter for the Configure funtion.
|
||||
|
||||
@return A point to just created UDP IO port or NULL if failed.
|
||||
|
||||
**/
|
||||
UDP_IO_PORT *
|
||||
EFIAPI
|
||||
UdpIoCreatePort (
|
||||
IN EFI_HANDLE Controller,
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN UDP_IO_CONFIG Configure,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Free the UDP IO port and all its related resources including
|
||||
all the transmitted packet.
|
||||
|
||||
@param UdpIo The UDP IO port to free.
|
||||
|
||||
@retval EFI_SUCCESS The UDP IO port is freed.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
UdpIoFreePort (
|
||||
IN UDP_IO_PORT *UdpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Clean up the UDP IO port. It will release all the transmitted
|
||||
datagrams and receive request. It will also configure NULL the
|
||||
UDP child.
|
||||
|
||||
@param UdpIo UDP IO port to clean up.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
UdpIoCleanPort (
|
||||
IN UDP_IO_PORT *UdpIo
|
||||
);
|
||||
|
||||
/**
|
||||
Send a packet through the UDP IO port.
|
||||
|
||||
@param UdpIo The UDP IO Port to send the packet through
|
||||
@param Packet The packet to send
|
||||
@param EndPoint The local and remote access point
|
||||
@param Gateway The gateway to use
|
||||
@param CallBack The call back function to call when packet is
|
||||
transmitted or failed.
|
||||
@param Context The opque parameter to the CallBack
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES Failed to allocate resource for the packet
|
||||
@retval EFI_SUCCESS The packet is successfully delivered to UDP for
|
||||
transmission.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
UdpIoSendDatagram (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN NET_BUF *Packet,
|
||||
IN UDP_POINTS *EndPoint, OPTIONAL
|
||||
IN IP4_ADDR Gateway,
|
||||
IN UDP_IO_CALLBACK CallBack,
|
||||
IN VOID *Context
|
||||
);
|
||||
|
||||
/**
|
||||
Cancel a single sent datagram.
|
||||
|
||||
@param UdpIo The UDP IO port to cancel the packet from
|
||||
@param Packet The packet to cancel
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
UdpIoCancelSentDatagram (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN NET_BUF *Packet
|
||||
);
|
||||
|
||||
/**
|
||||
Issue a receive request to the UDP IO port.
|
||||
|
||||
@param UdpIo The UDP IO port to recieve the packet from.
|
||||
@param CallBack The call back function to execute when receive
|
||||
finished.
|
||||
@param Context The opque context to the call back
|
||||
@param HeadLen The lenght of the application's header
|
||||
|
||||
@retval EFI_ALREADY_STARTED There is already a pending receive request. Only
|
||||
one receive request is supported.
|
||||
@retval EFI_OUT_OF_RESOURCES Failed to allocate some resource.
|
||||
@retval EFI_SUCCESS The receive request is issued successfully.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
UdpIoRecvDatagram (
|
||||
IN UDP_IO_PORT *UdpIo,
|
||||
IN UDP_IO_CALLBACK CallBack,
|
||||
IN VOID *Context,
|
||||
IN UINT32 HeadLen
|
||||
);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue