

; Bliss-32 10.1-416	Monday 21-AUG-1978 23:09:21	DBB3:[F11B.SRC]COMMON.B32;7					Page 1

;

;	0001	MODULE COMMON (

;	0002			LANGUAGE (BLISS32),

;	0003			IDENT = 'B0015'

;	0004			) =

;	0005	BEGIN

;	0006	

;	0007	!

;	0008	! Copyright (c) 1977

;	0009	! Digital Equipment Corporation, Maynard, Massachusetts 01754

;	0010	!

;	0011	! This software is furnished  under a license for use only on a single

;	0012	! computer  system and  may be  copied only with  the inclusion of the

;	0013	! above copyright notice.  This software, or any other copies thereof,

;	0014	! may not be provided or  otherwise made available to any other person

;	0015	! except for use on such system and to one who agrees to these license

;	0016	! terms.  Title to and  ownership of the  software  shall at all times

;	0017	! remain in DEC.

;	0018	!

;	0019	! The information in this software is subject to change without notice

;	0020	! and should  not be construed  as a commitment  by Digital  Equipment

;	0021	! Corporation.

;	0022	!

;	0023	! DEC assumes  no  responsibility  for  the use or  reliability of its

;	0024	! software on equipment which is not supplied by DEC.

;	0025	

;	0026	!++

;	0027	!

;	0028	! FACILITY:  F11ACP Structure Level 1

;	0029	!

;	0030	! ABSTRACT:

;	0031	!

;	0032	!	This module is the common impure area of FCP, including the

;	0033	!	routine that initializes it for each request.

;	0034	!

;	0035	! ENVIRONMENT:

;	0036	!

;	0037	!	STARLET operating system, including privileged system services

;	0038	!	and internal exec routines.

;	0039	!

;	0040	!--

;	0041	!

;	0042	!

;	0043	! AUTHOR:  Andrew C. Goldstein,	 CREATION DATE:  20-Dec-1976  23:42

;	0044	!

;	0045	! REVISION HISTORY:

;	0046	!

;	0047	!   Andrew C. Goldstein, 24-Feb-1977  16:29

;	0048	!   X0002 - Add context for extend cleanup

;	0049	!

;	0050	!   Andrew C. Goldstein, 29-Mar-1977  11:01

;	0051	!   X0003 - Add highest version cell

;	0052	!

;	0053	!   Andrew C. Goldstein, 7-Apr-1977  13:19

;	0054	!   X0004 - Add storage for both FIBs and pointer

;	0055	!



; Bliss-32 10.1-416	Monday 21-AUG-1978 23:09:21	DBB3:[F11B.SRC]COMMON.B32;7					Page 1-1

;

;	0056	!   Andrew C. Goldstein, 13-Apr-1977  17:06

;	0057	!   X0005 - Add context save area for secondary operations

;	0058	!

;	0059	!   Andrew C. Goldstein, 28-Jun-1977  16:13

;	0060	!   X0006 - Add DIR_VBN and DIR_BUFFER

;	0061	!

;	0062	!   Andrew C. Goldstein, 5-Aug-1977  10:51

;	0063	!   X0007 - Add EXTEND_FID cell

;	0064	!

;	0065	!   Andrew C. Goldstein, 26-Sep-1977  15:29

;	0066	!   X0008 - Add LOWEST_VERSION cell

;	0067	!

;	0068	!   Andrew C. Goldstein, 27-Oct-1977  11:14

;	0069	!   X0009 - Add DISK_UCB longword

;	0070	!

;	0071	!   Andrew C. Goldstein, 12-Dec-1977  13:21

;	0072	!   X0010 - Change EXTEND_FID to NEW_FID

;	0073	!

;	0074	!   Andrew C. Goldstein, 27-Dec-1977  15:55

;	0075	!   X0011 - Add storage map VBN cells

;	0076	!

;	0077	!   Andrew C. Goldstein, 3-Jan-1978  20:59

;	0078	!   B0012 - Modify for structure level 2 directories

;	0079	!

;	0080	!   Andrew C. Goldstein, 14-Jan-1978  0:10

;	0081	!   B0013 - Directory structure changes

;	0082	!

;	0083	!   Andrew C. Goldstein, 16-Jan-1978  16:02

;	0084	!   B0014 - Context for directory cleanup

;	0085	!

;	0086	!   Andrew C. Goldstein, 21-Jun-78  17:09

;	0087	!   B0015 - Add storage for superseded file ID

;	0088	!

;	0089	!**

;	0090	

;	0091	

;	0092	LIBRARY 'SYS$LIBRARY:LIB.L32';

;	0093	REQUIRE 'SRC$:FCPDEF.B32';



; Bliss-32 10.1-416	Monday 21-AUG-1978 23:09:21	DBB3:[F11B.SRC]COMMON.B32;7					Page 2

