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