4 * The subtree structure contains a subtree prefix which applies to
5 * all variables in the associated variable list.
7 * By converting to a tree of subtree structures, entries can
8 * now be subtrees of another subtree in the structure. i.e:
13 #define UCD_REGISTRY_OID_MAX_LEN 128
18 #define FULLY_QUALIFIED_INSTANCE 0x01
19 #define SUBTREE_ATTACHED 0x02
21 typedef struct netsnmp_subtree_s {
22 oid *name_a; /* objid prefix of registered subtree */
23 u_char namelen; /* number of subid's in name above */
24 oid *start_a; /* objid of start of covered range */
25 u_char start_len; /* number of subid's in start name */
26 oid *end_a; /* objid of end of covered range */
27 u_char end_len; /* number of subid's in end name */
28 struct variable *variables; /* pointer to variables array */
29 int variables_len; /* number of entries in above array */
30 int variables_width; /* sizeof each variable entry */
31 char *label_a; /* calling module's label */
32 netsnmp_session *session;
36 struct netsnmp_subtree_s *next; /* List of 'sibling' subtrees */
37 struct netsnmp_subtree_s *prev; /* (doubly-linked list) */
38 struct netsnmp_subtree_s *children; /* List of 'child' subtrees */
41 netsnmp_handler_registration *reginfo; /* new API */
47 * This is a new variable structure that doesn't have as much memory
48 * tied up in the object identifier. It's elements have also been re-arranged
49 * so that the name field can be variable length. Any number of these
50 * structures can be created with lengths tailor made to a particular
51 * application. The first 5 elements of the structure must remain constant.
54 u_char magic; /* passed to function as a hint */
55 u_char type; /* type of variable */
56 u_short acl; /* access control list for variable */
57 FindVarMethod *findVar; /* function that finds variable */
58 u_char namelen; /* length of name below */
59 oid name[1]; /* object identifier of variable */
63 u_char magic; /* passed to function as a hint */
64 u_char type; /* type of variable */
65 u_short acl; /* access control list for variable */
66 FindVarMethod *findVar; /* function that finds variable */
67 u_char namelen; /* length of name below */
68 oid name[2]; /* object identifier of variable */
72 u_char magic; /* passed to function as a hint */
73 u_char type; /* type of variable */
74 u_short acl; /* access control list for variable */
75 FindVarMethod *findVar; /* function that finds variable */
76 u_char namelen; /* length of name below */
77 oid name[3]; /* object identifier of variable */
81 u_char magic; /* passed to function as a hint */
82 u_char type; /* type of variable */
83 u_short acl; /* access control list for variable */
84 FindVarMethod *findVar; /* function that finds variable */
85 u_char namelen; /* length of name below */
86 oid name[4]; /* object identifier of variable */
90 u_char magic; /* passed to function as a hint */
91 u_char type; /* type of variable */
92 u_short acl; /* access control list for variable */
93 FindVarMethod *findVar; /* function that finds variable */
94 u_char namelen; /* length of name below */
95 oid name[7]; /* object identifier of variable */
99 u_char magic; /* passed to function as a hint */
100 u_char type; /* type of variable */
101 u_short acl; /* access control list for variable */
102 FindVarMethod *findVar; /* function that finds variable */
103 u_char namelen; /* length of name below */
104 oid name[8]; /* object identifier of variable */
108 u_char magic; /* passed to function as a hint */
109 u_char type; /* type of variable */
110 u_short acl; /* access control list for variable */
111 FindVarMethod *findVar; /* function that finds variable */
112 u_char namelen; /* length of name below */
113 oid name[13]; /* object identifier of variable */
115 #endif /* VAR_STRUCT_H */