forked from KolibriOS/kolibrios
Added KERNEL process
git-svn-id: svn://kolibrios.org@7321 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
343e87c60f
commit
3c1445e6c6
@ -588,6 +588,7 @@ tup.append_table(img_files, {
|
|||||||
{"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
|
{"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
|
||||||
{"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
|
{"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
|
||||||
{"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
|
{"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
|
||||||
|
{"@KERNEL", PROGS .. "/cmm/KERNEL/kernel.com"},
|
||||||
})
|
})
|
||||||
tup.append_table(extra_files, {
|
tup.append_table(extra_files, {
|
||||||
{"kolibrios/drivers/DRVINST.KEX", PROGS .. "/cmm/drvinst/drvinst.com"},
|
{"kolibrios/drivers/DRVINST.KEX", PROGS .. "/cmm/drvinst/drvinst.com"},
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#/SYS/DEVELOP/BOARD "" 0 # Load DEBUG board
|
#/SYS/DEVELOP/BOARD "" 0 # Load DEBUG board
|
||||||
/SYS/SETUP BOOT 0 # Load device settings
|
/SYS/SETUP BOOT 0 # Load device settings
|
||||||
/SYS/LOADDRV RDC 0 # videodriver for RDC M2010/M2012
|
/SYS/LOADDRV RDC 0 # videodriver for RDC M2010/M2012
|
||||||
|
/SYS/@KERNEL "" 0 # Start modify KERNEL
|
||||||
/SYS/@TASKBAR "" 0 # Start taskbar
|
/SYS/@TASKBAR "" 0 # Start taskbar
|
||||||
/SYS/@ICON "" 0 # Multithread icon
|
/SYS/@ICON "" 0 # Multithread icon
|
||||||
/SYS/ESKIN "" 0 # Set style
|
/SYS/ESKIN "" 0 # Set style
|
||||||
|
@ -191,70 +191,70 @@ endg
|
|||||||
; Return Else EAX > 0 success set function
|
; Return Else EAX > 0 success set function
|
||||||
align 32
|
align 32
|
||||||
setInt0x40:
|
setInt0x40:
|
||||||
|
|
||||||
; !!! kernel security !!!
|
; !!! kernel security !!!
|
||||||
and ebx, 0FFh
|
and ebx, 0FFh
|
||||||
mov eax, dword [servetable2 + ebx * 4]
|
mov eax, dword [servetable2 + ebx * 4]
|
||||||
cmp eax, undefined_syscall
|
; cmp eax, undefined_syscall
|
||||||
jne errorSet0x40
|
; jne errorSet0x40
|
||||||
; -----------------------
|
; -----------------------
|
||||||
|
|
||||||
pushad
|
pushad
|
||||||
add edx, 16
|
add edx, 16
|
||||||
stdcall kernel_alloc, edx
|
stdcall kernel_alloc, edx
|
||||||
push eax
|
push eax
|
||||||
pop dword[tempPointerAlloc]
|
pop dword[tempPointerAlloc]
|
||||||
popad
|
popad
|
||||||
|
|
||||||
|
|
||||||
push ebx
|
push ebx
|
||||||
push dword[tempPointerAlloc]
|
push dword[tempPointerAlloc]
|
||||||
pop eax
|
pop eax
|
||||||
mov ebx, eax
|
mov ebx, eax
|
||||||
add eax, edx
|
add eax, edx
|
||||||
|
|
||||||
push 0
|
push 0
|
||||||
pop dword[hashDataFunction1]
|
pop dword[hashDataFunction1]
|
||||||
push 1
|
push 1
|
||||||
pop dword[hashDataFunction2]
|
pop dword[hashDataFunction2]
|
||||||
|
|
||||||
loopCopyMemory:
|
loopCopyMemory:
|
||||||
xor edx, edx
|
xor edx, edx
|
||||||
|
|
||||||
mov dl, byte[ecx]
|
mov dl, byte[ecx]
|
||||||
mov byte[ebx], dl
|
mov byte[ebx], dl
|
||||||
|
|
||||||
; hash security function
|
; hash security function
|
||||||
add dword[hashDataFunction1], edx
|
add dword[hashDataFunction1], edx
|
||||||
mov edx, dword[hashDataFunction1]
|
mov edx, dword[hashDataFunction1]
|
||||||
add dword[hashDataFunction2], edx
|
add dword[hashDataFunction2], edx
|
||||||
;-----------------------------
|
;-----------------------------
|
||||||
|
|
||||||
inc ebx
|
inc ebx
|
||||||
inc ecx
|
inc ecx
|
||||||
cmp ebx, eax
|
cmp ebx, eax
|
||||||
jne loopCopyMemory
|
jne loopCopyMemory
|
||||||
|
|
||||||
pop ebx
|
pop ebx
|
||||||
|
|
||||||
; check hash security data
|
; check hash security data
|
||||||
; cmp edi, dword[hashDataFunction1]
|
; cmp edi, dword[hashDataFunction1]
|
||||||
; jne errorSet0x40
|
; jne errorSet0x40
|
||||||
; cmp esi, dword[hashDataFunction2]
|
; cmp esi, dword[hashDataFunction2]
|
||||||
; jne errorSet0x40
|
; jne errorSet0x40
|
||||||
;-------------------------------
|
;-------------------------------
|
||||||
|
|
||||||
mov eax, dword[tempPointerAlloc]
|
mov eax, dword[tempPointerAlloc]
|
||||||
mov dword [servetable2 + ebx * 4], eax
|
mov dword [servetable2 + ebx * 4], eax
|
||||||
jmp successSet0x40
|
jmp successSet0x40
|
||||||
|
|
||||||
errorSet0x40:
|
errorSet0x40:
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
|
|
||||||
successSet0x40:
|
successSet0x40:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
tempPointerAlloc dd ?
|
tempPointerAlloc dd ?
|
||||||
hashDataFunction1 dd ?
|
;hashDataFunction1 dd ?
|
||||||
hashDataFunction2 dd ?
|
;hashDataFunction2 dd ?
|
||||||
;-------------------
|
;-------------------
|
6
programs/cmm/KERNEL/Tupfile.lua
Normal file
6
programs/cmm/KERNEL/Tupfile.lua
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
if tup.getconfig("NO_CMM") ~= "" then return end
|
||||||
|
if tup.getconfig("LANG") == "ru"
|
||||||
|
then C_LANG = "LANG_RUS"
|
||||||
|
else C_LANG = "LANG_ENG" -- this includes default case without config
|
||||||
|
end
|
||||||
|
tup.rule("kernel.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "kernel.com")
|
5
programs/cmm/KERNEL/build.bat
Normal file
5
programs/cmm/KERNEL/build.bat
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
C-- kernel.c
|
||||||
|
del @KERNEL
|
||||||
|
rename kernel.com @KERNEL
|
||||||
|
|
||||||
|
pause
|
48
programs/cmm/KERNEL/kernel.c
Normal file
48
programs/cmm/KERNEL/kernel.c
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#pragma option OST
|
||||||
|
#pragma option ON
|
||||||
|
#pragma option cri-
|
||||||
|
#pragma option -CPA
|
||||||
|
#initallvar 0
|
||||||
|
#jumptomain FALSE
|
||||||
|
|
||||||
|
#startaddress 0x0000
|
||||||
|
|
||||||
|
|
||||||
|
char os_name[8] = {'M','E','N','U','E','T','0','1'};
|
||||||
|
dword os_version = 0x00000001;
|
||||||
|
dword start_addr = #____INIT____;
|
||||||
|
dword final_addr = #____STOP____+32;
|
||||||
|
dword alloc_mem = 4*1024*1024;
|
||||||
|
dword x86esp_reg = 4*1024*1024;
|
||||||
|
dword I_Param = #param;
|
||||||
|
dword I_Path = #program_path;
|
||||||
|
char param[4096];
|
||||||
|
char program_path[4096];
|
||||||
|
|
||||||
|
|
||||||
|
void ExitProcess()
|
||||||
|
{
|
||||||
|
EAX = -1;
|
||||||
|
$int 0x40
|
||||||
|
}
|
||||||
|
|
||||||
|
dword eaxFunctionDestroy(){RETURN 0;}
|
||||||
|
eaxFunctionDestroyEnd:
|
||||||
|
|
||||||
|
void ____INIT____()
|
||||||
|
{
|
||||||
|
|
||||||
|
// Disable door kernel
|
||||||
|
EAX = 81;
|
||||||
|
EBX = 81;
|
||||||
|
ECX = #eaxFunctionDestroy;
|
||||||
|
EDX = #eaxFunctionDestroyEnd-#eaxFunctionDestroy;
|
||||||
|
$int 0x40
|
||||||
|
|
||||||
|
ExitProcess();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ____STOP____()
|
||||||
|
{
|
||||||
|
ExitProcess();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user