;

;	0442	GLOBAL ROUTINE INIT_COMMON : NOVALUE =

;	0443	

;	0444	!++

;	0445	!

;	0446	! FUNCTIONAL DESCRIPTION:

;	0447	!

;	0448	!	This routine contains the impure data base for FCP, and is called

;	0449	!	to initialize it.

;	0450	!

;	0451	! CALLING SEQUENCE:

;	0452	!	INIT_COMMON ()

;	0453	!

;	0454	! INPUT PARAMETERS:

;	0455	!	NONE

;	0456	!

;	0457	! IMPLICIT INPUTS:

;	0458	!	NONE

;	0459	!

;	0460	! OUTPUT PARAMETERS:

;	0461	!	NONE

;	0462	!

;	0463	! IMPLICIT OUTPUTS:

;	0464	!	NONE

;	0465	!

;	0466	! ROUTINE VALUE:

;	0467	!	NONE

;	0468	!

;	0469	! SIDE EFFECTS:

;	0470	!	DATABASE INITIALIZED

;	0471	!

;	0472	!--

;	0473	

;	0474	BEGIN

;	0475	

;	0476	GLOBAL

;	0477		QUEUE_HEAD	: REF BBLOCK,	! pointer to ACP queue header

;	0478		IO_CHANNEL,			! channel number for all I/O

;	0479		DISK_UCB	: REF BBLOCK,	! original UCB of our channel

;	0480	

;	0481	! The remaining locations are initialized to known values (mainly zero)

;	0482	! by the routine.

;	0483	!

;	0484		USER_STATUS	: VECTOR [2],	! I/O status to be returned to user

;	0485		IO_STATUS	: VECTOR [2],	! status block for FCP I/O

;	0486		IO_PACKET	: REF BBLOCK,	! address of current I/O request packet

;	0487		CURRENT_UCB	: REF BBLOCK,	! address of UCB of current request

;	0488		CURRENT_VCB	: REF BBLOCK,	! address of VCB of current request

;	0489		NEW_FID,			! file number of unrecorded file ID

;	0490		HEADER_LBN,			! LBN of last file header read

;	0491		DIR_FCB		: REF BBLOCK,	! FCB of directory file

;	0492		BITMAP_VBN,			! VBN of current storage map block

;	0493		BITMAP_BUFFER	: REF BBLOCK,	! address of current storage map block

;	0494		DIR_VBN,			! VBN of current directory block

;	0495		DIR_BUFFER	: REF BBLOCK,	! address of current directory block

;	0496		DIR_RECORD,			! record number of found directory entry



; Bliss-32 10.1-416	Monday 21-AUG-1978 23:09:21	DBB3:[F11B.SRC]COMMON.B32;7					Page 2-1

;

;	0497		DIR_ENTRY	: REF BBLOCK,	! buffer address of found directory entry

;	0498		DIR_VERSION	: REF BBLOCK,	! buffer address of found directory version

;	0499		DIR_END		: REF BBLOCK,	! buffer address of end of directory shuffle

;	0500		PREV_VERSION,			! version number of previous directory entry

;	0501		PREV_NAME	: VECTOR [FILENAME_LENGTH, BYTE], ! name of previous entry

;	0502		SUPER_FID	: BBLOCK [FID$C_LENGTH], ! file ID of superseded file

;	0503		LOCAL_FIB	: BBLOCK [FIB$C_LENGTH], ! primary FIB of this operation

;	0504		SECOND_FIB	: BBLOCK [FIB$C_LENGTH], ! FIB for secondary file operation

;	0505	

;	0506						! The following locations are the re-enterable

;	0507						! context area and must be saved when an

;	0508						! secondary operation is performed.

;	0509		CONTEXT_START	: VECTOR [0],

;	0510		CLEANUP_FLAGS	: BITVECTOR [32], ! cleanup action flags

;	0511		FILE_HEADER	: REF BBLOCK,	! address of current file header

;	0512		UNREC_LBN,			! start LBN of unrecorded blocks

;	0513		UNREC_COUNT,			! count of unrecorded blocks

;	0514		PRIMARY_FCB	: REF BBLOCK,	! address of primary file FCB

;	0515		CURRENT_WINDOW	: REF BBLOCK,	! address of file window

;	0516		CURRENT_FIB	: REF BBLOCK,	! pointer to FIB currently in use

;	0517		CONTEXT_END	: VECTOR [0];

;	0518	

;	0519	GLOBAL LITERAL

;	0520		CONTEXT_SIZE	= CONTEXT_END - CONTEXT_START; ! byte count of context area

;	0521	

;	0522	GLOBAL

;	0523		CONTEXT_SAVE	: VECTOR [CONTEXT_SIZE, BYTE], ! area to save primary context

;	0524	

;	0525		IMPURE_END	: VECTOR [0];	! end of impure area

