[Ocfs2-tools-devel] [PATCH 2/7] headers

Larry Chen lchen at suse.com
Fri Oct 12 03:20:09 PDT 2018


Signed-off-by: Larry Chen <lchen at suse.com>
---
 defragfs.ocfs2/include/libdefrag.h | 36 +++++++++++++++++++++++
 defragfs.ocfs2/include/o2defrag.h  | 40 ++++++++++++++++++++++++++
 defragfs.ocfs2/include/record.h    | 59 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 135 insertions(+)
 create mode 100644 defragfs.ocfs2/include/libdefrag.h
 create mode 100644 defragfs.ocfs2/include/o2defrag.h
 create mode 100644 defragfs.ocfs2/include/record.h

diff --git a/defragfs.ocfs2/include/libdefrag.h b/defragfs.ocfs2/include/libdefrag.h
new file mode 100644
index 00000000..337d1e02
--- /dev/null
+++ b/defragfs.ocfs2/include/libdefrag.h
@@ -0,0 +1,36 @@
+#ifndef __LIB_DEFERAG_H__
+#define __LIB_DEFERAG_H__
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <linux/limits.h>
+#include <linux/types.h>
+
+#define PRINT_ERR(msg)	\
+	fprintf(stderr, "[ERROR]\t%s\n", (msg))
+
+#define PRINT_FILE_MSG(file, msg) \
+	fprintf(stdout, "\"%s\":%s\n", (file), msg)
+
+#define PRINT_FILE_ERRNO(file)	\
+	fprintf(stderr, "[ERROR]\"%s\":%s\n", (file), strerror(errno))
+
+#define PRINT_FILE_MSG_ERRNO(file, msg) \
+	fprintf(stderr, "[ERROR]%s:\"%s\" - %s\n", msg, file, strerror(errno))
+
+#define PRINT_FILE_ERR(file, msg) \
+	fprintf(stderr, "[ERROR]\"%s\":%s\n", (file), msg)
+
+void *do_malloc(size_t size);
+
+int do_read(int fd, void *bytes, size_t count);
+
+int do_write(int fd, const void *bytes, size_t count);
+
+unsigned int do_csum(const unsigned char *buff, int len);
+
+
+#endif
diff --git a/defragfs.ocfs2/include/o2defrag.h b/defragfs.ocfs2/include/o2defrag.h
new file mode 100644
index 00000000..1ae7376d
--- /dev/null
+++ b/defragfs.ocfs2/include/o2defrag.h
@@ -0,0 +1,40 @@
+#ifndef __O2DEFRAG_H__
+#define __O2DEFRAG_H__
+
+#define FS_OCFS2 "ocfs2"
+
+#define DETAIL			0x01
+#define STATISTIC		0x02
+#define GO_ON			0x04
+#define LOW_IO			0x08
+
+#define DEVNAME			0
+#define DIRNAME			1
+#define FILENAME		2
+
+#define FTW_OPEN_FD		2000
+
+#define ROOT_UID		0
+
+#define SHOW_FRAG_FILES	5
+#define SCHEDULE_TIME_LIMIT	5
+
+#define RECORD_EVERY_N_FILES	50
+
+#ifndef OCFS2_IOC_MOVE_EXT
+#define OCFS2_IOC_MOVE_EXT	_IOW('o', 6, struct ocfs2_move_extents)
+#endif
+
+struct o2defrag_opt {
+	int o_num;
+	char *o_str;
+};
+
+#define declare_opt(n, s)  {\
+	.o_num = n,\
+	.o_str = s\
+}
+
+#define PROGRAME_NAME "defragfs.ocfs2"
+
+#endif
diff --git a/defragfs.ocfs2/include/record.h b/defragfs.ocfs2/include/record.h
new file mode 100644
index 00000000..25b8659f
--- /dev/null
+++ b/defragfs.ocfs2/include/record.h
@@ -0,0 +1,59 @@
+#ifndef __RECORD_H__
+#define __RECORD_H__
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <linux/limits.h>
+#include <linux/types.h>
+#include <stdint.h>
+
+#define RECORD_FILE_NAME ".ocfs2.defrag.record" //under lost_found dir
+
+//#define offset_of(type, member)  &(((type *)0)->(member))
+#define offset_of(type, member) (unsigned long)(&((type *)0)->member)
+
+
+#define calc_record_file_size(argc) (RECORD_HEADER_LEN + argc * PATH_MAX)
+
+/*
+ * record format****************
+ * mode_flag(binary)
+ * inode_no_to_resume
+ * how_many_left
+ * argv[0]'\0'argv[1]'\0'.......argv[n-1]'\0'
+ * check_sum
+ */
+
+struct argv_node {
+	char *a_path;
+	struct list_head a_list;
+};
+
+
+struct resume_record {
+	int r_mode_flag;
+	ino_t r_inode_no;
+	int r_argc;
+	struct list_head r_argvs;
+};
+
+#define RECORD_HEADER_LEN offset_of(struct resume_record, r_argvs)
+
+extern void dump_record(char *base_name,
+			struct resume_record *rr,
+			void (*dump_mode_flag)(int mode_flag));
+
+extern void set_record_file_path(char *path);
+extern void free_record(struct resume_record *rr);
+extern void fill_resume_record(struct resume_record *rr,
+		int mode_flag, char **argv, int argc, ino_t inode_no);
+extern void free_argv_node(struct argv_node *n);
+extern int store_record(struct resume_record *rr);
+extern int load_record(struct resume_record *rr);
+extern void mv_record(struct resume_record *dst, struct resume_record *src);
+extern int remove_record(void);
+#endif
-- 
2.13.7




More information about the Ocfs2-tools-devel mailing list