Rev 2209 | Rev 2465 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2209 | Rev 2434 | ||
---|---|---|---|
Line 14... | Line 14... | ||
14 | ;; Added a timer per socket to allow delays when ;; |
14 | ;; Added a timer per socket to allow delays when ;; |
15 | ;; rx window gets below 1KB ;; |
15 | ;; rx window gets below 1KB ;; |
16 | ;; ;; |
16 | ;; ;; |
17 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
17 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 18... | Line 18... | ||
18 | 18 | ||
Line 19... | Line 19... | ||
19 | $Revision: 2209 $ |
19 | $Revision: 2434 $ |
20 | 20 | ||
21 | 21 | ||
Line 667... | Line 667... | ||
667 | 667 | ||
668 | inc ecx |
668 | inc ecx |
669 | add esi, 8 |
669 | add esi, 8 |
Line -... | Line 670... | ||
- | 670 | jmp .next_resendq |
|
670 | jmp .next_resendq |
671 | |
671 | 672 | @@: |
|
672 | @@: mov dword[esi + 4], 0 |
673 | mov dword[esi + 4], 0 |
673 | inc ecx |
674 | inc ecx |
Line 674... | Line 675... | ||
674 | add esi, 8 |
675 | add esi, 8 |
Line 909... | Line 910... | ||
909 | je @f ; found one |
910 | je @f ; found one |
910 | inc ecx |
911 | inc ecx |
911 | add esi, 8 |
912 | add esi, 8 |
912 | jmp .next_resendq |
913 | jmp .next_resendq |
Line -... | Line 914... | ||
- | 914 | ||
913 | 915 | @@: |
|
914 | @@: mov dword[esi + 4], 0 |
916 | mov dword[esi + 4], 0 |
915 | inc ecx |
917 | inc ecx |
916 | add esi, 8 |
918 | add esi, 8 |
Line 917... | Line 919... | ||
917 | jmp .next_resendq |
919 | jmp .next_resendq |
Line 963... | Line 965... | ||
963 | jmp .exit |
965 | jmp .exit |
Line 964... | Line 966... | ||
964 | 966 | ||
965 | .data: |
967 | .data: |
966 | push ecx |
968 | push ecx |
967 | push ecx edx |
969 | push ecx edx |
968 | lea ecx, [ebx+SOCKET.lock] |
970 | lea ecx, [ebx+SOCKET.mutex] |
969 | call mutex_lock |
971 | call mutex_lock |
Line 970... | Line 972... | ||
970 | pop edx ecx |
972 | pop edx ecx |
971 | 973 | ||
Line 985... | Line 987... | ||
985 | mov esi, edx |
987 | mov esi, edx |
Line 986... | Line 988... | ||
986 | 988 | ||
987 | cld |
989 | cld |
Line 988... | Line 990... | ||
988 | rep movsb ; copy the data across |
990 | rep movsb ; copy the data across |
989 | 991 | ||
Line 990... | Line 992... | ||
990 | lea ecx,[ebx + SOCKET.lock] |
992 | lea ecx, [ebx + SOCKET.mutex] |
991 | call mutex_unlock |
993 | call mutex_unlock |
992 | 994 | ||
Line 1031... | Line 1033... | ||
1031 | .exit: |
1033 | .exit: |
1032 | ret |
1034 | ret |
1033 | .overflow: |
1035 | .overflow: |
1034 | ; no place in buffer |
1036 | ; no place in buffer |
1035 | ; so simply restore stack and exit |
1037 | ; so simply restore stack and exit |
1036 | lea ecx, [ebx + SOCKET.lock] |
1038 | lea ecx, [ebx + SOCKET.mutex] |
1037 | call mutex_unlock |
1039 | call mutex_unlock |
1038 | pop eax ecx |
1040 | pop eax ecx |
1039 | ret |
1041 | ret |
1040 | endp |
1042 | endp |
Line 1050... | Line 1052... | ||
1050 | 1052 | ||
1051 | ; It was an ACK |
1053 | ; It was an ACK |
1052 | mov [ebx + SOCKET.TCBState], TCB_FIN_WAIT_2 |
1054 | mov [ebx + SOCKET.TCBState], TCB_FIN_WAIT_2 |
Line -... | Line 1055... | ||
- | 1055 | jmp .exit |
|
1053 | jmp .exit |
1056 | |
1054 | 1057 | @@: |
|
1055 | @@: mov [ebx + SOCKET.TCBState], TCB_CLOSING |
1058 | mov [ebx + SOCKET.TCBState], TCB_CLOSING |
1056 | cmp al, TH_FIN |
1059 | cmp al, TH_FIN |
Line -... | Line 1060... | ||
- | 1060 | je @f |
|
1057 | je @f |
1061 | mov [ebx + SOCKET.TCBState], TCB_TIMED_WAIT |
1058 | mov [ebx + SOCKET.TCBState], TCB_TIMED_WAIT |
1062 | |
Line 1059... | Line 1063... | ||
1059 | 1063 | @@: |
|
1060 | @@: lea esi, [ebx + SOCKET.RCV_NXT] |
1064 | lea esi, [ebx + SOCKET.RCV_NXT] |
1061 | call inc_inet_esi |
1065 | call inc_inet_esi |