home *** CD-ROM | disk | FTP | other *** search
/ Piper's Pit BBS/FTP: ibm 0210 - 0219 / ibm0210-0219 / ibm0213.tar / ibm0213 / LS4APWAD.ZIP / LS40A.A12 / IBMLSA / IBM400R2 / OSLANAPI.ZIP / IBMLAN / NETSRC / H / HPFS386.H < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-10  |  7.5 KB  |  188 lines

  1. /**************************************************************************/
  2. /*                                                                        */
  3. /*              IBM OS/2(tm) Local Area Network (LAN) Server              */
  4. /*                            Version 3.0                                 */
  5. /* (c) Copyright International Business Machines Corporation, 1988, 1992  */
  6. /*                                                                        */
  7. /**************************************************************************/
  8.  
  9. /********************************************************************
  10.  *                                                                  *
  11.  *  About this file ...  HPFS386.H                                  *
  12.  *                                                                  *
  13.  *  This file contains information about the HPFS386 APIs.          *
  14.  *                                                                  *
  15.  *      Function prototypes.                                        *
  16.  *                                                                  *
  17.  *      Data structure templates.                                   *
  18.  *                                                                  *
  19.  *      Definition of special values.                               *
  20.  *                                                                  *
  21.  *                                                                  *
  22.  *  NOTE:  You must include NETCONS.H before this file, since this  *
  23.  *         file depends on values defined in NETCONS.H.             *
  24.  *                                                                  *
  25.  ********************************************************************/
  26.  
  27.  
  28.  
  29.  
  30. #ifdef  INCL_32
  31. #pragma pack(1)
  32. #endif
  33.  
  34.  
  35.  
  36. /****************************************************************
  37.  *                                                              *
  38.  *                     Function prototypes                      *
  39.  *                                                              *
  40.  ****************************************************************/
  41.  
  42. #ifdef  INCL_32
  43.  
  44. APIRET APIENTRY
  45.   HPFS386GETINFO(char *                   pszReserved,
  46.                  char *                   pszInfo,
  47.                  unsigned long            Level,
  48.                  char *                   pbBuffer,
  49.                  unsigned long            cbBuffer,
  50.                  unsigned long *          pcbAvail);
  51.  
  52. APIRET APIENTRY
  53.   HPFS386REQUEST(char *                   pszReserved,
  54.                  unsigned long            ulFunction,
  55.                  char *                   pbInBuffer,
  56.                  unsigned long            cbInBuffer,
  57.                  char *                   pbOutBuffer,
  58.                  unsigned long            cbOutBuffer,
  59.                  unsigned long *          pcbAvail);
  60.  
  61. #else
  62.  
  63. extern API_FUNCTION
  64.   HPFS386GetInfo16(char LSFAR *             pszReserved,
  65.                    char LSFAR *             pszInfo,
  66.                    unsigned short           Level,
  67.                    char LSFAR *             pbBuffer,
  68.                    unsigned short           cbBuffer,
  69.                    unsigned short LSFAR *   pcbAvail);
  70.  
  71.  
  72. #endif
  73.  
  74.  
  75. /****************************************************************
  76.  *                                                              *
  77.  *                 Special values and constants                 *
  78.  *                                                              *
  79.  ****************************************************************/
  80.  
  81. #define  HPFS386_NotRunning      0x00000000
  82. #define  HPFS386_Running         0x00000001
  83. #define  HPFS386_LocallySecure   0x00000002
  84.  
  85. #define  HPFS386_Request_Lock    0x0
  86. #define  HPFS386_Request_Unlock  0x1
  87. #define  HPFS386_Request_Read    0x2
  88.  
  89. /****************************************************************
  90.  *                                                              *
  91.  *                   Data structure templates                   *
  92.  *                                                              *
  93.  ****************************************************************/
  94.  
  95. struct hpfs386_info_0   {
  96.       unsigned long hi0_status;
  97. };    /* hpfs386_info_0 */
  98.  
  99.  
  100. struct hpfs386_info_1 {
  101.     unsigned long hi1_Len;              /* length of structure */
  102.     unsigned char hi1_MajorVer;         /* Volume's version */
  103.     unsigned char hi1_MinorVer;
  104.     unsigned char hi1_pad1[2];
  105.     unsigned long hi1_DrvFlag;          /* SPB flags */
  106.     unsigned long hi1_VolFlag;          /* VOL flags */
  107.     unsigned char hi1_Unit;             /* unit number */
  108.     unsigned char hi1_Drive;            /* drive number */
  109.     unsigned char hi1_LazyFlag;         /* lazy writing flag */
  110.     unsigned char hi1_LazyPri;          /* lazy writing priority */
  111.     unsigned long hi1_BufferIdle;       /* BufferIdle value for drive */
  112.     unsigned long hi1_Maxage;           /* Maxage value for drive */
  113.     unsigned long hi1_SpareDB;          /* count of Spare DBs left on volume */
  114.     unsigned long hi1_Sectors;          /* # of sectors on volume */
  115.     unsigned long hi1_Space;            /* space remaining (in sectors) */
  116.     unsigned char hi1_Label[11];        /* volume label */
  117.     unsigned char hi1_LabelLen;         /* length of volume label */
  118.     unsigned long hi1_BootID;           /* volume serial number */
  119.     unsigned long hi1_AltSPB;           /* alternate spare block sector */
  120.     unsigned long hi1_HFUsed;           /* # of hotfixes in effect */
  121.     unsigned long hi1_HFMax;            /* max # of hotfixes available */
  122.     unsigned long hi1_DDCapabilities;   /* device driver capabilities flag */
  123.     unsigned long hi1_Contig;           /* contiguity factor (in KBytes) */
  124.                                         /*  single sector allocation if == 1 */
  125.     unsigned long hi1_Reserved[3];      /* must be passed in as zero */
  126. };      /* hpfs386_info_1 */
  127.  
  128.  
  129. struct hpfs386_info_2 {
  130.     unsigned long hi2_CacheReads[2];    /* # of cache reads */
  131.     unsigned long hi2_DiskReads[2];     /* # of synchronous disk reads */
  132.     unsigned long hi2_LazyWrites[2];    /* # of lazy writes */
  133.     unsigned long hi2_DiskWrites[2];    /* # of synchronous disk writes */
  134.     unsigned long hi2_HotFixes;         /* # of hotfixes done */
  135.     unsigned short hi2_ReadHits;        /* Read Cache Hit % */
  136.     unsigned short hi2_WriteHits;       /* Write Cache Hit % */
  137. };      /* hpfs386_info_2 */
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144. #ifdef   INCL_32
  145.  
  146. struct hpfs386_req_LockBuffer      {
  147.       unsigned long   hrlb_ulLinearAddress;
  148.       unsigned long   hrlb_ulPhysicalAddress;
  149.       unsigned long   hrlb_ulLockHandle[3];
  150. };    /* hpfs386_req_LockBuffer */
  151.  
  152.  
  153. struct hpfs386_req_LockRequest     {
  154.       unsigned long   hrlr_ulLinearAddress;
  155.       unsigned long   hrlr_ulLength;
  156.       unsigned long   hrlr_ulFlags;
  157. };    /* hpfs386_req_LockRequest */
  158.  
  159.  
  160. struct hpfs386_req_Timing          {
  161.       unsigned long   hrtm_ulTimeIn[2];
  162.       unsigned long   hrtm_ulTimeOut[2];
  163. };    /* hpfs386_req_Timing */
  164.  
  165.  
  166. struct hpfs386_req_ReadBuffer      {
  167.         unsigned long   hrrb_ulLinearAddress;
  168.         unsigned long   hrrb_ulPhysicalAddress;
  169.         unsigned long   hrrb_ulLength;
  170. };     /* hpfs386_req_ReadBuffer */
  171.  
  172. struct hpfs386_req_ReadRequest     {
  173.         unsigned long   hrrr_ulNumBufs;
  174.         unsigned long   hrrr_ulHandle;
  175.         unsigned long   hrrr_ulStartSector;
  176. };      /* hpfs386_req_ReadRequest */
  177.  
  178. #endif
  179.  
  180. #ifdef   INCL_32
  181.  
  182.  
  183. #pragma linkage (HPFS386GETINFO, system)
  184. #pragma linkage (HPFS386REQUEST, system)
  185.  
  186.  
  187. #endif
  188.