                  <<< DOCD$:[NOTES$LIBRARY]SCT-RAVEN.NOTE;1 >>>
                         -< The SCT Raven conference >-
================================================================================
Note 134.0             AUDSRV: Fix calls to IOC$VERIFYCHAN            No replies
VMSSG::FRIEDRICHS "Ask me about Young Eagles"       201 lines   2-JAN-1997 14:22
--------------------------------------------------------------------------------

	Project:		Audit Server
	Project Leader:		John Harney
	Development Stream:	RAVEN_FT1
	Checkin Type:		Bug fix.
	Problem Symptom: 	MOUNT of a new shadow set by un-prived user
				fails, even if the VU had had its ownership
				changed prior to a reboot.
  
	Diagnosis:       	AUDIT_SERVER.EXE does not initiate properly
				and does not instantiate properly because the 
				calls to IOC$VERIFYCHAN were not properly
				set up.

				This appears to be a day 1 Alpha porting bug.
	  
	Cure:			Properly set up the calls to IOC$VERIFYCHAN

	Platforms affected:	Alpha only.  Porting error
	  
	Modules:		[AUDSRV]OBJECT_DISTRIBUTION.B32
					OBJECT_INITIALIZATION.B32

	Affected Images:	[SYSEXE]AUDIT_SERVER.EXE
	  
	Impact/Risks:		Medium/Low
	  
	How this change was Tested:

				1. Examine EXE$AR_OBJECT_SERVER_UCB under SDA.
				   If 0, then AUDIT_SERVER is not properly
				   started.  It should have the UCB of a 
				   mailbox device.

                                2. Perform the following:

                With privileges:
                    $ INIT dev/OWNER=uic ! or SET VOLUME/OWNER=uic
                    $ SET SEC/OBJ=DEV/OWN=uic/PROT=(O:RWLP) dev
                    $ MOUNT DSAn:/SHAD=dev label
                    $ SET SEC/OBJ=DEV/OWN=uic/PROT=(O:RWLP) DSAn:
                    $ REBOOT

                Logged into user with UIC=uic:
                    $ MOUNT DSAn:/SHAD=dev label

				   Prior to the fix, this fails with INSPRIV.
	                           After the fix, this MOUNT should succeed.
				   
	Associated QARs,CLDs,SPRs: CFS-46906
	  
	Code Reviewed by:	John STAR::HARNEY
				Doug STAR::FYFE
				Andy STAR::MOSKAL

	Comments:		None
	 (optional)
	  
	Special Build Instructions: None
	 (optional)

************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;4
    2   		 IDENT = 'X-6',
    3   		 ADDRESSING_MODE(EXTERNAL=GENERAL,NONEXTERNAL=LONG_RELATIVE)) =
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;1
    2   		 IDENT = 'X-5',
    3   		 ADDRESSING_MODE(EXTERNAL=GENERAL,NONEXTERNAL=LONG_RELATIVE)) =
************
************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;4
   37   !	X-6	JJF0061		J. Jeffery Friedrichs	19-Dec-1996
   38   !		Add the proper linkage to IOC$VERIFYCHAN so that the call
   39   !		will be successful, and processing can continue.
   40   !
   41   !	X-5	SAD		Stuart A. Davidson	29-DEC-1994
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;1
   37   !	X-5	SAD		Stuart A. Davidson	29-DEC-1994
************
************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;4
  133   LINKAGE
  134       JSB_0_1_2 = JSB (REGISTER = 0; REGISTER = 1, REGISTER = 2)  ! Verify I/O channel
  135   			: NOPRESERVE (3)
  136   		          NOTUSED (4,5,6,7,8,9,10,11);
  137   !
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;1
  129   !
