1 /* $Id: HIGHC.h 271 2020-02-02 12:09:15Z dukelsky $
2  *  MetaWare High C/C++ for OS/2 compiler-specific declarations
3  *
4  * You should have received a copy of the GNU Lesser General Public
5  * License along with this library; see file COPYING. If not, write to the
6  * Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7  *
8  * See also https://www.gnu.org, license may be found here.
9  */
10 
11 /* MetaWare High C/C++ for OS/2 */
12 
13 #ifndef SMAPI_HIGHC_H
14 #define SMAPI_HIGHC_H
15 
16 #ifndef __HIGHC__
17     #  error This file may be used only with MetaWare High C/C++ for OS/2 !
18 #endif
19 
20 #ifndef __LITTLE_ENDIAN__
21     #warning High C exists for i386 only? I don't known. (Stas Degteff)
22     #define __LITTLE_ENDIAN__ /* High C exists for i386 only? */
23 #endif
24 
25 #  define _stdc
26 #  define _intr
27 #  define _intcast
28 #  define _veccast
29 #  define _fast
30 #  define pascal
31 #  define near
32 #  define far
33 
34 #  define farread read
35 #  define farwrite write
36 
37 #  define mysleep(x) DosSlep(1000L*(x))
38 #  define sleep(x)   DosSlep(1000L*(x))
39 #  define HAS_sleep     1
40 
41 #  define _XPENTRY
42 
43 #  define HAS_MALLOC_H 1      /* use "#include <malloc.h>" for malloc() etc. */
44 #  define HAS_IO_H     1  /* may use "#include <io.h> */
45 #  define HAS_SHARE_H  1  /* may use "#include <share.h> */
46 #  define HAS_PROCESS_H   /* may use "#include <process.h> */
47 
48 typedef unsigned bit;
49 
50 typedef unsigned char byte;
51 typedef signed char sbyte;
52 
53 typedef unsigned short word;
54 typedef signed short sword;
55 
56 typedef unsigned long dword;
57 typedef signed long sdword;
58 
59 typedef signed short sshort;
60 typedef unsigned short ushort;
61 
62 typedef signed long slong;
63 typedef unsigned long ulong;
64 
65 
66 typedef   signed char        hCHAR;              /*  1 byte */
67 typedef   signed char       hSCHAR;              /*  1 byte */
68 typedef unsigned char       hUCHAR;              /*  1 byte */
69 
70 typedef   signed char        hINT8;              /*  1 byte */
71 typedef   signed char       hSINT8;              /*  1 byte */
72 typedef unsigned char       hUINT8;              /*  1 byte */
73 
74 typedef   signed short      hINT16;              /*  2 bytes */
75 typedef   signed short     hSINT16;              /*  2 bytes */
76 typedef unsigned short     hUINT16;              /*  2 bytes */
77 
78 typedef   signed long       hINT32;              /*  4 bytes */
79 typedef   signed long      hSINT32;              /*  4 bytes */
80 typedef unsigned long      hUINT32;              /*  4 bytes */
81 
82 #error "Don't know how to implement record locking."
83 /* Using an executable that does no support record locking is
84    discouraged in a multitasking environment. If you want to
85    do it anyway, you may uncomment this line. Record locking is used
86    to obtain a lock on the very first byte of a SQD file which
87    indicates that no other program should use the message area now.
88 */
89 
90 #define SH_DENYNONE 0
91 /*#define sopen(a,b,c,d) open((a),(b),(d))*/
92 
93 #endif
94