summaryrefslogtreecommitdiff
path: root/include/net-snmp/library/file_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/library/file_utils.h')
-rw-r--r--include/net-snmp/library/file_utils.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/include/net-snmp/library/file_utils.h b/include/net-snmp/library/file_utils.h
new file mode 100644
index 0000000..fa9b5a4
--- /dev/null
+++ b/include/net-snmp/library/file_utils.h
@@ -0,0 +1,89 @@
+#ifndef NETSNMP_FILE_UTILS_H
+#define NETSNMP_FILE_UTILS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+ /*------------------------------------------------------------------
+ *
+ * structures
+ *
+ */
+ typedef struct netsnmp_file_s {
+
+ /*
+ * file name
+ */
+ char *name;
+
+ /*
+ * file descriptor for the file
+ */
+ int fd;
+
+ /*
+ * filesystem flags
+ */
+ int fs_flags;
+
+ /*
+ * open/create mode
+ */
+ mode_t mode;
+
+ /*
+ * netsnmp flags
+ */
+ u_int ns_flags;
+
+
+
+ /*
+ * future expansion
+ */
+ netsnmp_data_list *extras;
+
+ } netsnmp_file;
+
+
+
+ /*------------------------------------------------------------------
+ *
+ * Prototypes
+ *
+ */
+ netsnmp_file * netsnmp_file_create(void);
+ netsnmp_file * netsnmp_file_fill(netsnmp_file * filei, const char* name,
+ int fs_flags, mode_t mode, u_int ns_flags);
+ int netsnmp_file_release(netsnmp_file * filei);
+
+ int netsnmp_file_open(netsnmp_file * filei);
+ int netsnmp_file_close(netsnmp_file * filei);
+
+
+
+ /*------------------------------------------------------------------
+ *
+ * flags
+ *
+ */
+#define NETSNMP_FILE_NO_AUTOCLOSE 0x00000001
+#define NETSNMP_FILE_ 0x00000002
+
+ /*------------------------------------------------------------------
+ *
+ * macros
+ *
+ */
+#define NS_FI_AUTOCLOSE(x) (0 == (x & NETSNMP_FILE_NO_AUTOCLOSE))
+#define NS_FI_(x) (0 == (x & NETSNMP_FILE_))
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NETSNMP_FILE_UTILS_H */