home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / pOSxA.lzx / pOSxA / dos / dos.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-12  |  7.1 KB  |  247 lines

  1. #ifndef DOS_DOS_H
  2. #define DOS_DOS_H
  3.  
  4. /*******************************************************************
  5.  pOS / Amiga adapt
  6. *******************************************************************/
  7.  
  8. #ifndef EXEC_TYPES_H
  9. #include <exec/types.h>
  10. #endif
  11.  
  12. #ifndef __INC_POS_PDOS_DATE_H
  13. #include <p:pDos/Date.h>
  14. #endif
  15. #ifndef __INC_POS_PDOS_DOSERRORS_H
  16. #include <p:pDos/DosErrors.h>
  17. #endif
  18. #ifndef __INC_POS_PDOS_DOSSIG_H
  19. #include <p:pDos/DosSig.h>
  20. #endif
  21. #ifndef __INC_POS_PDOS_DOSTYPES_H
  22. #include <p:pDos/DosTypes.h>
  23. #endif
  24. #ifndef __INC_POS_PDOS_FIB_H
  25. #include <p:pDos/FIB.h>
  26. #endif
  27. #ifndef __INC_POS_PDOS_FILES_H
  28. #include <p:pDos/Files.h>
  29. #endif
  30. #ifndef __INC_POS_PDOS_LOCK_H
  31. #include <p:pDos/Lock.h>
  32. #endif
  33. #ifndef __INC_POS_PDOS_INFODATA_H
  34. #include <p:pDos/InfoData.h>
  35. #endif
  36.  
  37.  
  38. #ifndef __BCPL__
  39. #define __BCPL__
  40.  typedef long  BPTR;
  41.  typedef long  BSTR;
  42. #endif
  43.  
  44. #define     DOSNAME  "pdos.library"
  45.  
  46. #define DOSTRUE  (-1)
  47. #define DOSFALSE (0)
  48.  
  49. #define MODE_OLDFILE    FILEHDMOD_Read
  50. #define MODE_NEWFILE    FILEHDMOD_Write
  51. #define MODE_READWRITE    FILEHDMOD_ReadWrite
  52.  
  53. #define OFFSET_BEGINNING FILEHDSEK_Begin
  54. #define OFFSET_CURRENT     FILEHDSEK_Current
  55. #define OFFSET_END     FILEHDSEK_End
  56.  
  57. #define OFFSET_BEGINING OFFSET_BEGINNING
  58.  
  59. #define SHARED_LOCK    FILELKACC_Shared
  60. #define ACCESS_READ    FILELKACC_Shared
  61. #define EXCLUSIVE_LOCK    FILELKACC_Exclusive
  62. #define ACCESS_WRITE    FILELKACC_Exclusive
  63.  
  64. struct DateStamp
  65. {
  66.   ULONG  ds_Days;
  67.   UWORD  ds_Minute;
  68.   UWORD  ds_Tick;
  69. };
  70.  
  71.  
  72.  
  73. #define TICKS_PER_SECOND  pOS_TICKS_PER_SECOND
  74.  
  75. /*----------------------------------
  76. -----------------------------------*/
  77. struct FileInfoBlock
  78. {
  79.   ULONG            fib_DiskKey[4];
  80.  
  81.   SBYTE            fib_DirEntryType;
  82.   UBYTE            fib_Pad;
  83.  
  84.   dosname_t        fib_FileName[pOS_DosFileName_MAX];
  85.   ULONG            fib_Protection;
  86.   dossize_t        fib_Size;
  87.   dossize_t        fib_NumBlocks;
  88.   struct DateStamp fib_Date;
  89.   dosname_t        fib_Comment[pOS_DosComment_MAX];
  90.  
  91.   UWORD            fib_OwnerUID;
  92.   UWORD            fib_OwnerGID;
  93.  
  94.   UBYTE fib_Reserved[32];
  95. };
  96.  
  97.  
  98.  
  99.  
  100. #define FIBB_OTR_READ     FIBB_OTR_Read
  101. #define FIBB_OTR_WRITE     FIBB_OTR_Write
  102. #define FIBB_OTR_EXECUTE FIBB_OTR_Execute
  103. #define FIBB_OTR_DELETE  FIBB_OTR_Delete
  104. #define FIBB_GRP_READ     FIBB_GRP_Read
  105. #define FIBB_GRP_WRITE     FIBB_GRP_Write
  106. #define FIBB_GRP_EXECUTE FIBB_GRP_Execute
  107. #define FIBB_GRP_DELETE  FIBB_GRP_Delete
  108.  
  109. #define FIBB_SCRIPT    FIBB_Script
  110. #define FIBB_PURE      FIBB_Pure
  111. #define FIBB_ARCHIVE   FIBB_Archive
  112. #define FIBB_READ      FIBB_Read
  113. #define FIBB_WRITE     FIBB_Write
  114. #define FIBB_EXECUTE   FIBB_Execute
  115. #define FIBB_DELETE    FIBB_Delete
  116.  
  117. #define FIBF_OTR_READ     FIBF_OTR_Read
  118. #define FIBF_OTR_WRITE     FIBF_OTR_Write
  119. #define FIBF_OTR_EXECUTE FIBF_OTR_Execute
  120. #define FIBF_OTR_DELETE  FIBF_OTR_Delete
  121. #define FIBF_GRP_READ     FIBF_GRP_Read
  122. #define FIBF_GRP_WRITE     FIBF_GRP_Write
  123. #define FIBF_GRP_EXECUTE FIBF_GRP_Execute
  124. #define FIBF_GRP_DELETE  FIBF_GRP_Delete
  125.  
  126. #define FIBF_SCRIPT    FIBF_Script
  127. #define FIBF_PURE      FIBF_Pure
  128. #define FIBF_ARCHIVE   FIBF_Archive
  129. #define FIBF_READ      FIBF_Read
  130. #define FIBF_WRITE     FIBF_Write
  131. #define FIBF_EXECUTE   FIBF_Execute
  132. #define FIBF_DELETE    FIBF_Delete
  133.  
  134. #define FAULT_MAX    82
  135.  
  136. #ifdef __IGNORE_NOT_SUPPORTED__
  137.  
  138.  #define BADDR(x)        ((APTR) x )
  139.  #define MKBADDR(x)      ((LONG) x )
  140.  
  141. #else  /** __IGNORE_NOT_SUPPORTED__ **/
  142.  
  143. #endif /** __IGNORE_NOT_SUPPORTED__ **/
  144.  
  145.  
  146.  
  147. /*----------------------------------
  148. -----------------------------------*/
  149. struct DosInfoData
  150. {
  151.   ULONG   id_NumSoftErrors;
  152.   ULONG   id_DiskState;
  153.   ULONG   id_DiskType;
  154.   BPTR    id_Volume;
  155.   APTR    id_Mount;
  156.   ULONG   id_Flags;
  157.  
  158.   UBYTE id_Reserved1[32];
  159.   dossize_t  id_NumBlocks;
  160.   dossize_t  id_NumBlocksUsed;
  161.  
  162.   UBYTE id_Reserved2[32];
  163. };
  164.  
  165. #define ID_WRITE_PROTECTED DOSIFDST_WriteProtected
  166. #define ID_VALIDATING       DOSIFDST_Validating
  167. #define ID_VALIDATED       DOSIFDST_Validated
  168.  
  169. #define ID_NO_DISK_PRESENT    DOSIFDTYP_NoDiskPresent
  170. #define ID_UNREADABLE_DISK    DOSIFDTYP_UnreadableDisk
  171. #define ID_DOS_DISK        DOSIFDTYP_DosDisk
  172. #define ID_FFS_DISK        DOSIFDTYP_FFSDisk
  173. #define ID_INTER_DOS_DISK    DOSIFDTYP_InterDOSDisk
  174. #define ID_INTER_FFS_DISK    DOSIFDTYP_InterFFSDisk
  175. #define ID_FASTDIR_DOS_DISK    DOSIFDTYP_FastDirDOSDisk
  176. #define ID_FASTDIR_FFS_DISK    DOSIFDTYP_FastDirFFSDisk
  177. #define ID_NOT_REALLY_DOS    DOSIFDTYP_NotReallyDos
  178. #define ID_KICKSTART_DISK    DOSIFDTYP_KickstartDisk
  179. #define ID_MSDOS_DISK        DOSIFDTYP_MSDOSDisk
  180.  
  181. #define ERROR_NO_FREE_STORE          DOSERR_NoMem
  182. #define ERROR_TASK_TABLE_FULL          DOSERR_Unknown
  183. #define ERROR_BAD_TEMPLATE          DOSERR_BadTemplate1
  184. #define ERROR_BAD_NUMBER          DOSERR_Unknown
  185. #define ERROR_REQUIRED_ARG_MISSING      DOSERR_RequiredArgMissing
  186. #define ERROR_KEY_NEEDS_ARG          DOSERR_KeyNeedsArg
  187. #define ERROR_TOO_MANY_ARGS          DOSERR_TooManyArgs
  188. #define ERROR_UNMATCHED_QUOTES          DOSERR_BadTemplate1
  189. #define ERROR_LINE_TOO_LONG          DOSERR_NameToLong
  190. #define ERROR_FILE_NOT_OBJECT          DOSERR_FileIsNotLoadModul
  191. #define ERROR_INVALID_RESIDENT_LIBRARY      DOSERR_Unknown
  192. #define ERROR_NO_DEFAULT_DIR          DOSERR_Unknown
  193. #define ERROR_OBJECT_IN_USE          DOSERR_ObjectInUse
  194. #define ERROR_OBJECT_EXISTS          DOSERR_ObjectExists
  195. #define ERROR_DIR_NOT_FOUND          DOSERR_DirNotFound
  196. #define ERROR_OBJECT_NOT_FOUND          DOSERR_ObjectNotFound
  197. #define ERROR_BAD_STREAM_NAME          DOSERR_Unknown
  198. #define ERROR_OBJECT_TOO_LARGE          DOSERR_Unknown
  199. #define ERROR_ACTION_NOT_KNOWN          DOSERR_NotImplemented
  200. #define ERROR_INVALID_COMPONENT_NAME      DOSERR_Unknown
  201. #define ERROR_INVALID_LOCK          DOSERR_Unknown
  202. #define ERROR_OBJECT_WRONG_TYPE          DOSERR_WrongObjectType
  203. #define ERROR_DISK_NOT_VALIDATED      DOSERR_DiskNotValidated
  204. #define ERROR_DISK_WRITE_PROTECTED      DOSERR_DiskWriteProtected
  205. #define ERROR_RENAME_ACROSS_DEVICES      DOSERR_RenameAcrossDevices
  206. #define ERROR_DIRECTORY_NOT_EMPTY      DOSERR_DirectoryNotEmpty
  207. #define ERROR_TOO_MANY_LEVELS          DOSERR_Unknown
  208. #define ERROR_DEVICE_NOT_MOUNTED      DOSERR_DeviceNotMounted
  209. #define ERROR_SEEK_ERROR          DOSERR_SeekFailure
  210. #define ERROR_COMMENT_TOO_BIG          DOSERR_CommentTooLong
  211. #define ERROR_DISK_FULL              DOSERR_DiskFull
  212. #define ERROR_DELETE_PROTECTED          DOSERR_DeleteProtected
  213. #define ERROR_WRITE_PROTECTED          DOSERR_WriteProtected
  214. #define ERROR_READ_PROTECTED          DOSERR_ReadProtected
  215. #define ERROR_NOT_A_DOS_DISK          DOSERR_NotDosDisk
  216. #define ERROR_NO_DISK              DOSERR_NoDiskInDrive
  217. #define ERROR_NO_MORE_ENTRIES          DOSERR_NoMoreEntries
  218.  
  219. #define ERROR_IS_SOFT_LINK          DOSERR_Unknown
  220. #define ERROR_OBJECT_LINKED          DOSERR_Unknown
  221. #define ERROR_BAD_HUNK              DOSERR_Unknown
  222. #define ERROR_NOT_IMPLEMENTED          DOSERR_Unknown
  223. #define ERROR_RECORD_NOT_LOCKED          DOSERR_Unknown
  224. #define ERROR_LOCK_COLLISION          DOSERR_Unknown
  225. #define ERROR_LOCK_TIMEOUT          DOSERR_Unknown
  226. #define ERROR_UNLOCK_ERROR          DOSERR_Unknown
  227.  
  228. #define RETURN_OK    DOSFAIL_OK
  229. #define RETURN_WARN    DOSFAIL_WARN
  230. #define RETURN_ERROR    DOSFAIL_ERROR
  231. #define RETURN_FAIL    DOSFAIL_FAIL
  232.  
  233. #define SIGBREAKB_CTRL_C DOSSIGB_CTRL_C
  234. #define SIGBREAKB_CTRL_D DOSSIGB_CTRL_D
  235. #define SIGBREAKB_CTRL_E DOSSIGB_CTRL_E
  236. #define SIGBREAKB_CTRL_F DOSSIGB_CTRL_F
  237.  
  238. #define SIGBREAKF_CTRL_C DOSSIGF_CTRL_C
  239. #define SIGBREAKF_CTRL_D DOSSIGF_CTRL_D
  240. #define SIGBREAKF_CTRL_E DOSSIGF_CTRL_E
  241. #define SIGBREAKF_CTRL_F DOSSIGF_CTRL_F
  242.  
  243. #define    DOS_FIB    DOSOBJ_FIB
  244. #define DOS_CLI    DOSOBJ_Shell
  245.  
  246. #endif    /* DOS_DOS_H */
  247.