home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / OPENDOOR / WRITEJAM.ZIP / JAMPROT.H < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-02  |  3.6 KB  |  114 lines

  1. /*
  2. **  JAM(mbp) - The Joaquim-Andrew-Mats Message Base Proposal
  3. **
  4. **  C API
  5. **
  6. **  Written by Mats Wallin
  7. **
  8. **  ----------------------------------------------------------------------
  9. **
  10. **  jamprot.h (JAMmb)
  11. **
  12. **  Compiler and platform dependant function prototypes
  13. **
  14. **  See JAMSYS.H for information about assumptions made about compilers
  15. **  and platforms.
  16. **
  17. **  Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch, and
  18. **  Mats Wallin. ALL RIGHTS RESERVED.
  19. **
  20. **  93-06-28    MW
  21. **  Initial coding.
  22. */
  23. #ifdef __cplusplus
  24. extern "C" {
  25. #endif
  26.  
  27. #ifndef __JAMPROT_H__
  28. #define __JAMPROT_H__
  29.  
  30. /*
  31. **  Initialization of the JAMAPIREC structure 
  32. */
  33. int _JAMPROC JAMsysInitApiRec(JAMAPIRECptr apirec, CHAR8ptr pFile, UINT32 Size);
  34. int _JAMPROC JAMsysDeinitApiRec(JAMAPIRECptr apirec);
  35.  
  36. /*
  37. **  I/O functions 
  38. */
  39. int _JAMPROC JAMsysClose(JAMAPIRECptr apirec, FHANDLE fh);
  40. FHANDLE _JAMPROC JAMsysCreate(JAMAPIRECptr apirec, CHAR8ptr pFileName);
  41. int _JAMPROC JAMsysLock(JAMAPIRECptr apirec, int DoLock);
  42. FHANDLE _JAMPROC JAMsysOpen(JAMAPIRECptr apirec, CHAR8ptr pFileName);
  43. INT32 _JAMPROC JAMsysRead(JAMAPIRECptr apirec, FHANDLE fh, VOIDptr pBuf, INT32 Len);
  44. INT32 _JAMPROC JAMsysSeek(JAMAPIRECptr apirec, FHANDLE fh, int FromWhere, INT32 Offset);
  45. FHANDLE _JAMPROC JAMsysSopen(JAMAPIRECptr apirec, CHAR8ptr pFileName, int AccessMode, int ShareMode);
  46. int _JAMPROC JAMsysUnlink(JAMAPIRECptr apirec, CHAR8ptr pFileName);
  47. INT32 _JAMPROC JAMsysWrite(JAMAPIRECptr apirec, FHANDLE fh, VOIDptr pBuf, INT32 Len);
  48.  
  49. #if defined(_WINDOWS)
  50. INT32 _JAMPROC JAMsysReadHuge(JAMAPIRECptr apirec, FHANDLE fh, VOIDptr pBuf, INT32 Len);
  51. INT32 _JAMPROC JAMsysWriteHuge(JAMAPIRECptr apirec, FHANDLE fh, VOIDptr pBuf, INT32 Len);
  52. #endif
  53.  
  54. /*
  55. ** CRC-32
  56. */
  57. UINT32 _JAMPROC JAMsysCrc32(void _JAMFAR *pBuf, unsigned int len, UINT32 crc);
  58.  
  59. /*
  60. **  Time functions
  61. */
  62. UINT32 _JAMPROC JAMsysTime(UINT32ptr pTime);
  63. UINT32 _JAMPROC JAMsysMkTime(JAMTMptr pTm);
  64. JAMTMptr _JAMPROC JAMsysLocalTime(UINT32ptr pt);
  65.  
  66. /*
  67. **  Pointer functions / macros
  68. */
  69. #if defined(__WATCOMC__) && defined(__MSDOS__)
  70.     #define JAMsysAddPtr(Ptr,Offset) ((void *)(((CHAR8 *)(Ptr))+(Offset)))
  71.     #define JAMsysAddFarPtr   JAMsysAddPtr
  72. #elif defined(__MSDOS__)
  73.     #if defined(__SMALL__) || defined(__MEDIUM__)
  74.         #define JAMsysAddPtr(Ptr,Off) ((void *)(((CHAR8 *)(Ptr))+(UINT16)(Off)))
  75.         void _JAMFAR * _JAMPROC JAMsysAddFarPtr(void _JAMFAR *Ptr, INT32 Offset);
  76.     #else
  77.         void _JAMFAR * _JAMPROC JAMsysAddPtr(void _JAMFAR *Ptr, INT32 Offset);
  78.         #define JAMsysAddFarPtr   JAMsysAddPtr
  79.     #endif
  80. #elif defined(_WINDOWS)
  81.     #if defined(__SMALL__) || defined(__MEDIUM__)
  82.         #define JAMsysAddPtr(Ptr,Off) ((void *)(((CHAR8 *)(Ptr))+(UINT16)(Off)))
  83.     #else
  84.         #define JAMsysAddPtr JAMsysAddFarPtr
  85.     #endif
  86.     #define JAMsysAddFarPtr(Ptr,Offset) ((void _JAMFAR *)(((CHAR8 _HUGE *)(Ptr))+(Offset)))
  87. #else
  88.     #define JAMsysAddPtr(Ptr,Offset) ((void *)(((CHAR8 *)(Ptr))+(Offset)))
  89.     #define JAMsysAddFarPtr   JAMsysAddPtr
  90. #endif
  91.  
  92. /*
  93. **  Aligment macro
  94. **  JAMsysAlign should be defined for platforms that requires INT16s
  95. **  and/or INT32s to be aligned on any boundary.
  96. */
  97. #if defined(__MSDOS__) || defined(__OS2__) || defined(_WINDOWS)
  98.     #define JAMsysAlign(v)    (v)
  99. #elif defined(__sparc__)
  100.     #define JAMsysAlign(v)    ((v)+(((v)%4)?(4-((v)%4)):0))
  101. #elif defined(__50SERIES)
  102.     #define JAMsysAlign(v)    ((v)+(((v)%4)?(4-((v)%4)):0))
  103. #else
  104.     #error Undefined platform
  105. #endif
  106.  
  107. #endif /* __JAMPROT_H__ */
  108.  
  109. #ifdef __cplusplus
  110. }
  111. #endif
  112.  
  113. /* end of file "jamprot.h" */
  114.