Subversion Repositories Kolibri OS

Rev

Rev 5842 | Rev 6011 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5842 Rev 5976
Line 12... Line 12...
12
;;          GNU GENERAL PUBLIC LICENSE                             ;;
12
;;          GNU GENERAL PUBLIC LICENSE                             ;;
13
;;             Version 2, June 1991                                ;;
13
;;             Version 2, June 1991                                ;;
14
;;                                                                 ;;
14
;;                                                                 ;;
15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 16... Line 16...
16
 
16
 
17
$Revision: 5842 $
-
 
18
 
-
 
19
;-----------------------------------------------------------------
-
 
20
;
-
 
21
; TCP_input:
-
 
22
;
-
 
23
;       Add a segment to the incoming TCP queue
-
 
24
;
-
 
25
;  IN:  [esp] = ptr to buffer
-
 
26
;       ebx = ptr to device struct
-
 
27
;       ecx = TCP segment size
-
 
28
;       edx = ptr to IPv4 header
-
 
29
;       esi = ptr to TCP segment
-
 
30
;       edi = interface number*4
-
 
31
;
-
 
32
;  OUT: /
-
 
33
;
-
 
Line -... Line 17...
-
 
17
$Revision: 5976 $
-
 
18
 
-
 
19
;-----------------------------------------------------------------;
-
 
20
;                                                                 ;
-
 
21
; TCP_input: Add a segment to the incoming TCP queue.             ;
-
 
22
;                                                                 ;
-
 
23
;  IN:  [esp] = ptr to buffer                                     ;
-
 
24
;       ebx = ptr to device struct                                ;
-
 
25
;       ecx = TCP segment size                                    ;
-
 
26
;       edx = ptr to IPv4 header                                  ;
-
 
27
;       esi = ptr to TCP segment                                  ;
-
 
28
;       edi = interface number*4                                  ;
-
 
29
;                                                                 ;
-
 
30
;  OUT: /                                                         ;
34
;-----------------------------------------------------------------
31
;                                                                 ;
35
 
32
;-----------------------------------------------------------------;
Line 36... Line 33...
36
align 4
33
align 4
37
TCP_input:
34
TCP_input:
Line 486... Line 483...
486
        mov     eax, [timestamp]
483
        mov     eax, [timestamp]
487
        sub     eax, [ebx + TCP_SOCKET.ts_ecr]
484
        sub     eax, [ebx + TCP_SOCKET.ts_ecr]
488
        inc     eax
485
        inc     eax
489
        call    TCP_xmit_timer
486
        call    TCP_xmit_timer
490
        jmp     .rtt_done
487
        jmp     .rtt_done
491
 
-
 
492
  .no_timestamp_rtt:
488
  .no_timestamp_rtt:
-
 
489
 
493
        cmp     [ebx + TCP_SOCKET.t_rtt], 0
490
        cmp     [ebx + TCP_SOCKET.t_rtt], 0
494
        je      .rtt_done
491
        je      .rtt_done
495
        mov     eax, [edx + TCP_header.AckNumber]
492
        mov     eax, [edx + TCP_header.AckNumber]
496
        cmp     eax, [ebx + TCP_SOCKET.t_rtseq]
493
        cmp     eax, [ebx + TCP_SOCKET.t_rtseq]
497
        jbe     .rtt_done
494
        jbe     .rtt_done
498
        mov     eax, [ebx + TCP_SOCKET.t_rtt]
495
        mov     eax, [ebx + TCP_SOCKET.t_rtt]
499
        call    TCP_xmit_timer
496
        call    TCP_xmit_timer
500
 
-
 
501
  .rtt_done:
497
  .rtt_done:
Line 502... Line 498...
502
 
498
 
503
; update window pointers
499
; update window pointers
504
        mov     eax, [edx + TCP_header.AckNumber]
500
        mov     eax, [edx + TCP_header.AckNumber]