home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / lora299s.zip / JAMSYS.H < prev    next >
C/C++ Source or Header  |  1996-05-04  |  10KB  |  273 lines

  1. /*
  2. **  JAM(mbp) - The Joaquim-Andrew-Mats Message Base Proposal
  3. **
  4. **  C API
  5. **
  6. **  Written by Joaquim Homrighausen and Mats Wallin.
  7. **
  8. **  ----------------------------------------------------------------------
  9. **
  10. **  jamsys.h (JAMmb)
  11. **
  12. **  Compiler and platform dependant definitions
  13. **
  14. **  Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch, and
  15. **  Mats Wallin. ALL RIGHTS RESERVED.
  16. **
  17. **  93-06-28    JoHo/MW
  18. **  Initial coding.
  19. */
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23.  
  24. #ifndef __JAMSYS_H__
  25. #define __JAMSYS_H__
  26.  
  27. /*
  28. **  The following assumptions are made about compilers and platforms:
  29. **
  30. **  __MSDOS__       Defined if compiling for MS-DOS
  31. **  _WINDOWS        Defined if compiling for Microsoft Windows
  32. **  __NT__          Defined if compiling for Windows NT
  33. **  __OS2__         Defined if compiling for OS/2 2.x
  34. **  __sparc__       Defined if compiling for Sun Sparcstation
  35. **  __50SERIES      Defined if compiling for Prime with Primos
  36. **
  37. **  __SMALL__       Defined if compiling under MS-DOS in small memory model
  38. **  __MEDIUM__      Defined if compiling under MS-DOS in medium memory model
  39. **  __COMPACT__     Defined if compiling under MS-DOS in compact memory model
  40. **  __LARGE__       Defined if compiling under MS-DOS in large memory model
  41. **
  42. **  __ZTC__         Zortech C++ 3.x
  43. **  __BORLANDC__    Borland C++ 3.x
  44. **  __TURBOC__      Turbo C 2.0
  45. **  __TSC__         JPI TopSpeed C 1.06
  46. **  _MSC_VER        Microsoft C 6.0 and later
  47. **  _QC             Microsoft Quick C
  48. */
  49. #if defined(_WINDOWS)
  50.     #ifndef _INC_WINDOWS
  51.         #include <windows.h>
  52.     #endif
  53.  
  54.     #if defined(__MSDOS__)
  55.         #undef __MSDOS__
  56.     #endif
  57.  
  58.     typedef long                INT32;      /* 32 bits signed integer     */
  59.     typedef unsigned long       UINT32;     /* 32 bits unsigned integer   */
  60.     typedef short int           INT16;      /* 16 bits signed integer     */
  61.     typedef unsigned short int  UINT16;     /* 16 bits unsigned integer   */
  62.     typedef char                CHAR8;      /* 8 bits signed integer      */
  63.     typedef unsigned char       UCHAR8;     /* 8 bits unsigned integer    */
  64.     typedef HFILE               FHANDLE;    /* File handle                */
  65.  
  66.     #if defined(__ZTC__)               /* Zortech C++ 3.x */
  67.         #define _JAMFAR _far
  68.         #define _HUGE   _huge
  69.         #define _PASCAL _pascal
  70.         #define _EXPORT _export
  71.     #elif defined(__BORLANDC__)        /* Borland C++ 3.x */
  72.         #define _JAMFAR far
  73.         #define _HUGE   huge
  74.         #define _PASCAL pascal
  75.         #define _EXPORT _export
  76.     #elif defined(_MSC_VER) ||         /* Microsoft C 6.0 and later */   \
  77.           defined(_QC)                 /* Microsoft Quick C 2.51 and later */
  78.         #define _JAMFAR _far
  79.         #define _HUGE   _huge
  80.         #define _PASCAL _pascal
  81.         #define _EXPORT _export
  82.         #if defined(_M_I86SM)
  83.             #define __SMALL__
  84.         #elif defined(_M_I86MM)
  85.             #define __MEDIUM__
  86.         #elif defined(_M_I86CM)
  87.             #define __COMPACT__
  88.         #elif defined(_M_I86LM)
  89.             #define __LARGE__
  90.         #endif
  91.     #else
  92.         #error Unsupported compiler
  93.     #endif
  94.  
  95.     #if defined(JAMCAPI) && !defined(__LARGE__)
  96.         #error Only LARGE memory model supported for the JAM Windows DLL
  97.     #endif
  98.  
  99.     #define _JAMPROC            _JAMFAR _PASCAL _EXPORT
  100.     #define _JAMDATA            _JAMFAR
  101.  
  102. #elif defined(__MSDOS__) || defined(__386__) || defined(__DOS__)
  103.     typedef long                INT32;      /* 32 bits signed integer     */
  104.     typedef unsigned long       UINT32;     /* 32 bits unsigned integer   */
  105.     typedef short int           INT16;      /* 16 bits signed integer     */
  106.     typedef unsigned short int  UINT16;     /* 16 bits unsigned integer   */
  107.     typedef char                CHAR8;      /* 8 bits signed integer      */
  108.     typedef unsigned char       UCHAR8;     /* 8 bits unsigned integer    */
  109.     typedef int                 FHANDLE;    /* File handle                */
  110.  
  111.     #define _JAMPROC
  112.     #define _JAMDATA
  113.  
  114.     #if defined(__ZTC__)               /* Zortech C++ 3.x */
  115.         #define _JAMFAR    _far
  116.     #elif defined(__BORLANDC__)        /* Borland C++ 3.x */
  117.         #define _JAMFAR    far
  118.     #elif defined(__TURBOC__)          /* Turbo C 2.0 */
  119.         #define _JAMFAR    far
  120.     #elif defined(__TSC__)             /* JPI TopSpeed C 1.06 */
  121.         #define _JAMFAR    far
  122.         #if defined(M_I86SM)
  123.             #define __SMALL__
  124.         #elif defined(M_I86MM)
  125.             #define __MEDIUM__
  126.         #elif defined(M_I86CM)
  127.             #define __COMPACT__
  128.         #elif defined(M_I86LM)
  129.             #define __LARGE__
  130.         #endif
  131.     #elif defined(_MSC_VER) ||         /* Microsoft C 6.0 and later */   \
  132.           defined(_QC)                 /* Microsoft Quick C 2.51 and later */
  133.         #define _JAMFAR    _far
  134.         #if defined(_M_I86SM)
  135.             #define __SMALL__
  136.         #elif defined(_M_I86MM)
  137.             #define __MEDIUM__
  138.         #elif defined(_M_I86CM)
  139.             #define __COMPACT__
  140.         #elif defined(_M_I86LM)
  141.             #define __LARGE__
  142.         #endif
  143.     #else
  144.         #define _JAMFAR    far
  145.     #endif
  146.  
  147. #elif defined(__OS2__)
  148.     typedef long                INT32;      /* 32 bits signed integer     */
  149.     typedef unsigned long       UINT32;     /* 32 bits unsigned integer   */
  150.     typedef short int           INT16;      /* 16 bits signed integer     */
  151.     typedef unsigned short int  UINT16;     /* 16 bits unsigned integer   */
  152.     typedef char                CHAR8;      /* 8 bits signed integer      */
  153.     typedef unsigned char       UCHAR8;     /* 8 bits unsigned integer    */
  154.     typedef HFILE               FHANDLE;    /* File handle                */
  155.  
  156.     #define _JAMFAR
  157.     #define _JAMPROC
  158.     #define _JAMDATA
  159.  
  160. #elif defined(__LINUX__)
  161.     typedef long                INT32;      /* 32 bits signed integer     */
  162.     typedef unsigned long       UINT32;     /* 32 bits unsigned integer   */
  163.     typedef short int           INT16;      /* 16 bits signed integer     */
  164.     typedef unsigned short int  UINT16;     /* 16 bits unsigned integer   */
  165.     typedef char                CHAR8;      /* 8 bits signed integer      */
  166.     typedef unsigned char       UCHAR8;     /* 8 bits unsigned integer    */
  167.     typedef int                 FHANDLE;    /* File handle                */
  168.  
  169.     #define _JAMFAR
  170.     #define _JAMPROC
  171.     #define _JAMDATA
  172.  
  173. #elif defined(__NT__)
  174.     typedef long                INT32;      /* 32 bits signed integer     */
  175.     typedef unsigned long       UINT32;     /* 32 bits unsigned integer   */
  176.     typedef short int           INT16;      /* 16 bits signed integer     */
  177.     typedef unsigned short int  UINT16;     /* 16 bits unsigned integer   */
  178.     typedef char                CHAR8;      /* 8 bits signed integer      */
  179.     typedef unsigned char       UCHAR8;     /* 8 bits unsigned integer    */
  180.     typedef int                 FHANDLE;    /* File handle                */
  181.  
  182.     #define _JAMFAR
  183.     #define _JAMPROC
  184.     #define _JAMDATA
  185.  
  186. #elif defined(__sparc__) || defined(__50SERIES)
  187.     typedef long                INT32;      /* 32 bits signed integer     */
  188.     typedef unsigned long       UINT32;     /* 32 bits unsigned integer   */
  189.     typedef short int           INT16;      /* 16 bits signed integer     */
  190.     typedef unsigned short int  UINT16;     /* 16 bits unsigned integer   */
  191.     typedef char                CHAR8;      /* 8 bits signed integer      */
  192.     typedef unsigned char       UCHAR8;     /* 8 bits unsigned integer    */
  193.     typedef int                 FHANDLE;    /* File handle                */
  194.  
  195.     #define _JAMFAR
  196.     #define _JAMPROC
  197.     #define _JAMDATA
  198.  
  199. #else
  200.     #error Undefined platform
  201. #endif
  202.  
  203. typedef INT32 _JAMDATA *        INT32ptr;
  204. typedef UINT32 _JAMDATA *       UINT32ptr;
  205. typedef INT16 _JAMDATA *        INT16ptr;
  206. typedef UINT16 _JAMDATA *       UINT16ptr;
  207. typedef CHAR8 _JAMDATA *        CHAR8ptr;
  208. typedef UCHAR8 _JAMDATA *       UCHAR8ptr;
  209. typedef void _JAMDATA *         VOIDptr;
  210.  
  211. /*
  212. **  Values for "AccessMode" and "ShareMode" parameter to JAMsysSopen.
  213. */
  214.  
  215. #if defined(_WINDOWS)
  216.     #define JAMO_RDWR           READ_WRITE
  217.     #define JAMO_RDONLY         READ
  218.     #define JAMO_WRONLY         WRITE
  219.     #define JAMSH_DENYNO        OF_SHARE_DENY_NONE
  220.     #define JAMSH_DENYRD        OF_SHARE_DENY_READ
  221.     #define JAMSH_DENYWR        OF_SHARE_DENY_WRITE
  222.     #define JAMSH_DENYRW        OF_SHARE_EXCLUSIVE
  223. #elif defined(__MSDOS__) || defined(__OS2__) || defined(__NT__)
  224.     #define JAMO_RDWR           O_RDWR
  225.     #define JAMO_RDONLY         O_RDONLY
  226.     #define JAMO_WRONLY         O_WRONLY
  227.     #define JAMSH_DENYNO        SH_DENYNO
  228.     #define JAMSH_DENYRD        SH_DENYRD
  229.     #define JAMSH_DENYWR        SH_DENYWR
  230.     #define JAMSH_DENYRW        SH_DENYRW
  231. #elif defined(__sparc__)
  232.     #define JAMO_RDWR           O_RDWR
  233.     #define JAMO_RDONLY         O_RDONLY
  234.     #define JAMO_WRONLY         O_WRONLY
  235.     #define JAMSH_DENYNO        0
  236.     #define JAMSH_DENYRD        0
  237.     #define JAMSH_DENYWR        0
  238.     #define JAMSH_DENYRW        0
  239. #elif defined(__50SERIES)
  240.     #define JAMO_RDWR           2
  241.     #define JAMO_RDONLY         0
  242.     #define JAMO_WRONLY         1
  243.     #define JAMSH_DENYNO        0
  244.     #define JAMSH_DENYRD        0
  245.     #define JAMSH_DENYWR        0
  246.     #define JAMSH_DENYRW        0
  247. #endif
  248.  
  249.  
  250. /*
  251. **  Structure to contain date/time information
  252. */
  253. typedef struct JAMtm
  254.     {
  255.     int     tm_sec,                    /* Seconds 0..59                     */
  256.             tm_min,                    /* Minutes 0..59                     */
  257.             tm_hour,                   /* Hour of day 0..23                 */
  258.             tm_mday,                   /* Day of month 1..31                */
  259.             tm_mon,                    /* Month 0..11                       */
  260.             tm_year,                   /* Years since 1900                  */
  261.             tm_wday,                   /* Day of week 0..6 (Sun..Sat)       */
  262.             tm_yday,                   /* Day of year 0..365                */
  263.             tm_isdst;                  /* Daylight savings time (not used)  */
  264.     } JAMTM, _JAMDATA * JAMTMptr;
  265.  
  266. #endif /* __JAMSYS_H__ */
  267.  
  268. #ifdef __cplusplus
  269. }
  270. #endif
  271.  
  272. /* end of file "jamsys.h" */
  273.