Rev 3303 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3303 | Rev 3325 | ||
---|---|---|---|
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: 3303 $ |
72 | $Revision: 3325 $ |
Line 3484... | Line 3484... | ||
3484 | je noshutdown |
3484 | je noshutdown |
Line 3485... | Line 3485... | ||
3485 | 3485 | ||
Line 3486... | Line 3486... | ||
3486 | mov edx, [shutdown_processes] |
3486 | mov edx, [shutdown_processes] |
3487 | 3487 | ||
Line 3488... | Line 3488... | ||
3488 | cmp [SYS_SHUTDOWN], dl |
3488 | cmp [SYS_SHUTDOWN], dl |
3489 | jne no_mark_system_shutdown |
3489 | jne noshutdown |
3490 | 3490 | ||
3491 | lea ecx, [edx-1] |
3491 | lea ecx, [edx-1] |
3492 | mov edx, OS_BASE+0x3040 |
3492 | mov edx, OS_BASE+0x3040 |
3493 | jecxz @f |
3493 | jecxz no_mark_system_shutdown |
3494 | ;-------------------------------------- |
3494 | ;-------------------------------------- |
- | 3495 | align 4 |
|
- | 3496 | markz: |
|
3495 | align 4 |
3497 | push ecx edx |
- | 3498 | cmp [edx+TASKDATA.state], 9 |
|
- | 3499 | jz .nokill |
|
3496 | markz: |
3500 | lea edx, [(edx-(CURRENT_TASK and 1FFFFFFFh))*8+SLOT_BASE] |
- | 3501 | cmp [edx+APPDATA.dir_table], sys_pgdir - OS_BASE |
|
- | 3502 | jz .nokill |
|
- | 3503 | call request_terminate |
|
- | 3504 | jmp .common |
|
- | 3505 | .nokill: |
|
3497 | push ecx edx |
3506 | dec byte [SYS_SHUTDOWN] |
3498 | lea edx, [(edx-(TASK_DATA and 1FFFFFFFh))*8+SLOT_BASE] |
3507 | xor eax, eax |
3499 | call request_terminate |
3508 | .common: |
3500 | pop edx ecx |
3509 | pop edx ecx |
3501 | test eax, eax |
3510 | test eax, eax |
Line 3519... | Line 3528... | ||
3519 | ;-------------------------------------- |
3528 | ;-------------------------------------- |
3520 | align 4 |
3529 | align 4 |
3521 | newct: |
3530 | newct: |
3522 | mov cl, [ebx] |
3531 | mov cl, [ebx] |
3523 | cmp cl, byte 3 |
3532 | cmp cl, byte 3 |
3524 | jz terminate |
3533 | jz .terminate |
Line 3525... | Line 3534... | ||
3525 | 3534 | ||
- | 3535 | cmp cl, byte 4 |
|
- | 3536 | jnz .noterminate |
|
- | 3537 | .terminate: |
|
- | 3538 | pushad |
|
- | 3539 | call terminate |
|
- | 3540 | popad |
|
3526 | cmp cl, byte 4 |
3541 | cmp byte [SYS_SHUTDOWN], 0 |
- | 3542 | jz .noterminate |
|
- | 3543 | dec byte [SYS_SHUTDOWN] |
|
Line -... | Line 3544... | ||
- | 3544 | je system_shutdown |
|
3527 | jz terminate |
3545 | |
3528 | 3546 | .noterminate: |
|
3529 | add ebx, 0x20 |
3547 | add ebx, 0x20 |
3530 | inc esi |
3548 | inc esi |
3531 | dec eax |
3549 | dec eax |