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: |