• Aucun résultat trouvé

PHASE IN THE SHARED VIRTUAL AREA (SVA)

Dans le document DOSNSE Librarian Logic (Page 99-103)

~LOAO L-SVAMSG

LOAD 1 PHASE IN THE SHARED VIRTUAL AREA (SVA)

LOAD 1 PHASE IN THE SHARED VIRTUAL AREA (SVA).

SVAMSG

GENERATE SDL AND SVA MESSAGES

GENERATE MESSAGES FOR ERROR SITUATIONS DETECTED DURING SDL UPDATE OR SVA BUILD PROCESS.

INPUT: SDL ENTRIES WITH FLAGS IN SWITCH BYTE.

SWITCH 'SWSVAFUL' AND SAVED NAME IN 'ARGUMENT' OUTPUT: MESSAGES ON SYSLOG OR SYSLST.

GENMSG

GENERAJ:E MESSAGES

'*,

G:ENERATE THESE MESSAGES WHICH COULD NOT BE DISPLAYED BECAUSE FETCH WAS NOT POSSIBLE.

OUTPUT:

MESSAGE BITS IN 'TABIN'.

MSGCOUNT.

MESSAGESQN SYSLOG OR SYSLST.

Fl)NCTION: SCAN 'TAB 11'11 , AND GENERATE MESSAGES.

Chart 55. $MAINDIR (Part, 8 of 10)

DELET

MSG

FUNCTION:

NOTE 1:

NOTE 2:

NOTE

3:

HONOUR DELETE REQUESTBY SKIPPING INPUT DIRECTORY ENTRY AND UPDATE LIBRARY DESCRIPTOR ACCORDINGLY. ISSUE DIAGNOSTIC MESSAGE IF THE APPLICABLE ENTRY IS NOT PRESENT IN INPUT.

FOR A DELETE 'PROG,.ALL' REQUEST MORE THAN ONE ENTRY MAY BE SKIPPED. ,

' '

IF AN ENTRY IN THE SYSTEM DIRECTORY LIST EXISTS FOR THIS PHASE IT IS CLEARED TO BINARY ZEROES. ONLY THE NAME REMAINS THERE, THE NOT FOUND BIT IS TURNED ON, AND THE STOWTYPE IS SAVED.

IF A RAS TRANSIENT IS DELETED (PHASENAMES IN RANGE $$RASTOO - $$RAST99), THE DISK ADDRESS IN THE RAS LOAD LIST IN THE SUPERVisOR IS MADE INVALID.

DISPLAY 'MSGAREA' ON SYSLST IF ASSIGNED, OTHERWISE ON SYSLOG.

LOOKUP

SCAN DI,RECTORYTO

