Subversion Repositories Kolibri OS

Rev

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

Rev 1074 Rev 1077
Line 3625... Line 3625...
3625
    * +0: dword: identifier for underlying data of signal
3625
    * +0: dword: identifier for underlying data of signal
3626
    * +4: data of signal (20 bytes), format of which is defining by
3626
    * +4: data of signal (20 bytes), format of which is defining by
3627
          first dword
3627
          first dword
Line 3628... Line 3628...
3628
 
3628
 
3629
======================================================================
3629
======================================================================
3630
====== Function 68, subfunction 15 - set new exceptions handler ======
3630
====== Function 68, subfunction 15 - set FPU exception handler. ======
3631
======================================================================
-
 
3632
Parameters:
-
 
3633
  * eax = 68 - function number
-
 
3634
  * ebx = 15 - subfunction number
-
 
3635
  * ecx = address of the new exception handler
-
 
3636
  * edx = the mask of processing exceptions
-
 
3637
Returned value:
-
 
3638
  * eax = address of the old exception handler (0, if it was not set)
-
 
3639
  * ebx = the old mask of exception handler
-
 
3640
Remarks:
-
 
3641
  * Bit number in mask of exceptions is correspond to exception number
-
 
3642
    by CPU-specification (Intel-PC). For example, FPU-exception have
-
 
3643
    number 16 (#MF), and SSE-exception - 19 (#XF)
3631
======================================================================
3644
  * The current implementation ignore the inquiry for hook of 7
-
 
3645
    exception - system process #NM by one's own.
-
 
3646
  * User handler get exception number in stack parameter. So, correct
-
 
3647
    exit from handler is: RET 4. Return from handler is to the same
3632
Deleted (in current implementation only 0 is returned).
3648
    instruction, that was cause the exception
-
 
3649
  * When control is transfering to user handler, corresponding bit in
-
 
3650
    exception mask is clearing. Rising this exception in consequence
-
 
3651
    - reduce to default-handling. Exactly: terminating the application,
-
 
3652
    or suspending with debug-notify to owner.
-
 
3653
  * After completion of critical operations in user handler, it may be
-
 
3654
    rising corresponding bit in exception mask by using subfunction 18
-
 
3655
    Clearing exceptions flags in FPU and/or XMM modules - is
-
 
Line 3656... Line 3633...
3656
    responsibility of user handler too.
3633
Using subfunctions 24, 25 is true.
3657
 
3634
 
3658
======================================================================
3635
======================================================================
3659
============= Function 68, subfunction 16 - load driver. =============
3636
============= Function 68, subfunction 16 - load driver. =============
Line 3692... Line 3669...
3692
  * Function codes and the structure of input/output data
3669
  * Function codes and the structure of input/output data
3693
    are defined by driver.
3670
    are defined by driver.
3694
  * Previously one must obtain driver handle by subfunction 16.
3671
  * Previously one must obtain driver handle by subfunction 16.
Line 3695... Line 3672...
3695
 
3672
 
3696
======================================================================
3673
======================================================================
3697
==== Function 68, subfunction 18 - change state of signal activity ===
3674
====== Function 68, subfunction 18 - set SSE exception handler. ======
3698
======================================================================
-
 
3699
Parameters:
-
 
3700
  * eax = 68 - function number
-
 
3701
  * ebx = 15 - subfunction number
-
 
3702
  * ecx = signal number
-
 
3703
  * edx = value of activity (0/1)
-
 
3704
Returned value:
-
 
3705
  * eax = value of old activity for this signal (0/1)
-
 
3706
Remarks:
3675
======================================================================
3707
  * In current implementation, it is changed only exception mask for
-
 
3708
    user exception handler, wich was previously set by subfunction 15.
3676
Deleted (in current implementation only 0 is returned).
Line 3709... Line 3677...
3709
    At that, number of signal correspond to exception number.
3677
Using subfunctions 24, 25 is true.
3710
 
3678
 
3711
======================================================================
3679
======================================================================
3712
=============== Function 68, subfunction 19 - load DLL. ==============
3680
=============== Function 68, subfunction 19 - load DLL. ==============
Line 3745... Line 3713...
3745
  * If ecx=0, the function frees memory block at edx and returns 0.
3713
  * If ecx=0, the function frees memory block at edx and returns 0.
3746
  * The contents of the block are unchanged up to the shorter of
3714
  * The contents of the block are unchanged up to the shorter of
3747
    the new and old sizes.
3715
    the new and old sizes.
Line 3748... Line 3716...
3748
 
3716
 
-
 
3717
======================================================================
-
 
3718
====== Function 68, subfunction 24 - set new exceptions handler ======
-
 
3719
======================================================================
-
 
3720
Parameters:
-
 
3721
  * eax = 68 - function number
-
 
3722
  * ebx = 24 - subfunction number
-
 
3723
  * ecx = address of the new exception handler
-
 
3724
  * edx = the mask of processing exceptions
-
 
3725
Returned value:
-
 
3726
  * eax = address of the old exception handler (0, if it was not set)
-
 
3727
  * ebx = the old mask of exception handler
-
 
3728
Remarks:
-
 
3729
  * Bit number in mask of exceptions is correspond to exception number
-
 
3730
    by CPU-specification (Intel-PC). For example, FPU-exception have
-
 
3731
    number 16 (#MF), and SSE-exception - 19 (#XF)
-
 
3732
  * The current implementation ignore the inquiry for hook of 7
-
 
3733
    exception - system process #NM by one's own.
-
 
3734
  * User handler get exception number in stack parameter. So, correct
-
 
3735
    exit from handler is: RET 4. Return from handler is to the same
-
 
3736
    instruction, that was cause the exception
-
 
3737
  * When control is transfering to user handler, corresponding bit in
-
 
3738
    exception mask is clearing. Rising this exception in consequence
-
 
3739
    - reduce to default-handling. Exactly: terminating the application,
-
 
3740
    or suspending with debug-notify to owner.
-
 
3741
  * After completion of critical operations in user handler, it may be
-
 
3742
    rising corresponding bit in exception mask by using subfunction 18
-
 
3743
    Clearing exceptions flags in FPU and/or XMM modules - is
-
 
3744
    responsibility of user handler too.
-
 
3745
 
-
 
3746
======================================================================
-
 
3747
==== Function 68, subfunction 25 - change state of signal activity ===
-
 
3748
======================================================================
-
 
3749
Parameters:
-
 
3750
  * eax = 68 - function number
-
 
3751
  * ebx = 25 - subfunction number
-
 
3752
  * ecx = signal number
-
 
3753
  * edx = value of activity (0/1)
-
 
3754
Returned value:
-
 
3755
  * eax = value of old activity for this signal (0/1)
-
 
3756
Remarks:
-
 
3757
  * In current implementation, it is changed only exception mask for
-
 
3758
    user exception handler, wich was previously set by subfunction 15.
-
 
3759
    At that, number of signal correspond to exception number.
-
 
3760
 
3749
======================================================================
3761
======================================================================
3750
====================== Fucntion 69 - debugging. ======================
3762
====================== Fucntion 69 - debugging. ======================
3751
======================================================================
3763
======================================================================
3752
A process can load other process as debugged by set of corresponding
3764
A process can load other process as debugged by set of corresponding
3753
bit by call to subfunction 7 of function 70.
3765
bit by call to subfunction 7 of function 70.