home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / libraries / quickdos.lha / QuickDOS / quickdos.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-27  |  2.9 KB  |  111 lines

  1. #ifndef    QUICKDOS_QUICKDOS_H
  2. #define    QUICKDOS_QUICKDOS_H
  3. /**************************************************
  4. *
  5. *    QuickDOS V1.00
  6. *
  7. *    Written by Alexis WILKE (c) 1994
  8. *
  9. **************************************************/
  10.  
  11.  
  12. #ifndef    EXEC_LIBRARIES_H
  13. #include    <EXEC/libraries.h>
  14. #endif
  15. #ifndef    EXEC_LISTS_H
  16. #include    <EXEC/lists.h>
  17. #endif
  18. #ifndef    DOS_DOS_H
  19. #include    <DOS/dos.h>
  20. #endif
  21.  
  22.  
  23. struct QuickDOS {
  24.     struct Library    LibNode;
  25.     struct Library    *DOSBase;
  26.     long        Flags;
  27.     struct List        Files;        /* List of files */
  28. };
  29.  
  30. #define    FQDF_FASTONLY    (1<<0)        /* Allocates buffers only in fast memory */
  31. #define    FQDB_FASTONLY    0
  32.  
  33.  
  34. struct QDFile {
  35.     struct Node        FileNode;
  36.     unsigned char    Flags;
  37.     unsigned char    pad;        /* <- this byte is used by the system... */
  38.     unsigned long    Size;
  39.     char        *Data;        /* Null represent an empty file */
  40.   struct FileInfoBlock    Info;        /* Must be long word aligned */
  41. };
  42.  
  43. #define    FQDFF_READ    (1<<0)        /* File needs to be read */
  44. #define    FQDFB_READ    0
  45. #define    FQDFF_WRITE    (1<<1)        /* File needs to be written */
  46. #define    FQDFB_WRITE    1
  47. #define    FQDFF_READING    (1<<2)        /* File is actually read */
  48. #define    FQDFB_READING    2
  49. #define    FQDFF_WRITING    (1<<3)        /* File is actually written */
  50. #define    FQDFB_WRITING    3
  51. #define    FQDFF_CHECK    (1<<4)        /* File needs a check-up */
  52. #define    FQDFB_CHECK    4
  53. #define    FQDFF_CHECKING    (1<<5)        /* File is actually checked */
  54. #define    FQDFB_CHECKING    5
  55. #define    FQDFF_ERROR    (1<<7)        /* Last command generates an error */
  56. #define    FQDFB_ERROR    7
  57.  
  58.  
  59. typedef long QDFileHandle;
  60.  
  61.  
  62.         /**** Flags for QDOpen function ****/
  63.  
  64. #define    QDOFF_MEMORY    (1<<16)        /* In memory only (NEWFILE) */
  65. #define    QDOFB_MEMORY    16
  66. #define    QDOFF_SHARED    (1<<17)        /* Let other tasks play with the file */
  67. #define    QDOFB_SHARED    17
  68. #define    QDOFF_APPEND    (1<<18)        /* Cannot write in existing data (READWRITE) */
  69. #define    QDOFB_APPEND    18
  70.  
  71. #define    QDF_UNKNOWN    0        /* Case the file is not open */
  72. #define    QDF_OLDFILE    1        /* Saved in qdfile->FileNode.ln_Type */
  73. #define    QDF_READWRITE    2
  74. #define    QDF_NEWFILE    3
  75.  
  76.  
  77.  
  78. #define    QDF_DEFREALLOC    (16*1024)    /* Default size for realloc purpose */
  79.  
  80.  
  81.  
  82. #define    QUICKDOSNAME    "quickdos.library"
  83. #define    INTERNALDEVICE    "quickdos:"    /* Used for memory only files */
  84.  
  85.  
  86. #define    QUICKDOSVERSION        1
  87. #define    QUICKDOSRELEASE        1
  88. #define    QUICKDOSPRIORITY    5
  89.  
  90.  
  91.  
  92. extern    long        QDClose(struct QDFileHandle *);
  93. extern    long        QDCloseAll(void);
  94. extern    long        QDDiscard(char *);
  95. extern    struct FileInfoBlock *    QDExamine(QDFileHandle *, struct FileInfoBlock *);
  96. extern    struct QDFile *    QDExNext(struct QDFile *);
  97. extern    long        QDFlush(QDFileHandle *);
  98. extern    long        QDForget(QDFileHandle *);
  99. extern    struct QDFile * QDInfo(QDFileHandle *);
  100. extern    long        QDIoErr(void);
  101. extern    QDFileHandle *    QDOpen(char *, long);
  102. extern    long        QDRead(QDFileHandle *, void *, long);
  103. extern    long        QDRallocStep(long);
  104. extern    long        QDSeek(QDFileHandle *, long, long);
  105. extern    long        SetSize(QDFileHandle *, long);
  106. extern    long        QDTell(QDFileHandle *);
  107. extern    long        QDWrite(QDFileHandle *, void *, long);
  108.  
  109.  
  110. #endif        /* QUICKDOS_QUICKDOS_H */
  111.