File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / ntpsnmpd / ntpSnmpSubagentObject.h
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: /*****************************************************************************
    2:  *
    3:  *  ntpSnmpSubAgentObject.h
    4:  *
    5:  *	Definitions and macros for ntpSnmpSubAgentObject.c
    6:  *
    7:  ****************************************************************************/
    8: 
    9: 
   10: #ifndef NTPSNMPSUBAGENTOBJECT_H
   11: #define NTPSNMPSUBAGENTOBJECT_H
   12: 
   13: /* Function Prototypes */
   14: size_t ntpsnmpd_parse_string(const char *string, char *field, size_t
   15: 			     fieldsize, char *value, size_t valuesize);
   16: size_t ntpsnmpd_cut_string(const char *string, char *dest, char delim,
   17: 			   int fieldnumber, size_t maxsize);
   18: size_t read_ntp_value(const char *variable, char *value,
   19: 		      size_t valuesize);
   20: 
   21: /* Initialization */
   22: void init_ntpSnmpSubagentObject(void);
   23: 
   24: /* MIB Section 1 Callback Functions*/
   25: Netsnmp_Node_Handler get_ntpEntSoftwareName;
   26: Netsnmp_Node_Handler get_ntpEntSoftwareVersion;
   27: Netsnmp_Node_Handler get_ntpEntSoftwareVendor;
   28: Netsnmp_Node_Handler get_ntpEntSystemType;
   29: Netsnmp_Node_Handler get_ntpEntTimeResolution;
   30: Netsnmp_Node_Handler get_ntpEntTimePrecision;
   31: Netsnmp_Node_Handler get_ntpEntTimeDistance;
   32: 
   33: /* MIB Section 2 Callback Functions (TODO) */
   34: Netsnmp_Node_Handler get_ntpEntStatusCurrentMode;
   35: Netsnmp_Node_Handler get_ntpEntStatusCurrentModeVal;
   36: Netsnmp_Node_Handler get_ntpEntStatusStratum;
   37: Netsnmp_Node_Handler get_ntpEntStatusActiveRefSourceId;
   38: Netsnmp_Node_Handler get_ntpEntStatusActiveRefSourceName;
   39: Netsnmp_Node_Handler get_ntpEntStatusActiveOffset;
   40: 
   41: #define NTPV4_OID 1,3,6,1,2,1,197	/* mib-2 197 */
   42: 
   43: 
   44: /*
   45:  * The following macros simplify the registration of the callback
   46:  * functions and register the name and OID of either read-only (RO) or
   47:  * read-write (RW) functions.
   48:  */
   49:  
   50: #define SETUP_OID_RO(oidname, ...)				\
   51: static oid oidname##_oid [] = { __VA_ARGS__ };			\
   52: {								\
   53: 	netsnmp_register_read_only_instance(			\
   54: 		netsnmp_create_handler_registration(		\
   55: 			"#oidname",				\
   56: 			get_##oidname,				\
   57: 			oidname##_oid,				\
   58: 			OID_LENGTH				\
   59: 			( oidname##_oid ),			\
   60: 			HANDLER_CAN_RONLY));			\
   61: }
   62: 
   63: #define SETUP_OID_RW(oidname, ...)				\
   64: static oid oidname##_oid [] = { __VA_ARGS__ };			\
   65: {								\
   66: 	netsnmp_register_instance(				\
   67: 		netsnmp_create_handler_registration(		\
   68: 			"#oidname",				\
   69: 			do_##oidname,				\
   70: 			oidname##_oid,				\
   71: 			OID_LENGTH				\
   72: 			( oidname##_oid ),			\
   73: 			HANDLER_CAN_RWRITE));			\
   74: }
   75: 
   76: #define NTP_OID_RO(oidname, w, x, y, z)				\
   77: 	SETUP_OID_RO(oidname, NTPV4_OID, w, x, y, z)
   78: #define NTP_OID_RW(oidname, w, x, y, z)				\
   79: 	SETUP_OID_RW(oidname, NTPV4_OID, w, x, y, z)
   80: 
   81: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>