Subversion Repositories Kolibri OS

Rev

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

Rev 363 Rev 377
Line 239... Line 239...
239
           not eax
239
           not eax
240
           ret
240
           ret
241
endp
241
endp
242
 
242
 
Line -... Line 243...
-
 
243
; param
-
 
244
;  ebx= io_control
-
 
245
;
-
 
246
; retval
-
 
247
;  eax= error code
-
 
248
 
243
align 4
249
align 4
244
proc srv_handlerEx stdcall, ioctl:dword
250
srv_handlerEx:
245
           mov esi, [ioctl]
-
 
246
           test esi, esi
251
           test ebx, ebx
247
           jz .err
252
           jz .fail
248
           add esi, new_app_base
253
           add ebx, new_app_base
Line 249... Line 254...
249
 
254
 
250
           mov edi, [esi+handle]
255
           mov eax, [ebx+handle]
251
           cmp [edi+SRV.magic], ' SRV'
256
           cmp [eax+SRV.magic], ' SRV'
Line 252... Line 257...
252
	   jne .fail
257
	   jne .fail
253
 
258
 
Line 254... Line 259...
254
           cmp [edi+SRV.size], SRV_SIZE
259
           cmp [eax+SRV.size], SRV_SIZE
255
	   jne .fail
260
	   jne .fail
Line 256... Line 261...
256
 
261
 
257
           add [esi+input], new_app_base
262
           add [ebx+input], new_app_base
258
           add [esi+output], new_app_base
263
           add [ebx+output], new_app_base
259
 
264
 
260
           stdcall [edi+SRV.srv_proc], esi
-
 
261
           ret
-
 
262
.fail:
-
 
263
           xor eax, eax
265
           stdcall [eax+SRV.srv_proc], ebx
264
           not eax
-
 
265
           mov [esi+output], eax
-
 
266
           mov [esi+out_size], 4
-
 
267
           ret
-
 
268
.err:
-
 
Line 269... Line 266...
269
           xor eax, eax
266
           ret
270
           not eax
267
.fail:
271
           ret
268
           or eax, -1
272
endp
269
           ret