Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:docs:fapi:dosholdsignal [2020/12/05 10:42] – prokushev | en:docs:fapi:dosholdsignal [2021/09/18 11:12] (current) – prokushev | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | {{logos:os2.gif? | + | {{page>en:templates:fapiint}} |
| ====== DosHoldSignal ====== | ====== DosHoldSignal ====== | ||
| Line 5: | Line 5: | ||
| This call temporarily disables or enables signal processing for the current process. | This call temporarily disables or enables signal processing for the current process. | ||
| - | ==Syntax== | + | ===== Syntax |
| - | | + | <code c> |
| + | DosHoldSignal (ActionCode) | ||
| + | </ | ||
| - | ==Parameters== | + | ===== Parameters ===== |
| - | ;ActionCode (USHORT) - input : Disables or enables signals intended for the current process. | + | |
| - | ''' | + | |
| - | | + | |
| - | | + | ^ Value ^ Definition |
| + | | 0 | Signals are enabled | ||
| + | | 1 | Signals are disabled | ||
| + | |||
| + | ===== Return Code ===== | ||
| + | |||
| + | rc ([[USHORT]]) - return | ||
| - | ==Return Code== | ||
| - | rc (USHORT) - return | ||
| Return code descriptions are: | Return code descriptions are: | ||
| - | * 0 NO_ERROR | ||
| - | * 1 ERROR_INVALID_FUNCTION | ||
| - | ==Remarks== | + | * 0 NO_ERROR |
| + | * 1 ERROR_INVALID_FUNCTION | ||
| + | |||
| + | ===== Remarks ===== | ||
| DosHoldSignal with ActionCode = 1 causes signal processing (except central processing errors and numeric processor errors) to be postponed until a DosHoldSignal with ActionCode = 0 is issued. Any signals that occur while processing is disabled are recognized, but not accepted until signal recognition is enabled. | DosHoldSignal with ActionCode = 1 causes signal processing (except central processing errors and numeric processor errors) to be postponed until a DosHoldSignal with ActionCode = 0 is issued. Any signals that occur while processing is disabled are recognized, but not accepted until signal recognition is enabled. | ||
| Line 29: | Line 37: | ||
| Signals can be held for a short period and should be released and re-held, if necessary. Their guidelines for proper use are similar to hardware interrupt counterparts such as the CLI/STI instructions. | Signals can be held for a short period and should be released and re-held, if necessary. Their guidelines for proper use are similar to hardware interrupt counterparts such as the CLI/STI instructions. | ||
| - | ===Family API Considerations=== | + | ==== Family API Considerations ==== |
| Some options operate differently in the DOS mode than in the OS/2 mode. Therefore, the following restriction applies to DosHoldSignal when coding for the DOS mode: | Some options operate differently in the DOS mode than in the OS/2 mode. Therefore, the following restriction applies to DosHoldSignal when coding for the DOS mode: | ||
| The only signal recognized in the DOS mode is SIGINTR (Ctrl-C) and SIGBREAK. Only SIGINTR and SIGBREAK are turned off by this call. | The only signal recognized in the DOS mode is SIGINTR (Ctrl-C) and SIGBREAK. Only SIGINTR and SIGBREAK are turned off by this call. | ||
| - | ===C Binding=== | + | ===== Bindings ===== |
| - | <PRE> | + | |
| + | ==== C Binding ==== | ||
| + | |||
| + | <code c> | ||
| #define INCL_DOSSIGNALS | #define INCL_DOSSIGNALS | ||
| Line 43: | Line 55: | ||
| USHORT | USHORT | ||
| - | </PRE> | + | </code> |
| + | |||
| + | ==== MASM Binding ==== | ||
| + | |||
| + | <code asm> | ||
| + | EXTRN DosHoldSignal: | ||
| + | INCL_DOSSIGNALS | ||
| + | |||
| + | PUSH | ||
| + | CALL | ||
| + | |||
| + | Returns NONE | ||
| + | </ | ||
| + | |||
| + | ===== Example ===== | ||
| - | ==Example== | ||
| The following example illustrates the use of the Ctrl-C (SIGINTR) signal to signal time-critical events. Process1 invokes process2, which establishes a signal handler named CtrlC_Handler() and waits, by blocking on a reserved RAM semaphore, for a signal from process1. A portion of process2 is immune to signalling. | The following example illustrates the use of the Ctrl-C (SIGINTR) signal to signal time-critical events. Process1 invokes process2, which establishes a signal handler named CtrlC_Handler() and waits, by blocking on a reserved RAM semaphore, for a signal from process1. A portion of process2 is immune to signalling. | ||
| - | <PRE> | + | |
| + | <code c> | ||
| #define INCL_DOSPROCESS | #define INCL_DOSPROCESS | ||
| #define INCL_DOSSIGNALS | #define INCL_DOSSIGNALS | ||
| Line 146: | Line 172: | ||
| printf(" | printf(" | ||
| } | } | ||
| - | </PRE> | + | </code> |
| - | + | ||
| - | ===MASM Binding=== | + | |
| - | < | + | |
| - | EXTRN DosHoldSignal: | + | |
| - | INCL_DOSSIGNALS | + | |
| - | + | ||
| - | PUSH | + | |
| - | CALL | + | |
| - | + | ||
| - | Returns NONE | + | |
| - | </ | + | |
| - | + | ||
| - | ====== Note ====== | + | ===== Note ===== |
| Text based on [[http:// | Text based on [[http:// | ||




