mirror of
https://github.com/PDP-10/its.git
synced 2026-04-25 03:45:11 +00:00
Added MLDEV/MLSLV devices. These allow access to the file system using
the device DB: both locally and from remote systems.
This commit is contained in:
committed by
Lars Brinkhoff
parent
099d3126bc
commit
a3684d9638
154
doc/sysdoc/mldev.protoc
Normal file
154
doc/sysdoc/mldev.protoc
Normal file
@@ -0,0 +1,154 @@
|
||||
MLDEV/MLSLV protocol
|
||||
|
||||
The MLDEV protocol is a binary file transfer protocol used between ITS
|
||||
systems for the transfer of files. It depends heavily upon the ITS job
|
||||
device feature and the ITS system calls and error codes. For a more
|
||||
detailed description of the ITS system calls, read the ITS UUO and
|
||||
symbolic system call manuals.
|
||||
|
||||
The name MLDEV is historical, dating back to the days when this protocol
|
||||
was used mostly to reference ML's file system from AI (and vice versa).
|
||||
The MLDEV server is called MLSLV, for "ML slave".
|
||||
|
||||
ICP is to socket 305 if doing mostly input, 307 if mostly output.
|
||||
User commands:
|
||||
|
||||
Command format: to slave
|
||||
AOBJN pointer (RH = command code)
|
||||
Block of arguments
|
||||
|
||||
Command codes:
|
||||
COPENI==1 OPEN for input
|
||||
arg1: Device
|
||||
arg2: FN1
|
||||
arg3: FN2
|
||||
arg4: SNAME
|
||||
arg5: OPEN mode
|
||||
|
||||
COPENO==2 OPEN for output
|
||||
arg1: Device
|
||||
arg2: FN1
|
||||
arg3: FN2
|
||||
arg4: SNAME
|
||||
arg5: OPEN mode
|
||||
|
||||
CDATA==3 Write data (Word count includes data words and byte count word)
|
||||
arg1: # of bytes of data
|
||||
args: Data, packed ILDB-style into at most 200 words
|
||||
|
||||
CALLOC==4 Read allocate
|
||||
Allocation in bytes
|
||||
|
||||
CICLOS==5 Input CLOSE
|
||||
Ignored argument
|
||||
|
||||
COCLOS==6 Output CLOSE
|
||||
Ignored argument
|
||||
|
||||
CFDELE==7 DELETE or RENAME
|
||||
arg1: Device
|
||||
arg2: FN1
|
||||
arg3: FN2
|
||||
arg4: 0 or new FN1
|
||||
arg5: 0 or new FN2
|
||||
arg6: SNAME
|
||||
|
||||
CRNMWO==10 RENAME while open
|
||||
arg1: new FN1
|
||||
arg2: new FN2
|
||||
|
||||
CNOOP=11 No-op
|
||||
arg: Echoed by the no-op reply
|
||||
|
||||
CACCES==12 ACCESS
|
||||
arg1: Transaction number
|
||||
arg2: Access pointer
|
||||
arg3: New allocation
|
||||
|
||||
CSYSCL==13 Random system call. 11 (decimal) arguments
|
||||
arg1: System call name in sixbit
|
||||
arg2: Flags (control-bit argument)
|
||||
arg3: Number of following arguments that have significance
|
||||
arg4: 1st argument to system call
|
||||
...
|
||||
arg11: 8th argument to system call
|
||||
|
||||
CREUSE==14 Reinitialize yourself, because we are about to be reused
|
||||
by a new creator for a new file
|
||||
Server replies
|
||||
|
||||
Reply format: from slave
|
||||
AOBJN pointer (RH = reply code)
|
||||
Block of arguments
|
||||
|
||||
R==,,-1 Reply codes:
|
||||
|
||||
RDATA==1 Input data (word count includes data words and byte count word)
|
||||
arg1: # of bytes of data
|
||||
args: Data, packed ILDB-style into words.
|
||||
Note: Slave must always send fully populated words except when
|
||||
EOF is reached.
|
||||
|
||||
ROPENI==2 Input OPEN status; 1 or 11 arguments
|
||||
arg1: -1 succeeded >0 OPEN loss number
|
||||
arg2arg11 are present only if arg1 is -1
|
||||
arg2: Real device name (usually SIXBIT/DSK/)
|
||||
arg3: Real FN1
|
||||
arg4: Real FN2
|
||||
arg5: Real SNAME
|
||||
arg6: File length
|
||||
arg7: Byte size open in
|
||||
arg8: File length in byte size written in
|
||||
arg9: Byte size written in
|
||||
arg10: FILDTP - -1 if RFDATE wins on this file
|
||||
arg11: Creation data (if RFDATE wins)
|
||||
|
||||
ROPENO==3 Output OPEN status. 1 or 11 arguments
|
||||
arg1: -1 succeeded >0 OPEN loss number
|
||||
arg2-arg11 present only if arg1 is -1
|
||||
arg2: Real device name
|
||||
arg3: Real FN1
|
||||
arg4: Real FN2
|
||||
arg5: Real SNAME
|
||||
arg6: File length (-1 FILLEN fails on this device)
|
||||
arg7: Byte size open in
|
||||
arg8: File length in byte size written in
|
||||
arg9: Byte size written in
|
||||
arg10: FILDTP - -1 if RFDATE wins on this file
|
||||
arg11: Creation data (if RFDATE wins)
|
||||
|
||||
REOF==4 EOF on input
|
||||
Ignored argument
|
||||
|
||||
RFDELE==5 DELETE/RENAME status. 1st argument:
|
||||
RH: -1 succeeded
|
||||
0 failure code
|
||||
LH: -1 DELETE or RENAME
|
||||
0 RENAME while open
|
||||
If RENAME while open call succeeded, there are 4 more arguments:
|
||||
arg2: Real device name
|
||||
arg3: Real FN1 (as renamed)
|
||||
arg4: Real FN2
|
||||
arg5: Real SNAME
|
||||
|
||||
RNOOP==6 No-op reply
|
||||
arg: Echo argument send by no-op command
|
||||
|
||||
RACCES==7 Acknowledge access
|
||||
arg: Transaction number from CACCES
|
||||
|
||||
RSYSCL==10 Respond to system call. 9 arguments
|
||||
arg1: <error code or 0>,,<# of times call skipped>
|
||||
arg2: 1st value from system call
|
||||
...
|
||||
arg9: 8th value from system call
|
||||
|
||||
RICLOS==11 Respond to input CLOSE
|
||||
|
||||
ROCLOS==12 Respond to output CLOSE
|
||||
|
||||
RIOC==13 Reflect an IOC error
|
||||
arg: IOC error code, right-justified in word
|
||||
|
||||
RREUSE==14 Acknowledge a CREUSE
|
||||
Ignored argument
|
||||
Reference in New Issue
Block a user