TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Darin McBride
from: Mike Bilow
date: 1996-05-23 07:57:02
subject: Semaphores (16 & 32)

Darin McBride wrote in a message to Mike Bilow:

 DM> Thanks, Mike.  I'll let ya know how using _far16 turns out... 
 DM> and if it doesn't, perhaps you have a snippet of code as an 
 DM> example?  :-)

Not for the semaphore API, I'm afraid.  The only program I have which uses
the 16-bit semaphore API is Mutex, and that is entirely a 16-bit program.

You must do the manual conversions in translating the prototypes found in
the \WATCOM\H\OS21X directory, which contains the 16-bit OS/2 headers:

1. Change function calling conventions from "far pascal" to
"_far16 _pascal".

2. Change all "far*" pointer arguments to "_far16*".

For example, start with:

USHORT APIENTRY DosCreateSem(
        USHORT fExclusive,
        PHSYSSEM phsem,
        PSZ pszSemName);

First, expand all the macros:

unsigned short far pascal DosCreateSem(
         unsigned short       fExclusive,
         void far* far*       phsem,
         unsigned char far*   pszSemName);

Applying the conversions:

unsigned short _far16 _pascal DosCreateSem(
         unsigned short          fExclusive,
         void _far16* _far16*    phsem,
         unsigned char _far16*   pszSemName);

Note that the compiler will translate "int" arguments to the
appropriate size in a function declared "_far16".  See the
"Extended Keywords" section of the "User's Guide" for
complete information.

You can simplify your work by using predefined macros in the 32-bit
OS2DEF.H, such as APIENTRY16 ("_far16 _pascal") and APIRET16
("unsigned short").
 
-- Mike


--- 
* Origin: N1BEE BBS +1 401 944 8498 V.34/V.FC/V.32bis/HST16.8 (1:323/107)
SEEN-BY: 50/99 270/101 620/243 711/401 409 410 413 430 808 809 934 955
SEEN-BY: 712/407 515 517 628 713/888 800/1
@PATH: 323/107 396/1 270/101 712/515 711/808 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.