top - download
⟦64029b1af⟧ Wang Wps File
Length: 20549 (0x5045)
Types: Wang Wps File
Notes: CPS/SDS/030
Names: »1511A «
Derivation
└─⟦c606dccac⟧ Bits:30005804 8" Wang WCS floppy, CR 0108A
└─ ⟦this⟧ »1511A «
WangText
…09……00……00……00……00…!…02……00……00…!
!…06…!…07… …0e……18……0c……18……0e……18……02……18… …18……05……17……0b……17……0e……17……86…1 …02… …02… …02…
#
…02…CPS/SDS/030
…02…841012…02……02…
STORAGE AND RETRIEVAL
DETAILED DESIGN SPECIFICATION…02…ISSUE 1…02…CAMPS
4.2.3 O̲f̲f̲-̲L̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲s̲
Included in this section is the specification of the
off-line retrieval sub-package.
4.2.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The functions performed by the sub-package are listed
below. A number of functions are identical to those
mentioned in the on-line retrieval sub-package.
- Activate off-line retrieval
- Off-line volume determination
- Test of mounted volume
- Volume mount
- Off-Line catalogue consult
- Access check
- Retrieval of CIF
- Delivery of retrieval result
Overleaf on figure 4.2.3.1-1 an overview diagram depicting
the off-line retrieval functions is shown.
Figure 4.2.3.1-1
4.2.3.1.1 A̲c̲t̲i̲v̲a̲t̲e̲ ̲O̲f̲f̲-̲L̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲
Activation of off-line retrieval is performed by signalling
the semaphore OFFL ̲IN ̲SEM, where the off-line retrieval
coroutine is waiting. If off-line retrieval is off,
requestor is responsed so, and retrieval terminats.
If any off-line retrievals have been detected by the
on-line retrieval subpackage, OFFL ̲RETR ̲COUNTER is
incremented. Off-line retrieval decrements counter
after each retrieval. A second condition shall be fulfilled
before activation. The status off-line retrieval shall
be in on, or suspend condition.
Each time a new off-line retrieval is started the pending
off-line requests in off-line retrieval list are scanned.
If any requests require use of the present mounted
volume, these are serviced first. In case none are
for the present mounted off-line volume, the requests
related to the youngest volume are serviced.
4.2.3.1.2 O̲f̲f̲-̲L̲i̲n̲e̲ ̲V̲o̲l̲u̲m̲e̲ ̲D̲e̲t̲e̲r̲m̲i̲n̲a̲t̲i̲o̲n̲
Each off-line retrieval has attached a TOC or DTG as
one of the retrieval keys. This is used for the determination
of off-line volume containing the message or transaction.
When no more retrieval requests are for the present
mounted volume the off-line retrieval list is scanned
to determine the next volume to be mounted. The oldest
request and corresponding volume-id is then used for
the volume mount request for the supervisor report
printer. The volume-id is then used during a later
test of mounted volume. If a DTG off-line retrieval
has shown not found, volume table is consulted to check
if successor volume possibly contains the CIF requested.
If so the request and volume id is supplied to the
off-line list.
4.2.3.1.3 T̲e̲s̲t̲ ̲o̲f̲ ̲M̲o̲u̲n̲t̲e̲d̲ ̲V̲o̲l̲u̲m̲e̲
Test of presently mounted volume is carried out by
requesting SFM of volume-id corresponding to the off-line
disk. This volume-id is compared with the volume-id
achieved during the previous off-line volume determination.
A correctly mounted volume results in continuation
with off-line catalogue consult. Wrong volume mounted
requires a volume mount prior to continuation of off-line
retrieval.
4.2.3.1.4 V̲o̲l̲u̲m̲e̲ ̲M̲o̲u̲n̲t̲
The volume mount function is initiated by sending a
mount request report to the supervisor's report printer
queue. Contents of report are volume-id of requested
volume.
Mount acknowledge can be either mount refused or mount
completed.
Mount refused results in returning a completion code
to requestor return queue acknowledging that CIF not
found. Mount completed results in test of mounted
volume as described in 4.2.3.1.3.
4.2.3.1.5 O̲f̲f̲-̲L̲i̲n̲e̲ ̲C̲a̲t̲a̲l̲o̲g̲u̲e̲ ̲C̲o̲n̲s̲u̲l̲t̲
This function is implemented in the same way as the
on-line retrieval sub-package performs the on-line
catalogue consult. The only difference occurring is
that the cataloque in question is the off-line catalogue.
For functional description refer to 4.2.2.1.3.
4.2.3.1.6 A̲c̲c̲e̲s̲s̲ ̲C̲h̲e̲c̲k̲
Function performed equal to the access check under
on-line retrieval. Refer to 4.2.2.1.4.
4.2.3.1.7 R̲e̲t̲r̲i̲e̲v̲e̲ ̲C̲I̲F̲
Function performed equal to the CIF retrieval under
on-line retrieval. Refer to 4.2.2.1.5.
4.2.3.1.8 D̲e̲l̲i̲v̲e̲r̲y̲ ̲o̲f̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲R̲e̲s̲u̲l̲t̲
A number of off-line retrieval events produces a result
to be returned to requestor. The events are:
- off-line retrieval off
- CIF not found
- CIF found
4.2.3.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
Figure 4.2.3.2-1 overleaf shows the software structure.
MAIN
MODULE
DTG TOC - OFFL ̲DISK ̲ERROR
RETRIEVAL RETRIEVAL - O ̲RETURN ̲NOT
̲FOUND
MODULE MODULE - MOUNT ̲UNKNOWN
̲VOLUME
- DISCONNECT
̲OFFL
- OFFL ̲DISK ̲ERROR - OFFL ̲DISK ̲ERROR
- O ̲RETURN ̲NOT ̲FOUND - O ̲RETURN ̲NOT ̲FOUND
- POINT ̲O ̲PRI ̲ENTRY - POINT ̲O ̲PRI ̲ENTRY
- O ̲RETURN ̲CIF - O ̲RETURN ̲CIF
- CHECK ̲ORIGINATOR ̲KEYS - CHECK ̲ORIGINATOR
̲KEYS
- CHECK ̲SECURITY - CHECK ̲SECURITY
- CHECK ̲CAMPS ̲TYPE - CHECK ̲CAMPS ̲TYPE
- CHECK ̲MAIN ̲ENT ̲PTR - CHECK ̲MAIN ̲ENT
̲PTR
- O ̲SEND ̲FOR ̲NEXT ̲VOLUME - MOUNT ̲UNKMOWN ̲VOLUME
- O ̲SEND ̲FOR ̲NEXT
̲VOLUME
- CHECK ̲CHANNEL KEYS
- CHECK ̲STATION ̲KEYS
- O ̲RET ̲CATAL
- O ̲TERM ̲CATAL
- O ̲INIT ̲RET ̲CATAL
- O ̲CHECK ̲DELETION
FIGURE 4.2.3.2-1
SOFTWARE STRUCTURE TOC COROUTINE
4.2.3.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲
For details of the data flow and control logic refer
section 4.2.3.4.4.5 module design.
Figure 4.2.3.3-1 shows the main control for this sub-package.
Figure 4.2.3.3-1
4.2.3.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This off-line retrieval sub-package consists of 3 modules,
namely:
- off-line retrieval main module
- DTG retrieval module
- TOC retrieval module
4.2.3.4.1 O̲f̲f̲-̲l̲i̲n̲e̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲a̲i̲n̲ ̲M̲o̲d̲u̲l̲e̲
4.2.3.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module performs the off-line retrieval main function.
Off-line retrieval is initiated when the semaphore
OFFL ̲IN ̲SEM is signalled by the retrieval registration
package.
Upon completion of an off-line retrieval the retrieval
list is examined for any requests for the present mounted
volume. Off-line retrieval commands are received in
the above mentioned semaphore as weel. The commands
are:
- int offl retr on
- int offl retr susp
- int offl retr off
- int offl retr mount refused
The kind of retrieval is detected and corresponding
DTG or TOC retrieval module is called.
4.2.3.4.1.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲
The module interface is during invocation of offline
retrieval, to the online retrieval subpackage via the
semaphore OFFL ̲IN ̲SEM. The module interface during
offline retrieval command is via the same semaphore
to the supervisor command subpackage.
As shown on figure 4.2.3.3-1 this offline registration
module calls either one of the DTG retrieval module
or TOC retrieval module depending and detected retrieval
type.
Downwards interfaces are then as follows:
Return not found answer
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
O ̲RETURN ̲NOT ̲FOUND
(OFFL ̲LIST ̲NO: INTEGER) ( )
Request mount of unknown volume
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
MOUNT ̲UNKNOWN ̲VOLUME ( ) ( )
Perform DTG retrieval
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
DTG ̲RETRIEVAL
( ) (ERROR: INTEGER)
Perform TOC retrieval
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
TOC ̲RETRIEVAL
( ) (ERROR: INTEGER)
Dismantle queue element
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
DISCONNECT ̲OFFL
(QEL: QEL ̲REFERENCE,
OBJECT: OBJECT ̲TYPE) ( )
4.2.3.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
Off-line retrieval main module performs the initiation
of off-line retrieval i.e. examination of off-line
list, test of present mounted volume, volume mount
mechanism and initiation of either DTG or TOC retrievals.
Flowgram figures 4.2.3.4.1.5-1 to 16 show the control
logic for this module.
The following shared module components are identified:
- Clear mount request
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The offline list is searched for outstanding mount
request.
If an outstanding mount request is found corresponding
offline list element is marked as not outstanding with
a mount request.
Flowgram refer figure 4.2.3.4.1.5-17.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CLEAR ̲MOUNT ̲REQUEST ( ) ( )
- Empty offline list
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The offline retrieval request list is emptied for elements
and involved requestors answered that no CIFs are found.
Flowgram refer figure 4.2.3.4.1.5-18.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
EMPTY ̲OFFL ̲LIST ( ) ( )
- Find request in offline list
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The first request in the offline list with volume name
as specified in call is found. Corresponding list number
and operation pointer are returned.
Flowgram refer figure 4.2.3.4.1.5-19.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
FIND ̲REQUEST (NAME: VOLUME ̲NAME)
(NO: INTEGER,
OP ̲REF: POINTER)
- Find mount request in offline list
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The offline retrieval request list is scanned to find
an eventual outstanding mount request element. If found,
list number and operation pointer are returned. If
not found zero is returned as the number.
Flowgram refer figure 4.2.3.4.1.5-20.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
FIND ̲MOUNT ̲REQUEST ( )
(NO: INTEGER,
REF: POINTER)
- Mount request
D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
A mount request either of known or unknown volume is
sent to the supervisors report printer.
The volume name found is by comparing the volume table
volume names with the offline list volume names and
search for correspondence. If no correspondence can
be met unknown volume is mounted.
Flowgram refer figure 4.2.3.4.1.5-21-22.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
MOUNT ̲REQUEST ( ) ( )
4.2.3.4.1.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
a) D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Refer source list
- SAR.D*OFL ̲RTR.D*OFL ̲RTR ̲PREFIX.S
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
Refer source list
- SAR.D*RTR.D*OFL ̲RTR ̲IMPORT.D*MAIN ̲MOD.I
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
None
4.2.3.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
Refer flowgrams figure 4.2.3.4.1.5-1-
OFFLINE RETRIEVAL
I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲
LOOP
LOOP
LENGTH OF OFFL ̲IN ̲SEM NE 0?
OFFL ̲RETR ̲COUNTER EQ 0?
STATE NE ON?
A̲N̲Y̲ ̲T̲O̲ ̲O̲N̲L̲ ̲V̲O̲L̲?̲
ANSWER EQ TRUE? EXIT
OUTSTANDING ̲MOUNT ̲
REQ EQ TRUE?
MOUNT ̲REQUEST
N̲E̲X̲T̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲
END LOOP
R̲E̲T̲R̲I̲E̲V̲E̲ ̲F̲O̲R̲ ̲T̲H̲I̲S̲ ̲V̲O̲L̲U̲M̲E̲ ERROR?
O̲F̲F̲L̲ ̲E̲R̲R̲O̲R̲
END LOOP
FIGURE 4.2.3.4.1.5-1
I̲N̲I̲T̲I̲A̲L̲I̲Z̲E̲
OFFL ̲RETR ̲COUNTER = 0
STATE = OFF
FIGURE 4.2.3.4.1.5-2
A̲N̲Y̲ ̲T̲O̲ ̲O̲N̲L̲ ̲V̲O̲L̲?̲
DISK ̲STATUS.STATE EQ NOT ̲MOUNTED?
CASE TEST ̲VOLUME ̲IN ̲LIST
(DISK ̲STATUS.VOLUME.VOLUME ̲ID):
ERROR?
OK?
END CASE
ANSWER = TRUE ANSWER = FALSE
FIGURE 4.2.3.4.1.5-3
N̲E̲X̲T̲ ̲O̲P̲E̲R̲A̲T̲I̲O̲N̲
WAIT ̲OPSEM(OFFL ̲IN ̲SEM) (OPR ̲REF)
EQUIVALENCE (OPR ̲REF, OPERATION: OFFL ̲LIST ̲OPR)
EQUIVALENCE (OPR ̲REF, CMD ̲OPR: SUPV ̲OFFL ̲OPR)
CASE CMD ̲OPR.INDIC OF
SUPV ̲OFFL ̲CMD ̲RESPONSE? - P̲E̲R̲F̲O̲R̲M̲ ̲C̲O̲M̲M̲A̲N̲D̲
ONL ̲OFFL ̲RETRIEVAL? - R̲E̲G̲I̲S̲T̲E̲R̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲
STATE NE OFF?
EMPTY ̲OFFL ̲LIST
END CASE
FIGURE 4.2.3.4.1.5-4
P̲E̲R̲F̲O̲R̲M̲ ̲C̲O̲M̲M̲A̲N̲D̲
CASE CMD ̲OPR.CMD OF
INT ̲OFFL ̲ON? STATE = ON
INT ̲OFFL ̲SUSP?-STATE = SUSP CLEAR ̲MOUNT ̲REQUEST(
) ( )
INT ̲OFFL ̲OFF?- STATE = OFF
CLEAR ̲MOUNT ̲REQUEST( ) ( )
EMPTY ̲OFFL ̲LIST( ) ( )
INT ̲OFFL ̲MOUNT ̲REFUSED?
P̲R̲O̲C̲E̲S̲S̲ ̲M̲O̲U̲N̲T̲ ̲R̲E̲F̲U̲S̲E̲D̲
END CASE
RETURN COMPLETION TO SUPV ̲RESPONSE ̲SEM
FIGURE 4.2.3.4.1.5-5
P̲R̲O̲C̲E̲S̲S̲ ̲M̲O̲U̲N̲T̲ ̲R̲E̲F̲U̲S̲E̲D̲
FIND ̲MOUNT ̲REQUEST (OFFL ̲LIST ̲REF ̲NO, OP ̲REP)
OFFL ̲LIST ̲REF ̲NO NE 0?
0 ̲RETURN ̲NOT ̲FOUND(OFFL ̲LIST ̲REF
̲NO)
FIGURE 4.2.3.4.1.5-6
R̲E̲G̲I̲S̲T̲E̲R̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲
OFFL ̲RETR.COUNTER = OFFL ̲RETR ̲COUNTER +
1
OFFL ̲LIST ̲REFS(OFFL ̲RETR ̲COUNTER) = OPR ̲REF
FIGURE 4.2.3.4.1.5-7
R̲E̲T̲R̲I̲E̲V̲E̲ ̲F̲O̲R̲ ̲T̲H̲I̲S̲ ̲V̲O̲L̲U̲M̲E̲
S̲E̲T̲U̲P̲ ̲V̲O̲L̲U̲M̲E̲ ERROR?
LOOP
FIND ̲REQUEST (DISK ̲STATUS.VOLUME.VOLUME ̲ID)
(NO, REF)
NO EQ 0? - EXIT
R̲E̲T̲R̲I̲E̲V̲E̲ ERROR? EXIT
END LOOP
T̲A̲K̲E̲ ̲D̲O̲W̲N̲ ̲V̲O̲L̲U̲M̲E̲
ERROR?
CONTINUE ERROR
FIGURE 4.2.3.4.1.5-8
S̲E̲T̲ ̲U̲P̲ ̲V̲O̲L̲U̲M̲E̲
DISK ̲STATUS.STATE EQ NOT ̲MOUNTED?
CASE GETROOT (OFFLINE ̲FILESYSTEM,
DISK ̲STATUS.VOLUME.VOLUME ̲ID)
(ROOT ̲FD,CC):
ERROR? - DISK ̲ERROR (CC)
OK?
END CASE
O̲P̲E̲N̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲C̲A̲T̲A̲L̲O̲G̲S̲ ERROR?
A̲N̲D̲ ̲D̲U̲M̲P̲ ̲F̲I̲L̲E̲
R̲E̲A̲D̲ ̲C̲A̲T̲A̲L̲O̲G̲ ̲H̲E̲A̲D̲E̲R̲ ERROR?
CONTINUE ERROR
FIGURE 4.2.3.4.1.5-9
O̲P̲E̲N̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲C̲A̲T̲A̲L̲O̲G̲U̲E̲S̲ ̲A̲N̲D̲ ̲D̲U̲M̲P̲ ̲F̲I̲L̲E̲
CASE LOOKUP (ROOT ̲FD, TOC ̲NAME)(TOC ̲FD,CC):
ERROR? - DISK ̲ERROR (CC)
OK? - TOC ̲OPEN = TRUE
END CASE
CASE LOOKUP (ROOT ̲FD, PRI ̲NAME)(PRI ̲FD,CC):
ERROR? - DISK ̲ERROR (CC)
OK? - PRI ̲OPEN = TRUE
END CASE
CASE LOOKUP (ROOT ̲FD, DTG ̲NAME)(DTG ̲FD,CC):
ERROR? - DISK ̲ERROR (CC)
OK? - DTG ̲OPEN = TRUE
END CASE
CASE LOOKUP (ROOT ̲FD, DUMP ̲FILE ̲NAME)(DUMP ̲FD,CC):
ERROR? - DISK ̲ERROR (CC)
OK? - DUMP ̲OPEN = TRUE
END CASE
CONTINUE ERROR
FIGURE 4.2.3.4.1.5-10
R̲E̲A̲D̲ ̲C̲A̲T̲A̲L̲O̲G̲ ̲H̲E̲A̲D̲E̲R̲
LOAD HEAD ̲FILADDR TO POINT TO START
CASE READBYTES (TOC ̲FD, HEAD ̲FILADDR,
OFFL ̲HEAD ̲COPY ̲BLE)
(HEAD ̲FILADD, CC):
ERROR? - DISK ̲ERROR (CC)
OK?
END CASE
CONTINUE ERROR
FIGURE 4.2.3.4.1.5-11
R̲E̲T̲R̲I̲E̲V̲E̲
RETRIEVE ̲LIST ̲NO = NO
RETRIEVE ̲REF = REF
EQUIVALENCE(RETRIEVE ̲REF, RETRIEVE ̲OPER: OFFL ̲LIST
̲OPR)
O ̲QEL = RETRIEVE ̲OPER.BUFFER ̲REF
R̲E̲C̲E̲I̲V̲E̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲R̲E̲Q̲U̲E̲S̲T̲
R̲E̲S̲E̲T̲ ̲W̲O̲R̲K̲ ̲D̲A̲T̲A̲
O ̲ORIG ̲RETRIEVAL.RETR ̲IDENT
AND RETR ̲KEYS ̲MASK EQ
DTG ̲KEYS? DTG ̲RETRIEVAL( ) (CC)
CC NE 0?
TOC ̲RETRIEVAL( ) (CC)
CC NE 0
CONTINUE
ERROR
FIGURE 4.2.3.4.1.5-12
R̲E̲C̲E̲I̲V̲E̲ ̲R̲E̲T̲R̲I̲E̲V̲A̲L̲ ̲R̲E̲Q̲U̲E̲S̲T̲
CASE GET ̲QEL ̲ATTRIBUTES (0 ̲QEL)(0 ̲ATTR, CC):
ERROR? - ANALYZE ̲ERROR (CC,0)
OK?
END CASE
CASE READ ̲BUFFER (0 ̲QEL, 0 ̲DESTINATION, RETRIEVE ̲REQUEST
̲
BUFFER ̲MAX ̲SIZE, 0)(SIZE, 0-BUFF,
CC):
ERROR? - ANALYZE ̲ERROR (CC,0)
OK?
END CASE
0 ̲RETR ̲TYPE = 0 ̲ATTR.INFORMATION(1)
EQUIVALENCE(0 ̲BUFF,0 ̲ORIG ̲RETRIEVAL:SUPV ̲RETRIEVAL
̲RECORD ̲
TYPE ̲3)
EQUIVALENCE(0 ̲BUFF,0 ̲STATION ̲RETRIEVAL:SUPV ̲RETRIEVAL
̲RECORD ̲
TYPE ̲2)
EQUIVALENCE(0 ̲BUFF,0 ̲CHANNEL ̲RETRIEVAL:SUPV ̲RETRIEVAL
̲RECORD ̲
TYPE ̲1)
FIGURE 4.2.3.4.1.5-13
R̲E̲S̲E̲T̲ ̲W̲O̲R̲K̲ ̲D̲A̲T̲A̲
0 ̲PRI ̲WORK.NO ̲OF ̲ENTRIES = 0
0 ̲DTG ̲WORK.NO ̲OF ̲ENTRIES = 0
FIGURE 4.2.3.4.1.5-14
T̲A̲K̲E̲ ̲D̲O̲W̲N̲ ̲V̲O̲L̲U̲M̲E̲
TEST FOR SUCESSFUL SETUP
AND DISCONNECT CORRESPONDINGLY
FIGURE 4.2.3.4.1.5-15
O̲F̲F̲L̲ ̲E̲R̲R̲O̲R̲
ERROR IS INTERRUPT FLAG?
WAIT OPSEM (OFFL ̲REPORT ̲EMPTY ̲SEM,
OFFL ̲REPORT ̲OPR)
CLEAR OFFL ̲RETR
̲
INTERRUPT ̲FLAG
PUT ERROR IN OP
SIGNAL OPSEM (SUPV ̲W ̲SEM, OP)
STATE = INTERRUPT
FIGURE 4.2.3.4.1.5-16
CLEAR ̲MOUNT ̲REQUEST
FIND ̲MOUNT ̲REQUEST (NO, OPREF)
NO EQ 0?
EQUIVALENCE (OPREF, OP: OFFL ̲LIST ̲OPR)
OP.MOUNT ̲STATUS = FALSE
OUT ̲STANDING ̲MOUNT ̲REQ = FALSE
RETURN
FIGURE 4.2.3.4.1.5-17
EMPTY ̲OFFL ̲LIST
Note that list of refs. is reorganized when an element
is deleted.
LOOP
1 GT NO ̲OF ̲REFS EXIT
0 ̲RETURN ̲NOT ̲FOUND (1)
END LOOP
FIGURE 4.2.3.4.1.5-18
FIND ̲REQUEST (NAME: VOLUME ̲NAME)
(NO: INTEGER, OP ̲REF: POINTER)
LOOP IN LIST, FIND FIRST REQUEST
WITH THIS NAME AND RETURN NO AS NO
IN OFFL ̲LIST ̲REFS AND BUFFER ̲REF AS POINTER
TO OPERATION.
NO = 0 IF NONE
FIGURE 4.2.3.4.1.5-19
FIND ̲MOUNT ̲REQUEST (NO: INTEGER,
REF: POINTER)
SEARCH IN OFFL ̲LIST ̲REFS
AND OFFL ̲LIST FOR MOUNT REQUEST.
SET NO = ADDRESS(OFFL ̲LIST(X))
AND REF = OFFL ̲OPR.OPERATION ̲NO
NO = 0 IF NOT FOUND
FIGURE 4.2.3.4.1.5-20
MOUNT ̲REQUEST
RESERVE ̲SEM (VOLUME ̲TABLE ̲SEM)
LOOP FROM YOUNGEST TO OLDEST
NAME is actual volume name
CASE TEST ̲VOLUME ̲IN ̲LIST (NAME):
ERROR? - FOUND = FALSE
OK? - FOUND = TRUE
END CASE
FOUND EQ TRUE?- EXIT
FINISHED? - EXIT
END LOOP
SIGNAL ̲SEM (VOLUME ̲TABLE ̲SEM)
FOUND EQ TRUE?
M̲O̲U̲N̲T̲ ̲U̲N̲K̲N̲O̲W̲N̲ M̲O̲U̲N̲T̲ ̲K̲N̲O̲W̲N̲
V̲O̲L̲U̲M̲E̲ V̲O̲L̲U̲M̲E̲
OUTSTANDING ̲MOUNT ̲REQ = TRUE
RETURN
FIGURE 4.2.3.4.1.5-21
M̲O̲U̲N̲T̲ ̲K̲N̲O̲W̲N̲ ̲V̲O̲L̲U̲M̲E̲
SEND MOUNT REQUEST REPORT
WITH VOLUME OF NAME
FIGURE 4.2.3.4.1.5-22
4.2.3.4.2 D̲T̲G̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲M̲o̲d̲u̲l̲e̲
4.2.3.4.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
This module performs the off-line DTG retrieval i.e
handling of DTG keys.
4.2.3.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲
This DTG retrieval module is being called by offline
retrieval main module when an offline DTG retrieval
has been detected.
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
DTG ̲RETRIEVAL ( )(CC)
The interfaces downwards are as follows:
Offline disk error handling
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
OFFL ̲DISK ̲ERROR
(ERROR: INTEGER) ( )
Return not found retrieval answer
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
O ̲RETURN ̲NOT ̲FOUND
(OFFL ̲LIST ̲NO: INTEGER) ( )
Return pointer to secified PRI catalogue entry
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
POINT ̲O ̲PRI ̲ENTRY
(PHYS ̲ENTRY ̲NO: POINTER)
(PRI ̲ENTRY ̲POINTER: POINTER,
OFFL ̲ERROR: INTEGER)
Return found CIF to retrieval requestor
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
O ̲RETURN ̲CIF
(MAIN ̲ENTRY: POINTER) ( )
Check originator keys
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲ORIGINATOR ̲KEYS
(ORIGINATOR ̲KEYS: ORIGINATOR ̲KEYS,
ORIGINATOR ̲RETRIEVAL ̲RECORD: RETRIEVAL ̲RECORD ̲TYPE
̲3
MASK: BIT ̲MASK)
(MATCH: KEY ̲MATCH ̲TYPE)
Check security
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲SECURITY
(ENTRY: MAIN ̲ENTRY,
REQUEST: RETRIEVAL ̲RECORD ̲TYPE ̲3)
(MATCH: KEY ̲MATCH ̲TYPE)
Check main entry parameters
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲MAIN ̲ENT ̲PARS
(ENTRY: MAIN ̲ENTRY,
FLACS: INTEGER)
(MATCH: KEY ̲MATCH ̲TYPE)
Check CAMPS type
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
CHECK ̲CAMPS ̲TYPE
(ENTRY: MAIN ̲ENTRY,
RETR ̲TYPE: INTEGER)
(MATCH: KEY ̲MATCH ̲TYPE)
Request is sent for next volume
C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
O ̲SEND ̲FOR ̲NEXT ̲VOLUME
(VOLUME ̲NAME: POINTER)
(OFFL ̲ERROR: INTEGER)