Subversion Repositories Kolibri OS

Rev

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

Rev 2468 Rev 2472
Line 67... Line 67...
67
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
67
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 68... Line 68...
68
 
68
 
69
include 'macros.inc'
69
include 'macros.inc'
Line 70... Line 70...
70
include 'struct.inc'
70
include 'struct.inc'
Line 71... Line 71...
71
 
71
 
Line 72... Line 72...
72
$Revision: 2468 $
72
$Revision: 2472 $
Line 2033... Line 2033...
2033
   shutdown_processes:
2033
   shutdown_processes:
2034
                       dd 0x0
2034
                       dd 0x0
2035
  endg
2035
  endg
2036
;------------------------------------------------------------------------------
2036
;------------------------------------------------------------------------------
2037
sysfn_terminate:        ; 18.2 = TERMINATE
2037
sysfn_terminate:        ; 18.2 = TERMINATE
-
 
2038
        push    ecx
2038
        cmp     ecx, 2
2039
        cmp     ecx, 2
2039
        jb      noprocessterminate
2040
        jb      noprocessterminate
2040
        mov     edx, [TASK_COUNT]
2041
        mov     edx, [TASK_COUNT]
2041
        cmp     ecx, edx
2042
        cmp     ecx, edx
2042
        ja      noprocessterminate
2043
        ja      noprocessterminate
2043
        mov     eax, [TASK_COUNT]
2044
        mov     eax, [TASK_COUNT]
2044
        push    ecx
-
 
2045
        shl     ecx, 5
2045
        shl     ecx, 5
2046
        mov     edx, [ecx+CURRENT_TASK+TASKDATA.pid]
2046
        mov     edx, [ecx+CURRENT_TASK+TASKDATA.pid]
2047
        add     ecx, CURRENT_TASK+TASKDATA.state
2047
        add     ecx, CURRENT_TASK+TASKDATA.state
2048
        cmp     byte [ecx], 9
2048
        cmp     byte [ecx], 9
2049
        jz      noprocessterminate
2049
        jz      noprocessterminate
Line 2060... Line 2060...
2060
        je      @f
2060
        je      @f
2061
        call    restore_default_cursor_before_killing
2061
        call    restore_default_cursor_before_killing
2062
@@:
2062
@@:
2063
        popa
2063
        popa
2064
.restore_end:
2064
.restore_end:
2065
        add     esp, 4
-
 
2066
;--------------------------------------
2065
;--------------------------------------
2067
     ;call MEM_Heap_Lock      ;guarantee that process isn't working with heap
2066
     ;call MEM_Heap_Lock      ;guarantee that process isn't working with heap
2068
        mov     [ecx], byte 3; clear possible i40's
2067
        mov     [ecx], byte 3; clear possible i40's
2069
     ;call MEM_Heap_UnLock
2068
     ;call MEM_Heap_UnLock
Line 2073... Line 2072...
2073
        and     [application_table_status], 0
2072
        and     [application_table_status], 0
2074
noatsc:
2073
noatsc:
2075
; for guarantee the updating data
2074
; for guarantee the updating data
2076
        call    change_task
2075
        call    change_task
2077
noprocessterminate:
2076
noprocessterminate:
-
 
2077
        add     esp, 4
2078
        ret
2078
        ret
2079
;------------------------------------------------------------------------------
2079
;------------------------------------------------------------------------------
2080
sysfn_terminate2:
2080
sysfn_terminate2:
2081
;lock application_table_status mutex
2081
;lock application_table_status mutex
2082
.table_status:
2082
.table_status: