/**/ /***************************************************************************/ /** **/ /** © 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:33 by OpenVMS SDL EV3-3 */ /* Source: 18-MAY-1993 16:26:10 $1$DGA7274:[LIB_H.SRC]OSRDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $OSRDEF ***/ #ifndef __OSRDEF_LOADED #define __OSRDEF_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 Support Routine flag definitions. */ /* */ /* This structure contains the flag definitions that are used */ /* to control processing between the security object management */ /* services and the Object Support Routines. These are internal */ /* flags used within the services and should not be used in the */ /* system service interfaces. */ /*- */ #define OSR$M_ACCESS_CHECKED 0x1 #define OSR$M_MOD_MAC 0x2 #define OSR$M_NO_LOCK_RSN 0x4 #define OSR$M_RUNDOWN 0x8 #define OSR$M_WRITE 0x10 #define OSR$M_MOD_ORB 0x20 #define OSR$M_MOD_ACL 0x40 #define OSR$M_MOD_FOR 0x80 #define OSR$M_KERNEL_SETITM 0x100 #define OSR$M_KERNEL_CLONE_PROFILE 0x200 #define OSR$M_KERNEL_UPDATE_PROFILE 0x400 #define OSR$M_KERNEL_RUNDOWN 0x800 #define OSR$M_KERNEL_CHECK_ACCESS 0x1000 #define OSR$M_KERNEL_TRANQUILITY 0x2000 #define OSR$M_KERNEL_FIXUP_BTIME_ORBS 0x4000 #define OSR$M_RELCTX 0x8000 #define OSR$M_SELECT_NAME 0x10000 #define OSR$M_SELECT_HANDLE 0x20000 #define OSR$M_EMBED_OBJNAM 0x40000 #define OSR$M_CLUSTER_OBJECT 0x80000 #define OSR$M_CONTEXT_NAME 0x100000 #define OSR$M_CLUSTER_NOTIFY 0x200000 #define OSR$M_TEMPORARY 0x400000 #define OSR$M_PERMANENT 0x800000 #define OSR$M_NEW_OBJECT 0x1000000 #define OSR$M_NO_CREATE 0x2000000 #define OSR$M_NO_MAC_DAC 0x4000000 #define OSR$M_NO_MAC_AUDIT 0x8000000 #define OSR$M_MO_MAC_RANGE 0x10000000 #define OSR$M_NO_MAC 0x20000000 #define OSR$S_OSRDEF 4 /* Old size name - synonym */ typedef struct _osr { __struct { unsigned osr$v_access_checked : 1; /* Bypass chkpro in $xETSOI */ unsigned osr$v_mod_mac : 1; /* Secrecy/integrity hanged */ unsigned osr$v_no_lock_rsn : 1; /* No need to build lock rsn in preprocess OSR */ unsigned osr$v_rundown : 1; /* Rundown OSR call required for $xETSOI */ unsigned osr$v_write : 1; /* Write operation $SETSOI */ unsigned osr$v_mod_orb : 1; /* ORB (proper) was modified */ unsigned osr$v_mod_acl : 1; /* ORB ACL was modified */ unsigned osr$v_mod_for : 1; /* Foreign char was modified */ unsigned osr$v_kernel_setitm : 1; /* Process set itmlist processing in k_mode */ unsigned osr$v_kernel_clone_profile : 1; /* Call clone_profile OSR in k_mode */ unsigned osr$v_kernel_update_profile : 1; /* Call update_profile OSR in k_mode */ unsigned osr$v_kernel_rundown : 1; /* Call rundown OSR in k_mode */ unsigned osr$v_kernel_check_access : 1; /* Call check_access OSR in k_mode */ unsigned osr$v_kernel_tranquility : 1; /* Call set/clear trauility in K-mode */ unsigned osr$v_kernel_fixup_btime_orbs : 1; /* Call fixup_btime_orbs OSR in k_mode */ unsigned osr$v_relctx : 1; /* Release OSR context */ unsigned osr$v_select_name : 1; /* Select object by name */ unsigned osr$v_select_handle : 1; /* Select object by handle */ unsigned osr$v_embed_objnam : 1; /* Embed object name in ORB */ unsigned osr$v_cluster_object : 1; /* Cluster visible object */ unsigned osr$v_context_name : 1; /* Use object name from context */ /* for cluster distribution */ unsigned osr$v_cluster_notify : 1; /* Cluster notification */ /* (for volumes) */ unsigned osr$v_temporary : 1; /* Temporary object */ /* eg. foreign monted disk */ unsigned osr$v_permanent : 1; /* Not temporary */ unsigned osr$v_new_object : 1; /* Any existing profile is stale */ unsigned osr$v_no_create : 1; /* Don't create a new profile. */ unsigned osr$v_no_mac_dac : 1; /* Concurrent MAC/DAC modifications */ /* not supported */ unsigned osr$v_no_mac_audit : 1; /* Suppress $SET_SECURITY MAC audits */ unsigned osr$v_mo_mac_range : 1; /* MAC range not supported */ unsigned osr$v_no_mac : 1; /* MAC modifications not supported */ unsigned osr$v_fill_0_ : 2; } osr$r_flag_bits; } OSR; #if !defined(__VAXC) #define osr$v_access_checked osr$r_flag_bits.osr$v_access_checked #define osr$v_mod_mac osr$r_flag_bits.osr$v_mod_mac #define osr$v_no_lock_rsn osr$r_flag_bits.osr$v_no_lock_rsn #define osr$v_rundown osr$r_flag_bits.osr$v_rundown #define osr$v_write osr$r_flag_bits.osr$v_write #define osr$v_mod_orb osr$r_flag_bits.osr$v_mod_orb #define osr$v_mod_acl osr$r_flag_bits.osr$v_mod_acl #define osr$v_mod_for osr$r_flag_bits.osr$v_mod_for #define osr$v_kernel_setitm osr$r_flag_bits.osr$v_kernel_setitm #define osr$v_kernel_clone_profile osr$r_flag_bits.osr$v_kernel_clone_profile #define osr$v_kernel_update_profile osr$r_flag_bits.osr$v_kernel_update_profile #define osr$v_kernel_rundown osr$r_flag_bits.osr$v_kernel_rundown #define osr$v_kernel_check_access osr$r_flag_bits.osr$v_kernel_check_access #define osr$v_kernel_tranquility osr$r_flag_bits.osr$v_kernel_tranquility #define osr$v_kernel_fixup_btime_orbs osr$r_flag_bits.osr$v_kernel_fixup_btime_orbs #define osr$v_relctx osr$r_flag_bits.osr$v_relctx #define osr$v_select_name osr$r_flag_bits.osr$v_select_name #define osr$v_select_handle osr$r_flag_bits.osr$v_select_handle #define osr$v_embed_objnam osr$r_flag_bits.osr$v_embed_objnam #define osr$v_cluster_object osr$r_flag_bits.osr$v_cluster_object #define osr$v_context_name osr$r_flag_bits.osr$v_context_name #define osr$v_cluster_notify osr$r_flag_bits.osr$v_cluster_notify #define osr$v_temporary osr$r_flag_bits.osr$v_temporary #define osr$v_permanent osr$r_flag_bits.osr$v_permanent #define osr$v_new_object osr$r_flag_bits.osr$v_new_object #define osr$v_no_create osr$r_flag_bits.osr$v_no_create #define osr$v_no_mac_dac osr$r_flag_bits.osr$v_no_mac_dac #define osr$v_no_mac_audit osr$r_flag_bits.osr$v_no_mac_audit #define osr$v_mo_mac_range osr$r_flag_bits.osr$v_mo_mac_range #define osr$v_no_mac osr$r_flag_bits.osr$v_no_mac #endif /* #if !defined(__VAXC) */ /*+ */ /* The OSR context area is an overlay of the UNC$S/T_OSR_CONTEXT area */ /* in the universal context area structure ($UNCDEF). If the size of */ /* this area is larger then UNC$S_OSR_CONTEXT, you must enlarge the */ /* universal context area defintion. There are ASSUMEs in the ROUTINES */ /* that allocate the context structure. */ /*- */ #define OSRCTX$M_CLS_INIT 0x1 #define OSRCTX$M_CLS_TMPNAM 0x2 #define OSRCTX$M_LNT_INIT 0x1 #define OSRCTX$M_LNT_ACCESS_QUAL 0x2 #define OSRCTX$M_DEV_CHAN 0x1 #define OSRCTX$M_DEV_TEMPLATE 0x2 #define OSRCTX$M_DEV_ALL 0x4 #define OSRCTX$M_FIL_DEACCESS 0x1 #define OSRCTX$M_VOL_DEACCESS 0x1 #define OSRCTX$S_OSR_CTXDEF 16 /* Old size name - synonym */ #ifdef __cplusplus /* Define structure prototypes */ struct _ocb; struct _orb; #endif /* #ifdef __cplusplus */ typedef struct _osr_ctx { __union { __struct { struct _ocb *osrctx$l_cls_ocb; /* Original OCB */ __union { int osrctx$l_cls_flags; /* Processing flags */ __struct { unsigned osrctx$v_cls_init : 1; /* Initialized */ unsigned osrctx$v_cls_tmpnam : 1; /* Template present */ unsigned osrctx$v_fill_11_ : 6; } osrctx$r_fill_2_; } osrctx$r_fill_1_; unsigned int osrctx$l_cls_tmpnam_length; /* Template name length */ unsigned int osrctx$l_cls_tmpnam; /* Template name */ } osrctx$r_cls_context; __struct { __union { int osrctx$l_lnt_flags; /* Processing flags */ __struct { unsigned osrctx$v_lnt_init : 1; /* Initialized */ unsigned osrctx$v_lnt_access_qual : 1; /* Access qualifier present */ unsigned osrctx$v_fill_12_ : 6; } osrctx$r_fill_4_; } osrctx$r_fill_3_; unsigned char osrctx$b_lnt_access_mode; /* Access mode */ unsigned char osrctx$b_lnt_resv_1; /* Reserved for future */ unsigned short int osrctx$w_lnt_objnam_len; /* LNT name (without access mode) */ unsigned int osrctx$l_lnt_resv_2; /* Reserved for future */ unsigned int osrctx$l_lnt_resv_3; /* Reserved for future */ } osrctx$r_lnt_context; __struct { unsigned int osrctx$l_cef_resv_1; /* Reserved */ unsigned int osrctx$l_cef_resv_2; /* */ unsigned int osrctx$l_cef_resv_3; /* for */ unsigned short int osrctx$w_cef_resv_4; /* */ unsigned short int osrctx$w_cef_resv_5; /* future use */ } osrctx$r_cef_context; __struct { struct _orb *osrctx$l_dev_orb; /* Active device ORB */ unsigned int osrctx$l_dev_resv_2; /* */ unsigned int osrctx$l_dev_resv_3; /* */ unsigned short int osrctx$w_dev_chan; /* channel # */ __union { short int osrctx$w_dev_flags; /* processing flags */ __struct { unsigned osrctx$v_dev_chan : 1; /* channel assigned by OSRs */ unsigned osrctx$v_dev_template : 1; /* dealing with template device */ unsigned osrctx$v_dev_all : 1; /* devcie allocated by OSRs */ unsigned osrctx$v_fill_13_ : 5; } osrctx$r_fill_6_; } osrctx$r_fill_5_; } osrctx$r_dev_context; __struct { unsigned int osrctx$l_fil_resv_1; /* Reserved */ unsigned int osrctx$l_fil_resv_2; /* for */ unsigned int osrctx$l_fil_resv_3; /* future use */ unsigned short int osrctx$w_fil_channel; /* */ __union { short int osrctx$w_fil_flags; /* File context flags */ __struct { unsigned osrctx$v_fil_deaccess : 1; /* Deaccess file at OSR rundown */ unsigned osrctx$v_fill_14_ : 7; } osrctx$r_fill_8_; } osrctx$r_fill_7_; } osrctx$r_fil_context; __struct { unsigned int osrctx$l_que_resv_1; /* Reserved */ unsigned int osrctx$l_que_resv_2; /* */ unsigned int osrctx$l_que_resv_3; /* for */ unsigned short int osrctx$w_que_resv_4; /* */ unsigned short int osrctx$w_que_resv_5; /* future use */ } osrctx$r_que_context; __struct { unsigned int osrctx$l_prc_resv_1; /* Reserved */ unsigned int osrctx$l_prc_resv_2; /* */ unsigned int osrctx$l_prc_resv_3; /* for */ unsigned short int osrctx$w_prc_resv_4; /* */ unsigned short int osrctx$w_prc_resv_5; /* future use */ } osrctx$r_prc_context; __struct { unsigned int osrctx$l_sec_tranq_cnt; /* Tranquility count (MAC) */ unsigned int osrctx$l_sec_resv_2; /* Reserved */ unsigned int osrctx$l_sec_resv_3; /* for */ unsigned short int osrctx$w_sec_resv_4; /* */ unsigned short int osrctx$w_sec_resv_5; /* future use */ } osrctx$r_sec_context; __struct { unsigned int osrctx$l_vol_resv_1; /* Reserved */ unsigned int osrctx$l_vol_resv_2; /* for */ unsigned int osrctx$l_vol_resv_3; /* future use */ unsigned short int osrctx$w_vol_channel; /* */ __union { short int osrctx$w_vol_flags; /* Volume context flags */ __struct { unsigned osrctx$v_vol_deaccess : 1; /* Deassign channel at OSR rundown */ unsigned osrctx$v_fill_15_ : 7; } osrctx$r_fill_10_; } osrctx$r_fill_9_; } osrctx$r_vol_context; __struct { unsigned int osrctx$l_rsdm_domain; /* Domain number */ unsigned int osrctx$l_rsdm_lockid; /* Tranquility lock id (MAC) */ unsigned int osrctx$l_rsdm_resv_3; /* Reserved */ unsigned short int osrctx$w_rsdm_resv_4; /* for */ unsigned short int osrctx$w_rsdm_resv_5; /* future use */ } osrctx$r_rsdm_context; } osrctx$r_object_overlay; } OSR_CTX; #if !defined(__VAXC) #define osrctx$l_cls_ocb osrctx$r_object_overlay.osrctx$r_cls_context.osrctx$l_cls_ocb #define osrctx$l_cls_flags osrctx$r_object_overlay.osrctx$r_cls_context.osrctx$r_fill_1_.osrctx$l_cls_flags #define osrctx$v_cls_init osrctx$r_object_overlay.osrctx$r_cls_context.osrctx$r_fill_1_.osrctx$r_fill_2_.osrctx$v_cls_init #define osrctx$v_cls_tmpnam osrctx$r_object_overlay.osrctx$r_cls_context.osrctx$r_fill_1_.osrctx$r_fill_2_.osrctx$v_cls_tmpnam #define osrctx$l_cls_tmpnam_length osrctx$r_object_overlay.osrctx$r_cls_context.osrctx$l_cls_tmpnam_length #define osrctx$l_cls_tmpnam osrctx$r_object_overlay.osrctx$r_cls_context.osrctx$l_cls_tmpnam #define osrctx$l_lnt_flags osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$r_fill_3_.osrctx$l_lnt_flags #define osrctx$v_lnt_init osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$r_fill_3_.osrctx$r_fill_4_.osrctx$v_lnt_init #define osrctx$v_lnt_access_qual osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$r_fill_3_.osrctx$r_fill_4_.osrctx$v_lnt_access\ _qual #define osrctx$b_lnt_access_mode osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$b_lnt_access_mode #define osrctx$b_lnt_resv_1 osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$b_lnt_resv_1 #define osrctx$w_lnt_objnam_len osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$w_lnt_objnam_len #define osrctx$l_lnt_resv_2 osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$l_lnt_resv_2 #define osrctx$l_lnt_resv_3 osrctx$r_object_overlay.osrctx$r_lnt_context.osrctx$l_lnt_resv_3 #define osrctx$l_cef_resv_1 osrctx$r_object_overlay.osrctx$r_cef_context.osrctx$l_cef_resv_1 #define osrctx$l_cef_resv_2 osrctx$r_object_overlay.osrctx$r_cef_context.osrctx$l_cef_resv_2 #define osrctx$l_cef_resv_3 osrctx$r_object_overlay.osrctx$r_cef_context.osrctx$l_cef_resv_3 #define osrctx$w_cef_resv_4 osrctx$r_object_overlay.osrctx$r_cef_context.osrctx$w_cef_resv_4 #define osrctx$w_cef_resv_5 osrctx$r_object_overlay.osrctx$r_cef_context.osrctx$w_cef_resv_5 #define osrctx$l_dev_orb osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$l_dev_orb #define osrctx$l_dev_resv_2 osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$l_dev_resv_2 #define osrctx$l_dev_resv_3 osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$l_dev_resv_3 #define osrctx$w_dev_chan osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$w_dev_chan #define osrctx$w_dev_flags osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$r_fill_5_.osrctx$w_dev_flags #define osrctx$v_dev_chan osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$r_fill_5_.osrctx$r_fill_6_.osrctx$v_dev_chan #define osrctx$v_dev_template osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$r_fill_5_.osrctx$r_fill_6_.osrctx$v_dev_template #define osrctx$v_dev_all osrctx$r_object_overlay.osrctx$r_dev_context.osrctx$r_fill_5_.osrctx$r_fill_6_.osrctx$v_dev_all #define osrctx$l_fil_resv_1 osrctx$r_object_overlay.osrctx$r_fil_context.osrctx$l_fil_resv_1 #define osrctx$l_fil_resv_2 osrctx$r_object_overlay.osrctx$r_fil_context.osrctx$l_fil_resv_2 #define osrctx$l_fil_resv_3 osrctx$r_object_overlay.osrctx$r_fil_context.osrctx$l_fil_resv_3 #define osrctx$w_fil_channel osrctx$r_object_overlay.osrctx$r_fil_context.osrctx$w_fil_channel #define osrctx$w_fil_flags osrctx$r_object_overlay.osrctx$r_fil_context.osrctx$r_fill_7_.osrctx$w_fil_flags #define osrctx$v_fil_deaccess osrctx$r_object_overlay.osrctx$r_fil_context.osrctx$r_fill_7_.osrctx$r_fill_8_.osrctx$v_fil_deaccess #define osrctx$l_que_resv_1 osrctx$r_object_overlay.osrctx$r_que_context.osrctx$l_que_resv_1 #define osrctx$l_que_resv_2 osrctx$r_object_overlay.osrctx$r_que_context.osrctx$l_que_resv_2 #define osrctx$l_que_resv_3 osrctx$r_object_overlay.osrctx$r_que_context.osrctx$l_que_resv_3 #define osrctx$w_que_resv_4 osrctx$r_object_overlay.osrctx$r_que_context.osrctx$w_que_resv_4 #define osrctx$w_que_resv_5 osrctx$r_object_overlay.osrctx$r_que_context.osrctx$w_que_resv_5 #define osrctx$l_prc_resv_1 osrctx$r_object_overlay.osrctx$r_prc_context.osrctx$l_prc_resv_1 #define osrctx$l_prc_resv_2 osrctx$r_object_overlay.osrctx$r_prc_context.osrctx$l_prc_resv_2 #define osrctx$l_prc_resv_3 osrctx$r_object_overlay.osrctx$r_prc_context.osrctx$l_prc_resv_3 #define osrctx$w_prc_resv_4 osrctx$r_object_overlay.osrctx$r_prc_context.osrctx$w_prc_resv_4 #define osrctx$w_prc_resv_5 osrctx$r_object_overlay.osrctx$r_prc_context.osrctx$w_prc_resv_5 #define osrctx$l_sec_tranq_cnt osrctx$r_object_overlay.osrctx$r_sec_context.osrctx$l_sec_tranq_cnt #define osrctx$l_sec_resv_2 osrctx$r_object_overlay.osrctx$r_sec_context.osrctx$l_sec_resv_2 #define osrctx$l_sec_resv_3 osrctx$r_object_overlay.osrctx$r_sec_context.osrctx$l_sec_resv_3 #define osrctx$w_sec_resv_4 osrctx$r_object_overlay.osrctx$r_sec_context.osrctx$w_sec_resv_4 #define osrctx$w_sec_resv_5 osrctx$r_object_overlay.osrctx$r_sec_context.osrctx$w_sec_resv_5 #define osrctx$l_vol_resv_1 osrctx$r_object_overlay.osrctx$r_vol_context.osrctx$l_vol_resv_1 #define osrctx$l_vol_resv_2 osrctx$r_object_overlay.osrctx$r_vol_context.osrctx$l_vol_resv_2 #define osrctx$l_vol_resv_3 osrctx$r_object_overlay.osrctx$r_vol_context.osrctx$l_vol_resv_3 #define osrctx$w_vol_channel osrctx$r_object_overlay.osrctx$r_vol_context.osrctx$w_vol_channel #define osrctx$w_vol_flags osrctx$r_object_overlay.osrctx$r_vol_context.osrctx$r_fill_9_.osrctx$w_vol_flags #define osrctx$v_vol_deaccess osrctx$r_object_overlay.osrctx$r_vol_context.osrctx$r_fill_9_.osrctx$r_fill_10_.osrctx$v_vol_deaccess #define osrctx$l_rsdm_domain osrctx$r_object_overlay.osrctx$r_rsdm_context.osrctx$l_rsdm_domain #define osrctx$l_rsdm_lockid osrctx$r_object_overlay.osrctx$r_rsdm_context.osrctx$l_rsdm_lockid #define osrctx$l_rsdm_resv_3 osrctx$r_object_overlay.osrctx$r_rsdm_context.osrctx$l_rsdm_resv_3 #define osrctx$w_rsdm_resv_4 osrctx$r_object_overlay.osrctx$r_rsdm_context.osrctx$w_rsdm_resv_4 #define osrctx$w_rsdm_resv_5 osrctx$r_object_overlay.osrctx$r_rsdm_context.osrctx$w_rsdm_resv_5 #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 /* __OSRDEF_LOADED */