home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ddkx86v5.zip / DDKX86 / SRC / DEV / DASD / CMDPARSE / CMDPSCSI.C < prev    next >
C/C++ Source or Header  |  1995-04-14  |  5KB  |  205 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. /**************************************************************************
  13.  *
  14.  * SOURCE FILE NAME = CMDPSCSI.C
  15.  *
  16.  * DESCRIPTIVE NAME = ADD Command Line Parser
  17.  *                    Command Parser Table for SCSI ADDs
  18.  *
  19.  *
  20.  * VERSION = V2.0
  21.  *
  22.  * DATE
  23.  *
  24.  * DESCRIPTION :
  25.  *
  26.  * Purpose:
  27.  *
  28.  *
  29.  *
  30.  *
  31.  * FUNCTIONS  :
  32.  *
  33.  *
  34.  *
  35.  *
  36.  *
  37.  *
  38.  *
  39.  * NOTES
  40.  *
  41.  *
  42.  * STRUCTURES
  43.  *
  44.  * EXTERNAL REFERENCES
  45.  *
  46.  *
  47.  *
  48.  * EXTERNAL FUNCTIONS
  49.  *
  50. */
  51.  
  52. #if !(defined(OS2_INCLUDED))
  53.     #define INCL_NOBASEAPI
  54.     #define INCL_NOPMAPI
  55.     #include "OS2.H"
  56. #endif
  57. #include  "CMDPHDR.H"
  58.  
  59. CC       cc = {0,0};
  60.  
  61. #define OUTBUF_LEN       255
  62.  
  63. BYTE     outbuf[OUTBUF_LEN] = {0};
  64. USHORT   outbuf_len = OUTBUF_LEN + 1;
  65. PBYTE    poutbuf = outbuf;
  66.  
  67. #define ENTRY_STATE        0
  68. #define MAX_STATES         2
  69.  
  70. /*
  71. **                                       opt.state[] initialization definitions
  72. **
  73. **                                         ____ entry state
  74. **                                         |                   previous
  75. **                                         v                     opt |
  76. **  ----Command Line Option --------      ----- STATE TABLE -----    |
  77. **  token id          string   type        0   1   2                 |
  78. **                                                                   |
  79. **                                         *  /A: /A:        <-------
  80. **                                               plus
  81. */
  82.  
  83. OPT OPT_SN =
  84.     {TOK_ID_SN,     "/SN",   TYPE_0,      {0,  E,  E}};
  85.  
  86. OPT OPT_NSN =
  87.     {TOK_ID_NOT_SN, "/!SN",  TYPE_0,      {0,  E,  E}};
  88.  
  89. OPT OPT_ET =
  90.     {TOK_ID_ET,     "/ET",   TYPE_0,      {0,  E,  E}};
  91.  
  92. OPT OPT_NET =
  93.     {TOK_ID_NOT_ET, "/!ET",  TYPE_0,      {0,  E,  E}};
  94.  
  95. OPT OPT_ADAPTER =
  96.     {TOK_ID_ADAPTER,"/A:",   TYPE_D,      {1,  E,  1}};
  97.  
  98. OPT OPT_PORT =
  99.     {TOK_ID_PORT,   "/P:",   TYPE_HHHH,   {E,  2,  E}};
  100.  
  101. OPT OPT_SLOT =
  102.     {TOK_ID_SLOT,   "/S:",   TYPE_D,      {E,  2,  E}};
  103.  
  104. OPT OPT_DM =
  105.     {TOK_ID_DM,     "/DM:",  TYPE_SCSI_ID,{E,  2,  2}};
  106.  
  107. OPT OPT_DM_DEFAULT =
  108.     {TOK_ID_DM,     "/DM",   TYPE_0,      {E,  2,  2}};
  109.  
  110. OPT OPT_NDM =
  111.     {TOK_ID_NOT_DM, "/!DM:", TYPE_SCSI_ID,{E,  2,  2}};
  112.  
  113. OPT OPT_NDM_DEFAULT =
  114.     {TOK_ID_NOT_DM, "/!DM",  TYPE_0,      {E,  2,  2}};
  115.  
  116. OPT OPT_SM =
  117.     {TOK_ID_SM,     "/SM:",  TYPE_SCSI_ID,{E,  2,  2}};
  118.  
  119. OPT OPT_SM_DEFAULT =
  120.     {TOK_ID_SM,     "/SM",   TYPE_0,      {E,  2,  2}};
  121.  
  122. OPT OPT_NSM =
  123.     {TOK_ID_NOT_SM, "/!SM:", TYPE_SCSI_ID,{E,  2,  2}};
  124.  
  125. OPT OPT_NSM_DEFAULT =
  126.     {TOK_ID_NOT_SM, "/!SM",  TYPE_0,      {E,  2,  2}};
  127.  
  128. OPT OPT_HCW =
  129.     {TOK_ID_HCW,    "/HCW:", TYPE_SCSI_ID,{E,  2,  2}};
  130.  
  131. OPT OPT_HCW_DEFAULT =
  132.     {TOK_ID_HCW,    "/HCW",  TYPE_0,      {E,  2,  2}};
  133.  
  134. OPT OPT_NHCW =
  135.     {TOK_ID_NOT_HCW,"/!HCW:",TYPE_SCSI_ID,{E,  2,  2}};
  136.  
  137. OPT OPT_NHCW_DEFAULT =
  138.     {TOK_ID_NOT_HCW,"/!HCW", TYPE_0,      {E,  2,  2}};
  139.  
  140. OPT OPT_HCR =
  141.     {TOK_ID_HCR,    "/HCR:", TYPE_SCSI_ID,{E,  2,  2}};
  142.  
  143. OPT OPT_HCR_DEFAULT =
  144.     {TOK_ID_HCR,    "/HCR",  TYPE_0,      {E,  2,  2}};
  145.  
  146. OPT OPT_NHCR =
  147.     {TOK_ID_NOT_HCR,"/!HCR:",TYPE_SCSI_ID,{E,  2,  2}};
  148.  
  149. OPT OPT_NHCR_DEFAULT =
  150.     {TOK_ID_NOT_HCR,"/!HCR", TYPE_0,      {E,  2,  2}};
  151.  
  152. OPT OPT_DEV0 =
  153.     {TOK_ID_DEV0,   "/DEV0:",TYPE_D,      {E,  2,  2}};
  154.  
  155. OPT OPT_END =
  156.     {TOK_ID_END,    "\0",    TYPE_0,      {O,  O,  O}};
  157.  
  158.  
  159. /*
  160. **   The following is a generic OPTIONTABLE for ADDs which support SCSI
  161. **   devices.
  162. **
  163. **   Please note the importance of the ordering of entries in poption[]
  164. **   For example: the pointer to the option "/DM:" must come before the
  165. **                option "/DM"
  166. */
  167.  
  168. OPTIONTABLE  opttable =
  169.  
  170. {   ENTRY_STATE, MAX_STATES,
  171.     {(POPT) &OPT_ADAPTER,
  172.      (POPT) &OPT_SN,
  173.      (POPT) &OPT_NSN,
  174.      (POPT) &OPT_ET,
  175.      (POPT) &OPT_NET,
  176.  
  177. /*
  178. **   This table currently supports /P, to change to /S comment out &OPT_PORT
  179. **   and remove the comment from &OPT_SLOT
  180. */
  181.      (POPT) &OPT_PORT,
  182. /*   (POPT) &OPT_SLOT,     */
  183.  
  184.      (POPT) &OPT_DM,
  185.      (POPT) &OPT_DM_DEFAULT,
  186.      (POPT) &OPT_NDM,
  187.      (POPT) &OPT_NDM_DEFAULT,
  188.      (POPT) &OPT_SM,
  189.      (POPT) &OPT_SM_DEFAULT,
  190.      (POPT) &OPT_NSM,
  191.      (POPT) &OPT_NSM_DEFAULT,
  192.      (POPT) &OPT_HCW,
  193.      (POPT) &OPT_HCW_DEFAULT,
  194.      (POPT) &OPT_NHCW,
  195.      (POPT) &OPT_NHCW_DEFAULT,
  196.      (POPT) &OPT_HCR,
  197.      (POPT) &OPT_HCR_DEFAULT,
  198.      (POPT) &OPT_NHCR,
  199.      (POPT) &OPT_NHCR_DEFAULT,
  200.      (POPT) &OPT_DEV0,
  201.      (POPT) &OPT_END
  202.     }
  203. };
  204.  
  205.