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
 
Line 17... Line 17...
17
$Revision: 5842 $
17
$Revision: 5976 $
18
 
18
 
19
align 4
19
align 4
20
iglobal
20
iglobal
Line 102... Line 102...
102
 
102
 
Line 103... Line 103...
103
 
103
 
104
}
-
 
-
 
104
}
105
 
105
 
106
 
-
 
-
 
106
 
107
;---------------------------
107
;-----------------------------------------------------------------;
108
;
108
;                                                                 ;
109
; TCP_pull_out_of_band
109
; TCP_pull_out_of_band                                            ;
110
;
-
 
-
 
110
;                                                                 ;
111
; IN:  eax =
111
;  IN:  eax = ?                                                   ;
112
;      ebx = socket ptr
-
 
-
 
112
;       ebx = socket ptr                                          ;
113
;      edx = tcp packet ptr
113
;       edx = tcp packet ptr                                      ;
114
;
-
 
115
; OUT: /
114
;                                                                 ;
116
;
115
; OUT:  /                                                         ;
Line 117... Line 116...
117
;---------------------------
116
;                                                                 ;
Line 125... Line 124...
125
 
124
 
Line 126... Line -...
126
        ret
-
 
127
 
-
 
128
 
-
 
129
 
-
 
130
 
-
 
131
 
125
        ret
132
 
-
 
-
 
126
 
133
 
127
 
134
 
-
 
-
 
128
 
135
;-------------------------
129
;-----------------------------------------------------------------;
136
;
130
;                                                                 ;
137
; TCP_drop
-
 
-
 
131
; TCP_drop                                                        ;
138
;
132
;                                                                 ;
139
;  IN:  eax = socket ptr
-
 
-
 
133
;  IN:  eax = socket ptr                                          ;
140
;       ebx = error number
134
;       ebx = error number                                        ;
141
;
135
;                                                                 ;
142
;  OUT: eax = socket ptr
136
;  OUT: eax = socket ptr                                          ;
Line 143... Line 137...
143
;
137
;                                                                 ;
Line 169... Line 163...
169
;        mov     [eax + SOCKET.errorcode], ebx
163
;        mov     [eax + SOCKET.errorcode], ebx
Line 170... Line 164...
170
 
164
 
171
 
-
 
-
 
165
 
172
 
166
 
173
 
-
 
-
 
167
 
174
;-------------------------
168
;-----------------------------------------------------------------;
-
 
169
;                                                                 ;
175
;
170
; TCP_disconnect                                                  ;
176
; TCP_disconnect
-
 
-
 
171
;                                                                 ;
177
;
172
;  IN:  eax = socket ptr                                          ;
178
;  IN:  eax = socket ptr
173
;                                                                 ;
179
;  OUT: eax = socket ptr / 0
174
;  OUT: eax = socket ptr / 0                                      ;
Line 180... Line 175...
180
;
175
;                                                                 ;
Line 196... Line 191...
196
        jz      @f
191
        jz      @f
197
        push    eax
192
        push    eax
198
        call    TCP_output
193
        call    TCP_output
199
        pop     eax
194
        pop     eax
200
  @@:
195
  @@:
201
 
-
 
202
        ret
196
        ret
Line 203... Line 197...
203
 
197
 
204
 
-
 
-
 
198
 
205
;-------------------------
199
;-----------------------------------------------------------------;
206
;
-
 
-
 
200
;                                                                 ;
207
; TCP_close
201
; TCP_close                                                       ;
-
 
202
;                                                                 ;
208
;
203
;  IN:  eax = socket ptr                                          ;
209
;  IN:  eax = socket ptr
-
 
-
 
204
;                                                                 ;
210
;  OUT: /
205
;  OUT: /                                                         ;
211
;
206
;                                                                 ;
212
;-------------------------
207
;-----------------------------------------------------------------;
Line 213... Line 208...
213
align 4
208
align 4
Line 220... Line 215...
220
 
215
 
221
        call    SOCKET_is_disconnected
216
        call    SOCKET_is_disconnected
Line 222... Line 217...
222
        call    SOCKET_free
217
        call    SOCKET_free
223
 
-
 
224
        xor     eax, eax
218
 
Line 225... Line -...
225
 
-
 
226
        ret
219
        xor     eax, eax
227
 
-
 
-
 
220
        ret
228
 
221
 
229
 
-
 
-
 
222
 
230
 
223
 
231
;-------------------------
-
 
-
 
224
;-----------------------------------------------------------------;
232
;
225
;                                                                 ;
233
; TCP_outflags
-
 
-
 
226
; TCP_outflags                                                    ;
234
;
227
;                                                                 ;
235
;  IN:  eax = socket ptr
228
;  IN:  eax = socket ptr                                          ;
236
;
229
;                                                                 ;
Line 237... Line 230...
237
;  OUT: edx = flags
230
;  OUT: edx = flags                                               ;
238
;
231
;                                                                 ;
Line 264... Line 257...
264
 
257
 
265
 
-
 
-
 
258
 
266
 
259
 
267
 
-
 
268
 
260
 
269
;-----------------------------------------------------------------
-
 
270
;
261
 
271
; The fast way to send an ACK/RST/keepalive segment
262
;-----------------------------------------------------------------;
272
;
-
 
