summaryrefslogtreecommitdiff
path: root/include/net-snmp/agent/var_struct.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/agent/var_struct.h')
-rw-r--r--include/net-snmp/agent/var_struct.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/include/net-snmp/agent/var_struct.h b/include/net-snmp/agent/var_struct.h
new file mode 100644
index 0000000..15b5770
--- /dev/null
+++ b/include/net-snmp/agent/var_struct.h
@@ -0,0 +1,116 @@
+#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 */