Rev 1018 | Rev 1077 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1018 | Rev 1074 | ||
---|---|---|---|
Line 3611... | Line 3611... | ||
3611 | Remarks: |
3611 | Remarks: |
3612 | * The memory block must have been allocated by subfunction 12 |
3612 | * The memory block must have been allocated by subfunction 12 |
3613 | or subfunction 20. |
3613 | or subfunction 20. |
Line 3614... | Line 3614... | ||
3614 | 3614 | ||
3615 | ====================================================================== |
3615 | ====================================================================== |
- | 3616 | ===================== Function 68, subfunction 14 ==================== |
|
3616 | ======== Function 68, subfunction 14 - wait for driver notify. ======= |
3617 | ====== Waiting delivering of signal from another program/driver ====== |
3617 | ====================================================================== |
3618 | ====================================================================== |
3618 | Parameters: |
3619 | Parameters: |
3619 | * eax = 68 - function number |
3620 | * eax = 68 - function number |
3620 | * ebx = 14 - subfunction number |
3621 | * ebx = 14 - subfunction number |
3621 | * ecx = pointer to the buffer for information (8 bytes) |
3622 | * ecx = pointer to the buffer for information (24 bytes) |
3622 | Returned value: |
3623 | Returned value: |
3623 | * buffer pointed to by ecx contains the following information: |
3624 | * buffer pointed to by ecx contains the following information: |
3624 | * +0: dword: constant EV_INTR = 1 |
- | |
3625 | * +4: dword: driver data |
- | |
3626 | Remarks: |
3625 | * +0: dword: identifier for underlying data of signal |
3627 | * The current implementation at wait time uses "heavy" operations |
3626 | * +4: data of signal (20 bytes), format of which is defining by |
Line 3628... | Line 3627... | ||
3628 | of task switch. |
3627 | first dword |
3629 | 3628 | ||
3630 | ====================================================================== |
3629 | ====================================================================== |
3631 | ====== Function 68, subfunction 15 - set FPU exception handler. ====== |
3630 | ====== Function 68, subfunction 15 - set new exceptions handler ====== |
3632 | ====================================================================== |
3631 | ====================================================================== |
3633 | Parameters: |
3632 | Parameters: |
3634 | * eax = 68 - function number |
3633 | * eax = 68 - function number |
- | 3634 | * ebx = 15 - subfunction number |
|
3635 | * ebx = 15 - subfunction number |
3635 | * ecx = address of the new exception handler |
3636 | * 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) |
|
- | 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 |
|
- | 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 |
|
Line 3637... | Line 3655... | ||
3637 | Returned value: |
3655 | Clearing exceptions flags in FPU and/or XMM modules - is |
3638 | * eax = address of the old exception handler (0, if it was not set) |
3656 | responsibility of user handler too. |
3639 | 3657 | ||
3640 | ====================================================================== |
3658 | ====================================================================== |
Line 3674... | Line 3692... | ||
3674 | * Function codes and the structure of input/output data |
3692 | * Function codes and the structure of input/output data |
3675 | are defined by driver. |
3693 | are defined by driver. |
3676 | * Previously one must obtain driver handle by subfunction 16. |
3694 | * Previously one must obtain driver handle by subfunction 16. |
Line 3677... | Line 3695... | ||
3677 | 3695 | ||
3678 | ====================================================================== |
3696 | ====================================================================== |
3679 | ====== Function 68, subfunction 18 - set SSE exception handler. ====== |
3697 | ==== Function 68, subfunction 18 - change state of signal activity === |
3680 | ====================================================================== |
3698 | ====================================================================== |
3681 | Parameters: |
3699 | Parameters: |
3682 | * eax = 68 - function number |
3700 | * eax = 68 - function number |
- | 3701 | * ebx = 15 - subfunction number |
|
3683 | * ebx = 15 - subfunction number |
3702 | * ecx = signal number |
3684 | * ecx = address of the new exception handler |
3703 | * edx = value of activity (0/1) |
3685 | Returned value: |
3704 | Returned value: |
- | 3705 | * eax = value of old activity for this signal (0/1) |
|
- | 3706 | Remarks: |
|
- | 3707 | * In current implementation, it is changed only exception mask for |
|
- | 3708 | user exception handler, wich was previously set by subfunction 15. |
|
Line 3686... | Line 3709... | ||
3686 | * eax = address of the old exception handler (0, if it was not set) |
3709 | At that, number of signal correspond to exception number. |
3687 | 3710 | ||
3688 | ====================================================================== |
3711 | ====================================================================== |
3689 | =============== Function 68, subfunction 19 - load DLL. ============== |
3712 | =============== Function 68, subfunction 19 - load DLL. ============== |