Subversion Repositories Kolibri OS

Rev

Rev 3303 | Rev 3341 | 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