home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Database / CLIPR503.W96 / FILESYS.AP_ / FILESYS.AP
Text File  |  1995-06-26  |  3KB  |  161 lines

  1. /***
  2. *
  3. *   Filesys.api
  4. *
  5. *   C language definitions for Clipper low level file I/O system
  6. *
  7. *   Copyright (c) 1992-1993, Computer Associates International, Inc.
  8. *   All rights reserved.
  9. *
  10. *   CA-Clipper uses Microsoft C large model calling conventions
  11. *
  12. */
  13.  
  14. #ifndef _FILESYS_API
  15.  
  16.    #define _FILESYS_API
  17.  
  18.    #ifdef __cplusplus
  19.       extern "C" {
  20.    #endif
  21.  
  22.    #ifndef _CLIPDEFS_H
  23.       #include "clipdefs.h"
  24.    #endif
  25.  
  26.  
  27.    #ifndef _ERROR_API
  28.       #include "error.api"
  29.    #endif
  30.  
  31.  
  32.    /*
  33.    *  Make sure HANDLE is defined
  34.    */
  35.    #ifndef FHANDLE_DEFINED
  36.  
  37. //      typedef USHORT FHANDLE;
  38.       typedef SHORT FHANDLE;
  39.       typedef FHANDLE fhandle;
  40.       typedef FHANDLE far * FHANDLEP;
  41.  
  42.       #define FHANDLE_DEFINED
  43.    #endif
  44.  
  45.  
  46.  
  47.    /*
  48.    *   DOS predefined standard handles
  49.    */
  50.  
  51.    #define STDIN    0
  52.    #define STDOUT   1
  53.    #define STDERR   2
  54.    #define STDAUX   3
  55.    #define STDPRN   4
  56.  
  57.  
  58.    /*
  59.    *   Error value
  60.    */
  61.  
  62.    #define FS_ERROR      ( (FHANDLE) - 1 )
  63.  
  64.  
  65.    /*
  66.    *   OPEN modes
  67.    */
  68.  
  69.    // access flags
  70.    #define FO_READ       0x0000
  71.    #define FO_WRITE      0x0001
  72.    #define FO_READWRITE  0x0002
  73.  
  74.    // sharing flags
  75.    #define FO_COMPAT     0x0000
  76.    #define FO_EXCLUSIVE  0x0010
  77.    #define FO_DENYWRITE  0x0020
  78.    #define FO_DENYREAD   0x0030
  79.    #define FO_DENYNONE   0x0040
  80.    #define FO_SHARED     0x0040
  81.  
  82.    // inheritance flags
  83.    #define FO_INHERITED  0x0000
  84.    #define FO_PRIVATE    0x0080
  85.  
  86.  
  87.    /*
  88.    *   CREATE attributes
  89.    */
  90.  
  91.    #define FC_NORMAL     0x0000
  92.    #define FC_READONLY   0x0001
  93.    #define FC_HIDDEN     0x0002
  94.    #define FC_SYSTEM     0x0004
  95.  
  96.  
  97.  
  98.    /*
  99.    *  SEEK modes
  100.    */
  101.  
  102.    #define FS_SET        0x0000
  103.    #define FS_RELATIVE   0x0001
  104.    #define FS_END        0x0002
  105.  
  106.  
  107.  
  108.    /*
  109.    *   LOCK modes
  110.    */
  111.  
  112.    #define FL_LOCK       0x0000
  113.    #define FL_UNLOCK     0x0001
  114.  
  115.  
  116.  
  117.    /*
  118.    *   Extend file open modes
  119.    */
  120.    /* _txopen() extended mode flags */
  121.  
  122.    #define FXO_TRUNCATE   0x0100
  123.    #define FXO_APPEND     0x0200
  124.    #define FXO_UNIQUE     0x0400
  125.    #define FXO_FORCEEXT   0x0800
  126.    #define FXO_DEFAULTS   0x1000
  127.    #define FXO_DEVICERAW  0x2000
  128.  
  129.  
  130.  
  131.    /*
  132.    *   Function prototypes
  133.    */
  134.  
  135.    extern FHANDLE _fsCreate( BYTEP filename, USHORT attribute );
  136.    extern void    _fsDelete( BYTEP filename );
  137.    extern FHANDLE _fsOpen( BYTEP filename, USHORT flags );
  138.    extern void    _fsClose( FHANDLE h );
  139.    extern USHORT  _fsRead( FHANDLE h, BYTEP buff, USHORT count );
  140.    extern USHORT  _fsWrite( FHANDLE h, BYTEP buff, USHORT count );
  141.    extern ULONG   _fsSeek( FHANDLE h, LONG offset, USHORT mode );
  142.    extern void    _fsRename( BYTEP oldname, BYTEP newname );
  143.    extern BOOL    _fsLock( FHANDLE h, ULONG start, ULONG length, USHORT mode );
  144.    extern void    _fsCommit( FHANDLE h );
  145.    extern FHANDLE _fsExtOpen( BYTEP filename, BYTEP defExt, USHORT flags,
  146.                               BYTEP paths, ERRORP error );
  147.    extern USHORT  _fsError(void);
  148.    extern BOOL    _fsMkDir( BYTEP fpDirName );
  149.    extern BOOL    _fsChDir( BYTEP fpDirName );
  150.    extern BOOL    _fsRmDir( BYTEP fpDirName );
  151.    extern BYTEP   _fsCurDir( BYTE nDrive );
  152.    extern BYTE    _fsCurDrv( void );
  153.    extern USHORT  _fsChDrv( BYTE drive );
  154.    extern USHORT  _fsIsDrv( BYTE drive );
  155.  
  156.    #ifdef __cplusplus
  157.       }
  158.    #endif
  159.  
  160. #endif
  161.