834,7 → 834,21 |
.block: |
SOCKET_block eax, .loop, s_error |
|
align 4 |
SOCKET_receive_local: |
|
; does this socket have a PID yet? |
cmp [eax + SOCKET.PID], 0 |
jne @f |
|
; Change PID to that of current process |
mov ebx, [TASK_BASE] |
mov ebx, [ebx + TASKDATA.pid] |
mov [eax + SOCKET.PID], ebx |
@@: |
|
mov [eax + SOCKET.rcv_proc], SOCKET_receive_stream |
|
align 4 |
SOCKET_receive_stream: |
|
953,8 → 967,6 |
align 4 |
SOCKET_send_local: |
|
DEBUGF 1,"SOCKET_send: LOCAL\n" |
|
; does this socket have a PID yet? |
cmp [eax + SOCKET.PID], 0 |
jne @f |
964,7 → 976,13 |
mov ebx, [ebx + TASKDATA.pid] |
mov [eax + SOCKET.PID], ebx |
@@: |
mov [eax + SOCKET.snd_proc], SOCKET_send_local_ |
|
align 4 |
SOCKET_send_local_: |
|
DEBUGF 1,"SOCKET_send: LOCAL\n" |
|
; get the other side's socket and check if it still exists |
mov eax, [eax + SOCKET.device] |
call SOCKET_check |
1133,7 → 1151,7 |
mov [eax + SOCKET.Type], SOCK_STREAM |
mov [eax + SOCKET.Protocol], 0 ;;; CHECKME |
mov [eax + SOCKET.snd_proc], SOCKET_send_local |
mov [eax + SOCKET.rcv_proc], SOCKET_receive_stream |
mov [eax + SOCKET.rcv_proc], SOCKET_receive_local |
mov ebx, eax |
|
call SOCKET_alloc |
1144,7 → 1162,7 |
mov [eax + SOCKET.Type], SOCK_STREAM |
mov [eax + SOCKET.Protocol], 0 ;;; CHECKME |
mov [eax + SOCKET.snd_proc], SOCKET_send_local |
mov [eax + SOCKET.rcv_proc], SOCKET_receive_stream |
mov [eax + SOCKET.rcv_proc], SOCKET_receive_local |
|
; Link the two sockets to eachother |
mov [eax + SOCKET.device], ebx |