Subversion Repositories Kolibri OS

Rev

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

Rev 5363 Rev 5364
Line 13... Line 13...
13
;;         GNU GENERAL PUBLIC LICENSE                              ;;
13
;;         GNU GENERAL PUBLIC LICENSE                              ;;
14
;;          Version 2, June 1991                                   ;;
14
;;          Version 2, June 1991                                   ;;
15
;;                                                                 ;;
15
;;                                                                 ;;
16
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
16
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 17... Line 17...
17
 
17
 
Line 18... Line 18...
18
$Revision: 5363 $
18
$Revision: 5364 $
Line 19... Line 19...
19
 
19
 
20
struct  SOCKET
20
struct  SOCKET
Line 752... Line 752...
752
        push    edi
752
        push    edi
753
        call    [eax + SOCKET.rcv_proc]
753
        call    [eax + SOCKET.rcv_proc]
754
        pop     edi
754
        pop     edi
Line 755... Line 755...
755
 
755
 
756
        test    [eax + SOCKET.state], SS_CANTRCVMORE
756
        test    [eax + SOCKET.state], SS_CANTRCVMORE
Line 757... Line 757...
757
        jnz     .return
757
        jnz     .last_data
758
 
758
 
Line 759... Line 759...
759
        cmp     ebx, EWOULDBLOCK
759
        cmp     ebx, EWOULDBLOCK
Line 777... Line 777...
777
  .return:
777
  .return:
778
        mov     [esp+20], ebx
778
        mov     [esp+20], ebx
779
        mov     [esp+32], ecx
779
        mov     [esp+32], ecx
780
        ret
780
        ret
Line -... Line 781...
-
 
781
 
-
 
782
  .last_data:
-
 
783
        test    ecx, ecx
-
 
784
        jz      .return
-
 
785
        call    SOCKET_notify
Line 781... Line 786...
781
 
786
        jmp     .return
Line 872... Line 877...
872
        add     eax, STREAM_SOCKET.rcv
877
        add     eax, STREAM_SOCKET.rcv
873
        call    SOCKET_ring_read                                ; copy data from kernel buffer to application buffer
878
        call    SOCKET_ring_read                                ; copy data from kernel buffer to application buffer
874
        call    SOCKET_ring_free                                ; free read memory
879
        call    SOCKET_ring_free                                ; free read memory
875
        pop     eax
880
        pop     eax
Line -... Line 881...
-
 
881
 
-
 
882
        cmp     [eax + STREAM_SOCKET.rcv + RING_BUFFER.size], 0
-
 
883
        jne     .more_data
-
 
884
        xor     ebx, ebx                                        ; errorcode = 0 (no error)
-
 
885
        ret
-
 
886
 
-
 
887
  .more_data:
876
 
888
        call    SOCKET_notify                                   ; Queue another network event
877
        xor     ebx, ebx                                        ; errorcode = 0 (no error)
889
        xor     ebx, ebx                                        ; errorcode = 0 (no error)
Line 878... Line 890...
878
        ret
890
        ret
879
 
891