/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:26:32 by OpenVMS SDL EV3-3 */ /* Source: 17-MAR-1995 07:57:43 $1$DGA7274:[LIB_H.SRC]ORBDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $ORBDEF ***/ #ifndef __ORBDEF_LOADED #define __ORBDEF_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 /*+ */ /* */ /* Object's Rights Block - structure defining the protection information */ /* for various objects within the system. */ /* */ /*- */ #define ORB$M_PROT_16 0x1 #define ORB$M_ACL_QUEUE 0x2 #define ORB$M_MODE_VECTOR 0x4 #define ORB$M_NOACL 0x8 #define ORB$M_CLASS_PROT 0x10 #define ORB$M_NOAUDIT 0x20 #define ORB$M_MODE_VALID 0x80 #define ORB$M_PROFILE_LOCKED 0x100 #define ORB$M_INDIRECT_ACL 0x200 #define ORB$M_BOOTTIME 0x400 #define ORB$M_UNMODIFIED 0x800 #define ORB$M_DAMAGED 0x1000 #define ORB$M_TEMPLATE 0x2000 #define ORB$M_TRANSITION 0x4000 #define ORB$M_EXT_NAMEBLOCK 0x8000 #define ORB$K_LENGTH 124 /* Structure length */ #define ORB$C_LENGTH 124 /* Structure length */ #define ORB$K_DEVNAM_LENGTH 64 /* size of static device name */ #define ORB$C_DEVNAM_LENGTH 64 /* size of static device name */ #define ORB$S_ORBDEF 125 /* Old ORB size field for compatability */ #ifdef __cplusplus /* Define structure prototypes */ struct _ace; struct _ocb; #endif /* #ifdef __cplusplus */ typedef struct _orb { __union { unsigned int orb$l_owner; /* Object's owner */ __struct { unsigned short int orb$w_uicmember; /* Member number */ unsigned short int orb$w_uicgroup; /* Group number */ } orb$r_fill_1_; } orb$r_fill_0_; unsigned int orb$l_acl_mutex; /* Mutex for this ACL */ unsigned short int orb$w_size; /* Size of the ORB in bytes */ unsigned char orb$b_type; /* Structure type */ unsigned char orb$b_subtype; /* Subtype of ORB block: */ /* 0 - normal ORB */ /* 1 - block used to contain a name (only) */ __union { __union { unsigned short int orb$w_flags; /* System protection field */ __struct { unsigned char orb$b_flags_1; /* first byte of flags */ unsigned char orb$b_flags_2; /* second byte of flags */ } orb$r_fill_3_; } orb$r_fill_2_; unsigned char orb$b_flags; /* first byte of flags */ __union { unsigned short int orb$w_flag_bits; __struct { unsigned orb$v_prot_16 : 1; /* Use word not vector protection */ unsigned orb$v_acl_queue : 1; /* (*temp*) remove at later time */ unsigned orb$v_mode_vector : 1; /* Use vector not byte mode protection */ unsigned orb$v_noacl : 1; /* Object cannot have an ACL */ unsigned orb$v_class_prot : 1; /* Security classification is valid */ unsigned orb$v_noaudit : 1; /* Do not perform $CHKPRO auditing */ unsigned orb$v_reserved_1 : 1; /* */ unsigned orb$v_mode_valid : 1; /* Access mode protection is valid */ unsigned orb$v_profile_locked : 1; /* Object locked, no modification allowed */ /* The PROFILE_LOCKED flag is intended to be set when the profile cannot */ /* reasonably be modified. I.e., the protection of a volume set may only be */ /* altered if the root volume of the set is mounted, though mounting a selected */ /* volume from a volume set is supported. */ unsigned orb$v_indirect_acl : 1; /* Use the ACL from the template */ /* ORB (ORB$L_TEMPLATE) */ unsigned orb$v_boottime : 1; /* ORB created prior to securty object init. */ unsigned orb$v_unmodified : 1; /* ORB has not been explicitly modified */ unsigned orb$v_damaged : 1; /* Deny access to all but system (BADACL) */ unsigned orb$v_template : 1; /* This orb is a template */ unsigned orb$v_transition : 1; /* Profile content uncertain -- */ /* eg. cluster instantiation */ unsigned orb$v_ext_nameblock : 1; /* ORB name is store in a separate 'ORB' block */ } orb$r_fill_5_; } orb$r_fill_4_; } orb$r_flags_overlay; /* */ unsigned short int orb$w_refcount; /* Reference count */ __union { __union { unsigned __int64 orb$q_mode_prot; /* Mode protection vector */ __struct { unsigned int orb$l_mode_protl; /* Low longword of vector */ unsigned int orb$l_mode_proth; /* High longword of vector */ } orb$r_fill_7_; } orb$r_fill_6_; unsigned int orb$l_mode; /* Simple access mode */ } orb$r_mode_overlay; __union { unsigned int orb$l_sys_prot; /* System protection field */ unsigned short int orb$w_prot; /* Standard SOGW protection */ } orb$r_sys_prot_overlay; unsigned int orb$l_own_prot; /* Owner protection field */ unsigned int orb$l_grp_prot; /* Group protection field */ unsigned int orb$l_wor_prot; /* World protection field */ __union { struct _ace *orb$l_aclfl; /* ACL queue forward link */ unsigned int orb$l_acl_count; /* Count of ACL segments */ } orb$r_acl_1_overlay; __union { struct _ace *orb$l_aclbl; /* ACL queue backward link */ void *orb$l_acl_desc; /* Address of ACL segment descriptor list */ } orb$r_acl_2_overlay; __struct { char orb$b_fill_2 [20]; /* Minimum classification mask */ } orb$r_min_class; __struct { char orb$b_fill_3 [20]; /* Maximum classification mask */ } orb$r_max_class; unsigned short int orb$w_name_length; /* Length of object name */ short int orb$w_fill_3; /* Unused (MBZ) */ void *orb$l_name_pointer; /* Pointer to object name */ struct _ocb *orb$l_ocb; /* Pointer to Object Class Block */ struct _orb *orb$l_template_orb; /* Pointer to template ORB */ int orb$l_object_specific; /* Object class specific usage cell */ struct _orb *orb$l_original_orb; /* Pointer to another ORB */ unsigned int orb$l_updseq; /* Update sequence number */ void *orb$l_mutex_address; /* Address of mutex for CHKPRO */ int orb$l_reserve2; /* for future use */ char orb$t_object_name; /* Start of object name */ } ORB; #if !defined(__VAXC) #define orb$l_owner orb$r_fill_0_.orb$l_owner #define orb$w_uicmember orb$r_fill_0_.orb$r_fill_1_.orb$w_uicmember #define orb$w_uicgroup orb$r_fill_0_.orb$r_fill_1_.orb$w_uicgroup #define orb$w_flags orb$r_flags_overlay.orb$r_fill_2_.orb$w_flags #define orb$b_flags_1 orb$r_flags_overlay.orb$r_fill_2_.orb$r_fill_3_.orb$b_flags_1 #define orb$b_flags_2 orb$r_flags_overlay.orb$r_fill_2_.orb$r_fill_3_.orb$b_flags_2 #define orb$b_flags orb$r_flags_overlay.orb$b_flags #define orb$v_prot_16 orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_prot_16 #define orb$v_acl_queue orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_acl_queue #define orb$v_mode_vector orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_mode_vector #define orb$v_noacl orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_noacl #define orb$v_class_prot orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_class_prot #define orb$v_noaudit orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_noaudit #define orb$v_mode_valid orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_mode_valid #define orb$v_profile_locked orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_profile_locked #define orb$v_indirect_acl orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_indirect_acl #define orb$v_boottime orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_boottime #define orb$v_unmodified orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_unmodified #define orb$v_damaged orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_damaged #define orb$v_template orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_template #define orb$v_transition orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_transition #define orb$v_ext_nameblock orb$r_flags_overlay.orb$r_fill_4_.orb$r_fill_5_.orb$v_ext_nameblock #define orb$q_mode_prot orb$r_mode_overlay.orb$r_fill_6_.orb$q_mode_prot #define orb$l_mode_protl orb$r_mode_overlay.orb$r_fill_6_.orb$r_fill_7_.orb$l_mode_protl #define orb$l_mode_proth orb$r_mode_overlay.orb$r_fill_6_.orb$r_fill_7_.orb$l_mode_proth #define orb$l_mode orb$r_mode_overlay.orb$l_mode #define orb$l_sys_prot orb$r_sys_prot_overlay.orb$l_sys_prot #define orb$w_prot orb$r_sys_prot_overlay.orb$w_prot #define orb$l_aclfl orb$r_acl_1_overlay.orb$l_aclfl #define orb$l_acl_count orb$r_acl_1_overlay.orb$l_acl_count #define orb$l_aclbl orb$r_acl_2_overlay.orb$l_aclbl #define orb$l_acl_desc orb$r_acl_2_overlay.orb$l_acl_desc #endif /* #if !defined(__VAXC) */ #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 /* __ORBDEF_LOADED */