;	0526	

;	0527	GLOBAL LITERAL

;	0528		IMPURE_SIZE	= IMPURE_END - USER_STATUS; ! byte count of impure area

;	0529	

;	0530	! Initialization consists of zeroing the impure area and then setting the

;	0531	! user request status to 1 (success).

;	0532	!

;	0533	

;	0534	CH$FILL (0, IMPURE_SIZE, USER_STATUS);

;	0535	USER_STATUS[0] = 1;

;	0536	

;	0537	END;					! end of routine INIT_COMMON





							    .TITLE  COMMON

							    .IDENT  \B0015\



							    .PSECT  $LOCKEDD1$,NOEXE,2



					      00000 QUEUE_HEAD::

							    .BLKB   4

					      00004 IO_CHANNEL::

							    .BLKB   4

					      00008 DISK_UCB::

							    .BLKB   4

					      0000C USER_STATUS::



; Bliss-32 10.1-416	Monday 21-AUG-1978 23:09:21	DBB3:[F11B.SRC]COMMON.B32;7					Page 2-2

;

							    .BLKB   8

					      00014 IO_STATUS::

							    .BLKB   8

					      0001C IO_PACKET::

							    .BLKB   4

					      00020 CURRENT_UCB::

							    .BLKB   4

					      00024 CURRENT_VCB::

							    .BLKB   4

					      00028 NEW_FID::

							    .BLKB   4

					      0002C HEADER_LBN::

							    .BLKB   4

					      00030 DIR_FCB::

							    .BLKB   4

					      00034 BITMAP_VBN::

							    .BLKB   4

					      00038 BITMAP_BUFFER::

							    .BLKB   4

					      0003C DIR_VBN::

							    .BLKB   4

					      00040 DIR_BUFFER::

							    .BLKB   4

					      00044 DIR_RECORD::

							    .BLKB   4

					      00048 DIR_ENTRY::

							    .BLKB   4

					      0004C DIR_VERSION::

							    .BLKB   4

					      00050 DIR_END::

							    .BLKB   4

					      00054 PREV_VERSION::

							    .BLKB   4

					      00058 PREV_NAME::

							    .BLKB   20

					      0006C SUPER_FID::

							    .BLKB   6

					      00072	    .BLKB   2

					      00074 LOCAL_FIB::

							    .BLKB   44

					      000A0 SECOND_FIB::

							    .BLKB   44

					      000CC CONTEXT_START::

							    .BLKB   0

					      000CC CLEANUP_FLAGS::

							    .BLKB   4

					      000D0 FILE_HEADER::

							    .BLKB   4

					      000D4 UNREC_LBN::

							    .BLKB   4

					      000D8 UNREC_COUNT::

							    .BLKB   4

					      000DC PRIMARY_FCB::

							    .BLKB   4

					      000E0 CURRENT_WINDOW::



; Bliss-32 10.1-416	Monday 21-AUG-1978 23:09:21	DBB3:[F11B.SRC]COMMON.B32;7					Page 2-3

;

							    .BLKB   4

					      000E4 CURRENT_FIB::

							    .BLKB   4

					      000E8 CONTEXT_END::

							    .BLKB   0

					      000E8 CONTEXT_SAVE::

							    .BLKB   28

					      00104 IMPURE_END::

							    .BLKB   0



						    CONTEXT_SIZE==	28

						    IMPURE_SIZE==	248





							    .PSECT  $CODE$,NOWRT,2



					 003C 00000 	    .ENTRY  INIT_COMMON, Save R2,R3,R4,R5			      ; 0442

	   00 	         6E 	       00  2C 00002 	    MOVC5   #0, (SP), #0, #248, USER_STATUS			      ; 0534

		  0000'  CF	00F8   8F     00006									      ;

		  0000'  CF	       01  D0 0000C 	    MOVL    #1, USER_STATUS					      ; 0535

					   04 00011 	    RET     							      ; 0442



; Routine Size:  18 bytes





;	0538	

;	0539	END

;	0540	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  $LOCKEDD1$     	   260    WRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $CODE$         	    18  NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  .  ABS  .      	     0  NOWRT,NORD ,NOEXE,NOSHR,  LCL,  ABS,  CON,NOPIC,ALIGN(0)









;				LIBRARY STATISTICS

;

;					     -------- Symbols --------    Blocks

;	File				     Total    Loaded   Percent      Read

;

;  DBA4:[SYSLIB]LIB.L32;1		      5582         9         0       226











; Bliss-32 10.1-416	Monday 21-AUG-1978 23:09:21	DBB3:[F11B.SRC]COMMON.B32;7					Page 2-4

;



; Size:		18 code + 260 data bytes

; Run Time:	00:04.3

; Elapsed Time:	00:11.1

; Memory Used:	253 pages

; Compilation Complete

