#ifndef VAR_STRUCT_H #define VAR_STRUCT_H /* * The subtree structure contains a subtree prefix which applies to * all variables in the associated variable list. * * By converting to a tree of subtree structures, entries can * now be subtrees of another subtree in the structure. i.e: * 1.2 * 1.2.0 */ #define UCD_REGISTRY_OID_MAX_LEN 128 /* * subtree flags */ #define FULLY_QUALIFIED_INSTANCE 0x01 #define SUBTREE_ATTACHED 0x02 typedef struct netsnmp_subtree_s { oid *name_a; /* objid prefix of registered subtree */ u_char namelen; /* number of subid's in name above */ oid *start_a; /* objid of start of covered range */ u_char start_len; /* number of subid's in start name */ oid *end_a; /* objid of end of covered range */ u_char end_len; /* number of subid's in end name */ struct variable *variables; /* pointer to variables array */ int variables_len; /* number of entries in above array */ int variables_width; /* sizeof each variable entry */ char *label_a; /* calling module's label */ netsnmp_session *session; u_char flags; u_char priority; int timeout; struct netsnmp_subtree_s *next; /* List of 'sibling' subtrees */ struct netsnmp_subtree_s *prev; /* (doubly-linked list) */ struct netsnmp_subtree_s *children; /* List of 'child' subtrees */ int range_subid; oid range_ubound; netsnmp_handler_registration *reginfo; /* new API */ int cacheid; int global_cacheid; size_t oid_off; } netsnmp_subtree; /* * This is a new variable structure that doesn't have as much memory * tied up in the object identifier. It's elements have also been re-arranged * so that the name field can be variable length. Any number of these * structures can be created with lengths tailor made to a particular * application. The first 5 elements of the structure must remain constant. */ struct variable1 { u_char magic; /* passed to function as a hint */ u_char type; /* type of variable */ u_short acl; /* access control list for variable */ FindVarMethod *findVar; /* function that finds variable */ u_char namelen; /* length of name below */ oid name[1]; /* object identifier of variable */ }; struct variable2 { u_char magic; /* passed to function as a hint */ u_char type; /* type of variable */ u_short acl; /* access control list for variable */ FindVarMethod *findVar; /* function that finds variable */ u_char namelen; /* length of name below */ oid name[2]; /* object identifier of variable */ }; struct variable3 { u_char magic; /* passed to function as a hint */ u_char type; /* type of variable */ u_short acl; /* access control list for variable */ FindVarMethod *findVar; /* function that finds variable */ u_char namelen; /* length of name below */ oid name[3]; /* object identifier of variable */ }; struct variable4 { u_char magic; /* passed to function as a hint */ u_char type; /* type of variable */ u_short acl; /* access control list for variable */ FindVarMethod *findVar; /* function that finds variable */ u_char namelen; /* length of name below */ oid name[4]; /* object identifier of variable */ }; struct variable7 { u_char magic; /* passed to function as a hint */ u_char type; /* type of variable */ u_short acl; /* access control list for variable */ FindVarMethod *findVar; /* function that finds variable */ u_char namelen; /* length of name below */ oid name[7]; /* object identifier of variable */ }; struct variable8 { u_char magic; /* passed to function as a hint */ u_char type; /* type of variable */ u_short acl; /* access control list for variable */ FindVarMethod *findVar; /* function that finds variable */ u_char namelen; /* length of name below */ oid name[8]; /* object identifier of variable */ }; struct variable13 { u_char magic; /* passed to function as a hint */ u_char type; /* type of variable */ u_short acl; /* access control list for variable */ FindVarMethod *findVar; /* function that finds variable */ u_char namelen; /* length of name below */ oid name[13]; /* object identifier of variable */ }; #endif /* VAR_STRUCT_H */