Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision |
en:ibm:prcp:mou:synch [2016/02/04 07:40] – created 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. |
**Remarks** | **Remarks** |
| |
[[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:dos:devioctl|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> |
| |