home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / gccdist / gcc / include / nam.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-18  |  7.6 KB  |  168 lines

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