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 | ;-----------------------------------------------------------------; |