f!r{q;~ f~~~ENAME,

1.

RE~'Qif'~~:~"T;:'O:IRt:HO~Y'BLOCK

wrrH KEY HIGHER THAN OR EQUAL TO 'ARGUMENT'.

2. CHE'CICIF tHE PHASENAME IN 'ARGUMENT' EXISTS IN THE CORE IMAGE DIRECTORY.

'FOUND' IN 'SWITCHES' IS SET TO 'YES' OR 'NO'. ' 3. 'DIRPTR' WILL POINT TO THE DIRECTORY ENTRY WHERE THE SCAN STOPPEO;

EXTR

BUILD ARRAY 'TABIN', CONTAINING PHASENAMES, TYPECODES AND POINTERS TO STOWTABLE ENTRIES.

INPUT: STOWTABLE

LAYOUTOF TABIN: ENTRIES CONSISTING OF

8

BYTES PHASENAME

LOCATION OF TABIN:

1 BYTE TYPE CODE

3 BYTES POINTER TO ORIGINAL ENTRY

2 BYTES INFORMATION WHICH MESSAGES SHOULD BE DISPLAYED ENTRIES SORTED ON PHASENAME.

THE AREA POINTED TO BY TABREG AS INITIALIZED BY JHEGETMAIN PROGRAMMER MACRO EXPANSION.

SPECIAL CASE: IN ARRAY 'TAB IN' TWO ENTRIES ARE CREATED FOR A 'RENAME' TYPE 'STOWTAB' ENTRY.

1. 'RENAME' WITH THE OLD NAME 2. 'SPECIAL' WITH THE NEW NAME

BOTH,POIN,tINGTO THE SAME 'STOWTAB' ENTRY.

NOTES ABOUT 'RENAME' AND 'SPECIAL' PROCESSING:

BEFORE THESE 2 ENTRIES,ARE CREATED,,2 CHECKS ARE MADE:

> 1. 'OLDNAME' MUST BE IN THE DIRECTORY, aTHERWISE A DIAGNOSTIC,lVIESSAG~,

WILL BE GIVEN: PHASE 'aLDNAME' NOT IN LIBRARY, AND tHE RENAME REQUEST IS NaT PRaCESSED.

2. 'NEWNAME' MUST NOT BEIN THE DIRECTORY:9THERWISEA DIAGNOSTIC MESSAGE WILL BE GIVEN: PHASE 'NEWNAME'ALREADY "r(LlBRARY, AND tHE RENAME REQUESTWI LL NaT BE PRaCESSED. "" " ' " , ' "

niE INFaR FRaM THE 'OL'DNAME' DIRECTORY ENTRY IS SAVED IN THE STaWTABLE ENTRY, WHICH HAS ALWAYS THE MAXIMUM SIZE (30 BYTES).

98

DOS/VS L~brarian

Chart 56. $l".AINDIR (Part 9 of

10)

SORT

SORT ARRAY 'rABIN' ON PHASENAME.

METHOD: SHELLSORT.

INPUT: THE NUMBER OF ELEMENTS IN THE ARRAY IS FOUND IN THE STOWTABLE HEADER FIELD 'NROFENTR'.

GETENTRY

1. PROVIDE AN ADDRESS IN 'INPTR' OF AN INPUT DIRECTORY ENTRY.

2. IF SWFIRST='YES' THEN INITIALIZE DIRECTORY INPUT.

PUTENTRY

1. WHEN CALLED THE FIRST TIME:

SET UP DIRECTORY OUTPUT CCB AND CCW'S, INITIALIZE POINTERS TO CCW STRING AND OUTPUT BUFFER, SET UP DATA FIELD WITH BINARY ZEROES AND A BYTE COUNT OF 2, CALCULATE RELATIVE BLOCKNUMBER-l OF FIRST DIRECTORY BLOCK READ AND INSERT IT INTO SAVED LIBRARY DESCRIPTOR ENTRY (FIELD 'DESDU'), MAKE FIELD 'DESDA' (#OF BLOCKS AVAILABLE) CONSISTENT WITH 'DESDU' BY INSERTING THE DIFFERENCE BETWEEN TOTAL #OF BLOCKS AND 'DESDU', INITIALIZE OUTPUT DISK ADDRESS WITHADDRESS OF

FI RST INPUT BLOCK. .

2. FOR NORMAL CALLS:

GETINP

IF PAST END OF BUFFER THEN WRITE THE BLOCK WITH A WRITE KEY AND DATA COMMAND, CHAINED TO A READ COUNT MULTIPLE TRACK, BUMP 'DESDU' BY 1 AND 'OESDA' BY -I, SET UP DATA FIELD WITH BINARY ZEROES AND A BYTE COUNT OF 2_ RESET 'OUTPTR' TO START OF BLOCK. UPDATA SLD IF APPLICABLE.

DEPENDING ON SWITCH 'SWINPTR' MOVE CURRENT INPUT ENTRY OR CURRENT STOWTABLE ENTRY TO OUTPUT BUFFER, MOVE PHASENAME TO 'KEYOUT' AND BUMP BYTECOUNT BY LENGTH OF OUTPUT ENTRY. INCREASE 'OUTPTR' WITH LENGTH OF CURRENT DI RECTORY ENTRY.

