Subversion Repositories Kolibri OS

Rev

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

Rev 321 Rev 329
Line 541... Line 541...
541
 
541
 
542
    pop  eax
542
    pop  eax
543
    stc
543
    stc
Line -... Line 544...
-
 
544
    ret
-
 
545
 
-
 
546
uglobal
-
 
547
  new_process_place  dd  0x0
-
 
548
  app_start    dd  0x0
-
 
549
  app_i_end    dd  0x0
-
 
550
  app_mem      dd  0x0
-
 
551
  app_esp      dd  0x0
-
 
552
  app_i_param  dd  0x0
544
    ret
553
  app_i_icon   dd  0x0
Line -... Line 554...
-
 
554
  app_mem_pos  dd  0x0
Line 545... Line -...
545
 
-
 
546
end if
-
 
547
 
-
 
548
 
-
 
549
;uglobal
-
 
550
;  new_process_place  dd  0x0
-
 
551
;  app_start    dd  0x0
-
 
552
;  app_i_end    dd  0x0
-
 
553
;  app_mem      dd  0x0
-
 
554
;  app_esp      dd  0x0
-
 
Line 555... Line 555...
555
;  app_i_param  dd  0x0
555
endg
Line 556... Line 556...
556
;  app_i_icon   dd  0x0
556
 
557
;  app_mem_pos  dd  0x0
557
end if
Line 568... Line 568...
568
jmp new_sys_threads
568
jmp new_sys_threads
Line 569... Line 569...
569
 
569
 
570
iglobal
570
iglobal
571
  process_terminating   db 'K : Process - terminating',13,10,0
571
  process_terminating   db 'K : Process - terminating',13,10,0
-
 
572
  process_terminated    db 'K : Process - done',13,10,0
572
  process_terminated    db 'K : Process - done',13,10,0
573
  msg_obj_destroy       db 'K : destroy app object',13,10,0
Line -... Line 574...
-
 
574
endg
-
 
575
 
Line 573... Line 576...
573
endg
576
; param
-
 
577
;  esi= slot
-
 
578
 
-
 
579
terminate: ; terminate application
574
 
580
 
575
 
581
           .slot equ esp   ;locals
576
terminate: ; terminate application
582
 
577
    push   esi
-
 
578
    mov    esi,process_terminating
-
 
579
    call   sys_msg_board_str
583
           push   esi      ;save .slot
580
    pop    esi
584
           mov    esi,process_terminating
581
 
585
           call   sys_msg_board_str
582
@@:
586
@@:
583
    cli
587
           cli
584
    cmp   [application_table_status],0
588
           cmp   [application_table_status],0
585
    je    term9
589
           je    term9
586
    sti
590
           sti
587
    call  change_task
-
 
588
    jmp   @b
591
           call  change_task
Line -... Line 592...
-
 
592
           jmp   @b
-
 
593
term9:
-
 
594
           call  set_application_table_status
-
 
595
 
-
 
596
           mov esi, [.slot]
589
  term9:
597
           shl esi,8
-
 
598
           add esi, PROC_BASE+APP_OBJ_OFFSET
Line 590... Line 599...
590
 
599
@@:
-
 
600
           mov eax, [esi+APPOBJ.fd]
-
 
601
           cmp eax, esi
-
 
602
           je @F
-
 
603
 
-
 
604
           push esi
-
 
605
           call [eax+APPOBJ.destroy]
-
 
606
           mov  esi, msg_obj_destroy
591
    call  set_application_table_status
607
           call sys_msg_board_str
592
 
608
           pop esi
593
    mov    eax,esi
609
           jmp @B
594
 
-
 
Line -... Line 610...
-
 
610
@@:
-
 
611
           mov eax, [.slot]
595
    pushad
612
           shl eax, 8
596
    shl   eax,8
613
           mov eax,[PROC_BASE+eax+APPDATA.dir_table]
Line 597... Line 614...
597
    mov   eax,[PROC_BASE+eax+0xB8]
614
           stdcall destroy_app_space, eax
598
    stdcall destroy_app_space, eax
615
 
599
    popad
616
;;           mov esi, [.slot]
-
 
617
           pop esi               ;restore stack
600
 
618
           cmp [fpu_owner],esi   ; if user fpu last -> fpu user = 1
601
    cmp   [fpu_owner],esi   ; if user fpu last -> fpu user = 1
619
           jne fpu_ok_1
602
    jne   fpu_ok_1
620
 
603
 
621
           mov [fpu_owner],1
604
    mov [fpu_owner],1
622
           mov eax, [256+PROC_BASE+APPDATA.fpu_state]
Line 880... Line 898...
880
    mov   [0xfff5],byte 0  ; draw mouse
898
    mov   [0xfff5],byte 0  ; draw mouse
Line 881... Line 899...
881
 
899
 
882
    mov   [application_table_status],0
900
    mov   [application_table_status],0
883
    mov   esi,process_terminated
901
    mov   esi,process_terminated
884
    call  sys_msg_board_str
-
 
885
 
902
    call  sys_msg_board_str
Line 886... Line 903...
886
    ret
903
    ret
887
 
904
 
888
iglobal
905
iglobal