23,6 → 23,7 |
; Add a segment to the incoming TCP queue |
; |
; IN: [esp] = ptr to buffer |
; [esp+4] = buffer size (dont care) |
; ebx = ptr to device struct |
; ecx = segment size |
; esi = ptr to TCP segment |
36,8 → 37,10 |
TCP_input: |
|
; record the current time |
push [timer_ticks] ; in 1/100 seconds |
push ebx ecx esi edi ; mind the order (see TCP_queue_entry struct) |
mov eax, [timer_ticks] ; in 1/100 seconds |
mov [esp + 4], eax |
|
push ebx ecx esi edi ; mind the order |
mov esi, esp |
|
add_to_queue TCP_queue, TCP_QUEUE_SIZE, sizeof.TCP_queue_entry, .fail |
61,11 → 64,14 |
inc [TCP_segments_missed + edi] |
|
add esp, sizeof.TCP_queue_entry - 8 |
call NET_BUFF_free |
call NET_packet_free |
add esp, 4 |
|
ret |
|
|
|
|
align 4 |
proc TCP_process_input |
|
1589,7 → 1595,7 |
.done: |
DEBUGF DEBUG_NETWORK_VERBOSE, "TCP_input: dumping\n" |
|
call NET_BUFF_free |
call NET_packet_free |
jmp .loop |
|
|
1708,7 → 1714,7 |
.drop_no_socket: |
DEBUGF DEBUG_NETWORK_VERBOSE, "TCP_input: Drop (no socket)\n" |
|
call NET_BUFF_free |
call NET_packet_free |
jmp .loop |
|
endp |