|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 4646 (0x1226) Types: TextFile Names: »smi.h«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦e83f91978⟧ »EurOpenD22/isode/osimis-2.0.tar.Z« └─⟦d846658bd⟧ └─⟦this⟧ »osimis/h/smi.h«
/* * Copyright (c) 1988 University College London * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the Department of Computer Science, University College London. * The name of the University may not be used to * endorse or promote products derived from this software without * specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ /* Data structures for managed object attributes (defined in SMI doc) */ /* managed object attributes first */ typedef struct Counter { int Value; struct C_Threshold * Threshold; /* threshold applied to this counter */ } Counter; typedef struct Gauge { int Value; struct G_Threshold * Threshold; /* threshold applied */ } Gauge; typedef struct DefinedEvent { OIDentifier eventype; struct MO_ID * rcis[3]; /* IDs of associated report controls */ } DefinedEvent; typedef int State; /* takes only a limited number of states */ /* can this be related to a defined event? */ typedef enum T_ProtocolState { undefined, tp0, tp1, tp2, tp3, tp4 } T_ProtocolState; typedef struct ComparisonLevels /* this attribute is needed by thresholds */ { int levels[10]; /* upto 10 comparison levels */ # define COMP_LEVEL_FREE -1 /* indicates level is not used */ } ComparisonLevels; typedef char Onoff; /* 0 = off, else on */ typedef int Hysteresis; /* hysteresis value for thresholds */ typedef int Offset; /* offset value for thresholds */ typedef struct destinations /* list of destinations for report control */ { struct destinations * Next; /* linked list */ int type; /* form of destination */ # define RCI_DEST_PSAP 0 # define RCI_DEST_AEI 1 # define RCI_DEST_FD 2 union { struct PSAPaddr psap; AEI aei; int fd; } un; # define Psap_dest un.psap # define Aei_dest un.aei # define Fd_dest un.fd } destinations; /* managed object structures */ struct ManagedObject /* this contains generic stuff and will be used for all managed objects */ { struct ManagedObject * sibling; /* linked list for same level */ OIDentifier rdntype; /* distinguishing name type */ short rdnlen; /* length of value */ char rdnval[10]; /* the name value - is this long enough? */ struct ManagedObject * subordinate; /* first MO in lower level */ struct ManagedObject * parent; /* immediate ancestor */ OIDentifier Class; /* isode OBJECT IDENTIFIER for class */ caddr_t attributes; /* pointer to structure containing specific attributes for this MO. Should be a huge union of pointers */ int (*do_get)(); /* routine to perform CMIS GET */ int (*do_set)(); /* routine to perform CMIS SET */ int (*do_add)(); int (*do_remove)(); int (*do_action)(); /* routine to perform CMIS ACTION */ }; /* Counter Threshold */ /* mibtypes OID ::= {uclmanagement mib(3)} /* {mibtypes cThreshold(1)}, Type ID {mibtypes 1 Id(1)} */ typedef struct C_Threshold /* threshold on counter */ { ComparisonLevels Levels; /* 2 */ # define comparisonlevel Levels.levels Offset offset; /* 3 */ Onoff OnOff; /* 4 */ DefinedEvent * triggers[4]; /* associated with defined events */ } C_Threshold; /* this structure would be pointed to by `attributes' in the ManagedObject * struct above, for managed objects which are Counter Thresholds. */ /* Gauge Threshold */ /* {mibtypes gThreshold(2)}, Type ID {mibtypes 2 Id(1)} */ typedef struct G_Threshold /* threshold on gauge */ { ComparisonLevels Levels; /* 2 */ Hysteresis hysteresis; /* 3 */ Onoff OnOff; /* 4 */ DefinedEvent * triggers[4]; /* associated with defined events */ } G_Threshold; /* Report Control Information */ /* {mibtypes reportControl(3)}, Type ID {mibtypes 3 Id(1)} */ typedef struct ReportControl { /* one attribute, a list of destinations */ destinations * listofdests; /* 2 */ int (*MakeEventReport)(); } ReportControl;