mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-26 19:00:18 +03:00
add function for get SRV structure
git-svn-id: svn://kolibrios.org@9441 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
dc2ad5b020
commit
a83d394677
@ -1103,7 +1103,7 @@ f68:
|
||||
jbe sys_sheduler
|
||||
cmp ebx, 11
|
||||
jb undefined_syscall
|
||||
cmp ebx, 30
|
||||
cmp ebx, 31
|
||||
ja undefined_syscall
|
||||
xor eax, eax
|
||||
jmp dword [f68call+ebx*4-11*4]
|
||||
@ -1232,6 +1232,10 @@ f68:
|
||||
jae .fail
|
||||
cmp ecx, OS_BASE
|
||||
jbe .fail
|
||||
cmp [ecx+SRV.magic], ' SRV'
|
||||
jne .fail
|
||||
cmp [ecx+SRV.size], sizeof.SRV
|
||||
jne .fail
|
||||
|
||||
mov eax, [ecx+SRV.entry]
|
||||
test eax, eax
|
||||
@ -1259,9 +1263,49 @@ f68:
|
||||
|
||||
mov [esp+SYSCALL_STACK._eax], eax
|
||||
ret
|
||||
;.31: ;prototype function for get list service
|
||||
;
|
||||
; ret
|
||||
.31: ; get list service
|
||||
test ecx, ecx
|
||||
jz .fail ; get count
|
||||
dec ecx
|
||||
jnz @f ;1 - get pointer first and last structure
|
||||
|
||||
mov ebx, [srv.fd]
|
||||
mov ecx, [srv.bk]
|
||||
mov [esp+SYSCALL_STACK._ebx], ebx ;fd
|
||||
mov [esp+SYSCALL_STACK._ecx], ecx ;bk
|
||||
mov [esp+SYSCALL_STACK._eax], 0
|
||||
ret
|
||||
@@:
|
||||
dec ecx
|
||||
jnz .fail ; 2 - get info for SRV structure
|
||||
|
||||
mov eax, -1
|
||||
cmp ecx, OS_BASE ; ecx = pointer on structure
|
||||
jbe .fail
|
||||
stdcall is_region_userspace, edx, 40 ;16+4*6=40 <-max size buffer
|
||||
jnz .fail ; edx = pointer on buffer
|
||||
cmp [ecx+SRV.magic], ' SRV'
|
||||
jne .fail
|
||||
cmp [ecx+SRV.size], sizeof.SRV
|
||||
jne .fail
|
||||
|
||||
mov edi, edx
|
||||
mov esi, ecx
|
||||
movsd ; name service 16 byte
|
||||
movsd
|
||||
movsd
|
||||
movsd
|
||||
lea esi, [ecx+SRV.fd]
|
||||
movsd ; SRV.fd
|
||||
movsd ; SRV.bk
|
||||
movsd ; SRV.base
|
||||
movsd ; SRV.entry
|
||||
movsd ; SRV.srv_proc
|
||||
;movsd ; SRV.srv_proc_ex
|
||||
|
||||
xor eax, eax
|
||||
mov [esp+SYSCALL_STACK._eax], eax
|
||||
ret
|
||||
.fail:
|
||||
mov [esp+SYSCALL_STACK._eax], eax
|
||||
ret
|
||||
@ -1289,6 +1333,7 @@ f68call: ; keep this table closer to main code
|
||||
dd f68.28 ; loadFileUnicode
|
||||
dd f68.29 ; user_ring
|
||||
dd f68.30 ; unload_driver
|
||||
dd f68.31 ; get_driver_info
|
||||
|
||||
align 4
|
||||
proc load_pe_driver stdcall, file:dword, cmdline:dword
|
||||
|
Loading…
Reference in New Issue
Block a user