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 |