top - download
⟦604f6f5e6⟧ Wang Wps File
Length: 26355 (0x66f3)
Types: Wang Wps File
Notes: Spelunked
Names: »~ORPHAN60.08«
Derivation
└─⟦7985b6947⟧ Bits:30005810 8" Wang WCS floppy, CR 0117A
└─ ⟦this⟧ »~ORPHAN60.08«
WangText
:…07…9…0b…9…0e…9…01…9 9…07…8…0a…8…0d……86…1
…02…
…02…
…02…
…02…CPS/SDS/026
…02…BMN/820506…02……02…
TABLE MANAGEMENT
DETAILED DESIGN SPECIFICATION…02……02…CAMPS
4.2.3 T̲M̲P̲ ̲M̲o̲n̲i̲t̲o̲r̲
TMP Monitor is a subpackage maintaining all TMP interfaces.
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 TMP MON functions are grouped as shown on fig.
4.2.4.1-1.
Most functions are passed on to the TMP process except
from those contained in the TMP MON function Module
which requires fast access and are therefore performed
by TMP MON itself and those contained in the Main Module
which is the central init, aswer ̲received, complete
and cancel points in TMP MON .
All access to TMP MON are passed through System Call
Monitor and must thus follow the general System Call
Monitor interface.
Refer to Module Specification 4.2.3.1 - 4.2.3.3.
Figure 4.2.3.1-1…86…1 …02… …02… …02… …02… …02…
4.2.3.2 S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲
4.2.3.2.1 S̲C̲M̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
- REQUEST cf.
4.2.3.4.1.5
a
- GET ̲TMP ̲STATISTICS cf.
4.2.3.4.1.5
b
- GET ̲TABLE ̲ATTRIBUTES cf.
4.2.3.4.1.5
c
- LOCK ̲TABL cf.
4.2.3.4.1.5
d
- UNLOCK ̲TABLE cf.
4.2.3.4.1.5
e
- REORGANIZE cf.
4.2.3.4.1.5
f
- ABANDON ̲REORGANIZE cf.
4.2.3.4.1.5
g
- BACKUP cf.
4.2.3.4.1.5
h
- SYSTEM ̲START ̲UP cf.
4.2.3.4.1.5
i
- SET ̲GSN ̲FLAGS cf.
4.2.3.4.1.5
j
- SET ̲SYSTEM ̲PARAMETE cf.
4.2.3.4.1.5
k
- SET ̲GSN cf.
4.2.3.4.2.5
a
- GET ̲GSN cf.
4.2.3.4.2.5
b
- DAILY ̲GSN ̲RESET cf.
4.2.3.4.2.5
c
- GET ̲SYSTEM ̲PARAMETER cf.
4.2.3.4.2.5
d
4.2.3.2.2 I̲n̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
- TMP ̲INIT cf.
4.2.3.4.3.5
a
- TMP ̲ANSWER ̲RECEIVED cf.
.2.3.4.3.5
a
- TMP ̲CANCEL cf.
4.2.3.4.3.5
a
- TMP ̲COMPLETE cf.
4.2.3.4.3.5
a
- WAIT cf.
4.2.3.4.3.5
a
4.2.3.3 D̲a̲t̲a̲ ̲F̲l̲o̲w̲,̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲,̲ ̲a̲n̲d̲ ̲W̲a̲i̲t̲i̲n̲g̲ ̲P̲o̲i̲n̲t̲s̲
The Control Logic is shown in figure 4.2.3.3-1.
The two waiting points for "answer eceived" and "function
completion" are placed as follows:
- The procedure SEND ̲TO ̲TMP contains the waiting
point "answer received". It shall save its return
address and possible other variables in the SOCB.
The procedure is called in all the SCM rocedures
contained in the TMP process functions module and
no other procedure contains an "answer received"
waiting point.
- Each of the SCM procedures contains a "function
completion" waiting point. This waiting point is
contained in the procedre WAIT.…86…1 …02… …02…
…02… …02… …02…
Figure 4.2.3.3-1…86…1 …02… …02… …02… …02… …02…
4.2.3.4 M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
4.2.3.4.1 T̲M̲P̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲M̲o̲d̲u̲l̲e̲
4.2.3.4.1.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The TMP process functions module contains the following
functions, th functional description of which can be
found as follows:
a) Request cf.
(b)
4.1.1
b) Get TMP statistics cf.
(b)
4.1.2
c) Get table attributes cf.
(b)
4.1.3
d) Lock table cf.
(b)
4.1.4
e) Unlock table cf.
(b)
4.1.5
f) Reorganize cf.
(b
4.1.6
g) Abandon reorganize cf.
(b)
4.1.7
h) Backup cf.
(b)
4.1.8
i) System Start up cf.
(b)
4.1.9
j) Set GSN flags cf.
(b)
4.1.13
k) Set system parameters cf.
(b)
4.1.14
4.2.3.4.12 I̲n̲t̲e̲r̲f̲a̲c̲e̲
The module has the following package inerfaces:
a) Request cf.
(b)
4.1.1
b) Get TMP statistics cf.
(b)
4.1.2
c) Get table attributes cf.
(b)
4.1.3
d) Lock table cf. (b) 4.1.4
e) Unlock table cf. (b) 4.1.5
f) Reorganize cf. (b) 4.1.6
g) Abandon reorganize cf. (b) 4.1.7
h) Backup cf. (b) 4.1.8
i) System Start up cf.(b) 4.1.9
j) Set GSN flags cf. (b) 4.1.13
k) Set system parameters cf. (b) 4.1.14
4.2.3.4.1.3 C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
Refer figure 4.2.3.4.1.3-1
The Components
- REQUEST cf. 4.2.3.4.1.5 a
- GET ̲TMP ̲STATISTICS cf. 4.2.3.4.1.5 b
- GET ̲TABLE ̲ATTRIBTES cf. 4.2.3.4.1.5 c
- LOCK ̲TABLE cf. 4.2.3.4.1.5 d
- UNLOCK ̲TABLE cf. 4.2.3.4.1.5 e
- REORGANIZE cf. 4.2.3.4.1.5 f
- ABANDON ̲REORGANIZE cf. 4.2.3.4.1.5 g
- BACKUP cf. 4.2.3.4.1.5 h
- SYSTEM ̲START ̲UP cf. 4.2.3.4.1.5 i
- SET ̲GSN ̲FLAGS cf. 42.3.4.1.5 j
- SET ̲SYSTEM ̲PARAMETER cf. 4.2.3.4.1.5 k
are SCM procedures
- SEND ̲TO ̲TMP cf. 4.2.3.4.1.5 l
is an internal procedure.
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
An info block is sent to specified SYNCEL.
The procedure contains a waiting poin.
C̲a̲l̲l̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
SEND ̲TO ̲TMP (SYNCEL: OBJ ̲INDEX,
INFO: POINTER)
CHECK ̲CC cf. 4.2.3.4.1.5 m
internal procedure
C̲a̲l̲l̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
CHECK ̲CC (CC: COMPLETION ̲CODE)
Figure 4.2.3.4.1.3-1…86…1 …02… …02… …02… …02… …02…
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̲
SYNC ̲INFO cf. (a) 3.4.1.4
OBJ ̲INDEX cf. (a) 4.2
REQUEST ̲INFO cf. 4.2.3.7.1
GET ̲TMP ̲STATISTICS ̲INFO cf.
4.2.3.7.1
GET ̲TM ̲STATISTICS ̲RESPONSEcf. 4.2.3.7.2
GET ̲TABLE ̲ATTRIBUTES ̲INFO cf.
4.2.3.7.1
LOCK ̲TABLE ̲INFO cf. 4.2.3.7.1
LOCK ̲TABLE ̲INFO cf. 4.2.3.7.1
UNLOCK ̲TABLE ̲INFO cf. 4.2.3.7.1
REORGANIZE ̲INFO cf. 4.2.3.7.1
ABANDON ̲REORGANIZE ̲INFO cf.
4.2.3.7.1
ACKUP ̲INFO cf. 4.2.3.7.1
SYSTEM ̲START ̲UP ̲INFO cf. 4.2.3.7.1
SET ̲GSN ̲FLAGS ̲INFO cf. 4.2.3.7.1
SET ̲SYSTEM ̲PARAMETER ̲INFO cf.
4.2.3.7.1
NORMAL ̲RESPONSE cf. 4.2.3.7.2
SOCB ̲ARRAY cf. (a) 4.3
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
SOCB.SS ̲DATA (m)
c) L̲o̲c̲a̲l̲ ̲D̲a̲a̲
INFO: SYNC ̲INFO;
UPDATE ̲SYNCEL,
SEARCH ̲SYNCEL: OBJ ̲INDEX;
used in SEND ̲TO ̲TMP
N ̲REQUEST ̲PARAMS,
R ̲REQUEST,
D ̲REQUEST,
N ̲REQUEST: INTEGER;
used in call of CSF ̲TRACE
4.2.3.4.1.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
E̲x̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
CHEK ̲PAGE ̲ACCESS cf. 4.2.3.6.2
CSF ̲TRACE (b) 4.1.7.2.1.12
SEND (d) 4.1.6.2
TMP ̲RETIRE cf. 4.2.3.6.3…86…1 …02… …02…
…02… …02… …02…
a) R̲e̲q̲u̲e̲s̲t̲
Narrative:
It is checked that the specified PARAMS are located
in the logical dataspace of calling process. If
not, the caller is retired. It is checked that
the unction specified in PARAMS is a legal function.
If not, the caller is retired.
Then a SYNCEL infoblock is updated according to
the type REQUEST ̲INFO and a message is sent to
the TMP process by calling SEND ̲TO ̲TMP. If a search
function is specifed the message is sent to the
SEARCH ̲SYNCEL. If not it is sent to the UPDATE
̲SYNCEL.
Upon return the completion code received is checked
and function completion is awaited.
Waiting point in SEND ̲TO ̲TMP and WAIT.
Flowgram: See figure 4.2.3..1.5-1.
b) G̲e̲t̲-̲T̲M̲P̲-̲S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲
Narrative:
A SYNCEL infoblock of proper type is updated and
a message is sent to TMP by calling SEND ̲TO ̲TMP.
Upon return the completion code received is checked
and function completion is awaited.
Waitingpoint in SEND ̲TO ̲TMP and WAIT.
Flowgram. See figure 4.2.3.4.1.5-2.
c) G̲e̲t̲ ̲T̲a̲b̲l̲e̲ ̲A̲t̲t̲r̲i̲b̲u̲t̲e̲s̲
Narrative:
As for Get TMP Statistics.
Flowgram: See figure 4.2.3.4.1.5-3.
d) L̲o̲c̲k̲ ̲T̲a̲b̲l̲e̲
Narrative:
As for Get TMP statistics.
Flowgram: See figure 4.2.3.4.1.5-4.
e) U̲n̲l̲o̲c̲k̲ ̲T̲a̲b̲l̲e̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
As for Get TMP statistics
Flowgram: See figue 4.2.3.4.1.5-5
f) R̲e̲o̲r̲g̲a̲n̲i̲z̲e̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
As for Get TMP statistics
Flowgram: See fig. 4.2.3.4.1.5-6
g) A̲b̲a̲n̲d̲o̲n̲ ̲R̲e̲o̲r̲g̲a̲n̲i̲z̲e̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
As for Get TMP statistics
Flowgram: See figure 4.2.3.4.1.5-7
h) B̲a̲c̲k̲u̲p̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
As or Get TMP statistics
Flowgram: See figure 4.2.3.4.1.5-8
i) S̲y̲s̲t̲e̲m̲ ̲S̲t̲a̲r̲t̲ ̲U̲p̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
As for Get TMP statistics
Flowgram: See fig. 4.2.3.4.1.5-9
j) S̲E̲T̲ ̲G̲S̲N̲ ̲F̲l̲a̲g̲s̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
It is checked that specified GSN ̲ID is valid and
if not the caller is retired. The GSN ̲ID is converted
to index in GSN ̲array.
Continues as forGet TMP statistics
F̲l̲o̲w̲g̲r̲a̲m̲:̲ See fig. 4.2.3.4.1.5-10
k) S̲e̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
As for Get TMP statistics
F̲l̲o̲w̲g̲r̲a̲m̲:̲ See fig. 4.2.3.4.1.5-11
l) S̲e̲n̲d̲ ̲t̲o̲ ̲T̲M̲P̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
Sends the specified infoblock to specified SYNCELin
TMP process by calling the Damos communication
procedure SEND.
Then saves LINK in SOCB and waits for "answer received"
by calling the procedure WAIT.
Upon return LINK is fetched from SOCB
Waiting point in WAIT
F̲l̲o̲w̲g̲r̲a̲m̲:̲
NA
m) C̲E̲C̲K̲ ̲C̲C̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
It is checked that specified completion code is
an informative one. If not the CC is fatal and
the caller is Retired.
Then the SOCB, is updated by calling UPDATE ̲SOCB
F̲l̲o̲w̲g̲r̲a̲m̲:̲
NA…86…1 …02… …02… …02… …02… …02…
REQUEST (PARAMS: TMP ̲PARAM)
(CC: COMPLETION
̲CODE)
ERROR ̲OK
start
CSF ̲TRACE(N ̲REQUEST, R ̲REQUEST, 0, NIL)
CSF ̲TRACE(N ̲REQUEST ̲PARAMS, P ̲REQUES,
SIZE(TMP ̲PARAM), PARAMS)
CHECK ̲PAGE ̲ACCESS((PARAMS), SIZE(TMP ̲PARAM))
PARAM.FUNCTION ILLEGAL? --TMP ̲RETIRE(TMP, ILLEGAL
̲ FUNCTION)
EQUIVALENCE(INFO.DATA, REQUEST ̲INFO)
Update INFO with
XFER =
SIZE = SIZE(REQUEST ̲INFO)
DTA.SOCB = SOCB
DATA.FUNCTION-PARAMS.FUNCTION SHIFT 8 ADD TMP
̲
REQUEST
DATA.TABLE ̲ID = PARAMS.TABLE ̲ID
DATA.PARAMS = PARAMS
PARAMS.FUNCTION EQ SEARCH ̲FUNCTION?
SYNCEL = UPDATE ̲SYNCEL
(SYNCEL = SEARH ̲SYNCEL)
SEND ̲TO ̲TMP(SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-1 REQUEST
GET ̲TMP ̲STATISTICS (FIRST: TABLE ̲ID
̲TYPE,
LAST: TABLE ̲ID
̲TYPE,
COUNT: INTEGER)
(BUFFER: POINTER,
LAST: TABLE ̲ID
̲TYPE,
COUNT: INTEGER,
CC: OMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, GET ̲TMP ̲STATISTICS ̲INFO)
Update INFO with:
XFER =
SIZE = SIZE(GET ̲TMP ̲STATISTICS ̲INFO)
DATA.SOCB = SOCB
DATA.FUNCTION = GET ̲TMP ̲STATISTICS
DATA.SUBPROCESS = CURREN ̲SUBPROCESS
DATA.FIRST = FIRST, LAST = LAST
DATA.COUNT = COUNT, BUFFER = BUFFER
SEND ̲TO ̲TMP(SEARCH ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, GET ̲TMP ̲STATISTICS ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
Update SOCB with outputparameters
WAIT
restre
ENTER
stop
Figure 4.2.3.4.1.5-2
GET ̲TABLE ̲ATTRIBUTES (TABLE ̲ID: TABLE ̲ID
̲TYPE)
(ATTRIBUTES: TABLE ̲ATTRIBUTES):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, GET ̲TABLE ̲ATTRIBUTES ̲INFO)
Update INFOwith:
XFER =
SIZE = SIZE(GET ̲TABLE ̲ATTRIBUTES ̲INFO)
DATA.SOCB: SOCB
DATA.FUNCTION: GET ̲TABLE ̲ATTRIBUTES
DATA.SUBPROCESS: CURRENT ̲SUBPROCESS
DATA.TABLE ̲ID: TABLE ̲ID ̲TYPE
DATA.PARAMS: ATTRIBUTES %
SEND ̲TO ̲TMP(SEARCH ̲SYNCEL, IFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-3
LOCK ̲TABLE (TABLE ̲ID: TABLE ̲ID
̲TYPE)
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, LOCK ̲TABLE ̲INFO)
Update INFO with:
XFER =
SIZ = SIZE(LOCK ̲TABLE ̲INFO)
DATA.SOCB = SOCB
DATA.FUNCTION = LOCK ̲TABLE
DATA.SUBPROCESS ̲ID = CURRENT ̲SUBPROCESS
DATA.TABLE ̲ID = TABLE ̲ID
SEND ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
AIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-4
UNLOCK ̲TABLE (TABLE ̲ID: TABLE ̲ID
̲TYPE)
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, UNLOCK ̲TABLE ̲INFO)
Update INFO with:
XFER =
IZE = SIZE(UNLOCK ̲TABLE ̲INFO)
DATA.SOCB = SOCB
DATA.FUNCTION = UNLOCK ̲TABLE
DATA.SUBPROCESS ̲ID = CURRENT ̲SUBPROCESS
DATA.TABLE ̲ID = TABLE ̲ID
SEND ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.C)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-5
REORGANIZE ( )
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, REORGANIZE ̲INFO)
Update INFO with:
XFER =
SIZE = SIZE(REORGANIZEINFO)
DATA.SOCB = SOCB
DATA.FUNCTION = SOCB
DATA.SUBPROCESS = CURRENT ̲SUBPROCESS
SENT ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-6
ABANDON ̲REORGANIZE ( )
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, ABANDON ̲REORGANIZE ̲INFO)
Update INFO with:
XFER =
SIZE = IZE(ABANDON ̲REORGANIZE ̲INFO)
DATA.SOCB = SOCB
DATA.FUNCTION = ABANDON ̲REORGANIZE
DATA.SUBPROCESS = SUBPROCESS ̲ID
SEND ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
WAIT
restore register
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-7
BACKUP ( )
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, BACKUP ̲INFO)
Update INFO with:
XFER =
SIZE = SIZE(BACKUP ̲INFO)
ATA.SOCB = SOCB
DATA.FUNCTION = BACKUP
DATA.SUBPROCESS = CURRENT ̲SUBPROCESS
SEND ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure4.2.3.4.1.5-8
System Start Up (MODE: START ̲UP
̲TYPE)
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, BACKUP ̲INFO)
Update INFO with:
XFER =
SIZE = IZE(SYSTEM ̲START ̲UP ̲INFO)
DATA.SOCB = SOCB
DATA.FUNCTION = SYSTEM ̲START ̲UP
DATA.SUBPROCESS = CURRENT ̲SUBPROCESS
SEND ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-9
SET ̲GSN ̲FLAGS (GSN ̲ID: GSN ̲ID
̲TYPE)
DAILY ̲RESET: BOOLEAN,
THREE ̲DIGIT: BOOLEAN) (CC: COMPLETION
̲CODE):
ERROR ̲OK
start
CHECK ̲GSN ̲ID(GSN ̲ID)(ID)
EQUIVALENCE(INFO.DATA, SET ̲GSN ̲FLAGS ̲INFO)
Update INFO with:
XFER =
SIZE = SIZE(SET ̲GSN ̲FLAGS ̲INFO)
DATA.SOCB = SOCB
DATA.FUNCTION = SET ̲GSN ̲FLAGS
DATA.SUBPROCESS = CURRENT ̲SUBPROCESS
DATA.GSN ̲ID = ID
DATA.DAILY ̲RESET = AILY ̲RESET
DATA.THREE ̲DIGIT = THREE ̲DIGIT
SEND ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSER.CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-10
SET ̲SYSTEM ̲PARAMETER (PARAMETER ̲ID:PARAMETER
̲ID ̲TYPE,
PARAMETER: POINTER
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
EQUIVALENCE(INFO.DATA, SET ̲SYSTEM ̲PARMETER ̲INFO)
Update INFO with:
XFER =
SIZE = SIZE(SET ̲GSN ̲SYSTEM ̲PARAMETER ̲INFO)
DATA.SOCB = SOCB
DATA.FUNCTION = SET ̲SYSTEM ̲PARAMETER
DATA.SUBPROCESS = CURRENT ̲SUBPROCESS
DATA.PARAMETER ̲ID = PARAMETER ̲ID
DATA.PARAMS = PARAMTER
SEND ̲TO ̲TMP(UPDATE ̲SYNCEL, INFO)
EQUIVALENCE(ANSWER, NORMAL ̲RESPONSE)
CHECK ̲CC(ANSWER.CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
Figure 4.2.3.4.1.5-11
4.2.3.4.2 T̲M̲P̲ ̲m̲o̲n̲i̲t̲o̲r̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲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̲
The TMP monitor functions module contains the functions,
the functional Description of which can be fund as
follows:
a) Set Global Serial Number cf. (b) 4.1.10
b) Daily Global Serial Number Reset cf. (b) 4.1.11
c) Get Global Serial Number cf. (b) 4.1.12
d) Get System Parameters cf. (b) 4.1.15
4.2.3.4.2.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
The Modul has the following interfaces, which all are
Package Interfaces:
a) Set Global Serial Number cf. (b) 4.1.10
b) Daily Global Serial Number Reset cf. (b) 4.1.11
c) Get Global Serial Number cf. (b) 4.1.12
d) Get System Parameters cf. (b) 4.1.15
4.2.3.4.2.3 C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
refer figure 4.2.3.4.2.3-1
The components,
- SET ̲GSN cf. 4.2.3.4.2.5.a
- DAILY ̲GLOBAL ̲SERIAL ̲NUMBER ̲RESET cf. 4.2.3.4.2.5.b
- GET ̲GSN cf. 4.2.3.4.2.5.c
- GET ̲SYSTEM ̲PARAMETERS cf. 4.2.3.4.2.5.d
are implemented a SCM procedures
- BINARY ̲TO ̲ASCII cf. 4.2.3.4.2.5.e
Internal procedure
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
A binary number is converted to three or four character
ASCII number depending on the parameter THREE ̲DIGIT.
If it is a three character ASCII number thefirst character
will be a space.
C̲a̲l̲l̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
BINARY ̲TO ̲ASCII(BIN ̲VALUE: INTEGER,
THREE ̲DIGIT: BOOLEAN)
(ASCII ̲VALUE: LONG)
- ASCII ̲TO ̲BINARY cf. 4.2.3.4.2.5.f
Internal procedure
F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
A four characer ASCII number is converted to a binary
value.
C̲a̲l̲l̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
ASCII ̲TO ̲BINARY(ASCII ̲VALUE: LONG)
(BIN ̲VALUE: INTEGER)
Figure 4.2.3.4.2.3 TMP MON function module components
4.2.3.4.2.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̲
GSN ̲ELEMENT cf. 4.1.4.6
GSN ̲ARRAY cf. 4.1.4.6
SYSTEM ̲PARAMETER ̲ARRAY cf. 4.1.4.5
TMP ̲HW ̲SEM cf. 4.1.4.7
GSN ̲GROUP cf. 4.14.6
PARAMETER ̲SPECIFIER ̲ARRAY cf. 4.1.4.5
PARAMETER ̲SPECIFIER cf. 4.1.4.5
b) E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲
GSN ̲ELEMENT.DAILY ̲RESET
GSN ̲ELEMENT.THREE ̲DIGIT
GSN ̲ELEMENT.GSN (m)
SYSTEM ̲PARAMETER ̲SPECIFIER.LENGTH
SYSTEM ̲PARAMETER ̲SPECIFIER.PARAMETER
TMP ̲HW ̲SEM (m)
MAX ̲SYSTEM.PARAMETERS: INTEGER
c) L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲
NA
4.2.3.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲
E̲x̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
CHECK ̲PAGE ̲ACCESS 4.2.3.6.2
TMP ̲RETIRE 4.2.3.6.3
CHECK ̲GSN ̲ID 4.2.3.6.1
a) G̲e̲t̲ ̲G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲
Checs if the specified GSN reference is a Valid
GSN reference. If not the caller is retired.
The GSN ̲ARRAY is reserved by Locking TMP ̲HW ̲SEM.
If the parameter INCREASE is TRUE the specified
GSN ̲ARRAY element is incremented according to the
followng rule:
A three digit GSN will allways wrap around to 1
after 999 and a four digit GSN will allways wrap
around to 1 after 9999.
Then the specified GSN is read and the TMP ̲HW ̲SEM
is unlcked.
The output is converted to ASCII and SOCB is updated
Function completion is awaited
Waiting point is WAIT
F̲l̲o̲w̲g̲r̲a̲m̲:̲
See fig. 4.2.3.4.2.5-1
b) D̲a̲i̲l̲y̲ ̲G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲ ̲r̲e̲s̲e̲t̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
Checks if the GSN reference is a vaid GSN reference.
If not the caller is retired.
The GSN ̲ARRAY is reserved by locking TMP ̲HW ̲SEM.
If the DAILY ̲RESET flag of the specified GSN is
set the specified GSN is for a three digit GSN
set to 999 and for a four digit GSN set to 9999.
Te TMP ̲HW ̲SEM is unlocked and function completion
awaited.
Waiting point is WAIT.
F̲l̲o̲w̲g̲r̲a̲m̲:̲
See fig. 4.2.3.4.2.5-2
c) S̲e̲t̲ ̲G̲l̲o̲b̲a̲l̲ ̲S̲e̲r̲i̲a̲l̲ ̲N̲u̲m̲b̲e̲r̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
Checks if the GSN reference is a valid GSN reference.
If not the caller is retred.
The input GSN ASCII value is converted to binary.
The GSN array is locked.
Then the specified GSN array element is set to
binary GSN value according to the Three DIGIT flag.
If any discrepancy exists an informative CC is
reurned.
Then the GSN array is unlocked and function completion
is awaited.
Waiting point is WAIT.
F̲l̲o̲w̲g̲r̲a̲m̲:̲
See fig. 4.2.3.4.2.5-3
d) G̲e̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
It is checked that the specified output address
is within the ogical dataspace of caller and that
the parameter reference is a valid parameter reference.
If these checks are not successfull the caller
is retired.
then a pointer to the wanted parameter is read
from the SYSTEM ̲PARAMETER ̲POINTER ̲ARRAY and thecorresponding
SYSTEM ̲PARAMETER is reserved by locking TMP ̲HW
̲SEM.
Then the parameter is written to the buffer specified
by caller.
The TMP ̲HW ̲SEM is unlocked and function completion
is awaited.
Waiting point in WAIT.
F̲l̲o̲w̲g̲r̲a̲m̲:̲
See fi. 4.2.3.4.2.5-4
e) B̲i̲n̲a̲r̲y̲ ̲t̲o̲ ̲A̲S̲C̲I̲I̲
N̲a̲r̲r̲a̲t̲i̲v̲e̲:̲
The Binary value is converted to a four character
ASCII value.
If THREE ̲DIGIT is TRUE the most significant ASCII
value will be a space.
TheASCII value will be filled out with preceeding
zeroes .
F̲l̲o̲w̲g̲r̲a̲m̲:̲
NA
f) A̲S̲C̲I̲I̲ ̲t̲o̲ ̲b̲i̲n̲a̲r̲y̲
The three or four character ASCII value is converted
to a binary value.
F̲l̲o̲w̲g̲r̲a̲m̲:̲
NA
GET ̲GSN (GSN ̲ID: GSN
̲ID
̲TYPE,
INCREASE: BOOLEAN,
(GSN ̲VALUE:LONG (CC: COMPLETION
̲CODE):
ERROR ̲OK
start
CHECK ̲GSN(GSN ̲ID)(ID)
LOCK(TMP ̲HW ̲SEM)
INCREASE EQ FALSE?
EQUIVALENCE(GSN ̲ARRAY(ID), ELEMENT: GSN ̲ARRAY ̲ELEMENT)
ELEMENT.GSN EQ 999 AND
ELEMENT.THREE ̲DIGIT EQ TRUE ? -ELEMENT.GSN =
1
OR ELEMENT.GSN EQ 9999
INCREMENT ̲ELEMENT.GSN
BINARY ̲TO ̲ASCII(ELEMENT.GSN, ELEMENT.HREE ̲DIGIT)(GSN
̲
VALUE)
UNLOCK(TMP ̲HW ̲SEM)
Update SOCB with: DONE and RETURN ̲REGISTERS
UPDATE ̲SOCB(OK)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
SET ̲GSN (GSN ̲ID: GSN
̲ID
̲TYPE,
(GSN ̲VALUE:GSN ̲TEXT
̲TYPE) (CC: COMPLETION
̲CODE):
ERROR ̲OK
start
CHECK ̲GSN ̲ID(GSN ̲ID)(ID)
ASCII ̲TO ̲BINARY(GSN ̲VALUE)(GSN)
LOCK(TMP ̲HW ̲SEM)
EQUIVALENCE(GSN ̲ARRAY(ID), ELEMENT: GSN ̲ARRAY ̲ELEMENT)
GSN GT 999 and
ELEMENT.THREE ̲DIGIT EQ FALSE ? -CC = ILLEGAL ̲GSN
̲FORMAT
ELEMENT.GSN = GSN
CC = OK
UNLOCK(TMP ̲HW ̲SEM)
SOCB.STATUS: DONE
UPDATE SOCB(C)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
DAILY ̲GSN ̲RESET (GSN ̲ID: GSN
̲ID
̲TYPE,
(CC: COMPLETION
̲CODE):
ERROR ̲OK
start
CHECK ̲GSN ̲ID(GSN ̲ID)(ID)
EQUIVALENCE(GSN ̲ARRAY(ID), ELEMENT: GSN ̲ARRAY ̲ELEMENT)
LOCK(TMP ̲HW ̲SEM)
ELEMENT.DAILY ̲RESET
? CC = REJECTED
EQ FALSE
ELEMENT.THREE ̲DIGIT EQ TRUE ? -ELEMENT.GSN = 999
ELEMENT.GSN = 9999
UNLOCK(TMP ̲HW ̲SEM)
CC = OK
SOCB.STATUS = DONE
UPDATE ̲SOCB(CC)
WAIT
restore registers
ENTER(SCM ̲RETURN)
stop
GET ̲SYSTEM ̲PARAMETERS (PARAMETER ̲ID: PARAMETER
̲ID ̲TYPE)
(OUTPUT ̲PARAM: SYSTEM
̲PARAMETER,
CC: COMPLETION
̲CODE):
ERROR ̲OK
start
CHECK ̲PAGE ̲ACCESS(OUTPUT ̲ARAM)
PARAMETER ̲ID GT MAX ̲SYSTEM ̲PARAMETERS
LOCK(TMP ̲HW ̲SEM)
EQUIVALENCE(SYSTEM ̲PARAMETER ̲POINTER ̲ARRAY(PARAMETER
̲ID),
ELEMENT: SYSTEM ̲PARAMETER
̲SPECIFIER)
PARAMETER% = ELEMENT.PARAM
L = 1
LOOP
OUTPUT ̲PARAM(L) = PARAMETER(L)
L = ELEMENT.LENGTH (( EXIT
INCREMENT (L)
END LOOP
UNLOCK(TMP ̲HW ̲SEM)
SOCB.STATUS = DONE
UPDATE ̲SOCB(OK)
WAIT
restore registers
ENTER(SCM ̲RETURN)
TMP ̲RETIRE(TMP, PARAMETER ̲ID ̲ERROR)
stop
4.2.3.4.3 M̲a̲i̲n̲ ̲M̲o̲d̲u̲l̲e̲
4.2.3.4.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 Main Module is implemented as 4 procedures called
by system Call Monitor;
TMP ̲INIT, TMP ̲ANSWER ̲RECEIVED, TMP ̲CMPLETE ̲FUNCTION,
TMP ̲CANCEL, and 1 procedure used by actual functions
WAIT.
a) T̲M̲P̲ ̲I̲N̲I̲T̲
The Function Parameter delivered by system Call
Monitor is used to select one of the external TMP
monitor SCM procedures described in 4.2.3.4.1.
The selectd procedure is entered. When it reaches
the point where answer from TMP shall be awaited,
it places the address of the continuation point
in the SOCB and returns to system Call Monitor.
b) T̲M̲P̲ ̲A̲N̲S̲W̲E̲R̲ ̲R̲E̲C̲E̲I̲V̲E̲D̲
Uses the continuation address in SCB to enter the
procedure which has initiated the operation represented
by SOCB. When the answer has been checked, the
procedure now saves in SOCB the continuation address
for function completion and returns to system Call
Monitor.
c) T̲M̲P̲ ̲C̲O̲M̲P̲L̲E̲T̲ ̲F̲U̲N̲C̲T̲I̲O̲N̲
The continuation address in SOCB is used to enter
the procedure which recently processed the answer
from TMP. The procedure completes its work and
returns output to system Call Monitor.
d) T̲M̲P̲ ̲C̲A̲N̲C̲E̲L̲
Cancel has no effect on TMP fuctions.
Returns to system Call Monitor.
e) W̲A̲I̲T̲
Saves the continuation address and returns to system
Call Monitor.…86…1 …02… …02… …02… …02… …02…
…02…
4.2.3.4.3.2 Interface
a) T̲M̲P̲ ̲i̲n̲i̲t̲
C̲a̲l̲l̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
TMP ̲INIT (FUNCTION
:
I
̲FUNCTION,
1) C
̲SOCB
:
POINTER,
INR04)
(OUTR04,
2) EXIT
:
EXIT
̲NO,
CC : COMPLETION ̲CODE)
TMP ̲INIT (R0, R1, R2, R3, R4, R5, R7, R6)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
refer 4.1.7.2.6.-4.
b) T̲M̲P̲ ̲A̲n̲s̲w̲e̲r̲ ̲R̲e̲c̲e̲i̲v̲e̲d̲
C̲a̲l̲l̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
1) TMP ̲ANSWER ̲RECEIVED (ANSWER
:POINTER,
FIRST
̲SOCB
:POINTER,
LAST
̲SOCB
:POINTER)
(DONE
̲COUNT:INTEGER,
DONE
̲SOCB
:POINTER)
2) TMP ̲ANSWER ̲RECEIVED (R4,R6,R7,R5)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
refer 4.1.7.2.6--4.
c) T̲M̲P̲ ̲C̲o̲m̲p̲l̲e̲t̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲
C̲a̲l̲l̲ ̲c̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
1) TMP ̲COMPLETE ̲FUNCTION (C
̲SCB
:
POINTER)
(OUTR04;
EXITNO
:
INTEGER,
CC
:
COMPLETION
̲CODE)
2) TMP ̲COMPLETE ̲FUNCTION (R0,
R1,
R2,
R3,
R4,
R6,
R7,
R5)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
refer 4.1.7.2.6-4
d T̲M̲P̲ ̲C̲a̲n̲c̲e̲l̲
C̲a̲l̲l̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
1) TMP ̲CANCEL (C ̲SOCB : POINTER)
2) TMP ̲CANCEL (R2, R5)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
refer 4.1.7.2.6-4
e) WAIT
C̲a̲l̲l̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
1) WAIT
2) WAIT (R5)
R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲
C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
R5 LINK
R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲
NA
4.2.3.4.3.3 C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲
I̲n̲t̲e̲r̲n̲a̲l̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲
- TMPMON ̲INIT cf. 4.2.3.4.3.5.a
- TMP ̲ANSWE