#ifndef __NAM_LOADED #define __NAM_LOADED 1 /* RMS - V3.0 - Include real NAMDEF data structure definition */ # include #endif /* __NAM_LOADED */ #ifndef __NAMDEF_LOADED #define __NAMDEF_LOADED 1 /* * - RMS Name Block structure * * Copyright 1993, 1994 Digital Equipment Corporation. All rights reserved. * * DEC C for OpenVMS VAX * DEC C++ for OpenVMS VAX */ #if defined(__DECC) || defined(__DECCXX) #pragma __nostandard /* This file uses non-ANSI-Standard features */ #else #pragma nostandard #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #else #define __unknown_params #endif #if !defined(__VAXC) && !defined(VAXC) #define __struct struct #define __union union #else #define __struct variant_struct #define __union variant_union #endif #if defined(__DECC) #pragma __member_alignment __save #pragma __nomember_alignment __byte #endif #if defined(__DECCXX) #pragma __member_alignment __save #pragma __nomember_alignment #endif #ifdef __DECC #pragma __message __save #pragma __message __disable (__MISALGNDSTRCT) #pragma __message __disable (__MISALGNDMEM) #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$C_UFS 0 /* Unknown file system for remote 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_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$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 */ struct namdef { unsigned char nam$b_bid; /* block id */ unsigned char nam$b_bln; /* block length */ 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 */ 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 */ unsigned nam$v_fill_5 : 1; } nam$r_nop_bits; } nam$r_nop_overlay; unsigned char nam$b_rfs; /* Remote file system type (currently not documented) */ unsigned char nam$b_ess; /* espanded string area size */ unsigned char nam$b_esl; /* expanded string length */ char *nam$l_esa; /* expanded string area address */ struct namdef *nam$l_rlf; /* related file nam block addr */ char nam$t_dvi [16]; /* device id */ __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 long 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 long 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 */ unsigned namdef$$_fill_3 : 2; /* (spares) */ 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_6 : 6; } nam$r_fnb_bits2; } 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 */ char namdef$$_fill_6 [2]; /* 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 */ long int namdef$$_fill_7 [2]; /* Currently unused */ } ; #if !defined(__VAXC) && !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$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_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 #endif /* These are tradtional macros that should be hand-maintained for compatibility */ #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_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_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 namdef #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; # pragma __extern_model __restore #else globalref struct NAM cc$rms_nam; /* Declare initialized prototype data structure */ #endif #ifdef __cplusplus } #endif #if defined(__DECC) #pragma __message __restore #endif #if defined(__DECC) || defined(__DECCXX) #pragma __member_alignment __restore #endif #if defined(__DECC) || defined(__DECCXX) #pragma __standard /* This file uses non-ANSI-Standard features */ #else #pragma standard #endif #endif /* __NAMDEF_LOADED */