Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 5564 → Rev 5565

/kernel/branches/Kolibri-acpi/network/socket.inc
1,6 → 1,6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2004-2014. All rights reserved. ;;
;; Copyright (C) KolibriOS team 2004-2015. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; ;;
;; Part of the TCP/IP network stack for KolibriOS ;;
98,9 → 98,9
;----------------------
; Transmit timing stuff
t_idle dd ?
t_rtt dd ?
t_rtt dd ? ; round trip time
t_rtseq dd ?
t_srtt dd ?
t_srtt dd ? ; smoothed round trip time
t_rttvar dd ?
t_rttmin dd ?
max_sndwnd dd ?
179,8 → 179,8
struct socket_queue_entry
 
data_ptr dd ?
data_size dd ?
buf_ptr dd ?
data_size dd ?
 
ends
 
754,7 → 754,7
pop edi
 
test [eax + SOCKET.state], SS_CANTRCVMORE
jnz .return
jnz .last_data
 
cmp ebx, EWOULDBLOCK
jne .return
779,6 → 779,11
mov [esp+32], ecx
ret
 
.last_data:
test ecx, ecx
jz .return
call SOCKET_notify
jmp .return
 
 
 
817,7 → 822,7
rep movsd
.nd:
 
call NET_packet_free
call NET_BUFF_free
pop ecx eax ; return number of bytes copied to application
xor ebx, ebx
ret
874,9 → 879,16
call SOCKET_ring_free ; free read memory
pop eax
 
cmp [eax + STREAM_SOCKET.rcv + RING_BUFFER.size], 0
jne .more_data
xor ebx, ebx ; errorcode = 0 (no error)
ret
 
.more_data:
call SOCKET_notify ; Queue another network event
xor ebx, ebx ; errorcode = 0 (no error)
ret
 
.wouldblock:
push EWOULDBLOCK
pop ebx
1429,7 → 1441,6
; ecx = data size
; esi = ptr to data
; [esp] = ptr to buf
; [esp + 4] = buf size
;
; OUT: /
;
1439,7 → 1450,7
 
DEBUGF DEBUG_NETWORK_VERBOSE, "SOCKET_input: socket=%x, data=%x size=%u\n", eax, esi, ecx
 
mov [esp+4], ecx
push ecx
push esi
mov esi, esp
 
1463,16 → 1474,13
call mutex_unlock
popa
 
call NET_packet_free
add esp, 8
 
call NET_BUFF_free
ret
 
 
;--------------------------
;
; IN: eax = ptr to ring struct (just a buffer of the right size)
; OUT: eax = unchanged / 0 on error
; eax = ptr to ring struct (just a buffer of the right size)
;
align 4
SOCKET_ring_create:
1481,7 → 1489,7
mov esi, eax
 
push edx
stdcall create_ring_buffer, SOCKET_MAXDATA, PG_SW
stdcall create_ring_buffer, SOCKET_MAXDATA, PG_SWR
pop edx
test eax, eax
jz .fail
1962,14 → 1970,8
jnz .no_tcp
 
mov ebx, eax
cmp [ebx + STREAM_SOCKET.rcv.start_ptr], 0
je @f
stdcall kernel_free, [ebx + STREAM_SOCKET.rcv.start_ptr]
@@:
cmp [ebx + STREAM_SOCKET.snd.start_ptr], 0
je @f
stdcall kernel_free, [ebx + STREAM_SOCKET.snd.start_ptr]
@@:
mov eax, ebx
.no_tcp: