.TITLE SMSG Send Message to ERRLOG .IDENT "V1.0" .ENABL LC .PSECT C$CODE ;+ ; Index SMSG Send Message to ERRLOG ; ; ; Usage ; ; #include ; #include /* To get ERRLOG symbols */ ; char *dspkt; /* Data Subpacket Buffer */ ; word dsplen; /* Length of packet, bytes */ ; word erlprm[4]; /* ERRLOG packet parameters */ ; word status; /* Returned DSW */ ; ; status = smsg(dspkt, dsplen, erlprm); ; ; ; Description ; ; This directive is quite poorly documented in the various ; Executive Reference Manuals. What it actually does is ; to generate an ERRLOG packet and queue it to the error ; logger task. If a data subpacket is specified ('dspkt' is ; non-null), it is included in the packet. You must have ; formatted the data subpacket in some form that can be ; recognized by the RPT report generator task, however. ; ; Study the error logger packet format in the appendix of the ; Guide to Writing I/O drivers manual, EPKDF$ definition. Also ; read the code in the Executive listing for the ERROR module. ; It is possible, though non-trivial, to add another packet ; type code to the RPT report generator and use SMSG to put ; custom error logging messages into your error log. See the ; code in DISPATCH.CNF. ; ; ; Notes: ; ; Contrary to the documentation in the Exec manual, the issuing ; task need be privileged only if it is issuing an SMSG directive ; which zeroes the I/O and error counts for a specified device. ; ; [end] ;- ; Edits: ; V1.0 20-Oct-82 RBD Initial Edit ; .mcall smsg$s smsg:: mov sp,r0 mov 6(r0),r1 smsg$s #SM.SER,2(r0),4(r0),<(r1),2(r1),4(r1),6(r1)> mov $dsw,r0 return .end