Subversion Repositories Kolibri OS

Rev

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

Rev 3257 Rev 3259
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: 3257 $
18
$Revision: 3259 $
Line 19... Line 19...
19
 
19
 
Line 826... Line 826...
826
        call    SOCKET_block
826
        call    SOCKET_block
827
        jmp     .loop
827
        jmp     .loop
Line 828... Line 828...
828
 
828
 
-
 
829
 
-
 
830
align 4
-
 
831
SOCKET_receive_local:
-
 
832
 
-
 
833
        ; does this socket have a PID yet?
-
 
834
        cmp     [eax + SOCKET.PID], 0
-
 
835
        jne     @f
-
 
836
 
-
 
837
        ; Change PID to that of current process
-
 
838
        mov     ebx, [TASK_BASE]
-
 
839
        mov     ebx, [ebx + TASKDATA.pid]
-
 
840
        mov     [eax + SOCKET.PID], ebx
-
 
841
      @@:
-
 
842
 
-
 
843
        mov     [eax + SOCKET.rcv_proc], SOCKET_receive_stream
829
 
844
 
Line 830... Line 845...
830
align 4
845
align 4
Line 831... Line 846...
831
SOCKET_receive_stream:
846
SOCKET_receive_stream:
Line 947... Line 962...
947
 
962
 
948
 
963
 
Line 949... Line -...
949
align 4
-
 
950
SOCKET_send_local:
-
 
951
 
964
align 4
952
        DEBUGF  1,"SOCKET_send: LOCAL\n"
965
SOCKET_send_local:
953
 
966
 
Line 954... Line 967...
954
        ; does this socket have a PID yet?
967
        ; does this socket have a PID yet?
955
        cmp     [eax + SOCKET.PID], 0
968
        cmp     [eax + SOCKET.PID], 0
956
        jne     @f
969
        jne     @f
957
 
970
 
958
        ; Change PID to that of current process
971
        ; Change PID to that of current process
-
 
972
        mov     ebx, [TASK_BASE]
-
 
973
        mov     ebx, [ebx + TASKDATA.pid]
-
 
974
        mov     [eax + SOCKET.PID], ebx
-
 
975
      @@:
-
 
976
        mov     [eax + SOCKET.snd_proc], SOCKET_send_local_
-
 
977
 
Line 959... Line 978...
959
        mov     ebx, [TASK_BASE]
978
align 4
960
        mov     ebx, [ebx + TASKDATA.pid]
979
SOCKET_send_local_:
961
        mov     [eax + SOCKET.PID], ebx
980
 
962
      @@:
981
        DEBUGF  1,"SOCKET_send: LOCAL\n"
Line 1127... Line 1146...
1127
 
1146
 
1128
        mov     [eax + SOCKET.Domain], AF_LOCAL
1147
        mov     [eax + SOCKET.Domain], AF_LOCAL
1129
        mov     [eax + SOCKET.Type], SOCK_STREAM
1148
        mov     [eax + SOCKET.Type], SOCK_STREAM
1130
        mov     [eax + SOCKET.Protocol], 0              ;;; CHECKME
1149
        mov     [eax + SOCKET.Protocol], 0              ;;; CHECKME
1131
        mov     [eax + SOCKET.snd_proc], SOCKET_send_local
1150
        mov     [eax + SOCKET.snd_proc], SOCKET_send_local
1132
        mov     [eax + SOCKET.rcv_proc], SOCKET_receive_stream
1151
        mov     [eax + SOCKET.rcv_proc], SOCKET_receive_local
Line 1133... Line 1152...
1133
        mov     ebx, eax
1152
        mov     ebx, eax
1134
 
1153
 
1135
        call    SOCKET_alloc
1154
        call    SOCKET_alloc
Line 1136... Line 1155...
1136
        jz      .error
1155
        jz      .error
1137
        mov     [esp+24], edi   ; application's ebx
1156
        mov     [esp+24], edi   ; application's ebx
1138
 
1157
 
1139
        mov     [eax + SOCKET.Domain], AF_LOCAL
1158
        mov     [eax + SOCKET.Domain], AF_LOCAL
1140
        mov     [eax + SOCKET.Type], SOCK_STREAM
1159
        mov     [eax + SOCKET.Type], SOCK_STREAM
Line 1141... Line 1160...
1141
        mov     [eax + SOCKET.Protocol], 0              ;;; CHECKME
1160
        mov     [eax + SOCKET.Protocol], 0              ;;; CHECKME
1142
        mov     [eax + SOCKET.snd_proc], SOCKET_send_local
1161
        mov     [eax + SOCKET.snd_proc], SOCKET_send_local
1143
        mov     [eax + SOCKET.rcv_proc], SOCKET_receive_stream
1162
        mov     [eax + SOCKET.rcv_proc], SOCKET_receive_local