• Aucun résultat trouvé

S() DOS/VS L ibrar ian

Dans le document DOSNSE Librarian Logic (Page 82-88)

MAINT CSSTART

RENAMRTN

RENAME FROM SELECTED LIBRARY

The old name in the I ibrary directory is replaced by the new name for the module, book,or procedure.

The operands are processed in pairs (oldname, newname) until all are processed. After processing all operand pairs, a branch is taken to CSSTART in the MAINT root phase.

If more operands exist and this is not the initial entry,

MAl NT CSSTART

the program branches to C S C O N T . - - - I I - - - , If this is the initial entry, return is to R LL;-, - - - ,

SLL or PLL according to the serviced program.

SLL CSCONT

PLL RLL

Chart 38.

l'lAINTDRF

(Part ... of 2)

FROM MAINT

DRSTARTF

ANALYZE CARD AND SET FOR INITIALIZATION TABLE

The operation is checked for RENAM or DE LET and a pointer is set to the information (initialization) table set up in the MAl NT root phase. Statement and operands are checked for valid length and, if invalid, a diagnostic message is issued and a new statement or operand is obtained.

Library Requested

Core Image

(on SYSRES/SYSCLB)

Procedure (on SYSRES)

Source Statement (on SYSRES/SYSSLB)

Relocatable

(on SYSRES/SYSRLB)

RENAMRTN or MAINRTN

CLiB

INITIALIZE FOR CI DELETE OR RENAME A Stow Table with DELETE requests or one RENAME request is craated.

$MAINDIF is then loaded to process these requests.

