Annotation of embedaddon/ntp/ntpsnmpd/ntpSnmpSubagentObject.h, revision 1.1

1.1     ! misho       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>