#ifndef _OBD_SNAP
#define _OBD_SNAP
+/*
+ * Copyright (C) 2001 Cluster File Systems, Inc.
+ *
+ * This code is issued under the GNU General Public License.
+ * See the file COPYING in this distribution
+ */
-#define OBD_SNAP_MAGIC 0x47224722
+#include <linux/obd_class.h>
-#define SNAP_MAX 8 /* must fit in "u" area of struct inode */
-struct snap {
- time_t time;
- int index;
-};
+#define OBD_SNAP_MAGIC 0xfffffff3 /* an unlikely block number */
-struct snap_obd_data {
- int snap_dev; /* which device contains the data */
- unsigned int snap_no; /* which snapshot are we accessing */
- unsigned int snap_count; /* how many snapshots exist */
- struct snap snap_snaps[SNAP_MAX]; /* times must be incr or attach will fail */
-};
-
-struct snap_obd {
- unsigned int snap_no; /* which snapshot are we accessing */
- unsigned int snap_count; /* how many snapshots exist */
- time_t snap_times[SNAP_MAX];
- int snap_index[SNAP_MAX];
-};
-
-struct snap_object_data {
- int od_magic;
- /* id of snaps of object; slot 0 has the current data */
- unsigned long od_ids[SNAP_MAX + 1];
-};
+#ifndef OBD_SNAP_DEVICENAME
+#define OBD_SNAP_DEVICENAME "obdsnap"
+#endif
+/* ioctls for manipulating snapshots 40 - 60 */
+#define OBD_SNAP_SETTABLE _IOWR('f', 40, long)
+#define OBD_SNAP_PRINTTABLE _IOWR('f', 41, long)
+#define OBD_SNAP_DELETE _IOWR('f', 42, long)
+#define OBD_SNAP_RESTORE _IOWR('f', 43, long)
+void snap_use(int table_no, int snap_index) ;
+void snap_unuse(int table_no, int snap_index) ;
+int snap_is_used(int table_no, int snap_index) ;
+int snap_table_attach(int tableno, int snap_index);
#endif