home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1995 April / Internet Tools.iso / osi / isode / vmsisode / vmsisode80_tar.Z / vmsisode80_tar / sockit / gccinclude / nam.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-24  |  8.5 KB  |  204 lines

  1. /*    NAM - Name Block Definitions    */
  2.  
  3. struct    NAM    {
  4.        unsigned char    nam$b_bid;        /* block identification */
  5. #define            NAM$C_BID    2    /* block identification code */
  6.  
  7.        unsigned char    nam$b_bln;        /* block length */
  8. #define            NAM$C_BLN    0x060    /* block length constant - V3 */
  9. #define            NAM$K_BLN    0x060
  10. #define            NAM$C_BLN_DIRWC 0x060
  11. #define            NAM$K_BLN_DIRWC 0x060
  12. #define            NAM$C_BLN_V2    0x038    /* block length constant - V2 */
  13. #define            NAM$K_BLN_V2    0x038
  14.  
  15.        unsigned char    nam$b_rss;        /* resultant string area size */
  16. #define            NAM$C_MAXRSS    255    /* maximum resultant name string size (network) */
  17. #define            NAM$C_MAXRSSLCL 255    /* maximum resultant name string size (local) */
  18.  
  19.        unsigned char    nam$b_rsl;        /* resultant string length */
  20.         char    *nam$l_rsa;        /* resultant string area address */
  21.  
  22.        unsigned char    nam$b_nop;            /* name options (currently undocumented) */
  23. #define            NAM$V_PWD    0        /* return password if present in nodespec string */
  24. #define            NAM$M_PWD    (1 << NAM$V_PWD)
  25. #define            NAM$V_FILL_1    1
  26. #define            NAM$M_FILL_1    (1 << NAM$V_FILL_1)
  27. #define            NAM$V_FILL_2    2
  28. #define            NAM$M_FILL_2    (1 << NAM$V_FILL_2)
  29. #define            NAM$V_SYNCHK    3        /* Only do syntax check on $PARSE operation */
  30. #define            NAM$M_SYNCHK    (1 << NAM$V_SYNCHK)
  31. #define            NAM$V_NOCONCEAL 4        /* do not conceal device/root directory */
  32. #define            NAM$M_NOCONCEAL (1 << NAM$V_NOCONCEAL)
  33. #define            NAM$V_SLPARSE    5        /* parse search list */
  34. #define            NAM$M_SLPARSE    (1 << NAM$V_SLPARSE)
  35. #define            NAM$V_SRCHXABS    6        /* fill in attached XABS on $SEARCH ops over the network */
  36. #define            NAM$M_SRCHXABS    (1 << NAM$V_SRCHXABS)
  37.  
  38.        unsigned char    nam$b_rfs;        /* remote file system type (currently undocumented) */
  39. #define            NAM$C_UFS    0    /* unknown file system for remote file access, or
  40.                            not applicable for local file access, or
  41.                            not applicable for task to task operation */
  42. #define            NAM$C_RMS11    1    /* RMS-11 */
  43. #define            NAM$C_RMS20    2    /* RMS-20 */
  44. #define            NAM$C_RMS32    3    /* RMS-32 */
  45. #define            NAM$C_FCS11    4    /* FCS-11 */
  46. #define            NAM$C_RT11FS    5    /* RT-11 file system */
  47. #define            NAM$C_TOPS20FS    7    /* TOPS-20 file system */
  48. #define            NAM$C_TOPS10FS    8    /* TOPS-10 file system */
  49. #define            NAM$C_RMS32S    10    /* RMS-32 Subset (VAXElan) */
  50.  
  51.        unsigned char    nam$b_ess;        /* expanded string area size */
  52.        unsigned char    nam$b_esl;        /* expanded string length */
  53.         char    *nam$l_esa;        /* expanded string area address */
  54.  
  55.      struct NAM    *nam$l_rlf;        /* related file NAM block address */
  56. #define            NAM$C_DVI    16    /* length of dvi field */
  57.  
  58.         char    nam$t_dvi[NAM$C_DVI];    /* device id */
  59.        unsigned short    nam$w_fid[3];        /* file id */
  60.        unsigned short    nam$w_did[3];        /* directory id */
  61.  
  62.        unsigned int    nam$l_wcc;        /* wild card context */
  63. #define            NAM$V_IFI    16        /* Internal file identifier */
  64. #define            NAM$M_IFI    (1 << NAM$V_IFI)
  65. #define            NAM$V_SRCHNMF    30        /* no-more-files has been encountered on $SEARCH */
  66. #define            NAM$M_SRCHNMF    (1 << NAM$V_SRCHNMF)
  67. #define            NAM$V_SVCTX    31        /* save context across search calls */
  68. #define            NAM$M_SVCTX    (1 << NAM$V_SVCTX)
  69.  
  70.        unsigned int    nam$l_fnb;                /* file name status bits */
  71. #define            NAM$V_EXP_VER    0            /* version number is explicit */
  72. #define            NAM$M_EXP_VER    (1 << NAM$V_EXP_VER)
  73. #define            NAM$V_EXP_TYPE    1            /* file type is explicit */
  74. #define            NAM$M_EXP_TYPE    (1 << NAM$V_EXP_TYPE)
  75. #define            NAM$V_EXP_NAME    2            /* file name is explicit */
  76. #define            NAM$M_EXP_NAME    (1 << NAM$V_EXP_NAME)
  77. #define            NAM$V_WILD_VER    3            /* version number containes a wild card */
  78. #define            NAM$M_WILD_VER    (1 << NAM$V_WILD_VER)
  79. #define            NAM$V_WILD_TYPE 4            /* file type containes a wild card */
  80. #define            NAM$M_WILD_TYPE (1 << NAM$V_WILD_TYPE)
  81. #define            NAM$V_WILD_NAME 5            /* file name containes a wild card */
  82. #define            NAM$M_WILD_NAME (1 << NAM$V_WILD_NAME)
  83. #define            NAM$V_EXP_DIR    6            /* directory spec is explicit */
  84. #define            NAM$M_EXP_DIR    (1 << NAM$V_EXP_DIR)
  85. #define            NAM$V_EXP_DEV    7            /* device name is explicit */
  86. #define            NAM$M_EXP_DEV    (1 << NAM$V_EXP_DEV)
  87. #define            NAM$V_WILDCARD    8            /* file name string includes a wild card (inclusive
  88.                                    or of other wild card bits) */
  89. #define            NAM$M_WILDCARD    (1 << NAM$V_WILDCARD)
  90. #define            NAM$V_SEARCH_LIST 11            /* search list present */
  91. #define            NAM$M_SEARCH_LIST (1 << NAM$V_SEARCH_LIST)
  92. #define            NAM$V_CNCL_DEV    12            /* device name is a concealed device */
  93. #define            NAM$M_CNCL_DEV    (1 << NAM$V_CNCL_DEV)
  94. #define            NAM$V_ROOT_DIR    13            /* device name incorporates a root directory */
  95. #define            NAM$M_ROOT_DIR    (1 << NAM$V_ROOT_DIR)
  96. #define            NAM$V_LOWVER    14            /* lower numbered version(s) of the file exist(s) */
  97. #define            NAM$M_LOWVER    (1 << NAM$V_LOWVER)
  98. #define            NAM$V_HIGHVER    15            /* higher numbered version(s) of the file exist(s) */
  99. #define            NAM$M_HIGHVER    (1 << NAM$V_HIGHVER)
  100. #define            NAM$V_PPF    16            /* indirectly accessed process permanent file */
  101. #define            NAM$M_PPF    (1 << NAM$V_PPF)
  102. #define            NAM$V_NODE    17            /* file specification includes a node name */
  103. #define            NAM$M_NODE    (1 << NAM$V_NODE)
  104. #define            NAM$V_QUOTED    18            /* file spec includes a quoted string */
  105. #define            NAM$M_QUOTED    (1 << NAM$V_QUOTED)
  106. #define            NAM$V_GRP_MBR    19            /* directory spec is of group-member number format */
  107. #define            NAM$M_GRP_MBR    (1 << NAM$V_GRP_MBR)
  108. #define            NAM$V_WILD_DIR    20            /* directory spec includes a wild card */
  109. #define            NAM$M_WILD_DIR    (1 << NAM$V_WILD_DIR)
  110. #define            NAM$V_DIR_LVLS    21            /* number of subdirectory levels (0 = ufd only) */
  111. #define            NAM$S_DIR_LVLS    3
  112. #define            NAM$M_DIR_LVLS    (7 << NAM$V_DIR_LVLS)
  113.  
  114. /* separate byte for wild card directory flags */
  115. #define            NAM$V_WILD_UFD    24            /* user file directory spec includes a wild card */
  116. #define            NAM$M_WILD_UFD    (1 << NAM$V_WILD_UFD)
  117. #define            NAM$V_WILD_SFD1 25            /* subfile directory 1 spec includes a wild card */
  118. #define            NAM$M_WILD_SFD1 (1 << NAM$V_WILD_SFD1)
  119. #define            NAM$V_WILD_SFD2 26            /* sfd2 includes a wild card */
  120. #define            NAM$M_WILD_SFD2 (1 << NAM$V_WILD_SFD2)
  121. #define            NAM$V_WILD_SFD3 27            /* sfd3 includes a wild card */
  122. #define            NAM$M_WILD_SFD3 (1 << NAM$V_WILD_SFD3)
  123. #define            NAM$V_WILD_SFD4 28            /* sfd4 includes a wild card */
  124. #define            NAM$M_WILD_SFD4 (1 << NAM$V_WILD_SFD4)
  125. #define            NAM$V_WILD_SFD5 29            /* sfd5 includes a wild card */
  126. #define            NAM$M_WILD_SFD5 (1 << NAM$V_WILD_SFD5)
  127. #define            NAM$V_WILD_SFD6 30            /* sfd6 includes a wild card */
  128. #define            NAM$M_WILD_SFD6 (1 << NAM$V_WILD_SFD6)
  129. #define            NAM$V_WILD_SFD7 31            /* sfd7 includes a wild card */
  130. #define            NAM$M_WILD_SFD7 (1 << NAM$V_WILD_SFD7)
  131.  
  132. /* alternate definitions for wild_ufd and wild_sfd1 */
  133. #define            NAM$V_WILD_GRP    24            /* group containes a wild card */
  134. #define            NAM$M_WILD_GRP    (1 << NAM$V_WILD_GRP)
  135. #define            NAM$V_WILD_MBR    25            /* member containes a wild card */
  136. #define            NAM$M_WILD_MBR    (1 << NAM$V_WILD_MBR)
  137.  
  138. /*  Extend the NAM Block by 40 bytes */
  139.  
  140.        unsigned char    nam$b_node;        /* node name string length */
  141.        unsigned char    nam$b_dev;        /* device string length */
  142.        unsigned char    nam$b_dir;        /* directory string length */
  143.        unsigned char    nam$b_name;        /* file name string length */
  144.        unsigned char    nam$b_type;        /* file type string length */
  145.        unsigned char    nam$b_ver;        /* file version string length */
  146.  
  147.         unsigned    : 16;        /* currently unused */
  148.  
  149.         char    *nam$l_node;        /* node name string address */
  150.         char    *nam$l_dev;        /* device string address */
  151.         char    *nam$l_dir;        /* directory string address */
  152.         char    *nam$l_name;        /* file name string address */
  153.         char    *nam$l_type;        /* file type string address */
  154.         char    *nam$l_ver;        /* file version string address */
  155.  
  156.         unsigned    : 32;        /* currently unused */
  157.         unsigned    : 32;        /* currently unused */
  158.         };
  159.  
  160.  
  161. struct {
  162.     unsigned    : 32;
  163.     unsigned    : 32;
  164.     unsigned    : 32;
  165.     unsigned    : 32;
  166.     unsigned    : 32;
  167.     unsigned    : 32;
  168.     unsigned    : 32;
  169.     unsigned    : 32;
  170.     unsigned    : 32;
  171.  
  172.     unsigned short    nam$w_fid_num;    /* file number */
  173.     unsigned short    nam$w_fid_seq;    /* sequence number */
  174.     unsigned short    nam$w_fid_rvn;    /* relative volume number */
  175.     unsigned short    nam$w_did_num;    /* file number */
  176.     unsigned short    nam$w_did_seq;    /* sequence number */
  177.     unsigned short    nam$w_did_rvn;    /* relative volume number */
  178.     };
  179.  
  180. struct {
  181.     unsigned    : 32;
  182.     unsigned    : 32;
  183.     unsigned    : 32;
  184.     unsigned    : 32;
  185.     unsigned    : 32;
  186.     unsigned    : 32;
  187.     unsigned    : 32;
  188.     unsigned    : 32;
  189.     unsigned    : 32;
  190.     unsigned    : 32;
  191.  
  192.     unsigned char    nam$b_fid_rvn;    /* alternate format RVN */
  193.     unsigned char    nam$b_fid_nmx;    /* alternate format file number extension */
  194.  
  195.     unsigned    : 32;
  196.  
  197.     unsigned char    nam$b_did_rvn;    /* alternate format RVN */
  198.     unsigned char    nam$b_did_nmx;    /* alternate format file number extension */
  199.     };
  200.  
  201. extern int cc$rms_nam();
  202. #define cc$rms_nam (*(struct NAM *) cc$rms_nam)
  203. /* globalref struct NAM cc$rms_nam;       /* Declare initialized prototype data structure */
  204.