Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |
| en:ibm:prcp:mou:synch [2016/02/04 07:42] – valerius | en:ibm:prcp:mou:synch [2016/09/15 04:53] (current) – valerius |
|---|
| ==== MouSynch ==== | ==== MouSynch ==== |
| |
| **Bindings**: C, MASM | **Bindings**: [[synch#C bindings|C]], [[synch#MASM bindings|MASM]] |
| |
| This call provides synchronous access for a mouse subsystem to the mouse device driver. | This call provides synchronous access for a mouse subsystem to the mouse device driver. |
| |
| [[en:ibm:prcp:mou:synch|MouSynch]] blocks all other threads within a session until the semaphore clears (returns from the subsystem to the router). To ensure proper synchronization, MouSynch should be issued by a mouse subsystem if it intends to access dynamically modifiable shared data for each session or if it intends to issue a [[en:ibm:prcp:cpi:dosdevioctl|DosDevIOCtl]]. [[en:ibm:prcp:mou:synch|MouSynch]] does not protect globally shared data from threads in other sessions. | [[en:ibm:prcp:mou:synch|MouSynch]] blocks all other threads within a session until the semaphore clears (returns from the subsystem to the router). To ensure proper synchronization, MouSynch should be issued by a mouse subsystem if it intends to access dynamically modifiable shared data for each session or if it intends to issue a [[en:ibm:prcp:cpi:dosdevioctl|DosDevIOCtl]]. [[en:ibm:prcp:mou:synch|MouSynch]] does not protect globally shared data from threads in other sessions. |
| | |
| | === C bindings === |
| | |
| | <code c> |
| | #define INCL_MOU |
| | |
| | USHORT rc = MouSynch(IOWait); |
| | |
| | USHORT IOWait; /* Indicate wait/no wait */ |
| | |
| | USHORT rc; /* return code */ |
| | </code> |
| | |
| | === MASM bindings === |
| | |
| | <code asm> |
| | EXTRN MouSynch:FAR |
| | INCL_MOU EQU 1 |
| | |
| | PUSH WORD IOWait ;Indicate wait/no wait |
| | CALL MouSynch |
| | |
| | Returns WORD |
| | </code> |
| |