home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / DASD / OS2DASD / DMTRACE.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-14  |  4.7 KB  |  162 lines

  1. /*DDK*************************************************************************/
  2. /*                                                                           */
  3. /* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
  4. /*                                                                           */
  5. /*    The following IBM OS/2 WARP source code is provided to you solely for  */
  6. /*    the purpose of assisting you in your development of OS/2 WARP device   */
  7. /*    drivers. You may use this code in accordance with the IBM License      */
  8. /*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
  9. /*    Copyright statement may not be removed.                                */
  10. /*                                                                           */
  11. /*****************************************************************************/
  12. /*static char *SCCSID = "src/dev/dasd/os2dasd/dmtrace.h, dsdm, r206, 6a.585 93/03/20";*/
  13. /**************************************************************************
  14.  *
  15.  * SOURCE FILE NAME = DMTRACE.H
  16.  *
  17.  * DESCRIPTIVE NAME = OS2DASD.DMD - OS/2 DASD Device Manager
  18.  *
  19.  *
  20.  *
  21.  *
  22.  *
  23.  * VERSION = V2.0
  24.  *
  25.  * DATE
  26.  *
  27.  * DESCRIPTION : Internal data structures for System/Perfview
  28.  *               tracing in the OS/2 DASD Manager.
  29.  *
  30.  *
  31. */
  32.  
  33. /*--------------------------------------------------------------------*/
  34. /*   RAS/DEKKO/PERFVIEW trace header file for OS2DASD.DMD             */
  35. /*--------------------------------------------------------------------*/
  36. #include "pvwxport.h"
  37.  
  38. #define TEST_RAS_TRACING(RMT,Maj)   \
  39.          (*(RMT+(Maj>>3)) & (0x80>>(Maj&7)))
  40.  
  41. #define TEST_TRACING(RMT,Maj)   \
  42.         (*RMT & 0x40) && (*(RMT+(Maj>>3)) & (0x80>>(Maj&7)))
  43.  
  44. /* Trace Event flags */
  45. #define TRACE_STRAT1            0x0001
  46. #define TRACE_STRAT2            0x0002
  47. #define TRACE_IORB              0x0004
  48. #define TRACE_ENTRY             0x0008
  49. #define TRACE_ASYNCSTART        0x0010
  50. #define TRACE_ASYNCDONE         0x0020
  51. #define TRACE_EXIT              0x0040
  52. #define TRACE_READ              0x0080
  53. #define TRACE_WRITE             0x0100
  54. #define TRACE_FORMAT            0x0200
  55. #define TRACE_VERIFY            0x0400
  56. #define TRACE_PREFETCH          0x0800
  57. #define TRACE_IOCTL             0x1000
  58. #define TRACE_RLE               0x2000                               /*@V85908*/
  59.  
  60. /* Global TraceFlags */
  61. #define TF_INTERNAL             0x0001
  62. #define TF_PERFVIEW             0x0002
  63. #define TF_RAS                  0x0004
  64. #define TF_DEKKO                0x0008
  65.  
  66.  
  67. /* RAS Trace Major/Minor Codes */
  68. #define DEKKO_MAJOR_DISK        0x68
  69.  
  70. #define RAS_MAJOR_DISK          0x07
  71. #define RAS_MINOR_STRAT1_RWV    0x08
  72. #define RAS_MINOR_IOCTL_RWVF    0x09
  73. #define RAS_MINOR_STRAT2_RLH    0x0A
  74. #define RAS_MINOR_STRAT2_RLE    0x0B
  75. #define RAS_MINOR_IORB          0x0C
  76.  
  77. /* Trace Control Block */
  78.  
  79. typedef struct _TCB {
  80.  
  81.    PBYTE        pRequest;
  82.    USHORT       Unit;
  83.    UCHAR        Drive[2];
  84.    UCHAR        CommandCode;
  85.    UCHAR        CommandModifier;
  86.    UCHAR        CmdString[3];
  87.    UCHAR        Reserved_1;
  88.    USHORT       RequestControl;
  89.    UCHAR        Priority;
  90.    UCHAR        Flags;
  91.    USHORT       cSGList;
  92.    ULONG        RBA;
  93.    ULONG        BlockCount;
  94.    USHORT       pRLH;
  95.    USHORT       Reserved_2;
  96.  
  97. } TCB, FAR *PTCB;
  98.  
  99.  
  100. typedef struct _TCBD {
  101.  
  102.    PBYTE        pRequest;
  103.    USHORT       Status;
  104.    USHORT       ErrorCode;
  105.    ULONG        BlocksXferred;
  106.  
  107. } TCBD, FAR *PTCBD;
  108.  
  109.  
  110. typedef struct _TRLHS {
  111.  
  112.    PBYTE        pRLH;
  113.    USHORT       Count;
  114.    USHORT       Unit;
  115.    UCHAR        Drive[2];
  116.    USHORT       Request_Control;
  117.  
  118. } TRLHS, FAR *PTRLHS;
  119.  
  120. typedef struct _TRLHD {
  121.  
  122.    PBYTE        pRLH;
  123.    USHORT       DoneCount;
  124.    USHORT       Status;
  125.  
  126. } TRLHD, FAR *PTRLHD;
  127.  
  128. /* Internal Trace Control Block */
  129.  
  130. #define TRACEBUF_SIZE 256
  131.  
  132. typedef struct _ITCB {
  133.  
  134.    UCHAR        Unit;
  135.    UCHAR        Event;
  136.    USHORT       pIORB;
  137.    UCHAR        CommandModifier;
  138.    UCHAR        CommandCode;
  139.    USHORT       Status;
  140.    USHORT       ErrorCode;
  141.    ULONG        rba;
  142.    USHORT       BlockCount;
  143.  
  144. } ITCB, FAR *PITCB, NEAR *NPITCB;
  145.  
  146.  
  147.  
  148.  
  149. typedef struct _PVDB {
  150.    DBH          pfdbh;
  151.    CNT          NumReads;               /* Read Counter */
  152.    QLEN         Read;     /*   @5242 */ /* Read Queue   */
  153.    CNT          ReadBytes;              /* Read Byte Count */
  154.    CNT          NumWrites;              /* Write Counter */
  155.    QLEN         Write;   /*   @5242 */  /* Write Queue */
  156.    CNT          WriteBytes;             /* Write Byte Count */
  157.    TIMR         Busy;                   /* BUSY timer */             /*@V53255*/
  158. } PVDB;
  159.  
  160.  
  161.  
  162.