Function 18/18 added. It terminate process by PID (instead of slot as in function 18/2).

git-svn-id: svn://kolibrios.org@85 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Andrey Halyavin (halyavin) 2006-06-14 07:42:59 +00:00
parent 8c3875e438
commit 62da2ad490
2 changed files with 42 additions and 0 deletions

View File

@ -928,6 +928,20 @@ db 'Kolibri',0
‚®§¢à é ¥¬®¥ §­ ç¥­¨¥:
* eax = ®¡é¨© à §¬¥à ¨¬¥î饩áï ¯ ¬ï⨠¢ ª¨«®¡ ©â å
======================================================================
====================== ”ã­ªæ¨ï 18¡ ¯®¤äã­ªæ¨ï 18 =====================
===================== ‡ ¢¥à襭¨¥ ¯à®æ¥áá  ¯® PID'ã ===================
======================================================================
<EFBFBD> à ¬¥âàë:
* eax = 18 - ­®¬¥à ä㭪樨
* ebx = 18 - ­®¬¥à ¯®¤ä㭪樨
* ecx = PID
‚®§à é ¥¬®¥ §­ ç¥­¨¥:
* eax = 0 - ¯à®æ¥áá § ¢¥à襭.
* eax = -1 - ®è¨¡ª . (¯à®æ¥áá á â ª¨¬ PID ­¥ áãé¥áâ¢ã¥â ¨«¨ ï¥âáï
á¨á⥬­ë¬)
======================================================================
============ ”ã­ªæ¨ï 19 - § ¯ãáâ¨âì ¯à®£à ¬¬ã á à ¬¤¨áª . ============
======================================================================

View File

@ -2103,6 +2103,7 @@ sys_system_table:
dd sysfn_centermouse ; 15 = center mouse cursor
dd sysfn_getfreemem ; 16 = get free memory size
dd sysfn_getallmem ; 17 = get total memory size
dd sysfn_terminate2 ; 18 = terminate thread using PID instead of slot
sysfn_num = ($ - sys_system_table)/4
endg
@ -2151,6 +2152,33 @@ sysfn_terminate: ; 18.2 = TERMINATE
noprocessterminate:
ret
sysfn_terminate2:
;lock application_table_status mutex
.table_status:
cli
cmp [application_table_status],0
je .stf
sti
call change_task
jmp .table_status
.stf:
call set_application_table_status
mov eax,ebx
call pid_to_slot
test eax,eax
jz .not_found
mov ebx,eax
cli
call sysfn_terminate
mov [application_table_status],0
sti
and dword [esp+36],0
ret
.not_found:
mov [application_table_status],0
or dword [esp+36],-1
ret
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
cmp ebx,2
jb nowindowactivate