1 /* $Id$
2  *  MetaWare High C/C++ for OS/2 compiler-specific declarations
3  *
4  * HUSKYLIB: common defines, types and functions for HUSKY
5  *
6  * This is part of The HUSKY Fidonet Software project:
7  * see http://husky.sourceforge.net for details
8  *
9  *
10  * HUSKYLIB is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Lesser General Public
12  * License as published by the Free Software Foundation; either
13  * version 2 of the License, or (at your option) any later version.
14  *
15  * HUSKYLIB is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  * General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public
21  * License along with this library; see file COPYING. If not, write to the
22  * Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  * See also http://www.gnu.org, license may be found here.
25  */
26 
27 /* MetaWare High C/C++ for OS/2 */
28 
29 #ifndef HUSKY_HIGHC_H
30 #define HUSKY_HIGHC_H
31 
32 #ifndef __HIGHC__
33   #  error This file may be used only with MetaWare High C/C++ for OS/2 !
34 #endif
35 
36 #ifndef __LITTLE_ENDIAN__
37 #warning High C exists for i386 only? I don't known. (Stas Degteff)
38 #  define __LITTLE_ENDIAN__ /* High C exists for i386 only? */
39 #endif
40 
41 #  define _stdc
42 #  define _intr
43 #  define _intcast
44 #  define _veccast
45 #  define _fast
46 #  define pascal
47 #  define near
48 #  define far
49 
50 #  define farread read
51 #  define farwrite write
52 
53 #  define mysleep(x) DosSlep(1000L*(x))
54 #  define sleep(x)   DosSlep(1000L*(x))
55 #  define HAS_sleep     1
56 
57 #  define _XPENTRY
58 
59 #  define HAS_MALLOC_H 1      /* use "#include <malloc.h>" for malloc() etc. */
60 #  define HAS_IO_H     1  /* may use "#include <io.h> */
61 #  define HAS_SHARE_H  1  /* may use "#include <share.h> */
62 #  define HAS_PROCESS_H   /* may use "#include <process.h> */
63 
64 typedef unsigned bit;
65 
66 typedef unsigned char byte;
67 typedef signed char sbyte;
68 
69 typedef unsigned short word;
70 typedef signed short sword;
71 
72 typedef unsigned long dword;
73 typedef signed long sdword;
74 
75 typedef signed short sshort;
76 typedef unsigned short ushort;
77 
78 typedef signed long slong;
79 typedef unsigned long ulong;
80 
81 
82 typedef   signed char        hCHAR;              /*  1 byte */
83 typedef   signed char       hSCHAR;              /*  1 byte */
84 typedef unsigned char       hUCHAR;              /*  1 byte */
85 
86 typedef   signed char        hINT8;              /*  1 byte */
87 typedef   signed char       hSINT8;              /*  1 byte */
88 typedef unsigned char       hUINT8;              /*  1 byte */
89 
90 typedef   signed short      hINT16;              /*  2 bytes */
91 typedef   signed short     hSINT16;              /*  2 bytes */
92 typedef unsigned short     hUINT16;              /*  2 bytes */
93 
94 typedef   signed long       hINT32;              /*  4 bytes */
95 typedef   signed long      hSINT32;              /*  4 bytes */
96 typedef unsigned long      hUINT32;              /*  4 bytes */
97 
98 #error "Don't know how to implement record locking."
99 /* Using an executable that does no support record locking is
100    discouraged in a multitasking environment. If you want to
101    do it anyway, you may uncomment this line. Record locking is used
102    to obtain a lock on the very first byte of a SQD file which
103    indicates that no other program should use the message area now.
104 */
105 
106 #define SH_DENYNONE 0
107 /*#define sopen(a,b,c,d) open((a),(b),(d))*/
108 
109 #endif
110