Distributed Systems Network Management (DSNM) Subsystem Interface Development Guide
Sample User-Written Code for SPIFFY Subsystem
Interface Process
D-14
109759—Distributed Systems Network Management (DSNM) Subsystem Interface
Development Guide
Sample I Process Program Code
! Thread states
LITERAL st^new^object = _ST^MIN^THREAD^STATE, st^prilim^done, st^done,
st^exec, st^exec^done;
! cx.cf Command flag bit definitions (see cx.def struct) ON OFF
LITERAL c^info = _BITDEF(0), ! Command: Info type Action type
c^things = _BITDEF(1), ! Things found Not found
c^fromcmd = _BITDEF(2), ! Object: From cmd From hierarchy
c^replydetail = _BITDEF(3), ! Reply text: Detail Normal
c^replystate = _BITDEF(4), ! State in reply: State No state
c^errsuppress = _BITDEF(5), ! Error obj: Suppress Include
c^errdetail = _BITDEF(6), ! Error text: Detail Brief
c^resetstats = _BITDEF(7), ! Statistics: Reset Don't reset
c^cmdobj = _BITDEF(8), ! Apply cmd to: Cmd obj Not cmd obj
c^subobj = _BITDEF(9), ! Sub obj Not sub obj
c^greenstate = _BITDEF(10),! Green obj Not gr obj
c^redstate = _BITDEF(11),! Red obj Not red obj
c^yellowstate = _BITDEF(12),! Yellow obj Not yellow obj
c^anystate = _BITDEF(13),! Any state Colored states
c^starobj = _BITDEF(14);! Object name *
! Input and general working list member definition
STRUCT object^lm^def (*);
BEGIN
_INPUT^LM^HEADER; ! generates FOBJ; see Section 3 and Appendix A
INT cf; ! Command flags
INT dsnmstate; ! DSNM state of this thing
INT er; ! DSNM or FS Error
INT spifer; ! SPIFFY subsystem error
STRUCT thing (spiffy^thing^def); ! Particulars about this thing
END;
! Frame output list member definition
STRUCT frame^output^lm^def (*);
BEGIN
_OUTPUT^LM^HEADER; ! generates FOBJ; see Section 3 and Appendix A
END;
! Command thread context definition
STRUCT cx^def (*);
BEGIN
_COMMAND^CONTEXT^HEADER;
_CI^ID (spif);
INT .EXT inobj (object^lm^def);
INT .EXT currentobj (object^lm^def);
INT cf; ! Command flags
INT hmodf; ! HMOD command flags
STRUCT r (spiffy^response^def); ! Command and response area
STRUCT cmd (spiffy^command^def) = r;
_LISTPOINTER (current^in); ! Pointers to working lists
_LISTPOINTER (current^out);
_LIST (things); ! Working lists
_LIST (other^things);
END;