RENAMRTN $MAINDIF is also executed if any other operation or MAINRTN is requested, if a /* is read, or if the Stow Table is full.

PLL

INITIALIZE FOR PL DELETE OR RENAME The procedure directory is read into storage using the IORB. Initialization is performed for the delete and rename routines to scan for the items to be deleted or renamed.

RENAMRTN

orMAINRTNL---~

RENAMRTN SLL

INITIALIZE FOR SS DELETE OR RENAME The source statement directory is read into storage using the IORB. Initialization is performed for the delete or rename routines to scan tor the items to be deleted or renamed.

orMAINRTN~ ____________________________________ ~

INITIALIZE FOR RL DELETE OR RENAME The relocatable directory is read into storage using the IORB. Initialization is performed for the delete or rename routines to scan for the items to be deleted or renamed.

$MAINDIF

Chart 39. M AINTD RF (Part 2 of 2)

RENAME

DELETE

MAINRTN

DELETE FROM SELECTED LIBRARY

The block(s), phase(s), module(s), sublibrary(s), library(s) or procedure(s) are deleted as

determined from the card image, and the directory (on SYSRES/SYSCLB/SYSR LB/SYSSLB) is updated using the 10 RB. Each operand on the statement is singularly processed. After all operands on the statement are processed, MAINTDRF exits to CSSTART in the

RENAMRTN

RENAME FROM SELECTED LIBRARY

The old name in the library directory is replaced by the new name for the module, book or procedure.

The operands are processed in pairs (oldname, newname) until all are processed. After processing all operand pairs, a branch is taken to CSSTART in the MAl NT root phase.

If more operands exist and this is not the initial entry,

MAINT CSSTART the program branches to CSCONT.

---+--,

If this is the initial entry, return is to RLL, SLL or PLL according to the serviced program.

SLL

PLL RLL

MAINT CSCONT

root phase to read another statement

- - - J - - - - ,

If another operand exists on the statement and this

MAINT CSCONT

is not the initial entry, the program branches to CSCONT. If this is the initial entry; return is to RLL, SLL or PLL according to the serviced program.

RLL PLL

82 DOS/VSLibrarian

MAINT CSSTART

Chart 40. RUINTA (Detail Charts MA-MQ)

MAINTA

MAINTA

t

PROCESS ALLOCATE CONTROL STATEMENT The operands of the ALLOC control statement are

ana-lyzed and a table containing the reallocation informa-tion is built from the statement

GOON1

~

UPDATE ACCORDING TO ALLOC STATEMENT All four system directory records and the library de-scriptor records are read into storage and updated using the information stored from the ALLOC state-ment

WRITE2

~

WRITE THE UPDATES

Move all SYSR ES areas if the new addresses are higher

DIRUP

~

UPDATE LIBRARY DIRECTORIES

The library directories are read into storage one block at a time. Each entry in the directory block is updated by using the reallocation tables. The updated directory blocks are written at the same disk address where they were read. No relocation of the directories takes place at this time

MOVE

t

REALLOCATE DIRECTORIES AND MEMBER SPACES Directories and member spaces are moved as specified in the reallocation tables. This operation is accomplished in two passes of the tables.

If the move is to a lower disk address, the move is made on pass 1. If the move is to a higher disk address the move is made on pass 2. Only the active blocks are moved. If the disk address is to remain the same, that directory or member space is bypassed on pass 1 and pass 2.

One block at a time is moved. The update disk address subroutine, TKCOMP, can either increment or decrement the disk address by any predetermined displacement

6

TKFMT

FORMAT UNUSEDTRACKSAND FETCH MAINT The format for unused tracks is the date field with an asterisk in byte position 1. The unused tracks are formatted in all directories and the CI member space in this sequence:

1. CI directory 2. CI member space 3. R L directory 4. SS directory 5. PL directory

The label information area is moved to its new address if the address is lower. The label information area address and the procedure library address are updated in the system G ETVIS area in the SVA by the transient $$BSYSWR

Chart 41. MAINTAF (Part 1 of 3)

From MAINT rootphase (module IJBLBA),

MAINTAF

INITIALIZATION INITLISE

Copy device charact. from root phase and get $MAINDIF entry point.

Check if multiprogramming,

YES

NO PROCRDO

PROCESS 'ALLOC' CONTROL STATEMENT The following loop is executed for all operands on a control statement (and its continuation cards):

TYPEL

Extract operand information from control card and check for valid syntax.

YES

Store operand information in user allocation table 'CIA L' and check for valid allocations

YES

Analyze next operand; if on continuation card read in continuation card first.

* 3M211 INVALID OPERAND - Reason 3MXXI ALLOCATION ERROR - Reason

84 DOS/VS

Ll:brarian

ENVERR ..•

ERROR MESSAGE SET UP Set up error message.' and link to print

SYNERR ...

ERROR MESSAGE SETUP Setup error message * and link to print routine (IJB LBC)

BUILD RE ALLOCATION TABLE 1 of 2 BLDAEALT

Read system directory

Determine from system directory if library is prElsent. If so'read in the descriptor record for CL, RL,SL, PL.

BLDTABL

Fill into ,the re·allocation table from descriptor and system directory the values for the library as it exists.

Fill into the re·allocation table from user allocation table 'CIAL' the values for the library as allocated per control statement.

Fill in values for label area.

INTLl

Check if 'current libraries will fit into new allocations.

NO

Check if new library allocations will fit on device and into extents for SYSRES file.

DSPLN ALLERR ...

ERROR MESSAGE SETUP Set up error message

*'

and I ink to print routine (IJB LBC)

NO

Chart "2. MAINTAii' (Part 2 of 3)

BUILD RE ALLOCATION TABLE 20f2 DSPLN

Set up maximal buffer space for operation.

Scan the table to determin~ for each directory space and member space the direction fo move and set

'PASSONE', 'PASSTWO' or 'STAY/NEW' indicator.

Clear entries for complete libraries if de·allocated or for member spaces which are new or stay (no action performed for those).

Calculate relocation factor (if any) for directory entries, start address and other constants which are filled into the channel programs for actual move.

UPDTE1

UPDATE SYSTEM DIRECTORY &

DESCRIPTORS' For de·allocated libraries set directory entry to zero.

For new libraries fill into the skeleton descriptor the values from re·allocat ,table.

For existing re·allocated libraries, fill in the new values into the descriptor and new start addresses into the system directory.

Update VTOC for SYSRES by OPEN UPSTAT

Set up status table information

• Note: This update is in storage only;

write out is at actual move time.

REALLOC

RE-ALLOCA1E THE LIBRARIES The following is done for all directory, member and label area entries in the re·allocation table:

1 of 2

NO

If directory moved write out descriptor for library.

Build channel program from re·allocation table constants:

Read blocks from directory (member space or label area).

If directory moved and relocation of directory entries required relocate entries.

Write out blocks of directory/member space or label area.

If no more blocks left go to next entry in re·allocation table; else update channel programs and continue.

Do the following for all directory, member and label area entries in the re·allocation table:

Build channel program from re·allocation table constants.

Read blocks from directory/member or label area.

REALLOC

DOPASS3

Dans le document DOSNSE Librarian Logic (Page 82-88)

Documents relatifs