Lines Matching defs:Sock

40   @param  Sock                  Pointer to the socket.
45 IN OUT SOCKET *Sock
150 @param Sock Pointer to the socket.
158 IN SOCKET *Sock,
185 Sock->RcvBuffer.DataQueue,
201 @param Sock Pointer to the socket.
209 IN SOCKET *Sock,
217 ASSERT (Sock != NULL);
219 ASSERT (SockStream == Sock->Type);
224 &Sock->RcvBuffer,
233 SockSetTcpRxData (Sock, RxData, TokenRcvdBytes, IsUrg);
235 NetbufQueTrim (Sock->RcvBuffer.DataQueue, TokenRcvdBytes);
246 @param Sock Pointer to the socket.
255 IN SOCKET *Sock,
267 // and insert it into Sock->SndBuffer
285 NetbufQueAppend (Sock->SndBuffer.DataQueue, SndData);
291 Status = Sock->ProtoHandler (Sock, SOCK_SNDURG, NULL);
299 Status = Sock->ProtoHandler (Sock, SOCK_SNDPUSH, NULL);
310 Status = Sock->ProtoHandler (Sock, SOCK_SND, NULL);
323 @param Sock Pointer to the socket.
329 IN SOCKET *Sock,
336 ASSERT ((Sock != NULL) && (PendingTokenList != NULL));
346 SIGNAL_TOKEN (Token, Sock->SockError);
358 @param Sock Pointer to the socket.
363 IN OUT SOCKET *Sock
366 ASSERT (Sock->ConnectionToken != NULL);
368 SIGNAL_TOKEN (Sock->ConnectionToken, EFI_SUCCESS);
369 Sock->ConnectionToken = NULL;
374 SockProcessSndToken (Sock);
382 @param Sock Pointer to the socket.
387 IN OUT SOCKET *Sock
394 Parent = Sock->Parent;
396 ASSERT ((Parent != NULL) && SOCK_IS_LISTENING (Parent) && SOCK_IS_CONNECTED (Sock));
406 ListenToken->NewChildHandle = Sock->SockHandle;
413 RemoveEntryList (&Sock->ConnectionList);
418 Sock->Parent = NULL;
426 @param Sock Pointer to the socket.
431 IN SOCKET *Sock
439 ASSERT (Sock->RcvBuffer.DataQueue != NULL);
441 RcvdBytes = (Sock->RcvBuffer.DataQueue)->BufSize;
445 while (RcvdBytes > 0 && !IsListEmpty (&Sock->RcvTokenList)) {
448 &Sock->RcvTokenList,
454 TokenRcvdBytes = SockProcessRcvToken (Sock, RcvToken);
470 @param Sock Pointer to the socket.
475 IN OUT SOCKET *Sock
485 ASSERT ((Sock != NULL) && (SockStream == Sock->Type));
487 FreeSpace = SockGetFreeSpace (Sock, SOCK_SND_BUF);
493 while ((FreeSpace >= Sock->SndBuffer.LowWater) &&
494 !IsListEmpty (&Sock->SndTokenList)) {
497 &(Sock->SndTokenList),
507 &(Sock->ProcessingSndTokenList),
518 Status = SockProcessTcpSndData (Sock, TxData);
556 SOCKET *Sock;
578 Sock = AllocateZeroPool (sizeof (SOCKET));
579 if (NULL == Sock) {
585 InitializeListHead (&Sock->Link);
586 InitializeListHead (&Sock->ConnectionList);
587 InitializeListHead (&Sock->ListenTokenList);
588 InitializeListHead (&Sock->RcvTokenList);
589 InitializeListHead (&Sock->SndTokenList);
590 InitializeListHead (&Sock->ProcessingSndTokenList);
592 EfiInitializeLock (&(Sock->Lock), TPL_CALLBACK);
594 Sock->SndBuffer.DataQueue = NetbufQueAlloc ();
595 if (NULL == Sock->SndBuffer.DataQueue) {
602 Sock->RcvBuffer.DataQueue = NetbufQueAlloc ();
603 if (NULL == Sock->RcvBuffer.DataQueue) {
610 Sock->Signature = SOCK_SIGNATURE;
612 Sock->Parent = Parent;
613 Sock->BackLog = SockInitData->BackLog;
614 Sock->ProtoHandler = SockInitData->ProtoHandler;
615 Sock->SndBuffer.HighWater = SockInitData->SndBufferSize;
616 Sock->RcvBuffer.HighWater = SockInitData->RcvBufferSize;
617 Sock->Type = SockInitData->Type;
618 Sock->DriverBinding = SockInitData->DriverBinding;
619 Sock->State = SockInitData->State;
620 Sock->CreateCallback = SockInitData->CreateCallback;
621 Sock->DestroyCallback = SockInitData->DestroyCallback;
622 Sock->Context = SockInitData->Context;
624 Sock->SockError = EFI_ABORTED;
625 Sock->SndBuffer.LowWater = SOCK_BUFF_LOW_WATER;
626 Sock->RcvBuffer.LowWater = SOCK_BUFF_LOW_WATER;
629 // Install protocol on Sock->SockHandle
632 &(Sock->NetProtocol.TcpProtocol),
640 CopyMem (Sock->ProtoReserved, SockInitData->ProtoData, SockInitData->DataSize);
643 &Sock->SockHandle,
645 &(Sock->NetProtocol.TcpProtocol),
672 InsertTailList (&Parent->ConnectionList, &Sock->ConnectionList);
675 if (Sock->CreateCallback != NULL) {
676 Status = Sock->CreateCallback (Sock, Sock->Context);
682 return Sock;
686 if (Sock->SockHandle != NULL) {
688 Sock->SockHandle,
690 &(Sock->NetProtocol.TcpProtocol),
695 if (NULL != Sock->SndBuffer.DataQueue) {
696 NetbufQueFree (Sock->SndBuffer.DataQueue);
699 if (NULL != Sock->RcvBuffer.DataQueue) {
700 NetbufQueFree (Sock->RcvBuffer.DataQueue);
703 FreePool (Sock);
712 @param Sock Pointer to the socket.
717 IN OUT SOCKET *Sock
724 ASSERT (SockStream == Sock->Type);
726 if (Sock->DestroyCallback != NULL) {
727 Sock->DestroyCallback (Sock, Sock->Context);
734 if (!SOCK_IS_UNCONFIGURED (Sock)) {
736 SockConnFlush (Sock);
737 SockSetState (Sock, SO_CLOSED);
738 Sock->ConfigureState = SO_UNCONFIGURED;
744 NetbufQueFree (Sock->RcvBuffer.DataQueue);
745 NetbufQueFree (Sock->SndBuffer.DataQueue);
750 if (Sock->Parent != NULL) {
752 RemoveEntryList (&(Sock->ConnectionList));
753 (Sock->Parent->ConnCnt)--;
759 Sock->Parent->ConnCnt)
762 Sock->Parent = NULL;
767 // in the light of Sock->SockType
775 Sock->SockHandle,
778 Sock->DriverBinding,
779 Sock->SockHandle,
793 // in the light of Sock->SockType
796 Sock->SockHandle,
803 FreePool (Sock);
811 @param Sock Pointer to the socket.
816 IN OUT SOCKET *Sock
821 ASSERT (Sock != NULL);
826 Sock->Flag = 0;
829 // Flush the SndBuffer and RcvBuffer of Sock
831 NetbufQueFlush (Sock->SndBuffer.DataQueue);
832 NetbufQueFlush (Sock->RcvBuffer.DataQueue);
837 if (Sock->ConnectionToken != NULL) {
838 SIGNAL_TOKEN (Sock->ConnectionToken, Sock->SockError);
839 Sock->ConnectionToken = NULL;
842 if (Sock->CloseToken != NULL) {
843 SIGNAL_TOKEN (Sock->CloseToken, Sock->SockError);
844 Sock->CloseToken = NULL;
847 SockFlushPendingToken (Sock, &(Sock->ListenTokenList));
848 SockFlushPendingToken (Sock, &(Sock->RcvTokenList));
849 SockFlushPendingToken (Sock, &(Sock->SndTokenList));
850 SockFlushPendingToken (Sock, &(Sock->ProcessingSndTokenList));
855 if (SOCK_IS_LISTENING (Sock)) {
856 while (!IsListEmpty (&Sock->ConnectionList)) {
858 &Sock->ConnectionList,
866 Sock->ConnCnt = 0;
876 @param Sock Pointer to the socket.
882 IN OUT SOCKET *Sock,
886 Sock->State = State;
893 @param Sock Pointer to the socket to be cloned.
900 IN SOCKET *Sock
906 InitData.BackLog = Sock->BackLog;
907 InitData.Parent = Sock;
908 InitData.State = Sock->State;
909 InitData.ProtoHandler = Sock->ProtoHandler;
910 InitData.Type = Sock->Type;
911 InitData.RcvBufferSize = Sock->RcvBuffer.HighWater;
912 InitData.SndBufferSize = Sock->SndBuffer.HighWater;
913 InitData.DriverBinding = Sock->DriverBinding;
914 InitData.Protocol = &(Sock->NetProtocol);
915 InitData.CreateCallback = Sock->CreateCallback;
916 InitData.DestroyCallback = Sock->DestroyCallback;
917 InitData.Context = Sock->Context;
918 InitData.ProtoData = Sock->ProtoReserved;
919 InitData.DataSize = sizeof (Sock->ProtoReserved);
929 ClonedSock->ConfigureState = Sock->ConfigureState;
942 @param Sock Pointer to the socket associated with the
947 IN SOCKET *Sock
951 ASSERT (SO_CONNECTING == Sock->State);
953 SockSetState (Sock, SO_CONNECTED);
955 if (NULL == Sock->Parent) {
956 SockWakeConnToken (Sock);
958 SockWakeListenToken (Sock);
971 @param Sock Pointer to the socket associated with the closed
977 IN OUT SOCKET *Sock
980 if (Sock->CloseToken != NULL) {
981 SIGNAL_TOKEN (Sock->CloseToken, EFI_SUCCESS);
982 Sock->CloseToken = NULL;
985 SockConnFlush (Sock);
986 SockSetState (Sock, SO_CLOSED);
988 if (Sock->Parent != NULL) {
989 SockDestroyChild (Sock);
1001 @param Sock Pointer to the socket.
1007 IN SOCKET *Sock,
1014 ASSERT (!IsListEmpty (&Sock->ProcessingSndTokenList));
1015 ASSERT (Count <= (Sock->SndBuffer.DataQueue)->BufSize);
1017 NetbufQueTrim (Sock->SndBuffer.DataQueue, Count);
1024 &(Sock->ProcessingSndTokenList),
1046 // Sock->SndTokenList, if so process those send token
1048 SockProcessSndToken (Sock);
1058 @param Sock Pointer to the socket.
1068 IN SOCKET *Sock,
1074 ASSERT ((Sock != NULL) && SockStream == Sock->Type);
1077 Sock->SndBuffer.DataQueue,
1091 @param Sock Pointer to the socket.
1099 IN SOCKET *Sock,
1104 ASSERT ((Sock != NULL) && (Sock->RcvBuffer.DataQueue != NULL) &&
1111 NetbufQueAppend (Sock->RcvBuffer.DataQueue, NetBuffer);
1113 SockWakeRcvToken (Sock);
1121 @param Sock Pointer to the socket.
1130 IN SOCKET *Sock,
1137 ASSERT ((Sock != NULL) && ((SOCK_SND_BUF == Which) || (SOCK_RCV_BUF == Which)));
1140 SockBuffer = &(Sock->SndBuffer);
1142 SockBuffer = &(Sock->RcvBuffer);
1160 @param Sock Pointer to the socket.
1166 IN OUT SOCKET *Sock,
1172 if (!IsListEmpty (&Sock->RcvTokenList)) {
1175 &Sock->RcvTokenList,
1187 SOCK_ERROR (Sock, Error);
1199 @param Sock Pointer to the socket.
1204 IN OUT SOCKET *Sock
1209 SOCK_NO_MORE_DATA (Sock);
1211 if (!IsListEmpty (&Sock->RcvTokenList)) {
1213 ASSERT (0 == GET_RCV_DATASIZE (Sock));
1215 Err = Sock->SockError;
1217 SOCK_ERROR (Sock, EFI_CONNECTION_FIN);
1219 SockFlushPendingToken (Sock, &Sock->RcvTokenList);
1221 SOCK_ERROR (Sock, Err);