************
************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;4
  150       IOC$VERIFYCHAN : JSB_0_1_2;		! Verify IO channel
  151   !
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;1
  142   %IF VAX %THEN
  143       IOC$VERIFYCHAN : IOC$VERIFYCHAN_LINKAGE; ! Verify IO channel
  144   %FI
  145   %IF EVAX %THEN
  146       IOC$VERIFYCHAN;			! Verify IO channel
  147   %FI
  148   !
************
************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;4
 1383   
 1384   STATUS = IOC$VERIFYCHAN ( .DEV_CHAN; CCB );
 1385   
 1386   IF NOT .STATUS THEN RETURN .STATUS;
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;1
 1380   %if VAX %then
 1381   STATUS = IOC$VERIFYCHAN ( .DEV_CHAN; CCB );
 1382   %fi
 1383   %if EVAX %then
 1384   STATUS = IOC$VERIFYCHAN ( .DEV_CHAN, CCB );
 1385   %fi
 1386   IF NOT .STATUS THEN RETURN .STATUS;
************

Number of difference sections found: 5
Number of difference records found: 21

DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.DIFF;1-
    WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;4-
    WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_DISTRIBUTION.B32;1


************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;9
    2   		 IDENT = 'X-5',
    3   		 ADDRESSING_MODE(EXTERNAL=GENERAL,NONEXTERNAL=LONG_RELATIVE)) =
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;1
    2   		 IDENT = 'X-4',
    3   		 ADDRESSING_MODE(EXTERNAL=GENERAL,NONEXTERNAL=LONG_RELATIVE)) =
************
************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;9
   38   !	X-5	JJF0061		J. Jeffery Friedrichs	19-Dec-1996
   39   !		Add the proper linkage to IOC$VERIFYCHAN so that the call
   40   !		will be successful, and processing can continue.
   41   !
   42   !	X-3	TNS003		Tom Scarpelli		19-Jun-1993
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;1
   38   !	X-3	TNS003		Tom Scarpelli		19-Jun-1993
************
************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;9
  666       LINKAGE
  667   	JSB_0_1_2 = JSB (REGISTER = 0; REGISTER = 1, REGISTER = 2)  ! Verify I/O channel
  668   			: NOPRESERVE (3)
  669   		          NOTUSED (4,5,6,7,8,9,10,11);
  670   
  671       EXTERNAL
  672   	EXE$AR_OBJECT_SERVER_UCB,		! server control mailbox pointer
  673   	EXE$GL_STATE	: BLOCK[,BYTE];		! boot state bits
  674   
  675       EXTERNAL ROUTINE
  676   	IOC$VERIFYCHAN : JSB_0_1_2;		! Verify IO channel
  677   
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;1
  662       EXTERNAL
  663   	EXE$AR_OBJECT_SERVER_UCB,		    ! server control mailbox pointer
  664   	EXE$GL_STATE	: BLOCK[,BYTE];			! boot state bits
  665   %if VAX %then
  666       EXTERNAL ROUTINE
  667   	IOC$VERIFYCHAN : IOC$VERIFYCHAN_LINKAGE; 	! Verify IO channel
  668   %fi
  669   %if EVAX %then
  670       EXTERNAL ROUTINE
  671   	IOC$VERIFYCHAN;					! Verify IO channel
  672   %fi
  673   
************
************
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;9
  684       STATUS = IOC$VERIFYCHAN ( .MBX_CHAN; CCB );
  685       IF .STATUS 
******
File WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;1
  680   %if VAX %then
  681       STATUS = IOC$VERIFYCHAN ( .MBX_CHAN; CCB );
  682   %fi
  683   %if EVAX %then
  684       STATUS = IOC$VERIFYCHAN ( .MBX_CHAN, CCB );
  685   %fi
  686       IF .STATUS 
************

Number of difference sections found: 4
Number of difference records found: 22

DIFFERENCES /IGNORE=()/MERGED=1/OUTPUT=WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.DIFF;1-
    WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;9-
    WORK10:[JFRIEDRICHS.FIXES.0061]OBJECT_INITIALIZATION.B32;1