-
 
263
;                                                                 ;
273
; TCP_respond
264
; TCP_respond: Fast way to send an ACK/RST/keepalive segment.     ;
274
;
-
 
-
 
265
;                                                                 ;
275
;  IN:  ebx = socket ptr
266
;  IN:  ebx = socket ptr                                          ;
276
;        cl = flags
-
 
277
;
267
;        cl = flags                                               ;
278
; OUT:  /
268
;                                                                 ;
Line 279... Line 269...
279
;
269
; OUT:  /                                                         ;
Line 349... Line 339...
349
        add     esp, 2 + 4
339
        add     esp, 2 + 4
Line 350... Line 340...
350
 
340
 
Line 351... Line 341...
351
        ret
341
        ret
352
 
-
 
-
 
342
 
353
 
343
 
354
;-----------------------------------------------------------------
-
 
-
 
344
;-----------------------------------------------------------------;
355
;
345
;                                                                 ;
356
; TCP_respond_segment:
346
; TCP_respond_segment                                             ;
357
;
347
;                                                                 ;
358
;  IN:  ebx = device ptr
348
;  IN:  ebx = device ptr                                          ;
359
;       edx = segment ptr (a previously received segment)
-
 
-
 
349
;       edx = segment ptr (a previously received segment)         ;
360
;       edi = ptr to IPv4 header
350
;       edi = ptr to IPv4 header                                  ;
361
;        cl = flags
-
 
-
 
351
;        cl = flags                                               ;
362
;
352
;                                                                 ;
363
;  OUT: /
-
 
364
;
353
;  OUT: /                                                         ;
365
;-----------------------------------------------------------------
354
;                                                                 ;
Line 366... Line 355...
366
 
355
;-----------------------------------------------------------------;
Line 455... Line 444...
455
        jmp     .done
444
        jmp     .done
Line 456... Line 445...
456
 
445
 
457
  .done:
446
  .done:
Line 458... Line -...
458
}
-
 
-
 
447
}
-
 
448
 
-
 
449
;-----------------------------------------------------------------;
-
 
450
;                                                                 ;
-
 
451
; TCP_set_persist                                                 ;
459
 
452
;                                                                 ;
460
 
453
;-----------------------------------------------------------------;
Line 461... Line 454...
461
align 4
454
align 4
Line 492... Line 485...
492
 
485
 
Line -... Line 486...
-
 
486
        ret
-
 
487
 
-
 
488
 
-
 
489
 
493
        ret
490
;-----------------------------------------------------------------;
494
 
491
;                                                                 ;
495
 
-
 
-
 
492
; TCP_xmit_timer: Calculate new smoothed RTT.                     ;
-
 
493
;                                                                 ;
-
 
494
;   IN: eax = rtt                                                 ;
-
 
495
;       ebx = socket ptr                                          ;
496
 
496
;                                                                 ;
497
; eax = rtt
497
;  OUT: /                                                         ;
Line 498... Line 498...
498
; ebx = socket ptr
498
;                                                                 ;
Line 499... Line 499...
499
 
499
;-----------------------------------------------------------------;
Line 500... Line 500...
500
align 4
500
align 4
501
TCP_xmit_timer:
501
TCP_xmit_timer:
Line 547... Line 547...
547
  @@:
547
  @@:
548
        ret
548
        ret
Line 549... Line 549...
549
 
549
 
550
 
-
 
551
  .no_rtt_yet:
550
 
552
 
551
  .no_rtt_yet:
553
        push    ecx
552
        push    ecx
554
        mov     ecx, eax
553
        mov     ecx, eax
Line 560... Line 559...
560
        pop     ecx
559
        pop     ecx
Line 561... Line 560...
561
 
560
 
Line 562... Line -...
562
        ret
-
 
563
 
-
 
-
 
561
        ret
-
 
562
 
-
 
563
 
-
 
564
;-----------------------------------------------------------------;
564
 
565
;                                                                 ;
565
 
566
; TCP_mss: Update maximum segment size                            ;
-
 
567
;                                                                 ;
-
 
568
;  IN:  eax = max segment size                                    ;
-
 
569
;       ebx = socket ptr                                          ;
-
 
570
;                                                                 ;
566
 
571
;  OUT: /                                                         ;
567
; eax = max segment size
572
;                                                                 ;
Line 568... Line 573...
568
; ebx = socket ptr
573
;-----------------------------------------------------------------;
569
align 4
574
align 4
Line 578... Line 583...
578
 
583
 
Line 579... Line -...
579
        ret
-
 
-
 
584
        ret
-
 
585
 
-
 
586
 
-
 
587
 
580
 
588
;-----------------------------------------------------------------;
581
 
589
;                                                                 ;
-
 
590
; TCP_reassemble                                                  ;
-
 
591
;                                                                 ;
-
 
592
;   IN: ebx = socket ptr                                          ;
-
 
593
;       edx = segment ptr                                         ;
582
 
594
;                                                                 ;
583
 
595
;  OUT: /                                                         ;
Line 584... Line -...
584
; ebx = socket ptr
-
 
-
 
596
;                                                                 ;
Line 585... Line 597...
585
; edx = segment ptr
597
;-----------------------------------------------------------------;