Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_SRC_3_19910112
-
mm-new/snddef.mac
There are 6 other files named snddef.mac in the archive. Click here to see a list.
UNIVERSAL SNDDEF - Definitions for Stanford SNDSRV terminal messages
SUBTTL David Eppstein/DE/KSL/MRC/WHP4
SEARCH MONSYM,MACSYM
COMMENT \
Format of IPCF pages used by SNDSRV
===================================
SN$HDR On write contains SIXBIT function type. Currently defined types:
SNDALL - send to all logged in users
SNDLIN - send to a specific line
SNDUSR - send to all logged in jobs of a specific user
SNDSTA - send statistics back to requestor
On read, contains -1 if an error was encountered, zero otherwise.
SN$DAT Contains a line number or usernumber as appropriate.
SN$FLG Format flags specified by the requestor. Currently defined flags:
T%HDR - the header has already been made, don't make another
T%RSYS - obey REFUSE SYSTEM even if caller is a wheel
(T%USER and T%RAFT defined but ignored by SNDSRV)
SN$ERR On read contains an error code
SN$STR On read contains the first word of a short ASCIZ error string
corresponding to the error code in SN$ERR
SN$TTY Unused on write. On read, this word contains the number of ttys
the server attempted to send messages too. Succeeding words are
of the form <state,,line number>, where state is one of
-1 user was refusing messages
0 message was successfully send
+1 a timeout occured (the SOUT% was blocked too long)
+2 the line was inactive (the SOUT% failed)
SN$MSG The user's message (an ASCIZ string) starts at this location.
\
; Offsets and flags
SN$HDR==0 ;SIXBIT function name
SN$DAT==1 ;Data for function
SN$FLG==2 ;User flags
SN$ERR==3 ;Error code, if any
SN$STR==4 ;Error string, if any
SN$TTY==20 ;TTY list header
SN$MSG==100 ;Start of user message
; Format flags specified in SN$FLG by current requestor
T%USER==1B0 ;Turn on "user program" features:
;if recipient has multiple tty type status
T%RAFT==1B1 ;Obey REFUSE SYS after this message
;(used by $SEND, ignored by SNDSRV)
T%HDR==1B2 ;Header already supplied, don't make another
T%RSYS==1B3 ;Obey REFUSE SYS always
; Error codes and strings returned in SN$ERR and SN$STR
DEFINE SNDERRS <
X 000,TTXIEC,<SNDSRV confused! Unknown error code>
X 001,TTXCAP,<WHEEL or OPERATOR capabilities required>
X 002,TTXUNK,<Unknown function code>
X 003,TTXDET,<User has detached jobs only, use MAIL>
X 004,TTXNLG,<User is not logged in, use MAIL>
X 005,TTXUIR,<Unable to identify requesting job>
X 006,TTXLNG,<Message too long to send>
X 007,TTXREF,<User refusing messages>
X 010,TTXIMP,<Function not yet implemented>
X 011,TTXTIM,<Unable to send message, server timed out>
X 012,TTXNSU,<No such user>
X 013,TTXUSM,<Unable to send message>
X 014,TTXNST,<No such terminal>
X 015,TTXFIL,<Message sent, but could not append to sends file>
X 016,TTXNBD,<Nobody logged in>
X 017,TTXACT,<Receiving terminal is not in use>
X 020,TTXNLI,<Must be logged in to do that>
X 021,TTXBAT,<Can't send to a batch job>
X 022,TTXIPC,<Failure in local send>
X 023,TTXNET,<Failure in net send>
>
DEFINE X (VALUE,SYMBOL,STRING) <
SYMBOL==VALUE
IFG <VALUE-MAXTTX>,<MAXTTX==VALUE>
>
MAXTTX==0
SNDERRS ;Define values for each symbol
; Storage parameters shared by SEND/SNDSRV
MAXCHR==^D3000 ;Maximum number of characters that can be sent
; Definitions for SNDMSG subroutine package
RC%TYP==.LHALF ;Type of recipient
RC%NXT==.RHALF ;Next link in recipient chain
RC.TTY==0 ;Send to terminal (must be 0)
RC.USR==1 ;Send to local user
RC.ALL==2 ;Send to all local logged-in users
RC.NET==3 ;Send to a net user
.SDPID==0 ;Offset in argument block for sender PID
.SDFLG==1 ;Flags for IP$FLG
.SDTCC==2 ;Interrupt channel for TCP interrupt
; Useful macros
DEFINE MKPTR (AC) < ;;Turn HRROI pointer into the real thing
TLC AC,-1
TLCN AC,-1
HRLI AC,(POINT 7,)
>
END