X-Git-Url: https://git.saurik.com/apple/copyfile.git/blobdiff_plain/057451129e3c282d58950c12d8391a5516dabffe..659640e4eb4c4d74a1ac49f001c306d34c892759:/copyfile.h

diff --git a/copyfile.h b/copyfile.h
index 8a0c6ad..0cb493b 100644
--- a/copyfile.h
+++ b/copyfile.h
@@ -65,11 +65,16 @@ copyfile_state_t copyfile_state_alloc(void);
 int copyfile_state_get(copyfile_state_t s, uint32_t flag, void * dst);
 int copyfile_state_set(copyfile_state_t s, uint32_t flag, const void * src);
 
+typedef int (*copyfile_callback_t)(int, int, copyfile_state_t, const char *, const char *, void *);
+
 #define COPYFILE_STATE_SRC_FD		1
 #define COPYFILE_STATE_SRC_FILENAME	2
 #define COPYFILE_STATE_DST_FD		3
 #define COPYFILE_STATE_DST_FILENAME	4
 #define COPYFILE_STATE_QUARANTINE	5
+#define	COPYFILE_STATE_STATUS_CB	6
+#define	COPYFILE_STATE_STATUS_CTX	7
+#define	COPYFILE_STATE_COPIED		8
 
 #define	COPYFILE_DISABLE_VAR	"COPYFILE_DISABLE"
 
@@ -84,6 +89,7 @@ int copyfile_state_set(copyfile_state_t s, uint32_t flag, const void * src);
 #define COPYFILE_METADATA   (COPYFILE_SECURITY | COPYFILE_XATTR)
 #define COPYFILE_ALL	    (COPYFILE_METADATA | COPYFILE_DATA)
 
+#define	COPYFILE_RECURSIVE	(1<<15)	/* Descend into hierarchies */
 #define COPYFILE_CHECK		(1<<16) /* return flags for xattr or acls if set */
 #define COPYFILE_EXCL		(1<<17) /* fail if destination exists */
 #define COPYFILE_NOFOLLOW_SRC	(1<<18) /* don't follow if source is a symlink */
@@ -97,6 +103,21 @@ int copyfile_state_set(copyfile_state_t s, uint32_t flag, const void * src);
 
 #define COPYFILE_VERBOSE	(1<<30)
 
+#define	COPYFILE_RECURSE_ERROR	0
+#define	COPYFILE_RECURSE_FILE	1
+#define	COPYFILE_RECURSE_DIR	2
+#define	COPYFILE_RECURSE_DIR_CLEANUP	3
+#define	COPYFILE_COPY_DATA	4
+
+#define	COPYFILE_START		1
+#define	COPYFILE_FINISH		2
+#define	COPYFILE_ERR		3
+#define	COPYFILE_PROGRESS	4
+
+#define	COPYFILE_CONTINUE	0
+#define	COPYFILE_SKIP	1
+#define	COPYFILE_QUIT	2
+
 __END_DECLS
 
 #endif /* _COPYFILE_H_ */