Added Implementation of the function in the system - EAX = 81

git-svn-id: svn://kolibrios.org@7319 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
pavelyakov 2018-08-24 23:55:36 +00:00
parent ffac4f146d
commit bdc68077f4

View File

@ -179,8 +179,52 @@ iglobal
dd undefined_syscall ; 78-free dd undefined_syscall ; 78-free
dd undefined_syscall ; 79-free dd undefined_syscall ; 79-free
dd fileSystemUnicode ; 80-File system interface for different encodings dd fileSystemUnicode ; 80-File system interface for different encodings
dd setInt0x40 ; 81-Implementation of the function in the system
times 255 - ( ($-servetable2) /4 ) dd undefined_syscall times 255 - ( ($-servetable2) /4 ) dd undefined_syscall
dd sys_end ; -1-end application dd sys_end ; -1-end application
endg endg
; Author Pavel Iakovlev
; Return EAX = 0 security kernel, error set function
; Return Else EAX > 0 success set function
align 4
setInt0x40:
; !!! kernel security !!!
mov eax, dword [servetable2 + ebx * 4]
cmp eax, undefined_syscall
jne errorSet0x40
; -----------------------
pushad
add edx, 16
stdcall kernel_alloc, edx
mov dword[tempPointerAlloc], eax
popad
push ebx
mov eax, dword[tempPointerAlloc]
mov ebx, eax
add eax, edx
loopCopyMemory:
mov dh, byte[ecx]
mov byte[ebx], dh
inc ebx
inc ecx
cmp ebx, eax
jne loopCopyMemory
pop ebx
mov eax, dword[tempPointerAlloc]
mov dword [servetable2 + ebx * 4], eax
jmp successSet0x40
errorSet0x40:
xor eax, eax
successSet0x40:
ret
tempPointerAlloc dd ?
;-------------------