| USRBK | Back to Index page | 
| 
 Prolog Control Block Contents USRBK DSECT USRBCBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions)  | 
  | 
| USRBK Prolog | Top of page | 
 NAME       : HCPUSRBK
 DESCRIPTION: SSI complex wide user attributes
 DSECT      : USRBK
 FUNCTION   : The USRBK contains the minimal information needed to
              identify a user logged on somewhere in the SSI complex.
              The USRBK essentially has two forms.  Either embedded
              within a VMDBK (for a user that is local on the
              system with the VMDBK), or as a standalone block
              for a user that is logged onto some other system in
              the SSI complex.
 LOCATED BY : USRBKs representing local users are embedded in the
              user's ORIGIN VMDBK and you locate it just as you
              would a VMDBK (VMDCYCLE, etc.).  Clearly there is
              an embedded USRBK in every VMDBK, ORIGIN or not,
              and some non-ORIGIN fields do contain values (eg:
              USRUSER is populated in all VMDBKs), however, the
              one true embedded USRBK is in the ORIGIN VMDBK and
              only its contents are maintained and considered to
              be valid.
              USRBKs representing non-local users are chained via
              USRCHAIN off SYSUSRCH in SYSCM.
              Both are in the userid hash table.
 CREATED BY : USRBKs representing local users are instantiated when
              an ORIGIN VMDBK is allocated.  USRBKs representing a
              non-local user are allocated by HCPUSR when it is
              notified a user has logged onto a remote system.
 DELETED BY : USRBKs representing local users are deleted when an
              origin VMDBK is fret'ed (either the user has logged
              off or been relocated off).  USRBKs representing a
              non-local user are deleted by HCPUSR when the
              user logs off or has been migrated in.
 REFERENCES : VMDBK
 SERIALIZED : Deletion of the remote USRBKs is by MP defer.
              A USRBK pointer is only valid until the next
              loss of control.
 COMPATIBILITY AND MIGRATION CONCERNS : If the format of this
              control block changes in future releases be sure
              to increment the version counter.  Any changes
              to the global portion must be done in an upwardly
              compatible manner and added to the end (it's OK
              to push the local section if need be).
 RELOCATION CONSIDERATIONS : None.  This block exists on each
              system in the SSI complex and is not relocated
              between systems.
 COMMENTS   : The USRBK is divided into two parts as it were.
              The first part is data that is global (eg: should be
              same on all systems) and will be included anytime
              the block is broadcast (such as userid, the block
              version, etc.).  Clearly the block version may
              not be the same on each system, but it must be
              broadcast so each system knows what it's dealing
              with.  The system where the user is logged onto
              determines the block's level.  If it's a downlevel
              system, the uplevel systems won't find anything
              of value in the new fields (and should be checking
              the version before looking).  If it's an uplevel
              system the downlevel systems won't know enough to
              look at any new stuff.  The second part is data
              that will be local to the system the USRBK is on
              (eg: chain pointer, etc.).
              If the USRBK is embedded in the VMDBK the address
              of the VMDBK may be divined by NILL against the
              USRBK address with the USRtoVMD mask.  Likewise a
              routine can accept either a VMDBK or a USRBK as a
              parameter and divine which it was passed by doing
              a TMLL with USRorVMD (CC 0 means you have a VMDBK).
              The above scheme assumes that a VMDBK always
              starts on a page boundary and that a USRBK never
              starts on a page boundary.  A standalone block
              can never start on a page boundary as it will
              always have a free storage header preceding it.
              An embedded USRBK could only start on a page
              boundary if it was the first field in a VMDBK.
              A CKMAINT in HCPUSR verifies it's not.
              If you have a known USRBK pointer you can
              determine whether it's a standlone USRBK (that is
              to say represents a non-local user) or an embedded
              USRBK (that is to say a local user) by doing a
              TM USRLFLAG,USRVMDBK.  If CC 3 is returned then,
              as noted above, NILL with USRtoVMD gives you the
              VMDBK address for the local user.
  | 
| USRBK Control Block Content | Top of page | 
 
  | 
| USRBK Storage Layout | Top of page | 
          
*** USRBK - SSI complex wide user attributes
*
*     +-------------------------------------------------------+
*   0 |                       USRUSER                         |
*     +-------------+------+------+---------------------------+
*   8 |  USRPLXSL   |:LEVEL|:GFLAG|///////////////////////////|
*     +-------------+------+------+------+--------------------+
*  10 |         USRCHAIN          |:LFLAG|////////////////////|
*     +---------------------------+------+--------------------+
*  18 |///////////////////////////|///////////////////////////|
*     +---------------------------+---------------------------+
*  20
*
*** USRBK - SSI complex wide user attributes
          
*** USRBCBK - SSI complex wide user attributes
*
*     +------+------+------+------+-------------+-------------+
*   0 |:BCLVL|:BCSF |:BCFLG|//////|  USRBCSLT   |/////////////|
*     +------+------+------+------+-------------+-------------+
*   8 |                       USRUSRBK                        |
*     |                                                       |
*     +-------------------------------------------------------+
*  18 |///////////////////////////////////////////////////////|
*     |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*
*** USRBCBK - SSI complex wide user attributes
          
*** Overlay for USRBCEXT in USRBCBK
*
*     +---------------------------+---------------------------+
*  28 |         USRUSRS           |         USRDIALD          |
*     +---------------------------+---------------------------+
*  30 |         USRLUCNT          | 34
*     +---------------------------+
*
*** Overlay for USRBCEXT in USRBCBK
  | 
| USRBK Cross Reference | Top of page | 
Symbol Dspl Value -------------- ---- ----- USRorVMD 001C 00000FFF USRtoVMD 001C 0000F000 USRAFSEC 0014 20 USRBCed 0014 40 USRBCEXT 0028 USRBCFLG 0002 USRBCLVL 0000 USRBCSF 0001 USRBCSLT 0004 USRBCSZ 0030 00000007 USRBRDSZ 000C 00000010 USRBSIZE 001C 00000020 USRCHAIN 0010 USRCOUNT 0002 80 USRDIALD 002C USRDISC 000B 40 USRFESEC 000B 80 USRGFLAG 000B USRLEVEL 000A USRLFLAG 0014 USRLUCNT 0030 USRLVLV1 000A 00000001 USRMSGV2 000B 20 USROLDBK 0014 04 USRPLXSL 0008 USRRETRY 0002 20 USRRLOIN 0002 40 USRSFLCC 0001 00000006 USRSFLOF 0001 00000002 USRSFLON 0001 00000001 USRSFSYN 0001 00000005 USRSFUPD 0001 00000003 USRSFWRP 0001 00000004 USRSIZE 001C 00000004 USRUSER 0000 USRUSRBK 0008 USRUSRS 0028 USRVESTL 0014 10 USRVMDBK 0014 80  | 
Copyright IBM Corporation, 1990, 2013