/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:43 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:21 $1$DGA7274:[STARLET_H.SRC]RMSUSR.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $NAMDEF ***/ #ifndef __NAMDEF_LOADED #define __NAMDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /* */ /* name block field definitions */ /* */ /* the nam block is used to communicate optional */ /* filename-related information */ /* */ #ifdef __NEW_STARLET struct _namdef; struct _namldef; #else struct namdef; struct namldef; #endif #define NAM$C_BID 2 /* code for nam block */ #define NAM$C_MAXRSS 255 /* maximum resultant name string size (network) */ #define NAM$C_MAXRSSLCL 255 /* maximum resultant name string size (local) */ #define NAM$M_PWD 0x1 #define NAM$M_FILL_1 0x2 #define NAM$M_FILL_2 0x4 #define NAM$M_SYNCHK 0x8 #define NAM$M_NOCONCEAL 0x10 #define NAM$M_SLPARSE 0x20 #define NAM$M_SRCHXABS 0x40 #define NAM$M_NO_SHORT_UPCASE 0x80 #define NAM$C_UFS 0 /* Unknown file system for remote file access or */ /* not applicable for local file access or */ #define NAM$C_NO_RFS 0 /* task-to-task operation */ #define NAM$C_RMS11 1 /* RMS-11 */ #define NAM$C_RMS20 2 /* RMS-20 */ #define NAM$C_RMS32 3 /* RMS-32 */ #define NAM$C_FCS11 4 /* FCS-11 */ #define NAM$C_RT11FS 5 /* RT-11 file system */ #define NAM$C_TOPS20FS 7 /* TOPS-20 file system */ #define NAM$C_TOPS10FS 8 /* TOPS-10 file system */ #define NAM$C_RMS32S 10 /* RMS-32 subset (e.g., VAXELAN) */ #define NAM$C_CPMFS 11 /* CP/M file system */ #define NAM$C_MS_DOSFS 12 /* MS/DOS file system */ #define NAM$C_ULTRIX32_FS 13 /* Ultrix-32 file system */ #define NAM$C_ULTRIX11_FS 14 /* Ultrix-11 file system */ #define DAP$K_SNADTF_FS 15 /* SNADTF compatable FS */ /*+++++++++++++++++++++++ */ #define NAM$C_DVI 16 /* length of dvi field */ /*+++++***** */ #define NAM$M_IFI 0x10000 #define NAM$M_SRCHNMF 0x40000000 #define NAM$M_SVCTX 0x80000000 #define NAM$K_BLN_V2 56 /* Version 2 name block length */ #define NAM$C_BLN_V2 56 /* Version 2 name block length */ #define NAM$M_EXP_VER 0x1 #define NAM$M_EXP_TYPE 0x2 #define NAM$M_EXP_NAME 0x4 #define NAM$M_WILD_VER 0x8 #define NAM$M_WILD_TYPE 0x10 #define NAM$M_WILD_NAME 0x20 #define NAM$M_EXP_DIR 0x40 #define NAM$M_EXP_DEV 0x80 #define NAM$M_WILDCARD 0x100 #define NAM$M_DIR_LVLS_G7 0x200 #define NAM$M_WILD_SFDG7 0x400 #define NAM$M_SEARCH_LIST 0x800 #define NAM$M_CNCL_DEV 0x1000 #define NAM$M_ROOT_DIR 0x2000 #define NAM$M_LOWVER 0x4000 #define NAM$M_HIGHVER 0x8000 #define NAM$M_PPF 0x10000 #define NAM$M_NODE 0x20000 #define NAM$M_QUOTED 0x40000 #define NAM$M_GRP_MBR 0x80000 #define NAM$M_WILD_DIR 0x100000 #define NAM$M_DIR_LVLS 0xE00000 #define NAM$M_WILD_UFD 0x1000000 #define NAM$M_WILD_SFD1 0x2000000 #define NAM$M_WILD_SFD2 0x4000000 #define NAM$M_WILD_SFD3 0x8000000 #define NAM$M_WILD_SFD4 0x10000000 #define NAM$M_WILD_SFD5 0x20000000 #define NAM$M_WILD_SFD6 0x40000000 #define NAM$M_WILD_SFD7 0x80000000 #define NAM$M_WILD_GRP 0x1000000 #define NAM$M_WILD_MBR 0x2000000 #define NAM$M_DID 0x1 #define NAM$M_FID 0x2 #define NAM$M_RES_DID 0x4 #define NAM$M_RES_FID 0x8 #define NAM$M_RES_ESCAPE 0x10 #define NAM$M_RES_UNICODE 0x20 #ifdef __cplusplus /* Define structure prototypes */ struct _namldef; #endif /* #ifdef __cplusplus */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _namdef { #pragma __nomember_alignment unsigned char nam$b_bid; /* block id */ unsigned char nam$b_bln; /* block length */ /*+++++++++++++++++++++++ */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char nam$b_rss; /* resultant string area size */ unsigned char nam$b_rsl; /* resultant string length */ #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif char *nam$l_rsa; /* resultant string area address */ /*----------------------- */ __union { unsigned char nam$b_nop; /* Name options */ __struct { unsigned nam$v_pwd : 1; /* Return password if present in nodespec string and any */ /* other task-specific data of the form /netacp_data" */ /* (default is to mask out password from expanded and */ /* resultant name strings and to create a logical name */ /* whose equivalence string is the unaltered nodespec) */ unsigned nam$v_fill_1 : 1; /* unused. (used to be undocumented ROD) */ unsigned nam$v_fill_2 : 1; /* unused. (used to be undocumented SOD) */ unsigned nam$v_synchk : 1; /* Only do syntax check on $parse operation */ unsigned nam$v_noconceal : 1; /* Do not conceal device/root directory */ unsigned nam$v_slparse : 1; /* Parse search list (not documented) -- used by BACKUP. */ unsigned nam$v_srchxabs : 1; /* Fill in attached XABS on $SEARCH operations over the */ /* network (not documented) -- used by directory. */ unsigned nam$v_no_short_upcase : 1; /* Don't upcase the ESA */ } nam$r_nop_bits; } nam$r_nop_overlay; unsigned char nam$b_rfs; /* Remote file system type (currently not documented) */ /* Note: This field is reserved for use by Digital */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char nam$b_ess; /* expanded string area size */ unsigned char nam$b_esl; /* expanded string length */ char *nam$l_esa; /* expanded string area address */ /*----------------------- */ __union { struct _namdef *nam$l_rlf; /* related file nam block addr ~~~ struct namdef ~~~ */ struct _namldef *nam$l_rlf_naml; /* related file naml block addr ~~~ struct namldef ~~~ */ } nam$r_rlf_overlay; char nam$t_dvi [16]; /* device id */ /* the location of the following fields must not */ /* be changed due to their commonality with the fib */ __union { unsigned short int nam$w_fid [3]; /* file id */ __struct { unsigned short int nam$w_fid_num; /* file number */ unsigned short int nam$w_fid_seq; /* sequence number */ __union { unsigned short int nam$w_fid_rvn; /* relative volume number */ __struct { unsigned char nam$b_fid_rvn; /* alternate format RVN */ unsigned char nam$b_fid_nmx; /* alternate format file number extension */ } nam$r_fid_rvn_fields; } nam$r_fid_rvn_overlay; } nam$r_fid_fields; } nam$r_fid_overlay; __union { unsigned short int nam$w_did [3]; /* directory id */ __struct { unsigned short int nam$w_did_num; /* file number */ unsigned short int nam$w_did_seq; /* sequence number */ __union { unsigned short int nam$w_did_rvn; /* relative volume number */ __struct { unsigned char nam$b_did_rvn; /* alternate format RVN */ unsigned char nam$b_did_nmx; /* alternate format file number extension */ } nam$r_did_rvn_fields; } nam$r_did_rvn_overlay; } nam$r_did_fields; } nam$r_did_overlay; __union { unsigned int nam$l_wcc; /* wild card context */ __struct { unsigned namdef$$_fill_1 : 16; /* the first word is reserved for IFI/ACP context */ unsigned nam$v_ifi : 1; /* the first word contains an IFI */ unsigned namdef$$_fill_2 : 13; /* grow from top down, start at top bit */ unsigned nam$v_srchnmf : 1; /* no-more-files has been encountered on a search */ unsigned nam$v_svctx : 1; /* save context across search calls */ } nam$r_wcc_bits; } nam$r_wcc_overlay; __union { unsigned int nam$l_fnb; /* file name status bits */ __struct { unsigned nam$v_exp_ver : 1; /* version was explicit */ unsigned nam$v_exp_type : 1; /* type was explicit */ unsigned nam$v_exp_name : 1; /* name was explicit */ unsigned nam$v_wild_ver : 1; /* version contained a wild card */ unsigned nam$v_wild_type : 1; /* type contained a wild card */ unsigned nam$v_wild_name : 1; /* name contained a wild card */ unsigned nam$v_exp_dir : 1; /* directory was explicit */ unsigned nam$v_exp_dev : 1; /* device was explicit */ unsigned nam$v_wildcard : 1; /* filename string included a wild card */ /* (inclusive or of other wild card bits) */ unsigned nam$v_dir_lvls_g7 : 1; /* Dir levels greater than 7 */ unsigned nam$v_wild_sfdg7 : 1; /* A subdir greater than 7 has a wildcard */ unsigned nam$v_search_list : 1; /* search list present */ unsigned nam$v_cncl_dev : 1; /* concealed device present */ unsigned nam$v_root_dir : 1; /* root directory present */ unsigned nam$v_lowver : 1; /* lower numbered version(s) of file exist(s) */ unsigned nam$v_highver : 1; /* higher " */ /* */ unsigned nam$v_ppf : 1; /* process-permanent file referenced indirectly */ unsigned nam$v_node : 1; /* filename specification included a nodename */ unsigned nam$v_quoted : 1; /* filename spec included a quoted string */ unsigned nam$v_grp_mbr : 1; /* directory spec was of group-member format */ unsigned nam$v_wild_dir : 1; /* directory spec included a wild card */ unsigned nam$v_dir_lvls : 3; /* number of directory levels (0=ufd only) */ } nam$r_fnb_bits0; __struct { unsigned namdef$$_fill_4 : 24; /* separate byte for wild card directory flags */ unsigned nam$v_wild_ufd : 1; /* ufd included a wild card */ unsigned nam$v_wild_sfd1 : 1; /* sfd1 included a wild card */ unsigned nam$v_wild_sfd2 : 1; /* sfd2 included a wild card */ unsigned nam$v_wild_sfd3 : 1; /* sfd3 included a wild card */ unsigned nam$v_wild_sfd4 : 1; /* sfd4 included a wild card */ unsigned nam$v_wild_sfd5 : 1; /* sfd5 included a wild card */ unsigned nam$v_wild_sfd6 : 1; /* sfd6 included a wild card */ unsigned nam$v_wild_sfd7 : 1; /* sfd7 included a wild card */ } nam$r_fnb_bits1; __struct { unsigned namdef$$_fill_5 : 24; /* alternate definitions for wild_ufd and wild_sfd1 */ unsigned nam$v_wild_grp : 1; /* group contained a wild card */ unsigned nam$v_wild_mbr : 1; /* member contained a wild card */ unsigned nam$v_fill_5_ : 6; } nam$r_fnb_bits2; /*-----***** */ /* (prior to 40 byte extension) */ /* */ /* Extend the NAM block by 40 bytes. */ /* */ } nam$r_fnb_overlay; unsigned char nam$b_node; /* Nodespec length */ unsigned char nam$b_dev; /* Device length */ unsigned char nam$b_dir; /* Directory length */ unsigned char nam$b_name; /* Filename length */ unsigned char nam$b_type; /* Filetype length */ unsigned char nam$b_ver; /* Version number length */ __union { /* Name characteristics */ unsigned char nam$b_nmc; __struct { unsigned nam$v_did : 1; /* Input file spec DIDed */ unsigned nam$v_fid : 1; /* Input file spec FIDed */ unsigned nam$v_res_did : 1; /* Result or Exp string spec DIDed */ unsigned nam$v_res_fid : 1; /* Result or Exp string spec FIDed */ unsigned nam$v_res_escape : 1; /* Result or Exp string spec has "^" */ unsigned nam$v_res_unicode : 1; /* Result or Exp string spec contains ^U */ unsigned namdef$$_fill_3 : 2; } nam$r_nmc_bits; } nam$r_nmc_overlay; char namdef$$_fill_6 [1]; /* Currently unused */ char *nam$l_node; /* Nodespec address */ char *nam$l_dev; /* Device address */ char *nam$l_dir; /* Directory address */ char *nam$l_name; /* Filename address */ char *nam$l_type; /* Filetype address */ char *nam$l_ver; /* Version number address */ unsigned short int nam$w_first_wild_dir; /*First wild directory in related nam */ unsigned short int nam$w_long_dir_levels; /*Total number of directories */ unsigned int namdef$$_fill_7 [1]; /* Currently unused */ } NAMDEF; #if !defined(__VAXC) #define nam$b_nop nam$r_nop_overlay.nam$b_nop #define nam$r_nop_bits nam$r_nop_overlay.nam$r_nop_bits #define nam$v_pwd nam$r_nop_bits.nam$v_pwd #define nam$v_fill_1 nam$r_nop_bits.nam$v_fill_1 #define nam$v_fill_2 nam$r_nop_bits.nam$v_fill_2 #define nam$v_synchk nam$r_nop_bits.nam$v_synchk #define nam$v_noconceal nam$r_nop_bits.nam$v_noconceal #define nam$v_slparse nam$r_nop_bits.nam$v_slparse #define nam$v_srchxabs nam$r_nop_bits.nam$v_srchxabs #define nam$v_no_short_upcase nam$r_nop_bits.nam$v_no_short_upcase #define nam$l_rlf nam$r_rlf_overlay.nam$l_rlf #define nam$l_rlf_naml nam$r_rlf_overlay.nam$l_rlf_naml #define nam$w_fid nam$r_fid_overlay.nam$w_fid #define nam$r_fid_fields nam$r_fid_overlay.nam$r_fid_fields #define nam$w_fid_num nam$r_fid_fields.nam$w_fid_num #define nam$w_fid_seq nam$r_fid_fields.nam$w_fid_seq #define nam$r_fid_rvn_overlay nam$r_fid_fields.nam$r_fid_rvn_overlay #define nam$w_fid_rvn nam$r_fid_rvn_overlay.nam$w_fid_rvn #define nam$r_fid_rvn_fields nam$r_fid_rvn_overlay.nam$r_fid_rvn_fields #define nam$b_fid_rvn nam$r_fid_rvn_fields.nam$b_fid_rvn #define nam$b_fid_nmx nam$r_fid_rvn_fields.nam$b_fid_nmx #define nam$w_did nam$r_did_overlay.nam$w_did #define nam$r_did_fields nam$r_did_overlay.nam$r_did_fields #define nam$w_did_num nam$r_did_fields.nam$w_did_num #define nam$w_did_seq nam$r_did_fields.nam$w_did_seq #define nam$r_did_rvn_overlay nam$r_did_fields.nam$r_did_rvn_overlay #define nam$w_did_rvn nam$r_did_rvn_overlay.nam$w_did_rvn #define nam$r_did_rvn_fields nam$r_did_rvn_overlay.nam$r_did_rvn_fields #define nam$b_did_rvn nam$r_did_rvn_fields.nam$b_did_rvn #define nam$b_did_nmx nam$r_did_rvn_fields.nam$b_did_nmx #define nam$l_wcc nam$r_wcc_overlay.nam$l_wcc #define nam$r_wcc_bits nam$r_wcc_overlay.nam$r_wcc_bits #define nam$v_ifi nam$r_wcc_bits.nam$v_ifi #define nam$v_srchnmf nam$r_wcc_bits.nam$v_srchnmf #define nam$v_svctx nam$r_wcc_bits.nam$v_svctx #define nam$l_fnb nam$r_fnb_overlay.nam$l_fnb #define nam$r_fnb_bits0 nam$r_fnb_overlay.nam$r_fnb_bits0 #define nam$v_exp_ver nam$r_fnb_bits0.nam$v_exp_ver #define nam$v_exp_type nam$r_fnb_bits0.nam$v_exp_type #define nam$v_exp_name nam$r_fnb_bits0.nam$v_exp_name #define nam$v_wild_ver nam$r_fnb_bits0.nam$v_wild_ver #define nam$v_wild_type nam$r_fnb_bits0.nam$v_wild_type #define nam$v_wild_name nam$r_fnb_bits0.nam$v_wild_name #define nam$v_exp_dir nam$r_fnb_bits0.nam$v_exp_dir #define nam$v_exp_dev nam$r_fnb_bits0.nam$v_exp_dev #define nam$v_wildcard nam$r_fnb_bits0.nam$v_wildcard #define nam$v_dir_lvls_g7 nam$r_fnb_bits0.nam$v_dir_lvls_g7 #define nam$v_wild_sfdg7 nam$r_fnb_bits0.nam$v_wild_sfdg7 #define nam$v_search_list nam$r_fnb_bits0.nam$v_search_list #define nam$v_cncl_dev nam$r_fnb_bits0.nam$v_cncl_dev #define nam$v_root_dir nam$r_fnb_bits0.nam$v_root_dir #define nam$v_lowver nam$r_fnb_bits0.nam$v_lowver #define nam$v_highver nam$r_fnb_bits0.nam$v_highver #define nam$v_ppf nam$r_fnb_bits0.nam$v_ppf #define nam$v_node nam$r_fnb_bits0.nam$v_node #define nam$v_quoted nam$r_fnb_bits0.nam$v_quoted #define nam$v_grp_mbr nam$r_fnb_bits0.nam$v_grp_mbr #define nam$v_wild_dir nam$r_fnb_bits0.nam$v_wild_dir #define nam$v_dir_lvls nam$r_fnb_bits0.nam$v_dir_lvls #define nam$r_fnb_bits1 nam$r_fnb_overlay.nam$r_fnb_bits1 #define nam$v_wild_ufd nam$r_fnb_bits1.nam$v_wild_ufd #define nam$v_wild_sfd1 nam$r_fnb_bits1.nam$v_wild_sfd1 #define nam$v_wild_sfd2 nam$r_fnb_bits1.nam$v_wild_sfd2 #define nam$v_wild_sfd3 nam$r_fnb_bits1.nam$v_wild_sfd3 #define nam$v_wild_sfd4 nam$r_fnb_bits1.nam$v_wild_sfd4 #define nam$v_wild_sfd5 nam$r_fnb_bits1.nam$v_wild_sfd5 #define nam$v_wild_sfd6 nam$r_fnb_bits1.nam$v_wild_sfd6 #define nam$v_wild_sfd7 nam$r_fnb_bits1.nam$v_wild_sfd7 #define nam$r_fnb_bits2 nam$r_fnb_overlay.nam$r_fnb_bits2 #define nam$v_wild_grp nam$r_fnb_bits2.nam$v_wild_grp #define nam$v_wild_mbr nam$r_fnb_bits2.nam$v_wild_mbr #define nam$b_nmc nam$r_nmc_overlay.nam$b_nmc #define nam$r_nmc_bits nam$r_nmc_overlay.nam$r_nmc_bits #define nam$v_did nam$r_nmc_bits.nam$v_did #define nam$v_fid nam$r_nmc_bits.nam$v_fid #define nam$v_res_did nam$r_nmc_bits.nam$v_res_did #define nam$v_res_fid nam$r_nmc_bits.nam$v_res_fid #define nam$v_res_escape nam$r_nmc_bits.nam$v_res_escape #define nam$v_res_unicode nam$r_nmc_bits.nam$v_res_unicode #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif struct namdef { #pragma __nomember_alignment unsigned char nam$b_bid; /* block id */ unsigned char nam$b_bln; /* block length */ /*+++++++++++++++++++++++ */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char nam$b_rss; /* resultant string area size */ unsigned char nam$b_rsl; /* resultant string length */ char *nam$l_rsa; /* resultant string area address */ /*----------------------- */ __union { unsigned char nam$b_nop; /* Name options */ __struct { unsigned nam$v_pwd : 1; /* Return password if present in nodespec string and any */ /* other task-specific data of the form /netacp_data" */ /* (default is to mask out password from expanded and */ /* resultant name strings and to create a logical name */ /* whose equivalence string is the unaltered nodespec) */ unsigned nam$v_fill_1 : 1; /* unused. (used to be undocumented ROD) */ unsigned nam$v_fill_2 : 1; /* unused. (used to be undocumented SOD) */ unsigned nam$v_synchk : 1; /* Only do syntax check on $parse operation */ unsigned nam$v_noconceal : 1; /* Do not conceal device/root directory */ unsigned nam$v_slparse : 1; /* Parse search list (not documented) -- used by BACKUP. */ unsigned nam$v_srchxabs : 1; /* Fill in attached XABS on $SEARCH operations over the */ /* network (not documented) -- used by directory. */ unsigned nam$v_no_short_upcase : 1; /* Don't upcase the ESA */ } nam$r_nop_bits; } nam$r_nop_overlay; unsigned char nam$b_rfs; /* Remote file system type (currently not documented) */ /* Note: This field is reserved for use by Digital */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char nam$b_ess; /* expanded string area size */ unsigned char nam$b_esl; /* expanded string length */ char *nam$l_esa; /* expanded string area address */ /*----------------------- */ __union { struct namdef *nam$l_rlf; /* related file nam block addr */ struct namldef *nam$l_rlf_naml; /* related file naml block addr */ } nam$r_rlf_overlay; char nam$t_dvi [16]; /* device id */ /* the location of the following fields must not */ /* be changed due to their commonality with the fib */ __union { unsigned short int nam$w_fid [3]; /* file id */ __struct { unsigned short int nam$w_fid_num; /* file number */ unsigned short int nam$w_fid_seq; /* sequence number */ __union { unsigned short int nam$w_fid_rvn; /* relative volume number */ __struct { unsigned char nam$b_fid_rvn; /* alternate format RVN */ unsigned char nam$b_fid_nmx; /* alternate format file number extension */ } nam$r_fid_rvn_fields; } nam$r_fid_rvn_overlay; } nam$r_fid_fields; } nam$r_fid_overlay; __union { unsigned short int nam$w_did [3]; /* directory id */ __struct { unsigned short int nam$w_did_num; /* file number */ unsigned short int nam$w_did_seq; /* sequence number */ __union { unsigned short int nam$w_did_rvn; /* relative volume number */ __struct { unsigned char nam$b_did_rvn; /* alternate format RVN */ unsigned char nam$b_did_nmx; /* alternate format file number extension */ } nam$r_did_rvn_fields; } nam$r_did_rvn_overlay; } nam$r_did_fields; } nam$r_did_overlay; __union { unsigned int nam$l_wcc; /* wild card context */ __struct { unsigned namdef$$_fill_1 : 16; /* the first word is reserved for IFI/ACP context */ unsigned nam$v_ifi : 1; /* the first word contains an IFI */ unsigned namdef$$_fill_2 : 13; /* grow from top down, start at top bit */ unsigned nam$v_srchnmf : 1; /* no-more-files has been encountered on a search */ unsigned nam$v_svctx : 1; /* save context across search calls */ } nam$r_wcc_bits; } nam$r_wcc_overlay; __union { unsigned int nam$l_fnb; /* file name status bits */ __struct { unsigned nam$v_exp_ver : 1; /* version was explicit */ unsigned nam$v_exp_type : 1; /* type was explicit */ unsigned nam$v_exp_name : 1; /* name was explicit */ unsigned nam$v_wild_ver : 1; /* version contained a wild card */ unsigned nam$v_wild_type : 1; /* type contained a wild card */ unsigned nam$v_wild_name : 1; /* name contained a wild card */ unsigned nam$v_exp_dir : 1; /* directory was explicit */ unsigned nam$v_exp_dev : 1; /* device was explicit */ unsigned nam$v_wildcard : 1; /* filename string included a wild card */ /* (inclusive or of other wild card bits) */ unsigned nam$v_dir_lvls_g7 : 1; /* Dir levels greater than 7 */ unsigned nam$v_wild_sfdg7 : 1; /* A subdir greater than 7 has a wildcard */ unsigned nam$v_search_list : 1; /* search list present */ unsigned nam$v_cncl_dev : 1; /* concealed device present */ unsigned nam$v_root_dir : 1; /* root directory present */ unsigned nam$v_lowver : 1; /* lower numbered version(s) of file exist(s) */ unsigned nam$v_highver : 1; /* higher " */ /* */ unsigned nam$v_ppf : 1; /* process-permanent file referenced indirectly */ unsigned nam$v_node : 1; /* filename specification included a nodename */ unsigned nam$v_quoted : 1; /* filename spec included a quoted string */ unsigned nam$v_grp_mbr : 1; /* directory spec was of group-member format */ unsigned nam$v_wild_dir : 1; /* directory spec included a wild card */ unsigned nam$v_dir_lvls : 3; /* number of directory levels (0=ufd only) */ } nam$r_fnb_bits0; __struct { unsigned namdef$$_fill_4 : 24; /* separate byte for wild card directory flags */ unsigned nam$v_wild_ufd : 1; /* ufd included a wild card */ unsigned nam$v_wild_sfd1 : 1; /* sfd1 included a wild card */ unsigned nam$v_wild_sfd2 : 1; /* sfd2 included a wild card */ unsigned nam$v_wild_sfd3 : 1; /* sfd3 included a wild card */ unsigned nam$v_wild_sfd4 : 1; /* sfd4 included a wild card */ unsigned nam$v_wild_sfd5 : 1; /* sfd5 included a wild card */ unsigned nam$v_wild_sfd6 : 1; /* sfd6 included a wild card */ unsigned nam$v_wild_sfd7 : 1; /* sfd7 included a wild card */ } nam$r_fnb_bits1; __struct { unsigned namdef$$_fill_5 : 24; /* alternate definitions for wild_ufd and wild_sfd1 */ unsigned nam$v_wild_grp : 1; /* group contained a wild card */ unsigned nam$v_wild_mbr : 1; /* member contained a wild card */ unsigned nam$v_fill_5_ : 6; } nam$r_fnb_bits2; /*-----***** */ /* (prior to 40 byte extension) */ /* */ /* Extend the NAM block by 40 bytes. */ /* */ } nam$r_fnb_overlay; unsigned char nam$b_node; /* Nodespec length */ unsigned char nam$b_dev; /* Device length */ unsigned char nam$b_dir; /* Directory length */ unsigned char nam$b_name; /* Filename length */ unsigned char nam$b_type; /* Filetype length */ unsigned char nam$b_ver; /* Version number length */ __union { /* Name characteristics */ unsigned char nam$b_nmc; __struct { unsigned nam$v_did : 1; /* Input file spec DIDed */ unsigned nam$v_fid : 1; /* Input file spec FIDed */ unsigned nam$v_res_did : 1; /* Result or Exp string spec DIDed */ unsigned nam$v_res_fid : 1; /* Result or Exp string spec FIDed */ unsigned nam$v_res_escape : 1; /* Result or Exp string spec has "^" */ unsigned nam$v_res_unicode : 1; /* Result or Exp string spec contains ^U */ unsigned namdef$$_fill_3 : 2; } nam$r_nmc_bits; } nam$r_nmc_overlay; char namdef$$_fill_6 [1]; /* Currently unused */ char *nam$l_node; /* Nodespec address */ char *nam$l_dev; /* Device address */ char *nam$l_dir; /* Directory address */ char *nam$l_name; /* Filename address */ char *nam$l_type; /* Filetype address */ char *nam$l_ver; /* Version number address */ unsigned short int nam$w_first_wild_dir; /*First wild directory in related nam */ unsigned short int nam$w_long_dir_levels; /*Total number of directories */ unsigned int namdef$$_fill_7 [1]; /* Currently unused */ } ; #if !defined(__VAXC) #define nam$b_nop nam$r_nop_overlay.nam$b_nop #define nam$v_pwd nam$r_nop_overlay.nam$r_nop_bits.nam$v_pwd #define nam$v_fill_1 nam$r_nop_overlay.nam$r_nop_bits.nam$v_fill_1 #define nam$v_fill_2 nam$r_nop_overlay.nam$r_nop_bits.nam$v_fill_2 #define nam$v_synchk nam$r_nop_overlay.nam$r_nop_bits.nam$v_synchk #define nam$v_noconceal nam$r_nop_overlay.nam$r_nop_bits.nam$v_noconceal #define nam$v_slparse nam$r_nop_overlay.nam$r_nop_bits.nam$v_slparse #define nam$v_srchxabs nam$r_nop_overlay.nam$r_nop_bits.nam$v_srchxabs #define nam$v_no_short_upcase nam$r_nop_overlay.nam$r_nop_bits.nam$v_no_short_upcase #define nam$l_rlf nam$r_rlf_overlay.nam$l_rlf #define nam$l_rlf_naml nam$r_rlf_overlay.nam$l_rlf_naml #define nam$w_fid nam$r_fid_overlay.nam$w_fid #define nam$w_fid_num nam$r_fid_overlay.nam$r_fid_fields.nam$w_fid_num #define nam$w_fid_seq nam$r_fid_overlay.nam$r_fid_fields.nam$w_fid_seq #define nam$w_fid_rvn nam$r_fid_overlay.nam$r_fid_fields.nam$r_fid_rvn_overlay.nam$w_fid_rvn #define nam$b_fid_rvn nam$r_fid_overlay.nam$r_fid_fields.nam$r_fid_rvn_overlay.nam$r_fid_rvn_fields.nam$b_fid_rvn #define nam$b_fid_nmx nam$r_fid_overlay.nam$r_fid_fields.nam$r_fid_rvn_overlay.nam$r_fid_rvn_fields.nam$b_fid_nmx #define nam$w_did nam$r_did_overlay.nam$w_did #define nam$w_did_num nam$r_did_overlay.nam$r_did_fields.nam$w_did_num #define nam$w_did_seq nam$r_did_overlay.nam$r_did_fields.nam$w_did_seq #define nam$w_did_rvn nam$r_did_overlay.nam$r_did_fields.nam$r_did_rvn_overlay.nam$w_did_rvn #define nam$b_did_rvn nam$r_did_overlay.nam$r_did_fields.nam$r_did_rvn_overlay.nam$r_did_rvn_fields.nam$b_did_rvn #define nam$b_did_nmx nam$r_did_overlay.nam$r_did_fields.nam$r_did_rvn_overlay.nam$r_did_rvn_fields.nam$b_did_nmx #define nam$l_wcc nam$r_wcc_overlay.nam$l_wcc #define nam$v_ifi nam$r_wcc_overlay.nam$r_wcc_bits.nam$v_ifi #define nam$v_srchnmf nam$r_wcc_overlay.nam$r_wcc_bits.nam$v_srchnmf #define nam$v_svctx nam$r_wcc_overlay.nam$r_wcc_bits.nam$v_svctx #define nam$l_fnb nam$r_fnb_overlay.nam$l_fnb #define nam$v_exp_ver nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_exp_ver #define nam$v_exp_type nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_exp_type #define nam$v_exp_name nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_exp_name #define nam$v_wild_ver nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_wild_ver #define nam$v_wild_type nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_wild_type #define nam$v_wild_name nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_wild_name #define nam$v_exp_dir nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_exp_dir #define nam$v_exp_dev nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_exp_dev #define nam$v_wildcard nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_wildcard #define nam$v_dir_lvls_g7 nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_dir_lvls_g7 #define nam$v_wild_sfdg7 nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_wild_sfdg7 #define nam$v_search_list nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_search_list #define nam$v_cncl_dev nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_cncl_dev #define nam$v_root_dir nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_root_dir #define nam$v_lowver nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_lowver #define nam$v_highver nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_highver #define nam$v_ppf nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_ppf #define nam$v_node nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_node #define nam$v_quoted nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_quoted #define nam$v_grp_mbr nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_grp_mbr #define nam$v_wild_dir nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_wild_dir #define nam$v_dir_lvls nam$r_fnb_overlay.nam$r_fnb_bits0.nam$v_dir_lvls #define nam$v_wild_ufd nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_ufd #define nam$v_wild_sfd1 nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_sfd1 #define nam$v_wild_sfd2 nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_sfd2 #define nam$v_wild_sfd3 nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_sfd3 #define nam$v_wild_sfd4 nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_sfd4 #define nam$v_wild_sfd5 nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_sfd5 #define nam$v_wild_sfd6 nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_sfd6 #define nam$v_wild_sfd7 nam$r_fnb_overlay.nam$r_fnb_bits1.nam$v_wild_sfd7 #define nam$v_wild_grp nam$r_fnb_overlay.nam$r_fnb_bits2.nam$v_wild_grp #define nam$v_wild_mbr nam$r_fnb_overlay.nam$r_fnb_bits2.nam$v_wild_mbr #define nam$b_nmc nam$r_nmc_overlay.nam$b_nmc #define nam$v_did nam$r_nmc_overlay.nam$r_nmc_bits.nam$v_did #define nam$v_fid nam$r_nmc_overlay.nam$r_nmc_bits.nam$v_fid #define nam$v_res_did nam$r_nmc_overlay.nam$r_nmc_bits.nam$v_res_did #define nam$v_res_fid nam$r_nmc_overlay.nam$r_nmc_bits.nam$v_res_fid #define nam$v_res_escape nam$r_nmc_overlay.nam$r_nmc_bits.nam$v_res_escape #define nam$v_res_unicode nam$r_nmc_overlay.nam$r_nmc_bits.nam$v_res_unicode #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* basealign on aggregate NAMDEF operates after aggregate end */ #define NAM$K_BLN_DIRWC 96 /* Not documented optional length */ #define NAM$C_BLN_DIRWC 96 /* Not documented optional length */ #define NAM$K_BLN 96 /* Name block length */ #define NAM$C_BLN 96 /* Name block length */ /* These are traditional macros that should be hand-maintained for compatibility */ /* Do not have to add new ones, but do have to maintain those that are here already. */ #define NAM$V_PWD 0 /* return password if present in nodespec string */ #define NAM$V_FILL_1 1 #define NAM$V_FILL_2 2 #define NAM$V_SYNCHK 3 /* Only do syntax check on $PARSE operation */ #define NAM$V_NOCONCEAL 4 /* do not conceal device/root directory */ #define NAM$V_SLPARSE 5 /* parse search list */ #define NAM$V_SRCHXABS 6 /* fill in attached XABS on $SEARCH ops over the network */ #define NAM$V_NO_SHORT_UPCASE 7 /* Don't upcase the ESA */ #define NAM$V_IFI 16 /* Internal file identifier */ #define NAM$V_SRCHNMF 30 /* no-more-files has been encountered on $SEARCH */ #define NAM$V_SVCTX 31 /* save context across search calls */ #define NAM$V_EXP_VER 0 /* version number is explicit */ #define NAM$V_EXP_TYPE 1 /* file type is explicit */ #define NAM$V_EXP_NAME 2 /* file name is explicit */ #define NAM$V_WILD_VER 3 /* version number containes a wild card */ #define NAM$V_WILD_TYPE 4 /* file type containes a wild card */ #define NAM$V_WILD_NAME 5 /* file name containes a wild card */ #define NAM$V_EXP_DIR 6 /* directory spec is explicit */ #define NAM$V_EXP_DEV 7 /* device name is explicit */ #define NAM$V_WILDCARD 8 /* file name string includes a wild card */ #define NAM$V_DIR_LVLS_G7 9 /* Dir levels greater than 7 */ #define NAM$V_WILD_SFDG7 10 /* A subdir greater than 7 has a wildcard */ #define NAM$V_SEARCH_LIST 11 /* search list present */ #define NAM$V_CNCL_DEV 12 /* device name is a concealed device */ #define NAM$V_ROOT_DIR 13 /* device name incorporates a root directory */ #define NAM$V_LOWVER 14 /* lower numbered version(s) of the file exist(s) */ #define NAM$V_HIGHVER 15 /* higher numbered version(s) of the file exist(s) */ #define NAM$V_PPF 16 /* indirectly accessed process permanent file */ #define NAM$V_NODE 17 /* file specification includes a node name */ #define NAM$V_QUOTED 18 /* file spec includes a quoted string */ #define NAM$V_GRP_MBR 19 /* directory spec is of group-member number format */ #define NAM$V_WILD_DIR 20 /* directory spec includes a wild card */ #define NAM$V_DIR_LVLS 21 /* number of subdirectory levels (0 = ufd only) */ #define NAM$S_DIR_LVLS 3 #define NAM$V_WILD_UFD 24 /* user file directory spec includes a wild card */ #define NAM$V_WILD_SFD1 25 /* subfile directory 1 spec includes a wild card */ #define NAM$V_WILD_SFD2 26 /* sfd2 includes a wild card */ #define NAM$V_WILD_SFD3 27 /* sfd3 includes a wild card */ #define NAM$V_WILD_SFD4 28 /* sfd4 includes a wild card */ #define NAM$V_WILD_SFD5 29 /* sfd5 includes a wild card */ #define NAM$V_WILD_SFD6 30 /* sfd6 includes a wild card */ #define NAM$V_WILD_SFD7 31 /* sfd7 includes a wild card */ #define NAM$V_WILD_GRP 24 /* group containes a wild card */ #define NAM$V_WILD_MBR 25 /* member containes a wild card */ #define NAM$V_DID 0 /* Input string is DIDed */ #define NAM$V_FID 1 /* Input string is FIDed */ #define NAM$V_RES_DID 2 /* Result or Exp string is DIDded */ #define NAM$V_RES_FID 3 /* Result or Exp string is FIDded */ #define NAM$V_RES_ESCAPE 4 /* Result or Exp string has escapes */ #define NAM$V_RES_UNICODE 5 /* Result or Exp string has ^U */ #define NAML$V_NO_SHORT_OUTPUT 0 /* Don't write to RSA and ESA */ #define NAML$V_LONG_RESULT_ESCAPE 0 /* There is an escape characater in the long output */ #define NAML$V_FILESYS_NAME_UCS2 1 /* The filesys name output is 2-byte Unicode*/ #define NAML$V_LONG_RESULT_DID 2 /* There is DIDding in the long result or expanded */ #define NAML$V_LONG_RESULT_FID 3 /* There is FIDding in the long result or expanded */ #define NAML$V_LONG_RESULT_UNICODE 4 /* There is ^U in the long result or expanded */ #ifdef __NEW_STARLET #define NAM _namdef #else #define NAM namdef #endif #define cc$rms_nam (*decc$ga_rms_nam) #if defined(__DECC) || defined(__DECCXX) # pragma extern_model __save # pragma extern_model strict_refdef extern struct NAM cc$rms_nam; /* Declare initialized prototype data structures */ # pragma extern_model __restore #else globalref struct NAM cc$rms_nam; /* Declare initialized prototype data structures */ #endif /* Start NAML here */ /* */ /* name block field definitions */ /* */ /* The naml block is an extended version of the NAM */ /* block used to communicate optional filename-related */ /* information. It differs from the NAM in that it */ /* includes a default name and a file name field and that */ /* these as well as the result and expanded file names */ /* have 32-bit length fields (though the top 16 bits is */ /* required to be 0, limiting the length to 65535). There */ /* are also some additional flags available. */ /* */ /* In order for RMS to recognize this block as a NAML, it must */ /* have NAML$B_BLN set to NAML$C_BLN, and must have */ /* NAML$B_BID set to NAML$C_BID. */ /* */ #ifdef __NEW_STARLET struct _namldef; #else struct namldef; #endif #define NAML$C_BID 4 /* code for naml block */ /* (Same as nam) */ #define NAML$C_MAXRSS 4095 /* maximum resultant name string size */ #define NAML$M_PWD 0x1 #define NAML$M_FILL_1 0x2 #define NAML$M_FILL_2 0x4 #define NAML$M_SYNCHK 0x8 #define NAML$M_NOCONCEAL 0x10 #define NAML$M_SLPARSE 0x20 #define NAML$M_SRCHXABS 0x40 #define NAML$M_NO_SHORT_UPCASE 0x80 #define NAML$C_UFS 0 /* Unknown file system for remote file access or */ /* not applicable for local file access or */ #define NAML$C_NO_RFS 0 /* task-to-task operation */ #define NAML$C_RMS11 1 /* RMS-11 */ #define NAML$C_RMS20 2 /* RMS-20 */ #define NAML$C_RMS32 3 /* RMS-32 */ #define NAML$C_FCS11 4 /* FCS-11 */ #define NAML$C_RT11FS 5 /* RT-11 file system */ #define NAML$C_TOPS20FS 7 /* TOPS-20 file system */ #define NAML$C_TOPS10FS 8 /* TOPS-10 file system */ #define NAML$C_RMS32S 10 /* RMS-32 subset (e.g., VAXELAN) */ #define NAML$C_CPMFS 11 /* CP/M file system */ #define NAML$C_MS_DOSFS 12 /* MS/DOS file system */ #define NAML$C_ULTRIX32_FS 13 /* Ultrix-32 file system */ #define NAML$C_ULTRIX11_FS 14 /* Ultrix-11 file system */ /*+++++++++++++++++++++++ */ #define NAML$C_DVI 16 /* length of dvi field */ /*+++++***** */ #define NAML$M_IFI 0x10000 #define NAML$M_SRCHNMF 0x40000000 #define NAML$M_SVCTX 0x80000000 #define NAML$K_BLN_V2 56 /* Version 2 name block length */ #define NAML$C_BLN_V2 56 /* Version 2 name block length */ #define NAML$M_EXP_VER 0x1 #define NAML$M_EXP_TYPE 0x2 #define NAML$M_EXP_NAME 0x4 #define NAML$M_WILD_VER 0x8 #define NAML$M_WILD_TYPE 0x10 #define NAML$M_WILD_NAME 0x20 #define NAML$M_EXP_DIR 0x40 #define NAML$M_EXP_DEV 0x80 #define NAML$M_WILDCARD 0x100 #define NAML$M_DIR_LVLS_G7 0x200 #define NAML$M_WILD_SFDG7 0x400 #define NAML$M_SEARCH_LIST 0x800 #define NAML$M_CNCL_DEV 0x1000 #define NAML$M_ROOT_DIR 0x2000 #define NAML$M_LOWVER 0x4000 #define NAML$M_HIGHVER 0x8000 #define NAML$M_PPF 0x10000 #define NAML$M_NODE 0x20000 #define NAML$M_QUOTED 0x40000 #define NAML$M_GRP_MBR 0x80000 #define NAML$M_WILD_DIR 0x100000 #define NAML$M_DIR_LVLS 0xE00000 #define NAML$M_WILD_UFD 0x1000000 #define NAML$M_WILD_SFD1 0x2000000 #define NAML$M_WILD_SFD2 0x4000000 #define NAML$M_WILD_SFD3 0x8000000 #define NAML$M_WILD_SFD4 0x10000000 #define NAML$M_WILD_SFD5 0x20000000 #define NAML$M_WILD_SFD6 0x40000000 #define NAML$M_WILD_SFD7 0x80000000 #define NAML$M_WILD_GRP 0x1000000 #define NAML$M_WILD_MBR 0x2000000 #define NAML$M_DID 0x1 #define NAML$M_FID 0x2 #define NAML$M_RES_DID 0x4 #define NAML$M_RES_FID 0x8 #define NAML$M_RES_ESCAPE 0x10 #define NAML$M_RES_UNICODE 0x20 #define NAML$M_LONG_RESULT_ESCAPE 0x1 #define NAML$M_FILESYS_NAME_UCS2 0x2 #define NAML$M_LONG_RESULT_DID 0x4 #define NAML$M_LONG_RESULT_FID 0x8 #define NAML$M_LONG_RESULT_UNICODE 0x10 #define NAML$M_MP_IN_PATH 0x20 #define NAML$M_SYMLNK_IN_PATH 0x40 #define NAML$M_OBJECT_SYMLINK 0x80 #define NAML$M_IS_DIRECTORY 0x100 #define NAML$M_NO_SHORT_OUTPUT 0x1 #define NAML$C_CASE_LOOKUP_BLIND 2 /* case blind */ #define NAML$C_CASE_LOOKUP_SENSITIVE 3 /* case sensitive */ #define NAML$M_OPEN_SPECIAL 0x8 #define NAML$C_SEARCH_SYMLINK_DEFAULT 0 /* use process default */ #define NAML$C_SEARCH_SYMLINK_NONE 1 /* use no symlinks */ #define NAML$C_SEARCH_SYMLINK_ALL 2 /* use symlinks always */ #define NAML$C_SEARCH_SYMLINK_NOELLIPS 3 /* use symlinks except in ellipsis */ #ifdef __NEW_STARLET #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif typedef struct _namldef { #pragma __nomember_alignment unsigned char naml$b_bid; /* block id */ unsigned char naml$b_bln; /* block length */ /*+++++++++++++++++++++++ */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char naml$b_rss; /* resultant string area size */ unsigned char naml$b_rsl; /* resultant string length */ char *naml$l_rsa; /* resultant string area address */ /*----------------------- */ __union { unsigned char naml$b_nop; /* Name options */ __struct { unsigned naml$v_pwd : 1; /* Return password if present in nodespec string and any */ /* other task-specific data of the form /netacp_data" */ /* (default is to mask out password from expanded and */ /* resultant name strings and to create a logical name */ /* whose equivalence string is the unaltered nodespec) */ unsigned naml$v_fill_1 : 1; /* unused. (used to be undocumented ROD) */ unsigned naml$v_fill_2 : 1; /* unused. (used to be undocumented SOD) */ unsigned naml$v_synchk : 1; /* Only do syntax check on $parse operation */ unsigned naml$v_noconceal : 1; /* Do not conceal device/root directory */ unsigned naml$v_slparse : 1; /* Parse search list (not documented) -- used by BACKUP. */ unsigned naml$v_srchxabs : 1; /* Fill in attached XABS on $SEARCH operations over the */ /* network (not documented) -- used by directory. */ unsigned naml$v_no_short_upcase : 1; /* Don't upcase the ESA */ } naml$r_nop_bits; } naml$r_nop_overlay; unsigned char naml$b_rfs; /* Remote file system type (currently not documented) */ /* Note: This field is reserved for use by Digital */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char naml$b_ess; /* espanded string area size */ unsigned char naml$b_esl; /* expanded string length */ char *naml$l_esa; /* expanded string area address */ /*----------------------- */ __union { NAMDEF *naml$l_rlf; /* related file nam block addr ~~~ struct namdef ~~~ */ struct _namldef *naml$l_rlf_naml; /* related file naml block addr ~~~ struct namldef ~~~ */ } naml$r_rlf_overlay; char naml$t_dvi [16]; /* device id */ /* the location of the following fields must not */ /* be changed due to their commonality with the fib */ __union { unsigned short int naml$w_fid [3]; /* file id */ __struct { unsigned short int naml$w_fid_num; /* file number */ unsigned short int naml$w_fid_seq; /* sequence number */ __union { unsigned short int naml$w_fid_rvn; /* relative volume number */ __struct { unsigned char naml$b_fid_rvn; /* alternate format RVN */ unsigned char naml$b_fid_nmx; /* alternate format file number extension */ } naml$r_fid_rvn_fields; } naml$r_fid_rvn_overlay; } naml$r_fid_fields; } naml$r_fid_overlay; __union { unsigned short int naml$w_did [3]; /* directory id */ __struct { unsigned short int naml$w_did_num; /* file number */ unsigned short int naml$w_did_seq; /* sequence number */ __union { unsigned short int naml$w_did_rvn; /* relative volume number */ __struct { unsigned char naml$b_did_rvn; /* alternate format RVN */ unsigned char naml$b_did_nmx; /* alternate format file number extension */ } naml$r_did_rvn_fields; } naml$r_did_rvn_overlay; } naml$r_did_fields; } naml$r_did_overlay; __union { unsigned int naml$l_wcc; /* wild card context */ __struct { unsigned namldef$$_fill_1 : 16; /* the first word is reserved for IFI/ACP context */ unsigned naml$v_ifi : 1; /* the first word contains an IFI */ unsigned namldef$$_fill_2 : 13; /* grow from top down, start at top bit */ unsigned naml$v_srchnmf : 1; /* no-more-files has been encountered on a search */ unsigned naml$v_svctx : 1; /* save context across search calls */ } naml$r_wcc_bits; } naml$r_wcc_overlay; __union { unsigned int naml$l_fnb; /* file name status bits */ __struct { unsigned naml$v_exp_ver : 1; /* version was explicit */ unsigned naml$v_exp_type : 1; /* type was explicit */ unsigned naml$v_exp_name : 1; /* name was explicit */ unsigned naml$v_wild_ver : 1; /* version contained a wild card */ unsigned naml$v_wild_type : 1; /* type contained a wild card */ unsigned naml$v_wild_name : 1; /* name contained a wild card */ unsigned naml$v_exp_dir : 1; /* directory was explicit */ unsigned naml$v_exp_dev : 1; /* device was explicit */ unsigned naml$v_wildcard : 1; /* filename string included a wild card */ /* (inclusive or of other wild card bits) */ unsigned naml$v_dir_lvls_g7 : 1; /* Dir levels greater than 7 */ unsigned naml$v_wild_sfdg7 : 1; /* A subdir greater than 7 has a wildcard */ unsigned naml$v_search_list : 1; /* search list present */ unsigned naml$v_cncl_dev : 1; /* concealed device present */ unsigned naml$v_root_dir : 1; /* root directory present */ unsigned naml$v_lowver : 1; /* lower numbered version(s) of file exist(s) */ unsigned naml$v_highver : 1; /* higher " */ /* */ unsigned naml$v_ppf : 1; /* process-permanent file referenced indirectly */ unsigned naml$v_node : 1; /* filename specification included a nodename */ unsigned naml$v_quoted : 1; /* filename spec included a quoted string */ unsigned naml$v_grp_mbr : 1; /* directory spec was of group-member format */ unsigned naml$v_wild_dir : 1; /* directory spec included a wild card */ unsigned naml$v_dir_lvls : 3; /* number of directory levels (0=ufd only) */ } naml$r_fnb_bits0; __struct { unsigned namldef$$_fill_4 : 24; /* separate byte for wild card directory flags */ unsigned naml$v_wild_ufd : 1; /* ufd included a wild card */ unsigned naml$v_wild_sfd1 : 1; /* sfd1 included a wild card */ unsigned naml$v_wild_sfd2 : 1; /* sfd2 included a wild card */ unsigned naml$v_wild_sfd3 : 1; /* sfd3 included a wild card */ unsigned naml$v_wild_sfd4 : 1; /* sfd4 included a wild card */ unsigned naml$v_wild_sfd5 : 1; /* sfd5 included a wild card */ unsigned naml$v_wild_sfd6 : 1; /* sfd6 included a wild card */ unsigned naml$v_wild_sfd7 : 1; /* sfd7 included a wild card */ } naml$r_fnb_bits1; __struct { unsigned namldef$$_fill_5 : 24; /* alternate definitions for wild_ufd and wild_sfd1 */ unsigned naml$v_wild_grp : 1; /* group contained a wild card */ unsigned naml$v_wild_mbr : 1; /* member contained a wild card */ unsigned naml$v_fill_6_ : 6; } naml$r_fnb_bits2; } naml$r_fnb_overlay; unsigned char naml$b_node; /* Nodespec length */ unsigned char naml$b_dev; /* Device length */ unsigned char naml$b_dir; /* Directory length */ unsigned char naml$b_name; /* Filename length */ unsigned char naml$b_type; /* Filetype length */ unsigned char naml$b_ver; /* Version number length */ __union { /* Name characteristics */ unsigned char naml$b_nmc; __struct { unsigned naml$v_did : 1; /* Input file spec DIDed */ unsigned naml$v_fid : 1; /* Input file spec FIDed */ unsigned naml$v_res_did : 1; /* Result or Exp string spec DIDed */ unsigned naml$v_res_fid : 1; /* Result or Exp string spec FIDed */ unsigned naml$v_res_escape : 1; /* Result or Exp string spec has "^" */ unsigned naml$v_res_unicode : 1; /* Result or Exp string spec contains ^U */ unsigned namldef$$_fill_3 : 2; } naml$r_nmc_bits; } naml$r_nmc_overlay; char namldef$$_fill_6 [1]; /* Currently unused */ char *naml$l_node; /* Nodespec address */ char *naml$l_dev; /* Device address */ char *naml$l_dir; /* Directory address */ char *naml$l_name; /* Filename address */ char *naml$l_type; /* Filetype address */ char *naml$l_ver; /* Version number address */ unsigned short int naml$w_first_wild_dir; /*First wild directory in related nam */ unsigned short int naml$w_long_dir_levels; /*Total number of directories */ unsigned int namldef$$_fill_7 [1]; /* Currently unused */ /* New NAML-only items: */ unsigned int naml$l_long_defname_size; /*Analogous to FAB$B_DNS */ char *naml$l_long_defname; /*Analogous to FAB$L_DNA */ unsigned int naml$l_long_filename_size; /*Analogous to FAB$B_FNS */ char *naml$l_long_filename; /*Analogous to FAB$L_FNA */ unsigned int naml$l_long_node_size; /*Analogous to NAM$B_NODE */ char *naml$l_long_node; /*Analogous to NAM$L_NODE */ unsigned int naml$l_long_dev_size; /*Analogous to NAM$B_DEV */ char *naml$l_long_dev; /*Analogous to NAM$L_DEV */ unsigned int naml$l_long_dir_size; /*Analogous to NAM$B_DIR */ char *naml$l_long_dir; /*Analogous to NAM$L_DIR */ unsigned int naml$l_long_name_size; /*Analogous to NAM$B_NAME */ char *naml$l_long_name; /*Analogous to NAM$L_NAME */ unsigned int naml$l_long_type_size; /*Analogous to NAM$B_TYPE */ char *naml$l_long_type; /*Analogous to NAM$L_TYPE */ unsigned int naml$l_long_ver_size; /*Analogous to NAM$B_VER */ char *naml$l_long_ver; /*Analogous to NAM$L_VER */ /*The following three "LONG_EXPAND" fields must be fixed relative to each other */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int naml$l_long_expand_size; /*Analogous to NAM$B_ESL */ #pragma __nomember_alignment char *naml$l_long_expand; /*Analogous to NAM$L_ESA */ unsigned int naml$l_long_expand_alloc; /*Analogous to NAM$B_ESS */ int naml$l_reserved_mbz_9; /*The following three "LONG_RESULT" fields must be fixed relative to each other */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int naml$l_long_result_size; /*Analogous to NAM$B_RSL */ #pragma __nomember_alignment char *naml$l_long_result; /*Analogous to NAM$L_RSA */ unsigned int naml$l_long_result_alloc; /*Analogous to NAM$B_RSS */ int naml$l_reserved_mbz_8; /* Reserved to Digital for future use. Must be zero. */ /*The following three "FILESYS_NAME" fields must be fixed relative to each other */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int naml$l_filesys_name_size; #pragma __nomember_alignment char *naml$l_filesys_name; unsigned int naml$l_filesys_name_alloc; __union { /* Flags set or cleared by RMS */ unsigned int naml$l_output_flags; __struct { unsigned naml$v_long_result_escape : 1; /* There is an escape character in the long output */ unsigned naml$v_filesys_name_ucs2 : 1; /* The filesys name output is 2-byte Unicode */ unsigned naml$v_long_result_did : 1; /* There is DIDding in the long output */ unsigned naml$v_long_result_fid : 1; /* There is FIDding in the long output */ unsigned naml$v_long_result_unicode : 1; /* Long Result or Exp string spec contains ^U */ unsigned naml$v_mp_in_path : 1; /* mount point encountered in directory path */ unsigned naml$v_symlnk_in_path : 1; /* symlink encountered in directory path */ unsigned naml$v_object_symlink : 1; /* The specified object is a symlink ($OPEN, $SEARCH) */ unsigned naml$v_is_directory : 1; /* The specified object is a directory ($OPEN, $SEARCH) */ unsigned naml$v_fill_7_ : 7; } naml$r_output_flags_bits; /* The rest of the longword also reserved. */ } naml$r_output_flags_overlay; __union { /* Flags specified by user to RMS */ unsigned int naml$l_input_flags; __struct { unsigned naml$v_no_short_output : 1; /* Don't write to RSA and ESA */ unsigned naml$v_case_lookup : 2; /* name case lookup mode */ unsigned naml$v_open_special : 1; /* $OPEN a special file, rather than the */ /* object referred to by the special file. */ unsigned naml$v_search_symlink : 2; /* Controls whether $SEARCH follows */ /* symlinks in directory paths */ /* NOTE: Symlink search mode encodings are coordinated across $JPIDEF, $LIBCQDEF, */ /* $LIBFILDEF, $PPROPDEF, and $NAMLDEF. */ unsigned naml$v_fill_8_ : 2; } naml$r_input_flags_bits; /* The rest of the longword also reserved and must be zero. */ } naml$r_input_flags_overlay; int naml$l_reserved_mbz_7; /* Reserved to Digital for future use. Must be zero. */ unsigned __int64 naml$q_user_context; int naml$l_reserved_mbz_6; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_5; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_4; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_3; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_2; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_1; /* Reserved to Digital for future use. Must be zero. */ } NAMLDEF; #if !defined(__VAXC) #define naml$b_nop naml$r_nop_overlay.naml$b_nop #define naml$r_nop_bits naml$r_nop_overlay.naml$r_nop_bits #define naml$v_pwd naml$r_nop_bits.naml$v_pwd #define naml$v_fill_1 naml$r_nop_bits.naml$v_fill_1 #define naml$v_fill_2 naml$r_nop_bits.naml$v_fill_2 #define naml$v_synchk naml$r_nop_bits.naml$v_synchk #define naml$v_noconceal naml$r_nop_bits.naml$v_noconceal #define naml$v_slparse naml$r_nop_bits.naml$v_slparse #define naml$v_srchxabs naml$r_nop_bits.naml$v_srchxabs #define naml$v_no_short_upcase naml$r_nop_bits.naml$v_no_short_upcase #define naml$l_rlf naml$r_rlf_overlay.naml$l_rlf #define naml$l_rlf_naml naml$r_rlf_overlay.naml$l_rlf_naml #define naml$w_fid naml$r_fid_overlay.naml$w_fid #define naml$r_fid_fields naml$r_fid_overlay.naml$r_fid_fields #define naml$w_fid_num naml$r_fid_fields.naml$w_fid_num #define naml$w_fid_seq naml$r_fid_fields.naml$w_fid_seq #define naml$r_fid_rvn_overlay naml$r_fid_fields.naml$r_fid_rvn_overlay #define naml$w_fid_rvn naml$r_fid_rvn_overlay.naml$w_fid_rvn #define naml$r_fid_rvn_fields naml$r_fid_rvn_overlay.naml$r_fid_rvn_fields #define naml$b_fid_rvn naml$r_fid_rvn_fields.naml$b_fid_rvn #define naml$b_fid_nmx naml$r_fid_rvn_fields.naml$b_fid_nmx #define naml$w_did naml$r_did_overlay.naml$w_did #define naml$r_did_fields naml$r_did_overlay.naml$r_did_fields #define naml$w_did_num naml$r_did_fields.naml$w_did_num #define naml$w_did_seq naml$r_did_fields.naml$w_did_seq #define naml$r_did_rvn_overlay naml$r_did_fields.naml$r_did_rvn_overlay #define naml$w_did_rvn naml$r_did_rvn_overlay.naml$w_did_rvn #define naml$r_did_rvn_fields naml$r_did_rvn_overlay.naml$r_did_rvn_fields #define naml$b_did_rvn naml$r_did_rvn_fields.naml$b_did_rvn #define naml$b_did_nmx naml$r_did_rvn_fields.naml$b_did_nmx #define naml$l_wcc naml$r_wcc_overlay.naml$l_wcc #define naml$r_wcc_bits naml$r_wcc_overlay.naml$r_wcc_bits #define naml$v_ifi naml$r_wcc_bits.naml$v_ifi #define naml$v_srchnmf naml$r_wcc_bits.naml$v_srchnmf #define naml$v_svctx naml$r_wcc_bits.naml$v_svctx #define naml$l_fnb naml$r_fnb_overlay.naml$l_fnb #define naml$r_fnb_bits0 naml$r_fnb_overlay.naml$r_fnb_bits0 #define naml$v_exp_ver naml$r_fnb_bits0.naml$v_exp_ver #define naml$v_exp_type naml$r_fnb_bits0.naml$v_exp_type #define naml$v_exp_name naml$r_fnb_bits0.naml$v_exp_name #define naml$v_wild_ver naml$r_fnb_bits0.naml$v_wild_ver #define naml$v_wild_type naml$r_fnb_bits0.naml$v_wild_type #define naml$v_wild_name naml$r_fnb_bits0.naml$v_wild_name #define naml$v_exp_dir naml$r_fnb_bits0.naml$v_exp_dir #define naml$v_exp_dev naml$r_fnb_bits0.naml$v_exp_dev #define naml$v_wildcard naml$r_fnb_bits0.naml$v_wildcard #define naml$v_dir_lvls_g7 naml$r_fnb_bits0.naml$v_dir_lvls_g7 #define naml$v_wild_sfdg7 naml$r_fnb_bits0.naml$v_wild_sfdg7 #define naml$v_search_list naml$r_fnb_bits0.naml$v_search_list #define naml$v_cncl_dev naml$r_fnb_bits0.naml$v_cncl_dev #define naml$v_root_dir naml$r_fnb_bits0.naml$v_root_dir #define naml$v_lowver naml$r_fnb_bits0.naml$v_lowver #define naml$v_highver naml$r_fnb_bits0.naml$v_highver #define naml$v_ppf naml$r_fnb_bits0.naml$v_ppf #define naml$v_node naml$r_fnb_bits0.naml$v_node #define naml$v_quoted naml$r_fnb_bits0.naml$v_quoted #define naml$v_grp_mbr naml$r_fnb_bits0.naml$v_grp_mbr #define naml$v_wild_dir naml$r_fnb_bits0.naml$v_wild_dir #define naml$v_dir_lvls naml$r_fnb_bits0.naml$v_dir_lvls #define naml$r_fnb_bits1 naml$r_fnb_overlay.naml$r_fnb_bits1 #define naml$v_wild_ufd naml$r_fnb_bits1.naml$v_wild_ufd #define naml$v_wild_sfd1 naml$r_fnb_bits1.naml$v_wild_sfd1 #define naml$v_wild_sfd2 naml$r_fnb_bits1.naml$v_wild_sfd2 #define naml$v_wild_sfd3 naml$r_fnb_bits1.naml$v_wild_sfd3 #define naml$v_wild_sfd4 naml$r_fnb_bits1.naml$v_wild_sfd4 #define naml$v_wild_sfd5 naml$r_fnb_bits1.naml$v_wild_sfd5 #define naml$v_wild_sfd6 naml$r_fnb_bits1.naml$v_wild_sfd6 #define naml$v_wild_sfd7 naml$r_fnb_bits1.naml$v_wild_sfd7 #define naml$r_fnb_bits2 naml$r_fnb_overlay.naml$r_fnb_bits2 #define naml$v_wild_grp naml$r_fnb_bits2.naml$v_wild_grp #define naml$v_wild_mbr naml$r_fnb_bits2.naml$v_wild_mbr #define naml$b_nmc naml$r_nmc_overlay.naml$b_nmc #define naml$r_nmc_bits naml$r_nmc_overlay.naml$r_nmc_bits #define naml$v_did naml$r_nmc_bits.naml$v_did #define naml$v_fid naml$r_nmc_bits.naml$v_fid #define naml$v_res_did naml$r_nmc_bits.naml$v_res_did #define naml$v_res_fid naml$r_nmc_bits.naml$v_res_fid #define naml$v_res_escape naml$r_nmc_bits.naml$v_res_escape #define naml$v_res_unicode naml$r_nmc_bits.naml$v_res_unicode #define naml$l_output_flags naml$r_output_flags_overlay.naml$l_output_flags #define naml$r_output_flags_bits naml$r_output_flags_overlay.naml$r_output_flags_bits #define naml$v_long_result_escape naml$r_output_flags_bits.naml$v_long_result_escape #define naml$v_filesys_name_ucs2 naml$r_output_flags_bits.naml$v_filesys_name_ucs2 #define naml$v_long_result_did naml$r_output_flags_bits.naml$v_long_result_did #define naml$v_long_result_fid naml$r_output_flags_bits.naml$v_long_result_fid #define naml$v_long_result_unicode naml$r_output_flags_bits.naml$v_long_result_unicode #define naml$v_mp_in_path naml$r_output_flags_bits.naml$v_mp_in_path #define naml$v_symlnk_in_path naml$r_output_flags_bits.naml$v_symlnk_in_path #define naml$v_object_symlink naml$r_output_flags_bits.naml$v_object_symlink #define naml$v_is_directory naml$r_output_flags_bits.naml$v_is_directory #define naml$l_input_flags naml$r_input_flags_overlay.naml$l_input_flags #define naml$r_input_flags_bits naml$r_input_flags_overlay.naml$r_input_flags_bits #define naml$v_no_short_output naml$r_input_flags_bits.naml$v_no_short_output #define naml$v_case_lookup naml$r_input_flags_bits.naml$v_case_lookup #define naml$v_open_special naml$r_input_flags_bits.naml$v_open_special #define naml$v_search_symlink naml$r_input_flags_bits.naml$v_search_symlink #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __longword #else #pragma __nomember_alignment #endif struct namldef { #pragma __nomember_alignment unsigned char naml$b_bid; /* block id */ unsigned char naml$b_bln; /* block length */ /*+++++++++++++++++++++++ */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char naml$b_rss; /* resultant string area size */ unsigned char naml$b_rsl; /* resultant string length */ char *naml$l_rsa; /* resultant string area address */ /*----------------------- */ __union { unsigned char naml$b_nop; /* Name options */ __struct { unsigned naml$v_pwd : 1; /* Return password if present in nodespec string and any */ /* other task-specific data of the form /netacp_data" */ /* (default is to mask out password from expanded and */ /* resultant name strings and to create a logical name */ /* whose equivalence string is the unaltered nodespec) */ unsigned naml$v_fill_1 : 1; /* unused. (used to be undocumented ROD) */ unsigned naml$v_fill_2 : 1; /* unused. (used to be undocumented SOD) */ unsigned naml$v_synchk : 1; /* Only do syntax check on $parse operation */ unsigned naml$v_noconceal : 1; /* Do not conceal device/root directory */ unsigned naml$v_slparse : 1; /* Parse search list (not documented) -- used by BACKUP. */ unsigned naml$v_srchxabs : 1; /* Fill in attached XABS on $SEARCH operations over the */ /* network (not documented) -- used by directory. */ unsigned naml$v_no_short_upcase : 1; /* Don't upcase the ESA */ } naml$r_nop_bits; } naml$r_nop_overlay; unsigned char naml$b_rfs; /* Remote file system type (currently not documented) */ /* Note: This field is reserved for use by Digital */ /* the following 3 fields must not be rearranged relative to each other */ /* */ unsigned char naml$b_ess; /* espanded string area size */ unsigned char naml$b_esl; /* expanded string length */ char *naml$l_esa; /* expanded string area address */ /*----------------------- */ __union { struct namdef *naml$l_rlf; /* related file nam block addr */ struct namldef *naml$l_rlf_naml; /* related file naml block addr */ } naml$r_rlf_overlay; char naml$t_dvi [16]; /* device id */ /* the location of the following fields must not */ /* be changed due to their commonality with the fib */ __union { unsigned short int naml$w_fid [3]; /* file id */ __struct { unsigned short int naml$w_fid_num; /* file number */ unsigned short int naml$w_fid_seq; /* sequence number */ __union { unsigned short int naml$w_fid_rvn; /* relative volume number */ __struct { unsigned char naml$b_fid_rvn; /* alternate format RVN */ unsigned char naml$b_fid_nmx; /* alternate format file number extension */ } naml$r_fid_rvn_fields; } naml$r_fid_rvn_overlay; } naml$r_fid_fields; } naml$r_fid_overlay; __union { unsigned short int naml$w_did [3]; /* directory id */ __struct { unsigned short int naml$w_did_num; /* file number */ unsigned short int naml$w_did_seq; /* sequence number */ __union { unsigned short int naml$w_did_rvn; /* relative volume number */ __struct { unsigned char naml$b_did_rvn; /* alternate format RVN */ unsigned char naml$b_did_nmx; /* alternate format file number extension */ } naml$r_did_rvn_fields; } naml$r_did_rvn_overlay; } naml$r_did_fields; } naml$r_did_overlay; __union { unsigned int naml$l_wcc; /* wild card context */ __struct { unsigned namldef$$_fill_1 : 16; /* the first word is reserved for IFI/ACP context */ unsigned naml$v_ifi : 1; /* the first word contains an IFI */ unsigned namldef$$_fill_2 : 13; /* grow from top down, start at top bit */ unsigned naml$v_srchnmf : 1; /* no-more-files has been encountered on a search */ unsigned naml$v_svctx : 1; /* save context across search calls */ } naml$r_wcc_bits; } naml$r_wcc_overlay; __union { unsigned int naml$l_fnb; /* file name status bits */ __struct { unsigned naml$v_exp_ver : 1; /* version was explicit */ unsigned naml$v_exp_type : 1; /* type was explicit */ unsigned naml$v_exp_name : 1; /* name was explicit */ unsigned naml$v_wild_ver : 1; /* version contained a wild card */ unsigned naml$v_wild_type : 1; /* type contained a wild card */ unsigned naml$v_wild_name : 1; /* name contained a wild card */ unsigned naml$v_exp_dir : 1; /* directory was explicit */ unsigned naml$v_exp_dev : 1; /* device was explicit */ unsigned naml$v_wildcard : 1; /* filename string included a wild card */ /* (inclusive or of other wild card bits) */ unsigned naml$v_dir_lvls_g7 : 1; /* Dir levels greater than 7 */ unsigned naml$v_wild_sfdg7 : 1; /* A subdir greater than 7 has a wildcard */ unsigned naml$v_search_list : 1; /* search list present */ unsigned naml$v_cncl_dev : 1; /* concealed device present */ unsigned naml$v_root_dir : 1; /* root directory present */ unsigned naml$v_lowver : 1; /* lower numbered version(s) of file exist(s) */ unsigned naml$v_highver : 1; /* higher " */ /* */ unsigned naml$v_ppf : 1; /* process-permanent file referenced indirectly */ unsigned naml$v_node : 1; /* filename specification included a nodename */ unsigned naml$v_quoted : 1; /* filename spec included a quoted string */ unsigned naml$v_grp_mbr : 1; /* directory spec was of group-member format */ unsigned naml$v_wild_dir : 1; /* directory spec included a wild card */ unsigned naml$v_dir_lvls : 3; /* number of directory levels (0=ufd only) */ } naml$r_fnb_bits0; __struct { unsigned namldef$$_fill_4 : 24; /* separate byte for wild card directory flags */ unsigned naml$v_wild_ufd : 1; /* ufd included a wild card */ unsigned naml$v_wild_sfd1 : 1; /* sfd1 included a wild card */ unsigned naml$v_wild_sfd2 : 1; /* sfd2 included a wild card */ unsigned naml$v_wild_sfd3 : 1; /* sfd3 included a wild card */ unsigned naml$v_wild_sfd4 : 1; /* sfd4 included a wild card */ unsigned naml$v_wild_sfd5 : 1; /* sfd5 included a wild card */ unsigned naml$v_wild_sfd6 : 1; /* sfd6 included a wild card */ unsigned naml$v_wild_sfd7 : 1; /* sfd7 included a wild card */ } naml$r_fnb_bits1; __struct { unsigned namldef$$_fill_5 : 24; /* alternate definitions for wild_ufd and wild_sfd1 */ unsigned naml$v_wild_grp : 1; /* group contained a wild card */ unsigned naml$v_wild_mbr : 1; /* member contained a wild card */ unsigned naml$v_fill_6_ : 6; } naml$r_fnb_bits2; } naml$r_fnb_overlay; unsigned char naml$b_node; /* Nodespec length */ unsigned char naml$b_dev; /* Device length */ unsigned char naml$b_dir; /* Directory length */ unsigned char naml$b_name; /* Filename length */ unsigned char naml$b_type; /* Filetype length */ unsigned char naml$b_ver; /* Version number length */ __union { /* Name characteristics */ unsigned char naml$b_nmc; __struct { unsigned naml$v_did : 1; /* Input file spec DIDed */ unsigned naml$v_fid : 1; /* Input file spec FIDed */ unsigned naml$v_res_did : 1; /* Result or Exp string spec DIDed */ unsigned naml$v_res_fid : 1; /* Result or Exp string spec FIDed */ unsigned naml$v_res_escape : 1; /* Result or Exp string spec has "^" */ unsigned naml$v_res_unicode : 1; /* Result or Exp string spec contains ^U */ unsigned namldef$$_fill_3 : 2; } naml$r_nmc_bits; } naml$r_nmc_overlay; char namldef$$_fill_6 [1]; /* Currently unused */ char *naml$l_node; /* Nodespec address */ char *naml$l_dev; /* Device address */ char *naml$l_dir; /* Directory address */ char *naml$l_name; /* Filename address */ char *naml$l_type; /* Filetype address */ char *naml$l_ver; /* Version number address */ unsigned short int naml$w_first_wild_dir; /*First wild directory in related nam */ unsigned short int naml$w_long_dir_levels; /*Total number of directories */ unsigned int namldef$$_fill_7 [1]; /* Currently unused */ /* New NAML-only items: */ unsigned int naml$l_long_defname_size; /*Analogous to FAB$B_DNS */ char *naml$l_long_defname; /*Analogous to FAB$L_DNA */ unsigned int naml$l_long_filename_size; /*Analogous to FAB$B_FNS */ char *naml$l_long_filename; /*Analogous to FAB$L_FNA */ unsigned int naml$l_long_node_size; /*Analogous to NAM$B_NODE */ char *naml$l_long_node; /*Analogous to NAM$L_NODE */ unsigned int naml$l_long_dev_size; /*Analogous to NAM$B_DEV */ char *naml$l_long_dev; /*Analogous to NAM$L_DEV */ unsigned int naml$l_long_dir_size; /*Analogous to NAM$B_DIR */ char *naml$l_long_dir; /*Analogous to NAM$L_DIR */ unsigned int naml$l_long_name_size; /*Analogous to NAM$B_NAME */ char *naml$l_long_name; /*Analogous to NAM$L_NAME */ unsigned int naml$l_long_type_size; /*Analogous to NAM$B_TYPE */ char *naml$l_long_type; /*Analogous to NAM$L_TYPE */ unsigned int naml$l_long_ver_size; /*Analogous to NAM$B_VER */ char *naml$l_long_ver; /*Analogous to NAM$L_VER */ /*The following three "LONG_EXPAND" fields must be fixed relative to each other */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int naml$l_long_expand_size; /*Analogous to NAM$B_ESL */ #pragma __nomember_alignment char *naml$l_long_expand; /*Analogous to NAM$L_ESA */ unsigned int naml$l_long_expand_alloc; /*Analogous to NAM$B_ESS */ int naml$l_reserved_mbz_9; /*The following three "LONG_RESULT" fields must be fixed relative to each other */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int naml$l_long_result_size; /*Analogous to NAM$B_RSL */ #pragma __nomember_alignment char *naml$l_long_result; /*Analogous to NAM$L_RSA */ unsigned int naml$l_long_result_alloc; /*Analogous to NAM$B_RSS */ int naml$l_reserved_mbz_8; /* Reserved to Digital for future use. Must be zero. */ /*The following three "FILESYS_NAME" fields must be fixed relative to each other */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif unsigned int naml$l_filesys_name_size; #pragma __nomember_alignment char *naml$l_filesys_name; unsigned int naml$l_filesys_name_alloc; __union { /* Flags set or cleared by RMS */ unsigned int naml$l_output_flags; __struct { unsigned naml$v_long_result_escape : 1; /* There is an escape character in the long output */ unsigned naml$v_filesys_name_ucs2 : 1; /* The filesys name output is 2-byte Unicode */ unsigned naml$v_long_result_did : 1; /* There is DIDding in the long output */ unsigned naml$v_long_result_fid : 1; /* There is FIDding in the long output */ unsigned naml$v_long_result_unicode : 1; /* Long Result or Exp string spec contains ^U */ unsigned naml$v_mp_in_path : 1; /* mount point encountered in directory path */ unsigned naml$v_symlnk_in_path : 1; /* symlink encountered in directory path */ unsigned naml$v_object_symlink : 1; /* The specified object is a symlink ($OPEN, $SEARCH) */ unsigned naml$v_is_directory : 1; /* The specified object is a directory ($OPEN, $SEARCH) */ unsigned naml$v_fill_7_ : 7; } naml$r_output_flags_bits; /* The rest of the longword also reserved. */ } naml$r_output_flags_overlay; __union { /* Flags specified by user to RMS */ unsigned int naml$l_input_flags; __struct { unsigned naml$v_no_short_output : 1; /* Don't write to RSA and ESA */ unsigned naml$v_case_lookup : 2; /* name case lookup mode */ unsigned naml$v_open_special : 1; /* $OPEN a special file, rather than the */ /* object referred to by the special file. */ unsigned naml$v_search_symlink : 2; /* Controls whether $SEARCH follows */ /* symlinks in directory paths */ /* NOTE: Symlink search mode encodings are coordinated across $JPIDEF, $LIBCQDEF, */ /* $LIBFILDEF, $PPROPDEF, and $NAMLDEF. */ unsigned naml$v_fill_8_ : 2; } naml$r_input_flags_bits; /* The rest of the longword also reserved and must be zero. */ } naml$r_input_flags_overlay; int naml$l_reserved_mbz_7; /* Reserved to Digital for future use. Must be zero. */ unsigned int naml$q_user_context [2]; int naml$l_reserved_mbz_6; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_5; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_4; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_3; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_2; /* Reserved to Digital for future use. Must be zero. */ int naml$l_reserved_mbz_1; /* Reserved to Digital for future use. Must be zero. */ } ; #if !defined(__VAXC) #define naml$b_nop naml$r_nop_overlay.naml$b_nop #define naml$v_pwd naml$r_nop_overlay.naml$r_nop_bits.naml$v_pwd #define naml$v_fill_1 naml$r_nop_overlay.naml$r_nop_bits.naml$v_fill_1 #define naml$v_fill_2 naml$r_nop_overlay.naml$r_nop_bits.naml$v_fill_2 #define naml$v_synchk naml$r_nop_overlay.naml$r_nop_bits.naml$v_synchk #define naml$v_noconceal naml$r_nop_overlay.naml$r_nop_bits.naml$v_noconceal #define naml$v_slparse naml$r_nop_overlay.naml$r_nop_bits.naml$v_slparse #define naml$v_srchxabs naml$r_nop_overlay.naml$r_nop_bits.naml$v_srchxabs #define naml$v_no_short_upcase naml$r_nop_overlay.naml$r_nop_bits.naml$v_no_short_upcase #define naml$l_rlf naml$r_rlf_overlay.naml$l_rlf #define naml$l_rlf_naml naml$r_rlf_overlay.naml$l_rlf_naml #define naml$w_fid naml$r_fid_overlay.naml$w_fid #define naml$w_fid_num naml$r_fid_overlay.naml$r_fid_fields.naml$w_fid_num #define naml$w_fid_seq naml$r_fid_overlay.naml$r_fid_fields.naml$w_fid_seq #define naml$w_fid_rvn naml$r_fid_overlay.naml$r_fid_fields.naml$r_fid_rvn_overlay.naml$w_fid_rvn #define naml$b_fid_rvn naml$r_fid_overlay.naml$r_fid_fields.naml$r_fid_rvn_overlay.naml$r_fid_rvn_fields.naml$b_fid_rvn #define naml$b_fid_nmx naml$r_fid_overlay.naml$r_fid_fields.naml$r_fid_rvn_overlay.naml$r_fid_rvn_fields.naml$b_fid_nmx #define naml$w_did naml$r_did_overlay.naml$w_did #define naml$w_did_num naml$r_did_overlay.naml$r_did_fields.naml$w_did_num #define naml$w_did_seq naml$r_did_overlay.naml$r_did_fields.naml$w_did_seq #define naml$w_did_rvn naml$r_did_overlay.naml$r_did_fields.naml$r_did_rvn_overlay.naml$w_did_rvn #define naml$b_did_rvn naml$r_did_overlay.naml$r_did_fields.naml$r_did_rvn_overlay.naml$r_did_rvn_fields.naml$b_did_rvn #define naml$b_did_nmx naml$r_did_overlay.naml$r_did_fields.naml$r_did_rvn_overlay.naml$r_did_rvn_fields.naml$b_did_nmx #define naml$l_wcc naml$r_wcc_overlay.naml$l_wcc #define naml$v_ifi naml$r_wcc_overlay.naml$r_wcc_bits.naml$v_ifi #define naml$v_srchnmf naml$r_wcc_overlay.naml$r_wcc_bits.naml$v_srchnmf #define naml$v_svctx naml$r_wcc_overlay.naml$r_wcc_bits.naml$v_svctx #define naml$l_fnb naml$r_fnb_overlay.naml$l_fnb #define naml$v_exp_ver naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_exp_ver #define naml$v_exp_type naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_exp_type #define naml$v_exp_name naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_exp_name #define naml$v_wild_ver naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_wild_ver #define naml$v_wild_type naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_wild_type #define naml$v_wild_name naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_wild_name #define naml$v_exp_dir naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_exp_dir #define naml$v_exp_dev naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_exp_dev #define naml$v_wildcard naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_wildcard #define naml$v_dir_lvls_g7 naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_dir_lvls_g7 #define naml$v_wild_sfdg7 naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_wild_sfdg7 #define naml$v_search_list naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_search_list #define naml$v_cncl_dev naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_cncl_dev #define naml$v_root_dir naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_root_dir #define naml$v_lowver naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_lowver #define naml$v_highver naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_highver #define naml$v_ppf naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_ppf #define naml$v_node naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_node #define naml$v_quoted naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_quoted #define naml$v_grp_mbr naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_grp_mbr #define naml$v_wild_dir naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_wild_dir #define naml$v_dir_lvls naml$r_fnb_overlay.naml$r_fnb_bits0.naml$v_dir_lvls #define naml$v_wild_ufd naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_ufd #define naml$v_wild_sfd1 naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_sfd1 #define naml$v_wild_sfd2 naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_sfd2 #define naml$v_wild_sfd3 naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_sfd3 #define naml$v_wild_sfd4 naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_sfd4 #define naml$v_wild_sfd5 naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_sfd5 #define naml$v_wild_sfd6 naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_sfd6 #define naml$v_wild_sfd7 naml$r_fnb_overlay.naml$r_fnb_bits1.naml$v_wild_sfd7 #define naml$v_wild_grp naml$r_fnb_overlay.naml$r_fnb_bits2.naml$v_wild_grp #define naml$v_wild_mbr naml$r_fnb_overlay.naml$r_fnb_bits2.naml$v_wild_mbr #define naml$b_nmc naml$r_nmc_overlay.naml$b_nmc #define naml$v_did naml$r_nmc_overlay.naml$r_nmc_bits.naml$v_did #define naml$v_fid naml$r_nmc_overlay.naml$r_nmc_bits.naml$v_fid #define naml$v_res_did naml$r_nmc_overlay.naml$r_nmc_bits.naml$v_res_did #define naml$v_res_fid naml$r_nmc_overlay.naml$r_nmc_bits.naml$v_res_fid #define naml$v_res_escape naml$r_nmc_overlay.naml$r_nmc_bits.naml$v_res_escape #define naml$v_res_unicode naml$r_nmc_overlay.naml$r_nmc_bits.naml$v_res_unicode #define naml$l_output_flags naml$r_output_flags_overlay.naml$l_output_flags #define naml$v_long_result_escape naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_long_result_escape #define naml$v_filesys_name_ucs2 naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_filesys_name_ucs2 #define naml$v_long_result_did naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_long_result_did #define naml$v_long_result_fid naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_long_result_fid #define naml$v_long_result_unicode naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_long_result_unicode #define naml$v_mp_in_path naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_mp_in_path #define naml$v_symlnk_in_path naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_symlnk_in_path #define naml$v_object_symlink naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_object_symlink #define naml$v_is_directory naml$r_output_flags_overlay.naml$r_output_flags_bits.naml$v_is_directory #define naml$l_input_flags naml$r_input_flags_overlay.naml$l_input_flags #define naml$v_no_short_output naml$r_input_flags_overlay.naml$r_input_flags_bits.naml$v_no_short_output #define naml$v_case_lookup naml$r_input_flags_overlay.naml$r_input_flags_bits.naml$v_case_lookup #define naml$v_open_special naml$r_input_flags_overlay.naml$r_input_flags_bits.naml$v_open_special #define naml$v_search_symlink naml$r_input_flags_overlay.naml$r_input_flags_bits.naml$v_search_symlink #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* basealign on aggregate NAMLDEF operates after aggregate end */ #define NAML$K_BLN 248 /* Name block length */ #define NAML$C_BLN 248 /* Name block length */ #ifdef __NEW_STARLET #define NAML _namldef #else #define NAML namldef #endif #define cc$rms_naml (*decc$ga_rms_naml) #if defined(__DECC) || defined(__DECCXX) # pragma extern_model __save # pragma extern_model strict_refdef extern struct NAML cc$rms_naml; /* Declare initialized prototype data structures */ # pragma extern_model __restore #else globalref struct NAML cc$rms_naml; /* Declare initialized prototype data structures */ #endif #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __NAMDEF_LOADED */