/* * * User Identification Code */ #ifndef _UICDEF_H #define _UICDEF_H /* Format of UIC - user identification code. May be either two part group / member identifier, or a single uniform identifier. The binary layout of the id space is as follows: ---------- Bit -------- 31 30 29 28 27 26 Description === === === === === === ======================================== 0 0 - - - - UIC form (group/member) 0 1 - - - - Unused 1 0 - - - - Identifier form 1 0 0 0 - - System identifiers 1 0 0 1 - - Facility-specific identifiers 1 0 1 0 - - Arbitrary assignment identifiers 1 0 1 0 0 0 SEVMS identifier space 1 0 1 0 0 1 Unused 1 0 1 0 1 0 Unused 1 0 1 0 1 1 Unused 1 0 1 1 - - Unused 1 1 - - - - Unused */ #define UIC$K_MAX_UIC 0x3FFFFFFF /* Highest possible UIC */ #define UIC$K_WILD_MEMBER 0177777 /* Code for wild card member */ #define UIC$K_WILD_GROUP 0037777 /* Code for wild card group */ #define UIC$K_UIC_FORMAT 0 /* UIC format code */ #define UIC$K_ID_FORMAT 2 /* ID format code */ #define UIC$K_TYPE_SYSTEM 8 /* system ID or UIC */ #define UIC$K_TYPE_FACILITY 9 /* facility ID or UIC */ #define UIC$K_TYPE_ARBITRARY 10 /* arbitrary assignment space */ #define UIC$K_FIRST_ID 0x80010000 /* First general identifier */ #define UIC$K_LAST_ID 0x8FFFFFFF /* Last general identifier */ #define UIC$K_MATCH_ALL (-1) /* Match all identifiers */ /* #define UIC$K_ASSIGN_SEVMS 0 */ /* SEVMS block of identifier space */ #define UIC$V_MEMBER 0 #define UIC$S_MEMBER 16 #define UIC$M_MEMBER 0x0000FFFF #define UIC$V_GROUP 16 #define UIC$S_GROUP 14 #define UIC$M_GROUP 0x3FFF0000 #define UIC$V_FORMAT 30 #define UIC$S_FORMAT 2 #define UIC$M_FORMAT 0xC0000000 #define UIC$V_ID_CODE 0 #define UIC$S_ID_CODE 28 #define UIC$M_ID_CODE 0x0FFFFFFF union uicdef { unsigned long uic$l_uic; /* full longword */ struct { /* group / member format */ unsigned uic$v_member : 16; /* member number */ unsigned uic$v_group : 14; /* group number */ unsigned uic$v_format : 2; /* format code */ } uic$r_uic_form; struct { /* general identifier format */ unsigned uic$v_id_code : 28; /* ID code */ unsigned uic$v_id_type : 4; /* ID type */ } uic$r_id_form; struct { /* facility identifier format */ unsigned uic$v_fac_id_code : 16; /* ID code */ unsigned uic$v_facility : 12; /* facility code */ unsigned : 4; /* space for ID type code */ } uic$r_fac_id_form; struct { /* aribtrary assignment format */ unsigned uic$v_arb_id_code : 26; /* ID code */ unsigned uic$v_assign_code : 2; /* assignment code */ unsigned : 4; /* space for ID type code */ } uic$r_arbitrary_id_form; }; #endif /*_UICDEF_H*/