• Aucun résultat trouvé

10 11112 13 14 15 16 17 18 19120 212223:24252627128293031

Flags fl through f5 in word 1 of the FPT have the signifi-cance indicated below (when fi

=

1).

Flag Significance

fl NOERR was specified. Error records are to be suppressed from the Error Log for this device.

f2 CHAN was specified. The controller is to be reserved.

f3 SN was specified. Serial numbers are pres-ent in the F PT (in the format described below).

f4 An operational label was specified. Word 2 of the F PT has the alternate form.

f5 Reserved for future use.

The format for the SN variable length parameter is identical to that in the DDCB. The variable length parameter entry is preceded by a control word of the form:

Byte 0 - Code number (X'071) identifying the variable-length parameter.

Byte 1 - Code for .. entry position (X'OO' means more parameter entries to follow; X'O], means last parameter entry).

Byte 2 - Number of significant data words in the pa-rameter entry (if SN).

Byte 3 - Total number of words reserved for the entry, not including the control word (i .e., maximum entry length).

If the user does not have at least AO privi lege, the return is to CAL+l with CCl set.

CLOSE DIAGNOSTIC DATA CONTROL BLOCK

M:DCLOSE The Diagnostic CLOSE routine terminates and inhibits I/O through the F:DIAG DDCB. I/O cannot be performed through the DDCB until it is opened again.

M:DCLOSE allows the user to specify whether or not the device is down (partitioned).

The M:DCLOSE procedure call is of the form

M:DCLOSE [*]dcb nome

[(~Ed J

where

[*1dcb name specifies the name of the DDCB.

PART specifies that the device associated with the DDCB is to be partitioned from the system resources.

RETURN specifies that the device associated with the DDCB is to be returned to the system resources.

SAME specifies that the device associated with the DDCB is to remain in the same status (partitioned or not partitioned). The default is SAME.

The Diagnostic CLOSE routine reports the status of the de-vice to the operator with the following message:

dd{PARTITIONED}

yyn RETURNED

where yyndd identifies the device.

Calls generated by the M:DCLOSE procedure have the form CALl,6 fpt

where fpt points to word 0 of the F PT shown below.

where

specifies the PART option when set.

specifies the RETURN option when set.

f3 specifies the SAME option when set.

If the user does not have at least AO privi lege, the return is to CAL+l with CCl set.

BUILD COMMAND LIST

M:BLlST The monitor BLIST routine converts the user's virtual command list into a physical command list and stores the results in the DDCB. The routine validates that no com-mand crosses a page boundary, that the flags in the comcom-mand are correct, and that the number of I/O command double-words is less than or equal to 12.

System Procedures 111

The user's virtual command list must adhere to certain restrictions.

• The list must use virtual rather than physical addresses.

• No input/output command doubleword (IOCD) is allowed to perform I/O across a page boundary or spe-cify a byte count greater than one page {X'800' bytes}.

• The number of 10CDs must not be greater than 12.

The 10CD flags must be set as follows:

• IUE must always be set.

• IZC must always be reset.

• The last IOCD must always have ICE set.

• Command and data chained 10CDs must have ICE reset.

• The HTE flag m~st be consistently set or reset throughout all IOCDs that are data chained together.

• I/O commands which do not cause a transfer of data (e.g., skip file, rewind) must have a valid byte ad-dress and byte coun t.

The user may optionally request that the I/O be started. If this request is made, the monitor will not return control to the user unti I either the request to start I/O has been re-jected, the I/O is complete, or the I/O has timed-out. The AIO, TDV, and TIO status and condition codes are returned in the user area specified by the STATUS parameter of M:DOPEN and in the exact format as for Error Log (see Appendix E).

The M:BLIST procedure call has the form:

M:BLIST [*Jdcb name, (ADR, [*]address)[,(option)] •••

where

[*Jdcb name specifies the DDCB.

ADR, [*]address specifies the address of the user's command list.

The options are:

PRI, prior.ity specifies the priority of the I/O re-quest as a hexadecimal number (e. g., X'F6').

X'FO' is the highest priority and X'FF' is the lowest priority. {The higher the priority, the higher the placement in the queue of requests for the channel containing the referenced device.}

SIO specifi es that the I/O is to be started.

112 System Procedures

Calls generated by the M:BLIST procedure have the form:

CALl,6 fpt

where fpt points to word 0 of the FPT shown below.

word 0

word 2 - ADR (Pl)

where f1 is set to one if SIO was specified. Otherwise, it is set to zero.

If incorrect or conflicting information exists, the abnormal address specified in the DDCB will be used if it has been specified. If the user does not have at least AO privi lege, the return is to CAL +1 with CCl set.

START 110

M:SIO The start I/O procedure cal I initiates the diag-nostic I/O specified in the diagdiag-nostic DDCB. After an SIO, the monitor wi" not return control to the user until either the call has been rejected, the I/O has been completed (successfully or with errors) or the I/O has timed-out. The AIO, TDV, and TIO status and condition codes are returned in the user area specified by the STATUS parameter of M:DOPEN and in the exact format as for Error Log (see Appendix E).

The M:SIO procedure call is of the form M:SIO [*]dcb name

where [*]dcb name specifies the DDCB.

Calfs generated by the M:SIO procedure have the form CALl,6 fpt

where fpt points to word 0 of the FPT shown below.

If there is no command list in the DDCB or the validity of the command I ist has been destroyed by a swap, an abnor-mal condition resul ts. If the user does not have at least AD privilege, the return is to CAL+1 with CCl set.

LOCK IN CORE

M:lOCK The LOCK routine either locks the user in core or resumes normal swapping for the user. This lock in core reduces the user's chances of being swapped but does not ensure that the user wi II not be swapped. The user may ascertain whether a swap has occurred since the BUST CAL by comparing J :NRS (the swap count) in the JIT with the SWAPCT field in the DDCB. (SWAPCT contains the swap count at the time of the BUST CAL.) The user has not been swapped if the two values are equal. (The external refer-ence J:NRS is satisfied by loading with :JO from the :SYS account. )

The M:LOCK procedure call is of the form

where

YES specifies that the user is to be locked in core.

NO specifies that normal system swapping is to re-sume for the user.

Once a user is locked in core, his size may not change.

Therefore, the following services are not allowed:

1. Memory management CALs.

2. M:SEGLOAD, M:UNK, and M:LDTRC procedure calls.

3. Associate and disassociate processor CALs.

4. Get page CALs.

Calls generated by the M:LOCK procedure have the form CAL 1,6 fpt

where fpt points to word 0 of the FPT shown below.

word

where fl in word 1 specifies that LOCK in core has been requested (f l = l)or that the LOCK is to be released (fl =0).

If the user's privilege level is not at least AO, the return is to CAL + 1 with CCl set.

CONVERT ADDRESS

M:MAP The M:MAP procedure converts a specified virtual address to a physical address or a specified physical address to a virtual address. The converted address is stored in general register 8. The M:MAP procedure call has the form

M:MAP

(:;~),

(ADR, [*] address) where

VTP specifies virtual to physical address conversion.

PTV specifies physical to virtual address conversion.

ADR, [*] address specifi es the location ofthe address.

to be converted.

If the user has been swapped in between issuing a BLIST CAL and issuing a MAP CAL, the address returned from the MAP CAL is invalid. The user has not been swapped if J:NRS in the JIT is equal to SWAPCT in the DDCB. The user may reduce the chances of being swapped through the use of M:LOCK.

Calls generated by the M:MAP procedure have the form CALl,6 fpt

where fpt points to word 0 of the FPT shown below.

word 0

0 - - - 0 Address

B 9

where fl indicates virtual to physical address conversion (fl =0) or physical to virtual address conversion (fl = 1).

If the user's privilege level is not at least AO, the return is to CAL+l with CCl set.

OBTAIN MODEL NUMBERS AND TYPE MNEMONICS M:DMOD# The DMOD# routine obtains the controller model number, the device model number, and the type mnemonic associated with a given device address. The for-mat of the procedure call is:

M:DMOD# [*]device address

where device address has the form ndd in which n specifies the lOP unit address (the number associated with the lOP letter; see Table B-2 in Appendix B) and dd specifies the device number (see Table B-3 in Appendix B).

System Procedures 113

Example: Calls generated by the M:DMOD# procedure have the form CALl,6 fpt

M:DMOD# X'20F ' where fpt points to word 0 of the FPT shown below.

The procedure verifies that such an address exi sts. If no such device address exists, CC 1 is set to one. However, if the device address is valid, CCl is set to zero and the fol-lowing general registers are set:

R8 is the device model number in hexadecimal (e.g., X'OO(071221) .