Use Mde library and definition instead of some native definitions in NetLib, to simply network library.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4693 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -262,7 +262,7 @@ SockProcessTcpSndData (
|
||||
);
|
||||
|
||||
if (NULL == SndData) {
|
||||
SOCK_DEBUG_ERROR (("SockKProcessSndData: Failed to"
|
||||
DEBUG ((EFI_D_ERROR, "SockKProcessSndData: Failed to"
|
||||
" call NetBufferFromExt\n"));
|
||||
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
@@ -316,7 +316,7 @@ STATIC
|
||||
VOID
|
||||
SockFlushPendingToken (
|
||||
IN SOCKET *Sock,
|
||||
IN NET_LIST_ENTRY *PendingTokenList
|
||||
IN LIST_ENTRY *PendingTokenList
|
||||
)
|
||||
{
|
||||
SOCK_TOKEN *SockToken;
|
||||
@@ -324,7 +324,7 @@ SockFlushPendingToken (
|
||||
|
||||
ASSERT (Sock && PendingTokenList);
|
||||
|
||||
while (!NetListIsEmpty (PendingTokenList)) {
|
||||
while (!IsListEmpty (PendingTokenList)) {
|
||||
SockToken = NET_LIST_HEAD (
|
||||
PendingTokenList,
|
||||
SOCK_TOKEN,
|
||||
@@ -334,8 +334,8 @@ SockFlushPendingToken (
|
||||
Token = SockToken->Token;
|
||||
SIGNAL_TOKEN (Token, Sock->SockError);
|
||||
|
||||
NetListRemoveEntry (&(SockToken->TokenList));
|
||||
NetFreePool (SockToken);
|
||||
RemoveEntryList (&(SockToken->TokenList));
|
||||
gBS->FreePool (SockToken);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -392,7 +392,7 @@ SockWakeListenToken (
|
||||
|
||||
ASSERT (Parent && SOCK_IS_LISTENING (Parent) && SOCK_IS_CONNECTED (Sock));
|
||||
|
||||
if (!NetListIsEmpty (&Parent->ListenTokenList)) {
|
||||
if (!IsListEmpty (&Parent->ListenTokenList)) {
|
||||
SockToken = NET_LIST_HEAD (
|
||||
&Parent->ListenTokenList,
|
||||
SOCK_TOKEN,
|
||||
@@ -404,14 +404,13 @@ SockWakeListenToken (
|
||||
|
||||
SIGNAL_TOKEN (&(ListenToken->CompletionToken), EFI_SUCCESS);
|
||||
|
||||
NetListRemoveEntry (&SockToken->TokenList);
|
||||
NetFreePool (SockToken);
|
||||
RemoveEntryList (&SockToken->TokenList);
|
||||
gBS->FreePool (SockToken);
|
||||
|
||||
NetListRemoveEntry (&Sock->ConnectionList);
|
||||
RemoveEntryList (&Sock->ConnectionList);
|
||||
|
||||
Parent->ConnCnt--;
|
||||
SOCK_DEBUG_WARN (("SockWakeListenToken: accept a socket,"
|
||||
"now conncnt is %d", Parent->ConnCnt));
|
||||
DEBUG ((EFI_D_WARN, "SockWakeListenToken: accept a socket, now conncnt is %d", Parent->ConnCnt));
|
||||
|
||||
Sock->Parent = NULL;
|
||||
}
|
||||
@@ -443,7 +442,7 @@ SockWakeRcvToken (
|
||||
|
||||
ASSERT (RcvdBytes > 0);
|
||||
|
||||
while (RcvdBytes > 0 && !NetListIsEmpty (&Sock->RcvTokenList)) {
|
||||
while (RcvdBytes > 0 && !IsListEmpty (&Sock->RcvTokenList)) {
|
||||
|
||||
SockToken = NET_LIST_HEAD (
|
||||
&Sock->RcvTokenList,
|
||||
@@ -458,8 +457,8 @@ SockWakeRcvToken (
|
||||
return ;
|
||||
}
|
||||
|
||||
NetListRemoveEntry (&(SockToken->TokenList));
|
||||
NetFreePool (SockToken);
|
||||
RemoveEntryList (&(SockToken->TokenList));
|
||||
gBS->FreePool (SockToken);
|
||||
RcvdBytes -= TokenRcvdBytes;
|
||||
}
|
||||
}
|
||||
@@ -495,7 +494,7 @@ SockProcessSndToken (
|
||||
// socket layer flow control policy
|
||||
//
|
||||
while ((FreeSpace >= Sock->SndBuffer.LowWater) &&
|
||||
!NetListIsEmpty (&Sock->SndTokenList)) {
|
||||
!IsListEmpty (&Sock->SndTokenList)) {
|
||||
|
||||
SockToken = NET_LIST_HEAD (
|
||||
&(Sock->SndTokenList),
|
||||
@@ -506,8 +505,8 @@ SockProcessSndToken (
|
||||
//
|
||||
// process this token
|
||||
//
|
||||
NetListRemoveEntry (&(SockToken->TokenList));
|
||||
NetListInsertTail (
|
||||
RemoveEntryList (&(SockToken->TokenList));
|
||||
InsertTailList (
|
||||
&(Sock->ProcessingSndTokenList),
|
||||
&(SockToken->TokenList)
|
||||
);
|
||||
@@ -538,9 +537,9 @@ SockProcessSndToken (
|
||||
|
||||
OnError:
|
||||
|
||||
NetListRemoveEntry (&SockToken->TokenList);
|
||||
RemoveEntryList (&SockToken->TokenList);
|
||||
SIGNAL_TOKEN (SockToken->Token, Status);
|
||||
NetFreePool (SockToken);
|
||||
gBS->FreePool (SockToken);
|
||||
}
|
||||
|
||||
|
||||
@@ -568,8 +567,9 @@ SockCreate (
|
||||
Parent = SockInitData->Parent;
|
||||
|
||||
if (Parent && (Parent->ConnCnt == Parent->BackLog)) {
|
||||
SOCK_DEBUG_ERROR (
|
||||
("SockCreate: Socket parent has "
|
||||
DEBUG (
|
||||
(EFI_D_ERROR,
|
||||
"SockCreate: Socket parent has "
|
||||
"reached its connection limit with %d ConnCnt and %d BackLog\n",
|
||||
Parent->ConnCnt,
|
||||
Parent->BackLog)
|
||||
@@ -578,25 +578,25 @@ SockCreate (
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Sock = NetAllocateZeroPool (sizeof (SOCKET));
|
||||
Sock = AllocateZeroPool (sizeof (SOCKET));
|
||||
if (NULL == Sock) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockCreate: No resource to create a new socket\n"));
|
||||
DEBUG ((EFI_D_ERROR, "SockCreate: No resource to create a new socket\n"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
NetListInit (&Sock->Link);
|
||||
NetListInit (&Sock->ConnectionList);
|
||||
NetListInit (&Sock->ListenTokenList);
|
||||
NetListInit (&Sock->RcvTokenList);
|
||||
NetListInit (&Sock->SndTokenList);
|
||||
NetListInit (&Sock->ProcessingSndTokenList);
|
||||
InitializeListHead (&Sock->Link);
|
||||
InitializeListHead (&Sock->ConnectionList);
|
||||
InitializeListHead (&Sock->ListenTokenList);
|
||||
InitializeListHead (&Sock->RcvTokenList);
|
||||
InitializeListHead (&Sock->SndTokenList);
|
||||
InitializeListHead (&Sock->ProcessingSndTokenList);
|
||||
|
||||
NET_LOCK_INIT (&(Sock->Lock));
|
||||
EfiInitializeLock (&(Sock->Lock), TPL_CALLBACK);
|
||||
|
||||
Sock->SndBuffer.DataQueue = NetbufQueAlloc ();
|
||||
if (NULL == Sock->SndBuffer.DataQueue) {
|
||||
SOCK_DEBUG_ERROR (("SockCreate: No resource to allocate"
|
||||
DEBUG ((EFI_D_ERROR, "SockCreate: No resource to allocate"
|
||||
" SndBuffer for new socket\n"));
|
||||
|
||||
goto OnError;
|
||||
@@ -604,7 +604,7 @@ SockCreate (
|
||||
|
||||
Sock->RcvBuffer.DataQueue = NetbufQueAlloc ();
|
||||
if (NULL == Sock->RcvBuffer.DataQueue) {
|
||||
SOCK_DEBUG_ERROR (("SockCreate: No resource to allocate "
|
||||
DEBUG ((EFI_D_ERROR, "SockCreate: No resource to allocate "
|
||||
"RcvBuffer for new socket\n"));
|
||||
|
||||
goto OnError;
|
||||
@@ -631,7 +631,7 @@ SockCreate (
|
||||
//
|
||||
// Install protocol on Sock->SockHandle
|
||||
//
|
||||
NetCopyMem (
|
||||
CopyMem (
|
||||
&(Sock->NetProtocol.TcpProtocol),
|
||||
SockInitData->Protocol,
|
||||
sizeof (EFI_TCP4_PROTOCOL)
|
||||
@@ -640,7 +640,7 @@ SockCreate (
|
||||
//
|
||||
// copy the protodata into socket
|
||||
//
|
||||
NetCopyMem (Sock->ProtoReserved, SockInitData->ProtoData, SockInitData->DataSize);
|
||||
CopyMem (Sock->ProtoReserved, SockInitData->ProtoData, SockInitData->DataSize);
|
||||
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&Sock->SockHandle,
|
||||
@@ -650,7 +650,7 @@ SockCreate (
|
||||
);
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
SOCK_DEBUG_ERROR (("SockCreate: Install TCP protocol in "
|
||||
DEBUG ((EFI_D_ERROR, "SockCreate: Install TCP protocol in "
|
||||
"socket failed with %r\n", Status));
|
||||
|
||||
goto OnError;
|
||||
@@ -666,10 +666,13 @@ SockCreate (
|
||||
//
|
||||
Parent->ConnCnt++;
|
||||
|
||||
SOCK_DEBUG_WARN (("SockCreate: Create a new socket and"
|
||||
"add to parent, now conncnt is %d\n", Parent->ConnCnt));
|
||||
DEBUG (
|
||||
(EFI_D_WARN,
|
||||
"SockCreate: Create a new socket and add to parent, now conncnt is %d\n",
|
||||
Parent->ConnCnt)
|
||||
);
|
||||
|
||||
NetListInsertTail (&Parent->ConnectionList, &Sock->ConnectionList);
|
||||
InsertTailList (&Parent->ConnectionList, &Sock->ConnectionList);
|
||||
}
|
||||
|
||||
if (Sock->CreateCallback != NULL) {
|
||||
@@ -700,7 +703,7 @@ OnError:
|
||||
NetbufQueFree (Sock->RcvBuffer.DataQueue);
|
||||
}
|
||||
|
||||
NetFreePool (Sock);
|
||||
gBS->FreePool (Sock);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -751,11 +754,15 @@ SockDestroy (
|
||||
//
|
||||
if (Sock->Parent) {
|
||||
|
||||
NetListRemoveEntry (&(Sock->ConnectionList));
|
||||
RemoveEntryList (&(Sock->ConnectionList));
|
||||
(Sock->Parent->ConnCnt)--;
|
||||
|
||||
SOCK_DEBUG_WARN (("SockDestory: Delete a unaccepted socket from parent"
|
||||
"now conncnt is %d\n", Sock->Parent->ConnCnt));
|
||||
DEBUG (
|
||||
(EFI_D_WARN,
|
||||
"SockDestory: Delete a unaccepted socket from parent"
|
||||
"now conncnt is %d\n",
|
||||
Sock->Parent->ConnCnt)
|
||||
);
|
||||
|
||||
Sock->Parent = NULL;
|
||||
}
|
||||
@@ -780,7 +787,7 @@ SockDestroy (
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockDestroy: Open protocol installed "
|
||||
DEBUG ((EFI_D_ERROR, "SockDestroy: Open protocol installed "
|
||||
"on socket failed with %r\n", Status));
|
||||
|
||||
goto FreeSock;
|
||||
@@ -798,7 +805,7 @@ SockDestroy (
|
||||
);
|
||||
|
||||
FreeSock:
|
||||
NetFreePool (Sock);
|
||||
gBS->FreePool (Sock);
|
||||
return ;
|
||||
}
|
||||
|
||||
@@ -853,7 +860,7 @@ SockConnFlush (
|
||||
// Destroy the pending connection, if it is a listening socket
|
||||
//
|
||||
if (SOCK_IS_LISTENING (Sock)) {
|
||||
while (!NetListIsEmpty (&Sock->ConnectionList)) {
|
||||
while (!IsListEmpty (&Sock->ConnectionList)) {
|
||||
Child = NET_LIST_HEAD (
|
||||
&Sock->ConnectionList,
|
||||
SOCKET,
|
||||
@@ -924,7 +931,7 @@ SockClone (
|
||||
ClonedSock = SockCreate (&InitData);
|
||||
|
||||
if (NULL == ClonedSock) {
|
||||
SOCK_DEBUG_ERROR (("SockClone: no resource to create a cloned sock\n"));
|
||||
DEBUG ((EFI_D_ERROR, "SockClone: no resource to create a cloned sock\n"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1019,7 +1026,7 @@ SockDataSent (
|
||||
SOCK_TOKEN *SockToken;
|
||||
SOCK_COMPLETION_TOKEN *SndToken;
|
||||
|
||||
ASSERT (!NetListIsEmpty (&Sock->ProcessingSndTokenList));
|
||||
ASSERT (!IsListEmpty (&Sock->ProcessingSndTokenList));
|
||||
ASSERT (Count <= (Sock->SndBuffer.DataQueue)->BufSize);
|
||||
|
||||
NetbufQueTrim (Sock->SndBuffer.DataQueue, Count);
|
||||
@@ -1038,10 +1045,10 @@ SockDataSent (
|
||||
|
||||
if (SockToken->RemainDataLen <= Count) {
|
||||
|
||||
NetListRemoveEntry (&(SockToken->TokenList));
|
||||
RemoveEntryList (&(SockToken->TokenList));
|
||||
SIGNAL_TOKEN (SndToken, EFI_SUCCESS);
|
||||
Count -= SockToken->RemainDataLen;
|
||||
NetFreePool (SockToken);
|
||||
gBS->FreePool (SockToken);
|
||||
} else {
|
||||
|
||||
SockToken->RemainDataLen -= Count;
|
||||
@@ -1181,7 +1188,7 @@ SockRcvdErr (
|
||||
{
|
||||
SOCK_TOKEN *SockToken;
|
||||
|
||||
if (!NetListIsEmpty (&Sock->RcvTokenList)) {
|
||||
if (!IsListEmpty (&Sock->RcvTokenList)) {
|
||||
|
||||
SockToken = NET_LIST_HEAD (
|
||||
&Sock->RcvTokenList,
|
||||
@@ -1189,11 +1196,11 @@ SockRcvdErr (
|
||||
TokenList
|
||||
);
|
||||
|
||||
NetListRemoveEntry (&SockToken->TokenList);
|
||||
RemoveEntryList (&SockToken->TokenList);
|
||||
|
||||
SIGNAL_TOKEN (SockToken->Token, Error);
|
||||
|
||||
NetFreePool (SockToken);
|
||||
gBS->FreePool (SockToken);
|
||||
} else {
|
||||
|
||||
SOCK_ERROR (Sock, Error);
|
||||
@@ -1222,7 +1229,7 @@ SockNoMoreData (
|
||||
|
||||
SOCK_NO_MORE_DATA (Sock);
|
||||
|
||||
if (!NetListIsEmpty (&Sock->RcvTokenList)) {
|
||||
if (!IsListEmpty (&Sock->RcvTokenList)) {
|
||||
|
||||
ASSERT (0 == GET_RCV_DATASIZE (Sock));
|
||||
|
||||
@@ -1252,11 +1259,11 @@ SockBufFirst (
|
||||
IN SOCK_BUFFER *Sockbuf
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *NetbufList;
|
||||
LIST_ENTRY *NetbufList;
|
||||
|
||||
NetbufList = &(Sockbuf->DataQueue->BufList);
|
||||
|
||||
if (NetListIsEmpty (NetbufList)) {
|
||||
if (IsListEmpty (NetbufList)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1280,7 +1287,7 @@ SockBufNext (
|
||||
IN NET_BUF *SockEntry
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *NetbufList;
|
||||
LIST_ENTRY *NetbufList;
|
||||
|
||||
NetbufList = &(Sockbuf->DataQueue->BufList);
|
||||
|
||||
|
@@ -23,9 +23,6 @@ Abstract:
|
||||
|
||||
#include "Socket.h"
|
||||
|
||||
#define SOCK_DEBUG_ERROR(PrintArg) NET_DEBUG_ERROR("Sock", PrintArg)
|
||||
#define SOCK_DEBUG_WARN(PrintArg) NET_DEBUG_WARNING("Sock", PrintArg)
|
||||
#define SOCK_DEBUG_TRACE(PrintArg) NET_DEBUG_TRACE("Sock", PrintArg)
|
||||
|
||||
#define SOCK_TRIM_RCV_BUFF(Sock, Len) \
|
||||
(NetbufQueTrim ((Sock)->RcvBuffer.DataQueue, (Len)))
|
||||
|
@@ -35,11 +35,11 @@ Abstract:
|
||||
STATIC
|
||||
BOOLEAN
|
||||
SockTokenExistedInList (
|
||||
IN NET_LIST_ENTRY *List,
|
||||
IN LIST_ENTRY *List,
|
||||
IN EFI_EVENT Event
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *ListEntry;
|
||||
LIST_ENTRY *ListEntry;
|
||||
SOCK_TOKEN *SockToken;
|
||||
|
||||
NET_LIST_FOR_EACH (ListEntry, List) {
|
||||
@@ -112,17 +112,17 @@ SockTokenExisted (
|
||||
SOCK_TOKEN *
|
||||
SockBufferToken (
|
||||
IN SOCKET *Sock,
|
||||
IN NET_LIST_ENTRY *List,
|
||||
IN LIST_ENTRY *List,
|
||||
IN VOID *Token,
|
||||
IN UINT32 DataLen
|
||||
)
|
||||
{
|
||||
SOCK_TOKEN *SockToken;
|
||||
|
||||
SockToken = NetAllocatePool (sizeof (SOCK_TOKEN));
|
||||
SockToken = AllocatePool (sizeof (SOCK_TOKEN));
|
||||
if (NULL == SockToken) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockBufferIOToken: No Memory "
|
||||
DEBUG ((EFI_D_ERROR, "SockBufferIOToken: No Memory "
|
||||
"to allocate SockToken\n"));
|
||||
|
||||
return NULL;
|
||||
@@ -131,7 +131,7 @@ SockBufferToken (
|
||||
SockToken->Sock = Sock;
|
||||
SockToken->Token = (SOCK_COMPLETION_TOKEN *) Token;
|
||||
SockToken->RemainDataLen = DataLen;
|
||||
NetListInsertTail (List, &SockToken->TokenList);
|
||||
InsertTailList (List, &SockToken->TokenList);
|
||||
|
||||
return SockToken;
|
||||
}
|
||||
@@ -161,10 +161,10 @@ SockDestroyChild (
|
||||
|
||||
Sock->IsDestroyed = TRUE;
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockDestroyChild: Get the lock to "
|
||||
DEBUG ((EFI_D_ERROR, "SockDestroyChild: Get the lock to "
|
||||
"access socket failed with %r\n", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -177,7 +177,7 @@ SockDestroyChild (
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockDestroyChild: Protocol detach socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockDestroyChild: Protocol detach socket"
|
||||
" failed with %r\n", Status));
|
||||
|
||||
Sock->IsDestroyed = FALSE;
|
||||
@@ -189,7 +189,7 @@ SockDestroyChild (
|
||||
Sock->ConfigureState = SO_UNCONFIGURED;
|
||||
}
|
||||
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
@@ -226,16 +226,16 @@ SockCreateChild (
|
||||
Sock = SockCreate (SockInitData);
|
||||
if (NULL == Sock) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockCreateChild: No resource to "
|
||||
DEBUG ((EFI_D_ERROR, "SockCreateChild: No resource to "
|
||||
"create a new socket\n"));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockCreateChild: Get the lock to "
|
||||
DEBUG ((EFI_D_ERROR, "SockCreateChild: Get the lock to "
|
||||
"access socket failed with %r\n", Status));
|
||||
|
||||
SockDestroy (Sock);
|
||||
@@ -248,14 +248,14 @@ SockCreateChild (
|
||||
Status = Sock->ProtoHandler (Sock, SOCK_ATTACH, NULL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockCreateChild: Protocol failed to"
|
||||
DEBUG ((EFI_D_ERROR, "SockCreateChild: Protocol failed to"
|
||||
" attach a socket with %r\n", Status));
|
||||
|
||||
SockDestroy (Sock);
|
||||
Sock = NULL;
|
||||
}
|
||||
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Sock;
|
||||
}
|
||||
|
||||
@@ -280,10 +280,10 @@ SockConfigure (
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockConfigure: Get the access for "
|
||||
DEBUG ((EFI_D_ERROR, "SockConfigure: Get the access for "
|
||||
"socket failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -299,7 +299,7 @@ SockConfigure (
|
||||
Status = Sock->ProtoHandler (Sock, SOCK_CONFIGURE, ConfigData);
|
||||
|
||||
OnExit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
|
||||
return Status;
|
||||
}
|
||||
@@ -332,10 +332,10 @@ SockConnect (
|
||||
EFI_STATUS Status;
|
||||
EFI_EVENT Event;
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockConnect: Get the access for "
|
||||
DEBUG ((EFI_D_ERROR, "SockConnect: Get the access for "
|
||||
"socket failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -371,7 +371,7 @@ SockConnect (
|
||||
Status = Sock->ProtoHandler (Sock, SOCK_CONNECT, NULL);
|
||||
|
||||
OnExit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -402,17 +402,17 @@ SockAccept (
|
||||
)
|
||||
{
|
||||
EFI_TCP4_LISTEN_TOKEN *ListenToken;
|
||||
NET_LIST_ENTRY *ListEntry;
|
||||
LIST_ENTRY *ListEntry;
|
||||
EFI_STATUS Status;
|
||||
SOCKET *Socket;
|
||||
EFI_EVENT Event;
|
||||
|
||||
ASSERT (SOCK_STREAM == Sock->Type);
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockAccept: Get the access for socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockAccept: Get the access for socket"
|
||||
" failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -456,14 +456,16 @@ SockAccept (
|
||||
ListenToken->NewChildHandle = Socket->SockHandle;
|
||||
SIGNAL_TOKEN (&(ListenToken->CompletionToken), EFI_SUCCESS);
|
||||
|
||||
NetListRemoveEntry (ListEntry);
|
||||
RemoveEntryList (ListEntry);
|
||||
|
||||
ASSERT (Socket->Parent);
|
||||
|
||||
Socket->Parent->ConnCnt--;
|
||||
|
||||
SOCK_DEBUG_WARN (("SockAccept: Accept a socket,"
|
||||
"now conncount is %d", Socket->Parent->ConnCnt)
|
||||
DEBUG (
|
||||
(EFI_D_WARN,
|
||||
"SockAccept: Accept a socket, now conncount is %d",
|
||||
Socket->Parent->ConnCnt)
|
||||
);
|
||||
Socket->Parent = NULL;
|
||||
|
||||
@@ -480,7 +482,7 @@ SockAccept (
|
||||
}
|
||||
|
||||
Exit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
|
||||
return Status;
|
||||
}
|
||||
@@ -520,10 +522,10 @@ SockSend (
|
||||
|
||||
ASSERT (SOCK_STREAM == Sock->Type);
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockSend: Get the access for socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockSend: Get the access for socket"
|
||||
" failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -587,7 +589,7 @@ SockSend (
|
||||
);
|
||||
|
||||
if (NULL == SockToken) {
|
||||
SOCK_DEBUG_ERROR (("SockSend: Failed to buffer IO token into"
|
||||
DEBUG ((EFI_D_ERROR, "SockSend: Failed to buffer IO token into"
|
||||
" socket processing SndToken List\n", Status));
|
||||
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
@@ -597,16 +599,16 @@ SockSend (
|
||||
Status = SockProcessTcpSndData (Sock, TxData);
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
SOCK_DEBUG_ERROR (("SockSend: Failed to process "
|
||||
DEBUG ((EFI_D_ERROR, "SockSend: Failed to process "
|
||||
"Snd Data\n", Status));
|
||||
|
||||
NetListRemoveEntry (&(SockToken->TokenList));
|
||||
NetFreePool (SockToken);
|
||||
RemoveEntryList (&(SockToken->TokenList));
|
||||
gBS->FreePool (SockToken);
|
||||
}
|
||||
}
|
||||
|
||||
Exit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -643,10 +645,10 @@ SockRcv (
|
||||
|
||||
ASSERT (SOCK_STREAM == Sock->Type);
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockRcv: Get the access for socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockRcv: Get the access for socket"
|
||||
" failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -720,7 +722,7 @@ SockRcv (
|
||||
}
|
||||
|
||||
Exit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -743,10 +745,10 @@ SockFlush (
|
||||
|
||||
ASSERT (SOCK_STREAM == Sock->Type);
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockFlush: Get the access for socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockFlush: Get the access for socket"
|
||||
" failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -759,7 +761,7 @@ SockFlush (
|
||||
Status = Sock->ProtoHandler (Sock, SOCK_FLUSH, NULL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockFlush: Protocol failed handling"
|
||||
DEBUG ((EFI_D_ERROR, "SockFlush: Protocol failed handling"
|
||||
" SOCK_FLUSH with %r", Status));
|
||||
|
||||
goto Exit;
|
||||
@@ -772,7 +774,7 @@ SockFlush (
|
||||
Sock->ConfigureState = SO_UNCONFIGURED;
|
||||
|
||||
Exit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -808,9 +810,9 @@ SockClose (
|
||||
|
||||
ASSERT (SOCK_STREAM == Sock->Type);
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
SOCK_DEBUG_ERROR (("SockClose: Get the access for socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockClose: Get the access for socket"
|
||||
" failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -848,7 +850,7 @@ SockClose (
|
||||
}
|
||||
|
||||
Exit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -895,11 +897,11 @@ SockGroup (
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
SOCK_DEBUG_ERROR (("SockGroup: Get the access for socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockGroup: Get the access for socket"
|
||||
" failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -913,7 +915,7 @@ SockGroup (
|
||||
Status = Sock->ProtoHandler (Sock, SOCK_GROUP, GroupInfo);
|
||||
|
||||
Exit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -941,9 +943,9 @@ SockRoute (
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = NET_TRYLOCK (&(Sock->Lock));
|
||||
Status = EfiAcquireLockOrFail (&(Sock->Lock));
|
||||
if (EFI_ERROR (Status)) {
|
||||
SOCK_DEBUG_ERROR (("SockRoute: Get the access for socket"
|
||||
DEBUG ((EFI_D_ERROR, "SockRoute: Get the access for socket"
|
||||
" failed with %r", Status));
|
||||
|
||||
return EFI_ACCESS_DENIED;
|
||||
@@ -962,6 +964,6 @@ SockRoute (
|
||||
Status = Sock->ProtoHandler (Sock, SOCK_ROUTE, RouteInfo);
|
||||
|
||||
Exit:
|
||||
NET_UNLOCK (&(Sock->Lock));
|
||||
EfiReleaseLock (&(Sock->Lock));
|
||||
return Status;
|
||||
}
|
||||
|
@@ -357,12 +357,12 @@ struct _SOCKET {
|
||||
EFI_HANDLE DriverBinding; // socket't driver binding protocol
|
||||
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
NET_LIST_ENTRY Link;
|
||||
LIST_ENTRY Link;
|
||||
SOCK_CONFIGURE_STATE ConfigureState;
|
||||
SOCK_TYPE Type;
|
||||
SOCK_STATE State;
|
||||
UINT16 Flag;
|
||||
NET_LOCK Lock; // the lock of socket
|
||||
EFI_LOCK Lock; // the lock of socket
|
||||
SOCK_BUFFER SndBuffer; // send buffer of application's data
|
||||
SOCK_BUFFER RcvBuffer; // receive buffer of received data
|
||||
EFI_STATUS SockError; // the error returned by low layer protocol
|
||||
@@ -374,14 +374,14 @@ struct _SOCKET {
|
||||
UINT32 BackLog; // the limit of connection to this socket
|
||||
UINT32 ConnCnt; // the current count of connections to it
|
||||
SOCKET *Parent; // listening parent that accept the connection
|
||||
NET_LIST_ENTRY ConnectionList; // the connections maintained by this socket
|
||||
LIST_ENTRY ConnectionList; // the connections maintained by this socket
|
||||
//
|
||||
// the queue to buffer application's asynchronous token
|
||||
//
|
||||
NET_LIST_ENTRY ListenTokenList;
|
||||
NET_LIST_ENTRY RcvTokenList;
|
||||
NET_LIST_ENTRY SndTokenList;
|
||||
NET_LIST_ENTRY ProcessingSndTokenList;
|
||||
LIST_ENTRY ListenTokenList;
|
||||
LIST_ENTRY RcvTokenList;
|
||||
LIST_ENTRY SndTokenList;
|
||||
LIST_ENTRY ProcessingSndTokenList;
|
||||
|
||||
SOCK_COMPLETION_TOKEN *ConnectionToken; // app's token to signal if connected
|
||||
SOCK_COMPLETION_TOKEN *CloseToken; // app's token to signal if closed
|
||||
@@ -408,7 +408,7 @@ struct _SOCKET {
|
||||
// the token structure buffered in socket layer
|
||||
//
|
||||
typedef struct _SOCK_TOKEN {
|
||||
NET_LIST_ENTRY TokenList; // the entry to add in the token list
|
||||
LIST_ENTRY TokenList; // the entry to add in the token list
|
||||
SOCK_COMPLETION_TOKEN *Token; // The application's token
|
||||
UINT32 RemainDataLen; // unprocessed data length
|
||||
SOCKET *Sock; // the poninter to the socket this token
|
||||
|
@@ -118,11 +118,11 @@ Tcp4GetMode (
|
||||
|
||||
AccessPoint->UseDefaultAddress = Tcb->UseDefaultAddr;
|
||||
|
||||
NetCopyMem (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (&AccessPoint->StationAddress, &Tcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
AccessPoint->SubnetMask = Tcb->SubnetMask;
|
||||
AccessPoint->StationPort = NTOHS (Tcb->LocalEnd.Port);
|
||||
|
||||
NetCopyMem (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (&AccessPoint->RemoteAddress, &Tcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
AccessPoint->RemotePort = NTOHS (Tcb->RemoteEnd.Port);
|
||||
AccessPoint->ActiveFlag = (BOOLEAN) (Tcb->State != TCP_LISTEN);
|
||||
|
||||
@@ -203,7 +203,7 @@ Tcp4Bind (
|
||||
if (mTcp4RandomPort <= TCP4_PORT_KNOWN) {
|
||||
|
||||
if (Cycle) {
|
||||
TCP4_DEBUG_ERROR (("Tcp4Bind: no port can be allocated "
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4Bind: no port can be allocated "
|
||||
"for this pcb\n"));
|
||||
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
@@ -246,7 +246,7 @@ Tcp4FlushPcb (
|
||||
TcpProto = (TCP4_PROTO_DATA *) Sock->ProtoReserved;
|
||||
|
||||
if (SOCK_IS_CONFIGURED (Sock)) {
|
||||
NetListRemoveEntry (&Tcb->List);
|
||||
RemoveEntryList (&Tcb->List);
|
||||
|
||||
//
|
||||
// Uninstall the device path protocl.
|
||||
@@ -256,7 +256,7 @@ Tcp4FlushPcb (
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
Sock->DevicePath
|
||||
);
|
||||
NetFreePool (Sock->DevicePath);
|
||||
gBS->FreePool (Sock->DevicePath);
|
||||
|
||||
TcpSetVariableData (TcpProto->TcpService);
|
||||
}
|
||||
@@ -275,11 +275,11 @@ Tcp4AttachPcb (
|
||||
TCP4_PROTO_DATA *ProtoData;
|
||||
IP_IO *IpIo;
|
||||
|
||||
Tcb = NetAllocateZeroPool (sizeof (TCP_CB));
|
||||
Tcb = AllocateZeroPool (sizeof (TCP_CB));
|
||||
|
||||
if (Tcb == NULL) {
|
||||
|
||||
TCP4_DEBUG_ERROR (("Tcp4ConfigurePcb: failed to allocate a TCB\n"));
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4ConfigurePcb: failed to allocate a TCB\n"));
|
||||
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
@@ -293,13 +293,13 @@ Tcp4AttachPcb (
|
||||
Tcb->IpInfo = IpIoAddIp (IpIo);
|
||||
if (Tcb->IpInfo == NULL) {
|
||||
|
||||
NetFreePool (Tcb);
|
||||
gBS->FreePool (Tcb);
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
NetListInit (&Tcb->List);
|
||||
NetListInit (&Tcb->SndQue);
|
||||
NetListInit (&Tcb->RcvQue);
|
||||
InitializeListHead (&Tcb->List);
|
||||
InitializeListHead (&Tcb->SndQue);
|
||||
InitializeListHead (&Tcb->RcvQue);
|
||||
|
||||
Tcb->State = TCP_CLOSED;
|
||||
Tcb->Sk = Sk;
|
||||
@@ -326,7 +326,7 @@ Tcp4DetachPcb (
|
||||
|
||||
IpIoRemoveIp (ProtoData->TcpService->IpIo, Tcb->IpInfo);
|
||||
|
||||
NetFreePool (Tcb);
|
||||
gBS->FreePool (Tcb);
|
||||
|
||||
ProtoData->TcpPcb = NULL;
|
||||
}
|
||||
@@ -397,7 +397,7 @@ Tcp4ConfigurePcb (
|
||||
Status = Tcp4Bind (&(CfgData->AccessPoint));
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
TCP4_DEBUG_ERROR (("Tcp4ConfigurePcb: Bind endpoint failed "
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4ConfigurePcb: Bind endpoint failed "
|
||||
"with %r\n", Status));
|
||||
|
||||
goto OnExit;
|
||||
@@ -407,8 +407,8 @@ Tcp4ConfigurePcb (
|
||||
// Initalize the operating information in this Tcb
|
||||
//
|
||||
ASSERT (Tcb->State == TCP_CLOSED &&
|
||||
NetListIsEmpty (&Tcb->SndQue) &&
|
||||
NetListIsEmpty (&Tcb->RcvQue));
|
||||
IsListEmpty (&Tcb->SndQue) &&
|
||||
IsListEmpty (&Tcb->RcvQue));
|
||||
|
||||
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_NO_KEEPALIVE);
|
||||
Tcb->State = TCP_CLOSED;
|
||||
@@ -440,12 +440,12 @@ Tcp4ConfigurePcb (
|
||||
|
||||
Tcb->UseDefaultAddr = CfgData->AccessPoint.UseDefaultAddress;
|
||||
|
||||
NetCopyMem (&Tcb->LocalEnd.Ip, &CfgData->AccessPoint.StationAddress, sizeof (IP4_ADDR));
|
||||
CopyMem (&Tcb->LocalEnd.Ip, &CfgData->AccessPoint.StationAddress, sizeof (IP4_ADDR));
|
||||
Tcb->LocalEnd.Port = HTONS (CfgData->AccessPoint.StationPort);
|
||||
Tcb->SubnetMask = CfgData->AccessPoint.SubnetMask;
|
||||
|
||||
if (CfgData->AccessPoint.ActiveFlag) {
|
||||
NetCopyMem (&Tcb->RemoteEnd.Ip, &CfgData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));
|
||||
CopyMem (&Tcb->RemoteEnd.Ip, &CfgData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));
|
||||
Tcb->RemoteEnd.Port = HTONS (CfgData->AccessPoint.RemotePort);
|
||||
} else {
|
||||
Tcb->RemoteEnd.Ip = 0;
|
||||
|
@@ -98,7 +98,7 @@ Tcp4CreateTimer (
|
||||
|
||||
Status = gBS->CreateEvent (
|
||||
EVT_TIMER | EVT_NOTIFY_SIGNAL,
|
||||
NET_TPL_EVENT,
|
||||
TPL_NOTIFY,
|
||||
TcpTicking,
|
||||
NULL,
|
||||
&mTcp4Timer.TimerEvent
|
||||
@@ -283,10 +283,10 @@ Tcp4DriverBindingStart (
|
||||
TCP4_SERVICE_DATA *TcpServiceData;
|
||||
IP_IO_OPEN_DATA OpenData;
|
||||
|
||||
TcpServiceData = NetAllocateZeroPool (sizeof (TCP4_SERVICE_DATA));
|
||||
TcpServiceData = AllocateZeroPool (sizeof (TCP4_SERVICE_DATA));
|
||||
|
||||
if (NULL == TcpServiceData) {
|
||||
TCP4_DEBUG_ERROR (("Tcp4DriverBindingStart: Have no enough"
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4DriverBindingStart: Have no enough"
|
||||
" resource to create a Tcp Servcie Data!\n"));
|
||||
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
@@ -298,7 +298,7 @@ Tcp4DriverBindingStart (
|
||||
TcpServiceData->IpIo = IpIoCreate (This->DriverBindingHandle, ControllerHandle);
|
||||
if (NULL == TcpServiceData->IpIo) {
|
||||
|
||||
TCP4_DEBUG_ERROR (("Tcp4DriverBindingStart: Have no enough"
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4DriverBindingStart: Have no enough"
|
||||
" resource to create an Ip Io!\n"));
|
||||
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
@@ -308,7 +308,7 @@ Tcp4DriverBindingStart (
|
||||
//
|
||||
// Configure and start IpIo.
|
||||
//
|
||||
NetZeroMem (&OpenData, sizeof (IP_IO_OPEN_DATA));
|
||||
ZeroMem (&OpenData, sizeof (IP_IO_OPEN_DATA));
|
||||
|
||||
CopyMem (&OpenData.IpConfigData, &mIpIoDefaultIpConfigData, sizeof (OpenData.IpConfigData));
|
||||
OpenData.IpConfigData.DefaultProtocol = EFI_IP_PROTO_TCP;
|
||||
@@ -326,7 +326,7 @@ Tcp4DriverBindingStart (
|
||||
Status = Tcp4CreateTimer ();
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
TCP4_DEBUG_ERROR (("Tcp4DriverBindingStart: Create TcpTimer"
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4DriverBindingStart: Create TcpTimer"
|
||||
" Event failed with %r\n", Status));
|
||||
|
||||
goto ON_ERROR;
|
||||
@@ -346,7 +346,7 @@ Tcp4DriverBindingStart (
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
TCP4_DEBUG_ERROR (("Tcp4DriverBindingStart: Install Tcp4 Service Binding"
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4DriverBindingStart: Install Tcp4 Service Binding"
|
||||
" Protocol failed for %r\n", Status));
|
||||
|
||||
Tcp4DestroyTimer ();
|
||||
@@ -360,7 +360,7 @@ Tcp4DriverBindingStart (
|
||||
TcpServiceData->Signature = TCP4_DRIVER_SIGNATURE;
|
||||
TcpServiceData->DriverBindingHandle = This->DriverBindingHandle;
|
||||
|
||||
NetListInit (&TcpServiceData->SocketList);
|
||||
InitializeListHead (&TcpServiceData->SocketList);
|
||||
|
||||
TcpSetVariableData (TcpServiceData);
|
||||
|
||||
@@ -372,7 +372,7 @@ ON_ERROR:
|
||||
IpIoDestroy (TcpServiceData->IpIo);
|
||||
}
|
||||
|
||||
NetFreePool (TcpServiceData);
|
||||
gBS->FreePool (TcpServiceData);
|
||||
|
||||
return Status;
|
||||
}
|
||||
@@ -426,7 +426,7 @@ Tcp4DriverBindingStop (
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
||||
TCP4_DEBUG_ERROR (("Tcp4DriverBindingStop: Locate Tcp4 Service "
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4DriverBindingStop: Locate Tcp4 Service "
|
||||
" Binding Protocol failed with %r\n", Status));
|
||||
|
||||
return EFI_DEVICE_ERROR;
|
||||
@@ -463,10 +463,10 @@ Tcp4DriverBindingStop (
|
||||
//
|
||||
// Release the TCP service data
|
||||
//
|
||||
NetFreePool (TcpServiceData);
|
||||
gBS->FreePool (TcpServiceData);
|
||||
} else {
|
||||
|
||||
while (!NetListIsEmpty (&TcpServiceData->SocketList)) {
|
||||
while (!IsListEmpty (&TcpServiceData->SocketList)) {
|
||||
Sock = NET_LIST_HEAD (&TcpServiceData->SocketList, SOCKET, Link);
|
||||
|
||||
ServiceBinding->DestroyChild (ServiceBinding, Sock->SockHandle);
|
||||
@@ -525,7 +525,7 @@ Tcp4CreateSocketCallback (
|
||||
//
|
||||
// Insert this socket into the SocketList.
|
||||
//
|
||||
NetListInsertTail (&TcpServiceData->SocketList, &This->Link);
|
||||
InsertTailList (&TcpServiceData->SocketList, &This->Link);
|
||||
}
|
||||
|
||||
return Status;
|
||||
@@ -544,7 +544,7 @@ Tcp4DestroySocketCallback (
|
||||
//
|
||||
// Remove this node from the list.
|
||||
//
|
||||
NetListRemoveEntry (&This->Link);
|
||||
RemoveEntryList (&This->Link);
|
||||
|
||||
//
|
||||
// Close the device path protocol
|
||||
@@ -599,7 +599,7 @@ Tcp4ServiceBindingCreateChild (
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
OldTpl = NET_RAISE_TPL (NET_TPL_LOCK);
|
||||
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
|
||||
Status = EFI_SUCCESS;
|
||||
TcpServiceData = TCP4_FROM_THIS (This);
|
||||
TcpProto.TcpService = TcpServiceData;
|
||||
@@ -612,10 +612,10 @@ Tcp4ServiceBindingCreateChild (
|
||||
mTcp4DefaultSockData.ProtoData = &TcpProto;
|
||||
mTcp4DefaultSockData.DataSize = sizeof (TCP4_PROTO_DATA);
|
||||
mTcp4DefaultSockData.DriverBinding = TcpServiceData->DriverBindingHandle;
|
||||
|
||||
|
||||
Sock = SockCreateChild (&mTcp4DefaultSockData);
|
||||
if (NULL == Sock) {
|
||||
TCP4_DEBUG_ERROR (("Tcp4DriverBindingCreateChild: "
|
||||
DEBUG ((EFI_D_ERROR, "Tcp4DriverBindingCreateChild: "
|
||||
"No resource to create a Tcp Child\n"));
|
||||
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
@@ -623,7 +623,7 @@ Tcp4ServiceBindingCreateChild (
|
||||
*ChildHandle = Sock->SockHandle;
|
||||
}
|
||||
|
||||
NET_RESTORE_TPL (OldTpl);
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -656,7 +656,7 @@ Tcp4ServiceBindingDestroyChild (
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
OldTpl = NET_RAISE_TPL (NET_TPL_LOCK);
|
||||
OldTpl = gBS->RaiseTPL (TPL_CALLBACK);
|
||||
|
||||
//
|
||||
// retrieve the Tcp4 protocol from ChildHandle
|
||||
@@ -681,7 +681,7 @@ Tcp4ServiceBindingDestroyChild (
|
||||
SockDestroyChild (Sock);
|
||||
}
|
||||
|
||||
NET_RESTORE_TPL (OldTpl);
|
||||
gBS->RestoreTPL (OldTpl);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
@@ -41,7 +41,7 @@ typedef struct _TCP4_SERVICE_DATA {
|
||||
EFI_SERVICE_BINDING_PROTOCOL Tcp4ServiceBinding;
|
||||
EFI_HANDLE DriverBindingHandle;
|
||||
CHAR16 *MacString;
|
||||
NET_LIST_ENTRY SocketList;
|
||||
LIST_ENTRY SocketList;
|
||||
} TCP4_SERVICE_DATA;
|
||||
|
||||
//
|
||||
|
@@ -158,7 +158,7 @@ TcpVerifySegment (
|
||||
|
||||
INTN
|
||||
TcpCheckSndQue (
|
||||
IN NET_LIST_ENTRY *Head
|
||||
IN LIST_ENTRY *Head
|
||||
);
|
||||
|
||||
NET_BUF *
|
||||
|
@@ -84,7 +84,7 @@ TcpFastRecover (
|
||||
TcpRetransmit (Tcb, Tcb->SndUna);
|
||||
Tcb->CWnd = Tcb->Ssthresh + 3 * Tcb->SndMss;
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpFastRecover: enter fast retransmission"
|
||||
DEBUG ((EFI_D_INFO, "TcpFastRecover: enter fast retransmission"
|
||||
" for TCB %x, recover point is %d\n", Tcb, Tcb->Recover));
|
||||
return;
|
||||
}
|
||||
@@ -103,7 +103,7 @@ TcpFastRecover (
|
||||
// by TcpToSendData
|
||||
//
|
||||
Tcb->CWnd += Tcb->SndMss;
|
||||
TCP4_DEBUG_TRACE (("TcpFastRecover: received another"
|
||||
DEBUG ((EFI_D_INFO, "TcpFastRecover: received another"
|
||||
" duplicated ACK (%d) for TCB %x\n", Seg->Ack, Tcb));
|
||||
|
||||
} else {
|
||||
@@ -123,7 +123,7 @@ TcpFastRecover (
|
||||
Tcb->CWnd = MIN (Tcb->Ssthresh, FlightSize + Tcb->SndMss);
|
||||
|
||||
Tcb->CongestState = TCP_CONGEST_OPEN;
|
||||
TCP4_DEBUG_TRACE (("TcpFastRecover: received a full ACK(%d)"
|
||||
DEBUG ((EFI_D_INFO, "TcpFastRecover: received a full ACK(%d)"
|
||||
" for TCB %x, exit fast recovery\n", Seg->Ack, Tcb));
|
||||
|
||||
} else {
|
||||
@@ -148,7 +148,7 @@ TcpFastRecover (
|
||||
|
||||
Tcb->CWnd -= Acked;
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpFastRecover: received a partial"
|
||||
DEBUG ((EFI_D_INFO, "TcpFastRecover: received a partial"
|
||||
" ACK(%d) for TCB %x\n", Seg->Ack, Tcb));
|
||||
|
||||
}
|
||||
@@ -185,7 +185,7 @@ TcpFastLossRecover (
|
||||
Tcb->LossTimes = 0;
|
||||
Tcb->CongestState = TCP_CONGEST_OPEN;
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpFastLossRecover: received a "
|
||||
DEBUG ((EFI_D_INFO, "TcpFastLossRecover: received a "
|
||||
"full ACK(%d) for TCB %x\n", Seg->Ack, Tcb));
|
||||
|
||||
} else {
|
||||
@@ -195,7 +195,7 @@ TcpFastLossRecover (
|
||||
// fast retransmit the first unacknowledge field.
|
||||
//
|
||||
TcpRetransmit (Tcb, Seg->Ack);
|
||||
TCP4_DEBUG_TRACE (("TcpFastLossRecover: received a "
|
||||
DEBUG ((EFI_D_INFO, "TcpFastLossRecover: received a "
|
||||
"partial ACK(%d) for TCB %x\n", Seg->Ack, Tcb));
|
||||
}
|
||||
}
|
||||
@@ -256,7 +256,7 @@ TcpComputeRtt (
|
||||
|
||||
}
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpComputeRtt: new RTT for TCB %x"
|
||||
DEBUG ((EFI_D_INFO, "TcpComputeRtt: new RTT for TCB %x"
|
||||
" computed SRTT: %d RTTVAR: %d RTO: %d\n",
|
||||
Tcb, Tcb->SRtt, Tcb->RttVar, Tcb->Rto));
|
||||
|
||||
@@ -392,7 +392,7 @@ TcpDeliverData (
|
||||
IN TCP_CB *Tcb
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Entry;
|
||||
NET_BUF *Nbuf;
|
||||
TCP_SEQNO Seq;
|
||||
TCP_SEG *Seg;
|
||||
@@ -404,7 +404,7 @@ TcpDeliverData (
|
||||
// make sure there is some data queued,
|
||||
// and TCP is in a proper state
|
||||
//
|
||||
if (NetListIsEmpty (&Tcb->RcvQue) || !TCP_CONNECTED (Tcb->State)) {
|
||||
if (IsListEmpty (&Tcb->RcvQue) || !TCP_CONNECTED (Tcb->State)) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -430,7 +430,7 @@ TcpDeliverData (
|
||||
Seq = Seg->End;
|
||||
Tcb->RcvNxt = Seq;
|
||||
|
||||
NetListRemoveEntry (&Nbuf->List);
|
||||
RemoveEntryList (&Nbuf->List);
|
||||
|
||||
//
|
||||
// RFC793 Eighth step: process FIN in sequence
|
||||
@@ -441,15 +441,15 @@ TcpDeliverData (
|
||||
// The peer sends to us junky data after FIN,
|
||||
// reset the connection.
|
||||
//
|
||||
if (!NetListIsEmpty (&Tcb->RcvQue)) {
|
||||
TCP4_DEBUG_ERROR (("TcpDeliverData: data received after"
|
||||
if (!IsListEmpty (&Tcb->RcvQue)) {
|
||||
DEBUG ((EFI_D_ERROR, "TcpDeliverData: data received after"
|
||||
" FIN from peer of TCB %x, reset connection\n", Tcb));
|
||||
|
||||
NetbufFree (Nbuf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpDeliverData: processing FIN "
|
||||
DEBUG ((EFI_D_INFO, "TcpDeliverData: processing FIN "
|
||||
"from peer of TCB %x\n", Tcb));
|
||||
|
||||
switch (Tcb->State) {
|
||||
@@ -480,7 +480,7 @@ TcpDeliverData (
|
||||
TcpSetTimer (Tcb, TCP_TIMER_2MSL, Tcb->TimeWaitTimeout);
|
||||
} else {
|
||||
|
||||
TCP4_DEBUG_WARN (("Connection closed immediately "
|
||||
DEBUG ((EFI_D_WARN, "Connection closed immediately "
|
||||
"because app disables TIME_WAIT timer for %x\n", Tcb));
|
||||
|
||||
TcpSendAck (Tcb);
|
||||
@@ -558,9 +558,9 @@ TcpQueueData (
|
||||
)
|
||||
{
|
||||
TCP_SEG *Seg;
|
||||
NET_LIST_ENTRY *Head;
|
||||
NET_LIST_ENTRY *Prev;
|
||||
NET_LIST_ENTRY *Cur;
|
||||
LIST_ENTRY *Head;
|
||||
LIST_ENTRY *Prev;
|
||||
LIST_ENTRY *Cur;
|
||||
NET_BUF *Node;
|
||||
|
||||
ASSERT (Tcb && Nbuf && (Nbuf->Tcp == NULL));
|
||||
@@ -574,9 +574,9 @@ TcpQueueData (
|
||||
// Fast path to process normal case. That is,
|
||||
// no out-of-order segments are received.
|
||||
//
|
||||
if (NetListIsEmpty (Head)) {
|
||||
if (IsListEmpty (Head)) {
|
||||
|
||||
NetListInsertTail (Head, &Nbuf->List);
|
||||
InsertTailList (Head, &Nbuf->List);
|
||||
return ;
|
||||
}
|
||||
|
||||
@@ -613,7 +613,7 @@ TcpQueueData (
|
||||
}
|
||||
}
|
||||
|
||||
NetListInsertHead (Prev, &Nbuf->List);
|
||||
InsertHeadList (Prev, &Nbuf->List);
|
||||
|
||||
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_ACK_NOW);
|
||||
|
||||
@@ -627,7 +627,7 @@ TcpQueueData (
|
||||
|
||||
Cur = Cur->ForwardLink;
|
||||
|
||||
NetListRemoveEntry (&Node->List);
|
||||
RemoveEntryList (&Node->List);
|
||||
NetbufFree (Node);
|
||||
continue;
|
||||
}
|
||||
@@ -636,7 +636,7 @@ TcpQueueData (
|
||||
|
||||
if (TCP_SEQ_LEQ (TCPSEG_NETBUF (Node)->Seq, Seg->Seq)) {
|
||||
|
||||
NetListRemoveEntry (&Nbuf->List);
|
||||
RemoveEntryList (&Nbuf->List);
|
||||
NetbufFree (Nbuf);
|
||||
return ;
|
||||
}
|
||||
@@ -665,8 +665,8 @@ TcpAdjustSndQue (
|
||||
IN TCP_SEQNO Ack
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Head;
|
||||
NET_LIST_ENTRY *Cur;
|
||||
LIST_ENTRY *Head;
|
||||
LIST_ENTRY *Cur;
|
||||
NET_BUF *Node;
|
||||
TCP_SEG *Seg;
|
||||
|
||||
@@ -687,7 +687,7 @@ TcpAdjustSndQue (
|
||||
if (TCP_SEQ_LEQ (Seg->End, Ack)) {
|
||||
Cur = Cur->ForwardLink;
|
||||
|
||||
NetListRemoveEntry (&Node->List);
|
||||
RemoveEntryList (&Node->List);
|
||||
NetbufFree (Node);
|
||||
continue;
|
||||
}
|
||||
@@ -738,7 +738,7 @@ TcpInput (
|
||||
if ((Head->HeadLen < 5) || (Len < 0) ||
|
||||
TcpChecksum (Nbuf, NetPseudoHeadChecksum (Src, Dst, 6, 0))) {
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpInput: received an mal-formated packet\n"));
|
||||
DEBUG ((EFI_D_INFO, "TcpInput: received an mal-formated packet\n"));
|
||||
goto DISCARD;
|
||||
}
|
||||
|
||||
@@ -759,7 +759,7 @@ TcpInput (
|
||||
);
|
||||
|
||||
if ((Tcb == NULL) || (Tcb->State == TCP_CLOSED)) {
|
||||
TCP4_DEBUG_TRACE (("TcpInput: send reset because no TCB find\n"));
|
||||
DEBUG ((EFI_D_INFO, "TcpInput: send reset because no TCB find\n"));
|
||||
|
||||
Tcb = NULL;
|
||||
goto SEND_RESET;
|
||||
@@ -772,7 +772,7 @@ TcpInput (
|
||||
// (in fact, an illegal option length) is reset.
|
||||
//
|
||||
if (TcpParseOption (Nbuf->Tcp, &Option) == -1) {
|
||||
TCP4_DEBUG_ERROR (("TcpInput: reset the peer because"
|
||||
DEBUG ((EFI_D_ERROR, "TcpInput: reset the peer because"
|
||||
" of mal-format option for Tcb %x\n", Tcb));
|
||||
|
||||
goto SEND_RESET;
|
||||
@@ -796,7 +796,7 @@ TcpInput (
|
||||
// First step: Check RST
|
||||
//
|
||||
if (TCP_FLG_ON (Seg->Flag, TCP_FLG_RST)) {
|
||||
TCP4_DEBUG_WARN (("TcpInput: discard a reset segment "
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: discard a reset segment "
|
||||
"for TCB %x in listening\n", Tcb));
|
||||
|
||||
goto DISCARD;
|
||||
@@ -807,7 +807,7 @@ TcpInput (
|
||||
// Any ACK sent to TCP in LISTEN is reseted.
|
||||
//
|
||||
if (TCP_FLG_ON (Seg->Flag, TCP_FLG_ACK)) {
|
||||
TCP4_DEBUG_WARN (("TcpInput: send reset because of"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: send reset because of"
|
||||
" segment with ACK for TCB %x in listening\n", Tcb));
|
||||
|
||||
goto SEND_RESET;
|
||||
@@ -824,13 +824,13 @@ TcpInput (
|
||||
|
||||
Tcb = TcpCloneTcb (Parent);
|
||||
if (Tcb == NULL) {
|
||||
TCP4_DEBUG_ERROR (("TcpInput: discard a segment because"
|
||||
DEBUG ((EFI_D_ERROR, "TcpInput: discard a segment because"
|
||||
"failed to clone a child for TCB%x\n", Tcb));
|
||||
|
||||
goto DISCARD;
|
||||
}
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpInput: create a child for TCB %x"
|
||||
DEBUG ((EFI_D_INFO, "TcpInput: create a child for TCB %x"
|
||||
" in listening\n", Tcb));
|
||||
|
||||
//
|
||||
@@ -859,7 +859,7 @@ TcpInput (
|
||||
//
|
||||
if (TCP_FLG_ON (Seg->Flag, TCP_FLG_ACK) && (Seg->Ack != Tcb->Iss + 1)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: send reset because of "
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: send reset because of "
|
||||
"wrong ACK received for TCB %x in SYN_SENT\n", Tcb));
|
||||
|
||||
goto SEND_RESET;
|
||||
@@ -872,14 +872,14 @@ TcpInput (
|
||||
|
||||
if (TCP_FLG_ON (Seg->Flag, TCP_FLG_ACK)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: connection reset by"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: connection reset by"
|
||||
" peer for TCB%x in SYN_SENT\n", Tcb));
|
||||
|
||||
SOCK_ERROR (Tcb->Sk, EFI_CONNECTION_RESET);
|
||||
goto DROP_CONNECTION;
|
||||
} else {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: discard a reset segment "
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: discard a reset segment "
|
||||
"because of no ACK for TCB%x in SYN_SENT\n", Tcb));
|
||||
|
||||
goto DISCARD;
|
||||
@@ -922,7 +922,7 @@ TcpInput (
|
||||
|
||||
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_ACK_NOW);
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpInput: connection established"
|
||||
DEBUG ((EFI_D_INFO, "TcpInput: connection established"
|
||||
" for TCB %x in SYN_SENT\n", Tcb));
|
||||
|
||||
goto StepSix;
|
||||
@@ -937,7 +937,7 @@ TcpInput (
|
||||
|
||||
TcpTrimInWnd (Tcb, Nbuf);
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: simultanous open "
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: simultanous open "
|
||||
"for TCB %x in SYN_SENT\n", Tcb));
|
||||
|
||||
goto StepSix;
|
||||
@@ -955,7 +955,7 @@ TcpInput (
|
||||
// First step: Check whether SEG.SEQ is acceptable
|
||||
//
|
||||
if (!TcpSeqAcceptable (Tcb, Seg)) {
|
||||
TCP4_DEBUG_WARN (("TcpInput: sequence acceptance"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: sequence acceptance"
|
||||
" test failed for segment of TCB %x\n", Tcb));
|
||||
|
||||
if (!TCP_FLG_ON (Seg->Flag, TCP_FLG_RST)) {
|
||||
@@ -977,7 +977,7 @@ TcpInput (
|
||||
//
|
||||
if (TCP_FLG_ON (Seg->Flag, TCP_FLG_RST)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: connection reset for TCB %x\n", Tcb));
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: connection reset for TCB %x\n", Tcb));
|
||||
|
||||
if (Tcb->State == TCP_SYN_RCVD) {
|
||||
|
||||
@@ -1020,7 +1020,7 @@ TcpInput (
|
||||
//
|
||||
if (TCP_FLG_ON (Seg->Flag, TCP_FLG_SYN)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: connection reset "
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: connection reset "
|
||||
"because received extra SYN for TCB %x\n", Tcb));
|
||||
|
||||
SOCK_ERROR (Tcb->Sk, EFI_CONNECTION_RESET);
|
||||
@@ -1031,7 +1031,7 @@ TcpInput (
|
||||
// Fifth step: Check the ACK
|
||||
//
|
||||
if (!TCP_FLG_ON (Seg->Flag, TCP_FLG_ACK)) {
|
||||
TCP4_DEBUG_WARN (("TcpInput: segment discard because"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: segment discard because"
|
||||
" of no ACK for connected TCB %x\n", Tcb));
|
||||
|
||||
goto DISCARD;
|
||||
@@ -1052,14 +1052,14 @@ TcpInput (
|
||||
TcpClearTimer (Tcb, TCP_TIMER_CONNECT);
|
||||
TcpDeliverData (Tcb);
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpInput: connection established "
|
||||
DEBUG ((EFI_D_INFO, "TcpInput: connection established "
|
||||
" for TCB %x in SYN_RCVD\n", Tcb));
|
||||
|
||||
//
|
||||
// Continue the process as ESTABLISHED state
|
||||
//
|
||||
} else {
|
||||
TCP4_DEBUG_WARN (("TcpInput: send reset because of"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: send reset because of"
|
||||
" wrong ACK for TCB %x in SYN_RCVD\n", Tcb));
|
||||
|
||||
goto SEND_RESET;
|
||||
@@ -1068,14 +1068,14 @@ TcpInput (
|
||||
|
||||
if (TCP_SEQ_LT (Seg->Ack, Tcb->SndUna)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: ignore the out-of-data"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: ignore the out-of-data"
|
||||
" ACK for connected TCB %x\n", Tcb));
|
||||
|
||||
goto StepSix;
|
||||
|
||||
} else if (TCP_SEQ_GT (Seg->Ack, Tcb->SndNxt)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: discard segment for "
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: discard segment for "
|
||||
"future ACK for connected TCB %x\n", Tcb));
|
||||
|
||||
TcpSendAck (Tcb);
|
||||
@@ -1186,7 +1186,7 @@ TcpInput (
|
||||
goto NO_UPDATE;
|
||||
}
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: peer shrinks the"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: peer shrinks the"
|
||||
" window for connected TCB %x\n", Tcb));
|
||||
|
||||
if ((Tcb->CongestState == TCP_CONGEST_RECOVER) &&
|
||||
@@ -1224,7 +1224,7 @@ NO_UPDATE:
|
||||
if (TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_FIN_SENT) &&
|
||||
(Tcb->SndUna == Tcb->SndNxt)) {
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpInput: local FIN is ACKed by"
|
||||
DEBUG ((EFI_D_INFO, "TcpInput: local FIN is ACKed by"
|
||||
" peer for connected TCB %x\n", Tcb));
|
||||
|
||||
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_FIN_ACKED);
|
||||
@@ -1264,7 +1264,7 @@ NO_UPDATE:
|
||||
TcpSetTimer (Tcb, TCP_TIMER_2MSL, Tcb->TimeWaitTimeout);
|
||||
} else {
|
||||
|
||||
TCP4_DEBUG_WARN (("Connection closed immediately "
|
||||
DEBUG ((EFI_D_WARN, "Connection closed immediately "
|
||||
"because app disables TIME_WAIT timer for %x\n", Tcb));
|
||||
|
||||
TcpClose (Tcb);
|
||||
@@ -1290,7 +1290,7 @@ NO_UPDATE:
|
||||
TcpSetTimer (Tcb, TCP_TIMER_2MSL, Tcb->TimeWaitTimeout);
|
||||
} else {
|
||||
|
||||
TCP4_DEBUG_WARN (("Connection closed immediately "
|
||||
DEBUG ((EFI_D_WARN, "Connection closed immediately "
|
||||
"because app disables TIME_WAIT timer for %x\n", Tcb));
|
||||
|
||||
TcpClose (Tcb);
|
||||
@@ -1315,7 +1315,7 @@ StepSix:
|
||||
if (TCP_FLG_ON (Seg->Flag, TCP_FLG_URG) &&
|
||||
!TCP_FIN_RCVD (Tcb->State)) {
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpInput: received urgent data "
|
||||
DEBUG ((EFI_D_INFO, "TcpInput: received urgent data "
|
||||
"from peer for connected TCB %x\n", Tcb));
|
||||
|
||||
Urg = Seg->Seq + Seg->Urg;
|
||||
@@ -1338,14 +1338,14 @@ StepSix:
|
||||
|
||||
if (TCP_FIN_RCVD (Tcb->State)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpInput: connection reset because"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: connection reset because"
|
||||
" data is lost for connected TCB %x\n", Tcb));
|
||||
|
||||
goto RESET_THEN_DROP;
|
||||
}
|
||||
|
||||
if (TCP_LOCAL_CLOSED (Tcb->State) && (Nbuf->TotalSize != 0)) {
|
||||
TCP4_DEBUG_WARN (("TcpInput: connection reset because"
|
||||
DEBUG ((EFI_D_WARN, "TcpInput: connection reset because"
|
||||
" data is lost for connected TCB %x\n", Tcb));
|
||||
|
||||
goto RESET_THEN_DROP;
|
||||
@@ -1356,7 +1356,7 @@ StepSix:
|
||||
goto RESET_THEN_DROP;
|
||||
}
|
||||
|
||||
if (!NetListIsEmpty (&Tcb->RcvQue)) {
|
||||
if (!IsListEmpty (&Tcb->RcvQue)) {
|
||||
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_ACK_NOW);
|
||||
}
|
||||
}
|
||||
@@ -1407,7 +1407,7 @@ DISCARD:
|
||||
//
|
||||
// Tcb is a child of Parent, and it doesn't survive
|
||||
//
|
||||
TCP4_DEBUG_WARN (("Tcp4Input: Discard a packet\n"));
|
||||
DEBUG ((EFI_D_WARN, "Tcp4Input: Discard a packet\n"));
|
||||
NetbufFree (Nbuf);
|
||||
|
||||
if (Parent && Tcb) {
|
||||
|
@@ -88,7 +88,7 @@ TcpSendIpPacket (
|
||||
IpSender = IpIoFindSender (&IpIo, Src);
|
||||
|
||||
if (IpSender == NULL) {
|
||||
TCP4_DEBUG_WARN (("TcpSendIpPacket: No appropriate IpSender.\n"));
|
||||
DEBUG ((EFI_D_WARN, "TcpSendIpPacket: No appropriate IpSender.\n"));
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
@@ -103,13 +103,13 @@ TcpSendIpPacket (
|
||||
Override.TimeToLive = 255;
|
||||
Override.DoNotFragment = FALSE;
|
||||
Override.Protocol = EFI_IP_PROTO_TCP;
|
||||
NetZeroMem (&Override.GatewayAddress, sizeof (EFI_IPv4_ADDRESS));
|
||||
NetCopyMem (&Override.SourceAddress, &Src, sizeof (EFI_IPv4_ADDRESS));
|
||||
ZeroMem (&Override.GatewayAddress, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (&Override.SourceAddress, &Src, sizeof (EFI_IPv4_ADDRESS));
|
||||
|
||||
Status = IpIoSend (IpIo, Nbuf, IpSender, NULL, NULL, Dest, &Override);
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
TCP4_DEBUG_ERROR (("TcpSendIpPacket: return %r error\n", Status));
|
||||
DEBUG ((EFI_D_ERROR, "TcpSendIpPacket: return %r error\n", Status));
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@@ -156,7 +156,7 @@ Tcp4Configure (
|
||||
//
|
||||
if (NULL != TcpConfigData) {
|
||||
|
||||
NetCopyMem (&Ip, &TcpConfigData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));
|
||||
CopyMem (&Ip, &TcpConfigData->AccessPoint.RemoteAddress, sizeof (IP4_ADDR));
|
||||
if ((Ip != 0) && !Ip4IsUnicast (NTOHL (Ip), 0)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
@@ -168,8 +168,8 @@ Tcp4Configure (
|
||||
|
||||
if (!TcpConfigData->AccessPoint.UseDefaultAddress) {
|
||||
|
||||
NetCopyMem (&Ip, &TcpConfigData->AccessPoint.StationAddress, sizeof (IP4_ADDR));
|
||||
NetCopyMem (&SubnetMask, &TcpConfigData->AccessPoint.SubnetMask, sizeof (IP4_ADDR));
|
||||
CopyMem (&Ip, &TcpConfigData->AccessPoint.StationAddress, sizeof (IP4_ADDR));
|
||||
CopyMem (&SubnetMask, &TcpConfigData->AccessPoint.SubnetMask, sizeof (IP4_ADDR));
|
||||
if (!Ip4IsUnicast (NTOHL (Ip), 0) || !IP4_IS_VALID_NETMASK (NTOHL (SubnetMask))) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
@@ -33,10 +33,6 @@ extern UINT16 mTcp4RandomPort;
|
||||
// Driver Produced Protocol Prototypes
|
||||
//
|
||||
|
||||
#define TCP4_DEBUG_ERROR(PrintArg) NET_DEBUG_ERROR ("Tcp", PrintArg)
|
||||
#define TCP4_DEBUG_WARN(PrintArg) NET_DEBUG_WARNING ("Tcp", PrintArg)
|
||||
#define TCP4_DEBUG_TRACE(PrintArg) NET_DEBUG_TRACE ("Tcp", PrintArg)
|
||||
|
||||
//
|
||||
// Function prototype for the Tcp4 socket request handler
|
||||
//
|
||||
|
@@ -25,12 +25,12 @@ Abstract:
|
||||
|
||||
#include <Library/DevicePathLib.h>
|
||||
|
||||
NET_LIST_ENTRY mTcpRunQue = {
|
||||
LIST_ENTRY mTcpRunQue = {
|
||||
&mTcpRunQue,
|
||||
&mTcpRunQue
|
||||
};
|
||||
|
||||
NET_LIST_ENTRY mTcpListenQue = {
|
||||
LIST_ENTRY mTcpListenQue = {
|
||||
&mTcpListenQue,
|
||||
&mTcpListenQue
|
||||
};
|
||||
@@ -193,7 +193,7 @@ TcpLocateListenTcb (
|
||||
IN TCP_PEER *Remote
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Entry;
|
||||
TCP_CB *Node;
|
||||
TCP_CB *Match;
|
||||
INTN Last;
|
||||
@@ -259,7 +259,7 @@ TcpFindTcbByPeer (
|
||||
)
|
||||
{
|
||||
TCP_PORTNO LocalPort;
|
||||
NET_LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Entry;
|
||||
TCP_CB *Tcb;
|
||||
|
||||
ASSERT ((Addr != NULL) && (Port != 0));
|
||||
@@ -314,7 +314,7 @@ TcpLocateTcb (
|
||||
{
|
||||
TCP_PEER Local;
|
||||
TCP_PEER Remote;
|
||||
NET_LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Entry;
|
||||
TCP_CB *Tcb;
|
||||
|
||||
Local.Port = LocalPort;
|
||||
@@ -332,8 +332,8 @@ TcpLocateTcb (
|
||||
if (TCP_PEER_EQUAL (&Remote, &Tcb->RemoteEnd) &&
|
||||
TCP_PEER_EQUAL (&Local, &Tcb->LocalEnd)) {
|
||||
|
||||
NetListRemoveEntry (&Tcb->List);
|
||||
NetListInsertHead (&mTcpRunQue, &Tcb->List);
|
||||
RemoveEntryList (&Tcb->List);
|
||||
InsertHeadList (&mTcpRunQue, &Tcb->List);
|
||||
|
||||
return Tcb;
|
||||
}
|
||||
@@ -364,8 +364,8 @@ TcpInsertTcb (
|
||||
IN TCP_CB *Tcb
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Entry;
|
||||
NET_LIST_ENTRY *Head;
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Head;
|
||||
TCP_CB *Node;
|
||||
TCP4_PROTO_DATA *TcpProto;
|
||||
|
||||
@@ -402,7 +402,7 @@ TcpInsertTcb (
|
||||
}
|
||||
}
|
||||
|
||||
NetListInsertHead (Head, &Tcb->List);
|
||||
InsertHeadList (Head, &Tcb->List);
|
||||
|
||||
TcpProto = (TCP4_PROTO_DATA *) Tcb->Sk->ProtoReserved;
|
||||
TcpSetVariableData (TcpProto->TcpService);
|
||||
@@ -426,28 +426,28 @@ TcpCloneTcb (
|
||||
{
|
||||
TCP_CB *Clone;
|
||||
|
||||
Clone = NetAllocatePool (sizeof (TCP_CB));
|
||||
Clone = AllocatePool (sizeof (TCP_CB));
|
||||
|
||||
if (Clone == NULL) {
|
||||
return NULL;
|
||||
|
||||
}
|
||||
|
||||
NetCopyMem (Clone, Tcb, sizeof (TCP_CB));
|
||||
CopyMem (Clone, Tcb, sizeof (TCP_CB));
|
||||
|
||||
//
|
||||
// Increate the reference count of the shared IpInfo.
|
||||
//
|
||||
NET_GET_REF (Tcb->IpInfo);
|
||||
|
||||
NetListInit (&Clone->List);
|
||||
NetListInit (&Clone->SndQue);
|
||||
NetListInit (&Clone->RcvQue);
|
||||
InitializeListHead (&Clone->List);
|
||||
InitializeListHead (&Clone->SndQue);
|
||||
InitializeListHead (&Clone->RcvQue);
|
||||
|
||||
Clone->Sk = SockClone (Tcb->Sk);
|
||||
if (Clone->Sk == NULL) {
|
||||
TCP4_DEBUG_ERROR (("TcpCloneTcb: failed to clone a sock\n"));
|
||||
NetFreePool (Clone);
|
||||
DEBUG ((EFI_D_ERROR, "TcpCloneTcb: failed to clone a sock\n"));
|
||||
gBS->FreePool (Clone);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -519,8 +519,9 @@ TcpSetState (
|
||||
IN UINT8 State
|
||||
)
|
||||
{
|
||||
TCP4_DEBUG_TRACE (
|
||||
("Tcb (%x) state %s --> %s\n",
|
||||
DEBUG (
|
||||
(EFI_D_INFO,
|
||||
"Tcb (%x) state %s --> %s\n",
|
||||
Tcb,
|
||||
mTcpStateName[Tcb->State],
|
||||
mTcpStateName[State])
|
||||
@@ -722,9 +723,9 @@ TcpOnAppClose (
|
||||
{
|
||||
ASSERT (Tcb);
|
||||
|
||||
if (!NetListIsEmpty (&Tcb->RcvQue) || GET_RCV_DATASIZE (Tcb->Sk)) {
|
||||
if (!IsListEmpty (&Tcb->RcvQue) || GET_RCV_DATASIZE (Tcb->Sk)) {
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpOnAppClose: connection reset "
|
||||
DEBUG ((EFI_D_WARN, "TcpOnAppClose: connection reset "
|
||||
"because data is lost for TCB %x\n", Tcb));
|
||||
|
||||
TcpResetConnection (Tcb);
|
||||
@@ -839,13 +840,13 @@ TcpOnAppConsume (
|
||||
|
||||
if (TcpOld < Tcb->RcvMss) {
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpOnAppConsume: send a window"
|
||||
DEBUG ((EFI_D_INFO, "TcpOnAppConsume: send a window"
|
||||
" update for a window closed Tcb(%x)\n", Tcb));
|
||||
|
||||
TcpSendAck (Tcb);
|
||||
} else if (Tcb->DelayedAck == 0) {
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpOnAppConsume: scheduled a delayed"
|
||||
DEBUG ((EFI_D_INFO, "TcpOnAppConsume: scheduled a delayed"
|
||||
" ACK to update window for Tcb(%x)\n", Tcb));
|
||||
|
||||
Tcb->DelayedAck = 1;
|
||||
@@ -885,7 +886,7 @@ TcpOnAppAbort (
|
||||
IN TCP_CB *Tcb
|
||||
)
|
||||
{
|
||||
TCP4_DEBUG_WARN (("TcpOnAppAbort: connection reset "
|
||||
DEBUG ((EFI_D_WARN, "TcpOnAppAbort: connection reset "
|
||||
"issued by application for TCB %x\n", Tcb));
|
||||
|
||||
switch (Tcb->State) {
|
||||
@@ -917,7 +918,7 @@ TcpSetVariableData (
|
||||
)
|
||||
{
|
||||
UINT32 NumConfiguredInstance;
|
||||
NET_LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Entry;
|
||||
TCP_CB *TcpPcb;
|
||||
TCP4_PROTO_DATA *TcpProto;
|
||||
UINTN VariableDataSize;
|
||||
@@ -971,7 +972,7 @@ TcpSetVariableData (
|
||||
VariableDataSize += sizeof (EFI_TCP4_SERVICE_POINT) * (NumConfiguredInstance - 1);
|
||||
}
|
||||
|
||||
Tcp4VariableData = NetAllocatePool (VariableDataSize);
|
||||
Tcp4VariableData = AllocatePool (VariableDataSize);
|
||||
if (Tcp4VariableData == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
@@ -994,9 +995,9 @@ TcpSetVariableData (
|
||||
// This tcp instance belongs to the Tcp4Service.
|
||||
//
|
||||
Tcp4ServicePoint->InstanceHandle = TcpPcb->Sk->SockHandle;
|
||||
NetCopyMem (&Tcp4ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (&Tcp4ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
Tcp4ServicePoint->LocalPort = NTOHS (TcpPcb->LocalEnd.Port);
|
||||
NetCopyMem (&Tcp4ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (&Tcp4ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
Tcp4ServicePoint->RemotePort = NTOHS (TcpPcb->RemoteEnd.Port);
|
||||
|
||||
Tcp4ServicePoint++;
|
||||
@@ -1016,9 +1017,9 @@ TcpSetVariableData (
|
||||
// This tcp instance belongs to the Tcp4Service.
|
||||
//
|
||||
Tcp4ServicePoint->InstanceHandle = TcpPcb->Sk->SockHandle;
|
||||
NetCopyMem (&Tcp4ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (&Tcp4ServicePoint->LocalAddress, &TcpPcb->LocalEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
Tcp4ServicePoint->LocalPort = NTOHS (TcpPcb->LocalEnd.Port);
|
||||
NetCopyMem (&Tcp4ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (&Tcp4ServicePoint->RemoteAddress, &TcpPcb->RemoteEnd.Ip, sizeof (EFI_IPv4_ADDRESS));
|
||||
Tcp4ServicePoint->RemotePort = NTOHS (TcpPcb->RemoteEnd.Port);
|
||||
|
||||
Tcp4ServicePoint++;
|
||||
@@ -1054,7 +1055,7 @@ TcpSetVariableData (
|
||||
);
|
||||
}
|
||||
|
||||
NetFreePool (Tcp4Service->MacString);
|
||||
gBS->FreePool (Tcp4Service->MacString);
|
||||
}
|
||||
|
||||
Tcp4Service->MacString = NewMacString;
|
||||
@@ -1069,7 +1070,7 @@ TcpSetVariableData (
|
||||
|
||||
ON_ERROR:
|
||||
|
||||
NetFreePool (Tcp4VariableData);
|
||||
gBS->FreePool (Tcp4VariableData);
|
||||
|
||||
return Status;
|
||||
}
|
||||
@@ -1098,7 +1099,7 @@ TcpClearVariableData (
|
||||
NULL
|
||||
);
|
||||
|
||||
NetFreePool (Tcp4Service->MacString);
|
||||
gBS->FreePool (Tcp4Service->MacString);
|
||||
Tcp4Service->MacString = NULL;
|
||||
}
|
||||
|
||||
@@ -1159,7 +1160,7 @@ Returns:
|
||||
Sock->DevicePath
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
NetFreePool (Sock->DevicePath);
|
||||
gBS->FreePool (Sock->DevicePath);
|
||||
}
|
||||
|
||||
return Status;
|
||||
|
@@ -29,7 +29,7 @@ TcpGetUint16 (
|
||||
)
|
||||
{
|
||||
UINT16 Value;
|
||||
NetCopyMem (&Value, Buf, sizeof (UINT16));
|
||||
CopyMem (&Value, Buf, sizeof (UINT16));
|
||||
return NTOHS (Value);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ TcpPutUint16 (
|
||||
)
|
||||
{
|
||||
Data = HTONS (Data);
|
||||
NetCopyMem (Buf, &Data, sizeof (UINT16));
|
||||
CopyMem (Buf, &Data, sizeof (UINT16));
|
||||
}
|
||||
|
||||
STATIC
|
||||
@@ -51,7 +51,7 @@ TcpGetUint32 (
|
||||
)
|
||||
{
|
||||
UINT32 Value;
|
||||
NetCopyMem (&Value, Buf, sizeof (UINT32));
|
||||
CopyMem (&Value, Buf, sizeof (UINT32));
|
||||
return NTOHL (Value);
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ TcpPutUint32 (
|
||||
)
|
||||
{
|
||||
Data = HTONL (Data);
|
||||
NetCopyMem (Buf, &Data, sizeof (UINT32));
|
||||
CopyMem (Buf, &Data, sizeof (UINT32));
|
||||
}
|
||||
|
||||
|
||||
|
@@ -162,10 +162,10 @@ TcpGetMaxSndNxt (
|
||||
IN TCP_CB *Tcb
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Entry;
|
||||
NET_BUF *Nbuf;
|
||||
|
||||
if (NetListIsEmpty (&Tcb->SndQue)) {
|
||||
if (IsListEmpty (&Tcb->SndQue)) {
|
||||
return Tcb->SndNxt;
|
||||
}
|
||||
|
||||
@@ -271,8 +271,9 @@ TcpDataToSend (
|
||||
SetPersistTimer:
|
||||
if (!TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_REXMIT)) {
|
||||
|
||||
TCP4_DEBUG_WARN (
|
||||
("TcpDataToSend: enter persistent state for TCB %x\n",
|
||||
DEBUG (
|
||||
(EFI_D_WARN,
|
||||
"TcpDataToSend: enter persistent state for TCB %x\n",
|
||||
Tcb)
|
||||
);
|
||||
|
||||
@@ -425,8 +426,8 @@ TcpGetSegmentSndQue (
|
||||
IN UINT32 Len
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Head;
|
||||
NET_LIST_ENTRY *Cur;
|
||||
LIST_ENTRY *Head;
|
||||
LIST_ENTRY *Cur;
|
||||
NET_BUF *Node;
|
||||
TCP_SEG *Seg;
|
||||
NET_BUF *Nbuf;
|
||||
@@ -538,7 +539,7 @@ TcpGetSegmentSndQue (
|
||||
}
|
||||
}
|
||||
|
||||
NetCopyMem (TCPSEG_NETBUF (Nbuf), Seg, sizeof (TCP_SEG));
|
||||
CopyMem (TCPSEG_NETBUF (Nbuf), Seg, sizeof (TCP_SEG));
|
||||
|
||||
TCPSEG_NETBUF (Nbuf)->Seq = Seq;
|
||||
TCPSEG_NETBUF (Nbuf)->End = End;
|
||||
@@ -578,7 +579,7 @@ TcpGetSegmentSock (
|
||||
Nbuf = NetbufAlloc (Len + TCP_MAX_HEAD);
|
||||
|
||||
if (Nbuf == NULL) {
|
||||
TCP4_DEBUG_ERROR (("TcpGetSegmentSock: failed to allocate "
|
||||
DEBUG ((EFI_D_ERROR, "TcpGetSegmentSock: failed to allocate "
|
||||
"a netbuf for TCB %x\n",Tcb));
|
||||
|
||||
return NULL;
|
||||
@@ -603,7 +604,7 @@ TcpGetSegmentSock (
|
||||
TCPSEG_NETBUF (Nbuf)->Seq = Seq;
|
||||
TCPSEG_NETBUF (Nbuf)->End = Seq + Len;
|
||||
|
||||
NetListInsertTail (&(Tcb->SndQue), &(Nbuf->List));
|
||||
InsertTailList (&(Tcb->SndQue), &(Nbuf->List));
|
||||
|
||||
if (DataGet != 0) {
|
||||
|
||||
@@ -679,7 +680,7 @@ TcpRetransmit (
|
||||
// 3. will not change the boundaries of queued segments.
|
||||
//
|
||||
if (TCP_SEQ_LT (Tcb->SndWl2 + Tcb->SndWnd, Seq)) {
|
||||
TCP4_DEBUG_WARN (("TcpRetransmit: retransmission cancelled "
|
||||
DEBUG ((EFI_D_WARN, "TcpRetransmit: retransmission cancelled "
|
||||
"because send window too small for TCB %x\n", Tcb));
|
||||
|
||||
return 0;
|
||||
@@ -780,8 +781,9 @@ SEND_AGAIN:
|
||||
Nbuf = TcpGetSegment (Tcb, Seq, Len);
|
||||
|
||||
if (Nbuf == NULL) {
|
||||
TCP4_DEBUG_ERROR (
|
||||
("TcpToSendData: failed to get a segment for TCB %x\n",
|
||||
DEBUG (
|
||||
(EFI_D_ERROR,
|
||||
"TcpToSendData: failed to get a segment for TCB %x\n",
|
||||
Tcb)
|
||||
);
|
||||
|
||||
@@ -809,7 +811,7 @@ SEND_AGAIN:
|
||||
TCP_SEQ_LT (End + 1, Tcb->SndWnd + Tcb->SndWl2)
|
||||
) {
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpToSendData: send FIN "
|
||||
DEBUG ((EFI_D_INFO, "TcpToSendData: send FIN "
|
||||
"to peer for TCB %x in state %d\n", Tcb, Tcb->State));
|
||||
|
||||
End++;
|
||||
@@ -829,7 +831,7 @@ SEND_AGAIN:
|
||||
// don't send an empty segment here.
|
||||
//
|
||||
if (Seg->End == Seg->Seq) {
|
||||
TCP4_DEBUG_WARN (("TcpToSendData: created a empty"
|
||||
DEBUG ((EFI_D_WARN, "TcpToSendData: created a empty"
|
||||
" segment for TCB %x, free it now\n", Tcb));
|
||||
|
||||
NetbufFree (Nbuf);
|
||||
@@ -886,7 +888,7 @@ SEND_AGAIN:
|
||||
if ((Tcb->CongestState == TCP_CONGEST_OPEN) &&
|
||||
!TCP_FLG_ON (Tcb->CtrlFlag, TCP_CTRL_RTT_ON)) {
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpToSendData: set RTT measure "
|
||||
DEBUG ((EFI_D_INFO, "TcpToSendData: set RTT measure "
|
||||
"sequence %d for TCB %x\n", Seq, Tcb));
|
||||
|
||||
TCP_SET_FLG (Tcb->CtrlFlag, TCP_CTRL_RTT_ON);
|
||||
@@ -1020,7 +1022,7 @@ TcpToSendAck (
|
||||
return;
|
||||
}
|
||||
|
||||
TCP4_DEBUG_TRACE (("TcpToSendAck: scheduled a delayed"
|
||||
DEBUG ((EFI_D_INFO, "TcpToSendAck: scheduled a delayed"
|
||||
" ACK for TCB %x\n", Tcb));
|
||||
|
||||
//
|
||||
@@ -1182,14 +1184,14 @@ TcpVerifySegment (
|
||||
**/
|
||||
INTN
|
||||
TcpCheckSndQue (
|
||||
IN NET_LIST_ENTRY *Head
|
||||
IN LIST_ENTRY *Head
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Entry;
|
||||
NET_BUF *Nbuf;
|
||||
TCP_SEQNO Seq;
|
||||
|
||||
if (NetListIsEmpty (Head)) {
|
||||
if (IsListEmpty (Head)) {
|
||||
return 1;
|
||||
}
|
||||
//
|
||||
|
@@ -166,15 +166,15 @@ typedef struct _TCP_PEER {
|
||||
// tcp control block, it includes various states
|
||||
//
|
||||
struct _TCP_CB {
|
||||
NET_LIST_ENTRY List;
|
||||
LIST_ENTRY List;
|
||||
TCP_CB *Parent;
|
||||
|
||||
SOCKET *Sk;
|
||||
TCP_PEER LocalEnd;
|
||||
TCP_PEER RemoteEnd;
|
||||
|
||||
NET_LIST_ENTRY SndQue; // retxmission queue
|
||||
NET_LIST_ENTRY RcvQue; // reassemble queue
|
||||
LIST_ENTRY SndQue; // retxmission queue
|
||||
LIST_ENTRY RcvQue; // reassemble queue
|
||||
UINT32 CtrlFlag; // control flags, such as NO_NAGLE
|
||||
INT32 Error; // soft error status,TCP_CONNECT_RESET...
|
||||
|
||||
@@ -271,8 +271,8 @@ struct _TCP_CB {
|
||||
IP_IO_IP_INFO *IpInfo;
|
||||
};
|
||||
|
||||
extern NET_LIST_ENTRY mTcpRunQue;
|
||||
extern NET_LIST_ENTRY mTcpListenQue;
|
||||
extern LIST_ENTRY mTcpRunQue;
|
||||
extern LIST_ENTRY mTcpListenQue;
|
||||
extern TCP_SEQNO mTcpGlobalIss;
|
||||
extern UINT32 mTcpTick;
|
||||
|
||||
|
@@ -105,7 +105,7 @@ TcpConnectTimeout (
|
||||
)
|
||||
{
|
||||
if (!TCP_CONNECTED (Tcb->State)) {
|
||||
TCP4_DEBUG_ERROR (("TcpConnectTimeout: connection closed "
|
||||
DEBUG ((EFI_D_ERROR, "TcpConnectTimeout: connection closed "
|
||||
"because conenction timer timeout for TCB %x\n", Tcb));
|
||||
|
||||
if (EFI_ABORTED == Tcb->Sk->SockError) {
|
||||
@@ -113,7 +113,7 @@ TcpConnectTimeout (
|
||||
}
|
||||
|
||||
if (TCP_SYN_RCVD == Tcb->State) {
|
||||
TCP4_DEBUG_WARN (("TcpConnectTimeout: send reset because "
|
||||
DEBUG ((EFI_D_WARN, "TcpConnectTimeout: send reset because "
|
||||
"connection timer timeout for TCB %x\n", Tcb));
|
||||
|
||||
TcpResetConnection (Tcb);
|
||||
@@ -141,7 +141,7 @@ TcpRexmitTimeout (
|
||||
{
|
||||
UINT32 FlightSize;
|
||||
|
||||
TCP4_DEBUG_WARN (("TcpRexmitTimeout: transmission "
|
||||
DEBUG ((EFI_D_WARN, "TcpRexmitTimeout: transmission "
|
||||
"timeout for TCB %x\n", Tcb));
|
||||
|
||||
//
|
||||
@@ -159,7 +159,7 @@ TcpRexmitTimeout (
|
||||
if (Tcb->LossTimes > Tcb->MaxRexmit &&
|
||||
!TCP_TIMER_ON (Tcb->EnabledTimer, TCP_TIMER_CONNECT)) {
|
||||
|
||||
TCP4_DEBUG_ERROR (("TcpRexmitTimeout: connection closed "
|
||||
DEBUG ((EFI_D_ERROR, "TcpRexmitTimeout: connection closed "
|
||||
"because too many timeouts for TCB %x\n", Tcb));
|
||||
|
||||
if (EFI_ABORTED == Tcb->Sk->SockError) {
|
||||
@@ -259,7 +259,7 @@ TcpFinwait2Timeout (
|
||||
IN TCP_CB *Tcb
|
||||
)
|
||||
{
|
||||
TCP4_DEBUG_WARN (("TcpFinwait2Timeout: connection closed "
|
||||
DEBUG ((EFI_D_WARN, "TcpFinwait2Timeout: connection closed "
|
||||
"because FIN_WAIT2 timer timeouts for TCB %x\n", Tcb));
|
||||
|
||||
TcpClose (Tcb);
|
||||
@@ -280,7 +280,7 @@ Tcp2MSLTimeout (
|
||||
IN TCP_CB *Tcb
|
||||
)
|
||||
{
|
||||
TCP4_DEBUG_WARN (("Tcp2MSLTimeout: connection closed "
|
||||
DEBUG ((EFI_D_WARN, "Tcp2MSLTimeout: connection closed "
|
||||
"because TIME_WAIT timer timeouts for TCB %x\n", Tcb));
|
||||
|
||||
TcpClose (Tcb);
|
||||
@@ -505,8 +505,8 @@ TcpTickingDpc (
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
NET_LIST_ENTRY *Entry;
|
||||
NET_LIST_ENTRY *Next;
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *Next;
|
||||
TCP_CB *Tcb;
|
||||
INT16 Index;
|
||||
|
||||
|
Reference in New Issue
Block a user