Lines Matching defs:Sock

185   @param[in]  Sock        Pointer to the socket.
193 IN SOCKET *Sock,
223 Sock->RcvBuffer.DataQueue,
238 @param[in, out] Sock Pointer to the socket.
243 IN OUT SOCKET *Sock
253 ASSERT ((Sock != NULL) && (SockStream == Sock->Type));
255 FreeSpace = SockGetFreeSpace (Sock, SOCK_SND_BUF);
261 while ((FreeSpace >= Sock->SndBuffer.LowWater) && !IsListEmpty (&Sock->SndTokenList)) {
264 &(Sock->SndTokenList),
274 &(Sock->ProcessingSndTokenList),
285 Status = SockProcessTcpSndData (Sock, TxData);
312 @param[in, out] Sock Pointer to the socket.
320 IN OUT SOCKET *Sock,
328 ASSERT (Sock != NULL);
330 ASSERT (SockStream == Sock->Type);
335 &Sock->RcvBuffer,
344 SockSetTcpRxData (Sock, RxData, TokenRcvdBytes, IsUrg);
346 NetbufQueTrim (Sock->RcvBuffer.DataQueue, TokenRcvdBytes);
356 @param[in] Sock Pointer to the socket.
365 IN SOCKET *Sock,
377 // and insert it into Sock->SndBuffer
397 NetbufQueAppend (Sock->SndBuffer.DataQueue, SndData);
403 Status = Sock->ProtoHandler (Sock, SOCK_SNDURG, NULL);
411 Status = Sock->ProtoHandler (Sock, SOCK_SNDPUSH, NULL);
422 Status = Sock->ProtoHandler (Sock, SOCK_SND, NULL);
434 @param[in] Sock Pointer to the socket.
440 IN SOCKET *Sock,
447 ASSERT ((Sock != NULL) && (PendingTokenList != NULL));
457 SIGNAL_TOKEN (Token, Sock->SockError);
468 @param[in, out] Sock Pointer to the socket.
473 IN OUT SOCKET *Sock
476 ASSERT (Sock->ConnectionToken != NULL);
478 SIGNAL_TOKEN (Sock->ConnectionToken, EFI_SUCCESS);
479 Sock->ConnectionToken = NULL;
484 SockProcessSndToken (Sock);
490 @param[in, out] Sock Pointer to the socket.
495 IN OUT SOCKET *Sock
502 Parent = Sock->Parent;
504 ASSERT ((Parent != NULL) && SOCK_IS_LISTENING (Parent) && SOCK_IS_CONNECTED (Sock));
514 ListenToken->NewChildHandle = Sock->SockHandle;
521 RemoveEntryList (&Sock->ConnectionList);
530 Sock->Parent = NULL;
537 @param[in, out] Sock Pointer to the socket.
542 IN OUT SOCKET *Sock
550 ASSERT (Sock->RcvBuffer.DataQueue != NULL);
552 RcvdBytes = (Sock->RcvBuffer.DataQueue)->BufSize;
556 while (RcvdBytes > 0 && !IsListEmpty (&Sock->RcvTokenList)) {
559 &Sock->RcvTokenList,
565 TokenRcvdBytes = SockProcessRcvToken (Sock, RcvToken);
590 SOCKET *Sock;
622 Sock = AllocateZeroPool (sizeof (SOCKET));
623 if (NULL == Sock) {
629 InitializeListHead (&Sock->Link);
630 InitializeListHead (&Sock->ConnectionList);
631 InitializeListHead (&Sock->ListenTokenList);
632 InitializeListHead (&Sock->RcvTokenList);
633 InitializeListHead (&Sock->SndTokenList);
634 InitializeListHead (&Sock->ProcessingSndTokenList);
636 EfiInitializeLock (&(Sock->Lock), TPL_CALLBACK);
638 Sock->SndBuffer.DataQueue = NetbufQueAlloc ();
639 if (NULL == Sock->SndBuffer.DataQueue) {
648 Sock->RcvBuffer.DataQueue = NetbufQueAlloc ();
649 if (NULL == Sock->RcvBuffer.DataQueue) {
658 Sock->Signature = SOCK_SIGNATURE;
660 Sock->Parent = Parent;
661 Sock->BackLog = SockInitData->BackLog;
662 Sock->ProtoHandler = SockInitData->ProtoHandler;
663 Sock->SndBuffer.HighWater = SockInitData->SndBufferSize;
664 Sock->RcvBuffer.HighWater = SockInitData->RcvBufferSize;
665 Sock->Type = SockInitData->Type;
666 Sock->DriverBinding = SockInitData->DriverBinding;
667 Sock->State = SockInitData->State;
668 Sock->CreateCallback = SockInitData->CreateCallback;
669 Sock->DestroyCallback = SockInitData->DestroyCallback;
670 Sock->Context = SockInitData->Context;
672 Sock->SockError = EFI_ABORTED;
673 Sock->SndBuffer.LowWater = SOCK_BUFF_LOW_WATER;
674 Sock->RcvBuffer.LowWater = SOCK_BUFF_LOW_WATER;
676 Sock->IpVersion = SockInitData->IpVersion;
679 // Install protocol on Sock->SockHandle
681 CopyMem (&Sock->NetProtocol, SockInitData->Protocol, ProtocolLength);
686 CopyMem (Sock->ProtoReserved, SockInitData->ProtoData, SockInitData->DataSize);
689 &Sock->SockHandle,
691 &Sock->NetProtocol,
721 InsertTailList (&Parent->ConnectionList, &Sock->ConnectionList);
724 if (Sock->CreateCallback != NULL) {
725 Status = Sock->CreateCallback (Sock, Sock->Context);
731 return Sock;
735 if (Sock->SockHandle != NULL) {
737 Sock->SockHandle,
739 &Sock->NetProtocol,
744 if (NULL != Sock->SndBuffer.DataQueue) {
745 NetbufQueFree (Sock->SndBuffer.DataQueue);
748 if (NULL != Sock->RcvBuffer.DataQueue) {
749 NetbufQueFree (Sock->RcvBuffer.DataQueue);
752 FreePool (Sock);
760 @param[in, out] Sock Pointer to the socket.
765 IN OUT SOCKET *Sock
772 ASSERT (SockStream == Sock->Type);
774 if (Sock->DestroyCallback != NULL) {
775 Sock->DestroyCallback (Sock, Sock->Context);
782 if (!SOCK_IS_UNCONFIGURED (Sock)) {
784 SockConnFlush (Sock);
785 SockSetState (Sock, SO_CLOSED);
786 Sock->ConfigureState = SO_UNCONFIGURED;
792 NetbufQueFree (Sock->RcvBuffer.DataQueue);
793 NetbufQueFree (Sock->SndBuffer.DataQueue);
798 if (Sock->Parent != NULL) {
800 RemoveEntryList (&(Sock->ConnectionList));
801 (Sock->Parent->ConnCnt)--;
806 Sock->Parent->ConnCnt)
809 Sock->Parent = NULL;
814 // in the light of Sock->SockType
816 if (Sock->IpVersion == IP_VERSION_4) {
826 Sock->SockHandle,
829 Sock->DriverBinding,
830 Sock->SockHandle,
847 // in the light of Sock->SockType
850 Sock->SockHandle,
858 FreePool (Sock);
864 @param[in, out] Sock Pointer to the socket.
869 IN OUT SOCKET *Sock
874 ASSERT (Sock != NULL);
879 Sock->Flag = 0;
882 // Flush the SndBuffer and RcvBuffer of Sock
884 NetbufQueFlush (Sock->SndBuffer.DataQueue);
885 NetbufQueFlush (Sock->RcvBuffer.DataQueue);
890 if (Sock->ConnectionToken != NULL) {
891 SIGNAL_TOKEN (Sock->ConnectionToken, Sock->SockError);
892 Sock->ConnectionToken = NULL;
895 if (Sock->CloseToken != NULL) {
896 SIGNAL_TOKEN (Sock->CloseToken, Sock->SockError);
897 Sock->CloseToken = NULL;
900 SockFlushPendingToken (Sock, &(Sock->ListenTokenList));
901 SockFlushPendingToken (Sock, &(Sock->RcvTokenList));
902 SockFlushPendingToken (Sock, &(Sock->SndTokenList));
903 SockFlushPendingToken (Sock, &(Sock->ProcessingSndTokenList));
908 if (SOCK_IS_LISTENING (Sock)) {
909 while (!IsListEmpty (&Sock->ConnectionList)) {
911 &Sock->ConnectionList,
919 Sock->ConnCnt = 0;
927 @param[in, out] Sock Pointer to the socket.
933 IN OUT SOCKET *Sock,
937 Sock->State = State;
943 @param[in] Sock Pointer to the socket to be cloned.
950 IN SOCKET *Sock
956 InitData.BackLog = Sock->BackLog;
957 InitData.Parent = Sock;
958 InitData.State = Sock->State;
959 InitData.ProtoHandler = Sock->ProtoHandler;
960 InitData.Type = Sock->Type;
961 InitData.RcvBufferSize = Sock->RcvBuffer.HighWater;
962 InitData.SndBufferSize = Sock->SndBuffer.HighWater;
963 InitData.DriverBinding = Sock->DriverBinding;
964 InitData.IpVersion = Sock->IpVersion;
965 InitData.Protocol = &(Sock->NetProtocol);
966 InitData.CreateCallback = Sock->CreateCallback;
967 InitData.DestroyCallback = Sock->DestroyCallback;
968 InitData.Context = Sock->Context;
969 InitData.ProtoData = Sock->ProtoReserved;
970 InitData.DataSize = sizeof (Sock->ProtoReserved);
980 ClonedSock->ConfigureState = Sock->ConfigureState;
992 @param[in, out] Sock Pointer to the socket associated with the
998 IN OUT SOCKET *Sock
1002 ASSERT (SO_CONNECTING == Sock->State);
1004 SockSetState (Sock, SO_CONNECTED);
1006 if (NULL == Sock->Parent) {
1007 SockWakeConnToken (Sock);
1009 SockWakeListenToken (Sock);
1020 @param[in, out] Sock Pointer to the socket associated with the closed
1026 IN OUT SOCKET *Sock
1029 if (Sock->CloseToken != NULL) {
1030 SIGNAL_TOKEN (Sock->CloseToken, EFI_SUCCESS);
1031 Sock->CloseToken = NULL;
1034 SockConnFlush (Sock);
1035 SockSetState (Sock, SO_CLOSED);
1037 if (Sock->Parent != NULL) {
1038 SockDestroyChild (Sock);
1049 @param[in, out] Sock Pointer to the socket.
1055 IN OUT SOCKET *Sock,
1062 ASSERT (!IsListEmpty (&Sock->ProcessingSndTokenList));
1063 ASSERT (Count <= (Sock->SndBuffer.DataQueue)->BufSize);
1065 NetbufQueTrim (Sock->SndBuffer.DataQueue, Count);
1072 &(Sock->ProcessingSndTokenList),
1094 // Sock->SndTokenList, if so process those send token
1096 SockProcessSndToken (Sock);
1104 @param[in] Sock Pointer to the socket.
1114 IN SOCKET *Sock,
1120 ASSERT ((Sock != NULL) && SockStream == Sock->Type);
1123 Sock->SndBuffer.DataQueue,
1136 @param[in, out] Sock Pointer to the socket.
1143 IN OUT SOCKET *Sock,
1148 ASSERT ((Sock != NULL) && (Sock->RcvBuffer.DataQueue != NULL) &&
1155 NetbufQueAppend (Sock->RcvBuffer.DataQueue, NetBuffer);
1157 SockWakeRcvToken (Sock);
1163 @param[in] Sock Pointer to the socket.
1172 IN SOCKET *Sock,
1179 ASSERT (Sock != NULL && ((SOCK_SND_BUF == Which) || (SOCK_RCV_BUF == Which)));
1182 SockBuffer = &(Sock->SndBuffer);
1184 SockBuffer = &(Sock->RcvBuffer);
1204 @param[in, out] Sock Pointer to the socket.
1209 IN OUT SOCKET *Sock
1214 SOCK_NO_MORE_DATA (Sock);
1216 if (!IsListEmpty (&Sock->RcvTokenList)) {
1218 ASSERT (0 == GET_RCV_DATASIZE (Sock));
1220 Err = Sock->SockError;
1222 SOCK_ERROR (Sock, EFI_CONNECTION_FIN);
1224 SockFlushPendingToken (Sock, &Sock->RcvTokenList);
1226 SOCK_ERROR (Sock, Err);