summaryrefslogtreecommitdiff
path: root/include/net-snmp/agent/agent_index.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/agent/agent_index.h')
-rw-r--r--include/net-snmp/agent/agent_index.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/include/net-snmp/agent/agent_index.h b/include/net-snmp/agent/agent_index.h
new file mode 100644
index 0000000..49ee7fd
--- /dev/null
+++ b/include/net-snmp/agent/agent_index.h
@@ -0,0 +1,46 @@
+#ifndef AGENT_INDEX_H
+#define AGENT_INDEX_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ALLOCATE_THIS_INDEX 0x0
+#define ALLOCATE_ANY_INDEX 0x1
+#define ALLOCATE_NEW_INDEX 0x3
+ /*
+ * N.B: it's deliberate that NEW_INDEX & ANY_INDEX == ANY_INDEX
+ */
+
+#define ANY_INTEGER_INDEX -1
+#define ANY_STRING_INDEX NULL
+#define ANY_OID_INDEX NULL
+
+#define INDEX_ERR_GENERR -1
+#define INDEX_ERR_WRONG_TYPE -2
+#define INDEX_ERR_NOT_ALLOCATED -3
+#define INDEX_ERR_WRONG_SESSION -4
+
+char *register_string_index(oid *, size_t, char *);
+int register_int_index(oid *, size_t, int);
+netsnmp_variable_list *register_oid_index(oid *, size_t, oid *, size_t);
+netsnmp_variable_list *register_index(netsnmp_variable_list *, int,
+ netsnmp_session *);
+
+int unregister_string_index(oid *, size_t, char *);
+int unregister_int_index(oid *, size_t, int);
+int unregister_oid_index(oid *, size_t, oid *, size_t);
+
+int release_index(netsnmp_variable_list *);
+int remove_index(netsnmp_variable_list *, netsnmp_session *);
+void unregister_index_by_session(netsnmp_session *);
+int unregister_index(netsnmp_variable_list *, int,
+ netsnmp_session *);
+
+unsigned long count_indexes(oid * name, size_t namelen,
+ int include_unallocated);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AGENT_INDEX_H */