FOR THE LAST ( END) DIRECTORY ENTRY: WRITE OUT THE BLOCK WITH THE END ENTRY AND FILL REST OF TRACK WITH EMPTY BLOCKS, ALL HAVING A KEY OF 16 X'F'.

.'

1. ONLY THE FIRST TIME: BUILD CCW STRING TO FILL ALL INPUT BUFFERS.

2. INITIALIZE CCB AND FILL ALL EMPTY BUFFERS.

PUTOUTP

1_ WRITE ONE OUTPUT BLOCK (KEY AND DATA).

2. FOR LAST BLOCK OF TRACK: UPDATE SECOND LEVEL DIRECTORY.

CLOSE

WRITE UPDATED LIBRARY DESCRIPTOR 1. READ FIRST DIRECTORY BLOCK AGAIN.

2_ REPLACE OLD LIBRARY DESCRIPTOR ENTRY BY NEW VERSION_

3_ RE-WRITE FI RST DI RECTORY BLOCK.

Chart

57.

$MAINDIR (Part

10 of 10)

RASCONV1

CONVERT THE 2·BYTE FIELD 'RASARG1' FROM CHARACTER FORMAT TO BINARY FORMAT AND ADD 1 TO MAKE IT USABLE AS INDEX INTO THE RAS LOAD LIST IN THE SUPERVISOR.

RASCONV2

0010

CONVERT TTR TO PRE·RELEASE 29 'CHR' FORMAT.

INPUT AND OUTPUT IN FIELD 'RASARG2'.

THE 'R' PART OF THE FIELD IS NOT TOUCHED.

INPUT: REGISTER 1 POINTS TO A CCB, FOR WHICH I/O SHOULD BE PERFORMED.

FUNCTION: DO READ OR WRITE INCLUDING ALL CHECKS.

FOR CONDENSE OR REALLOCATION THE SEARCH ARGUMENT HAS TO BE ALWAYS PRESENT. THEREFORE A RETRY ON NO RECORD FOUND WILL BE DONE. AFTER 10 TIMES OF RETRY AN ERROR WILL INDICATED BY A RETURN CODE OF 16.

KEEPDIST

KEEP DISTANCE

WHEN LARGE NUMBERS OF PHASES ARE CATALOGED IT WILL BE NECESSARY SOMETIMES TO WRITE A DIRECTORY BLOCK BEFORE IT HAS BEEN READ. AS THIS WOULD CAUSE PART OF THE 01 RECTORY TO BE DUPLICATED, AND ANOTHER PART TO BE SKIPPED, PRECAUTIONS MUST BE TAKEN.

1. SHIFT THE CURRENT INPUT BUFFER AND ALL BUFFERS FOLLOWING OVER ALL INPUT BUFFERS WHICH HAVE BEEN PROCESSED ALREADY.

2. FILL INPUT BUFFERS FREED THIS WAY WITt'! NEW DIRECTORY INFO.

LJPDSLD

UPDATE SECOND LEVEL DIRECTORY

1. INSERT KEY OF LAST DIRECTORY BLOCK ON A TRACK IN THE APPLICABLE SECOND LEVEL DIRECTORY ENTRY.

2. INSERT 16 X'F' IN LAST SLD ENTRY.

3. ISSUE WARNING MESSAGE 3M911 IF MORE DIRECTORY TRACKS ARE USED THAN SLD ENTRIES EXIST.

MSG911

PREPARE WARNING MESSAGE 3M91 I ONLY ONCE PER JOBSTEP.

100

DOS/VS .Librarian

Chart 58. $ftAINDIP (Part 1 of 12)

$MAINDIF Overview:

MAINFLOW $MAINDIF STRUCTURE OVERVIEW

1 - - - -

INITIALZ

L--INITMAIN

1 - - - -

SDLSVA

Dans le document DOSNSE Librarian Logic (Page 99-103)

Documents relatifs