#include <copyfile.h>

copyfile.h

version 0.1
56 macros · 6 functions · 3 typedefs

typedefcopyfile_state_t

typedef struct _copyfile_state * copyfile_state_t

typedefcopyfile_flags_t

typedef uint32_t copyfile_flags_t

functioncopyfile

int copyfile(
	const char *__unsafe_indexable from,
	const char *__unsafe_indexable to,
	copyfile_state_t state,
	copyfile_flags_t flags
)

functionfcopyfile

int fcopyfile(int from_fd, int to_fd, copyfile_state_t, copyfile_flags_t flags)

functioncopyfile_state_free

int copyfile_state_free(copyfile_state_t)

functioncopyfile_state_alloc

copyfile_state_t copyfile_state_alloc(void)

functioncopyfile_state_get

int copyfile_state_get(copyfile_state_t s, uint32_t flag, void * dst)

functioncopyfile_state_set

int copyfile_state_set(copyfile_state_t s, uint32_t flag, const void * src)

typedefcopyfile_callback_t

typedef int (*copyfile_callback_t)(int, int, copyfile_state_t, const char *__unsafe_indexable, const char *__unsafe_indexable, void *)

macroCOPYFILE_STATE_SRC_FD

#define COPYFILE_STATE_SRC_FD 1

macroCOPYFILE_STATE_SRC_FILENAME

#define COPYFILE_STATE_SRC_FILENAME 2

macroCOPYFILE_STATE_DST_FD

#define COPYFILE_STATE_DST_FD 3

macroCOPYFILE_STATE_DST_FILENAME

#define COPYFILE_STATE_DST_FILENAME 4

macroCOPYFILE_STATE_QUARANTINE

#define COPYFILE_STATE_QUARANTINE 5

macroCOPYFILE_STATE_STATUS_CB

#define COPYFILE_STATE_STATUS_CB 6

macroCOPYFILE_STATE_STATUS_CTX

#define COPYFILE_STATE_STATUS_CTX 7

macroCOPYFILE_STATE_COPIED

#define COPYFILE_STATE_COPIED 8

macroCOPYFILE_STATE_XATTRNAME

#define COPYFILE_STATE_XATTRNAME 9

macroCOPYFILE_STATE_WAS_CLONED

#define COPYFILE_STATE_WAS_CLONED 10

macroCOPYFILE_STATE_SRC_BSIZE

#define COPYFILE_STATE_SRC_BSIZE 11

macroCOPYFILE_STATE_DST_BSIZE

#define COPYFILE_STATE_DST_BSIZE 12

macroCOPYFILE_STATE_BSIZE

#define COPYFILE_STATE_BSIZE 13

macroCOPYFILE_STATE_FORBID_CROSS_MOUNT

#define COPYFILE_STATE_FORBID_CROSS_MOUNT 14

macroCOPYFILE_STATE_NOCPROTECT

#define COPYFILE_STATE_NOCPROTECT 15

macroCOPYFILE_STATE_PRESERVE_SUID

#define COPYFILE_STATE_PRESERVE_SUID 16

macroCOPYFILE_STATE_RECURSIVE_SRC_FTSENT

#define COPYFILE_STATE_RECURSIVE_SRC_FTSENT 17

macroCOPYFILE_DISABLE_VAR

#define COPYFILE_DISABLE_VAR "COPYFILE_DISABLE"

macroCOPYFILE_ACL

#define COPYFILE_ACL (1<<0)

macroCOPYFILE_STAT

#define COPYFILE_STAT (1<<1)

macroCOPYFILE_XATTR

#define COPYFILE_XATTR (1<<2)

macroCOPYFILE_DATA

#define COPYFILE_DATA (1<<3)

macroCOPYFILE_SECURITY

#define COPYFILE_SECURITY (COPYFILE_STAT | COPYFILE_ACL)

macroCOPYFILE_METADATA

#define COPYFILE_METADATA (COPYFILE_SECURITY | COPYFILE_XATTR)

macroCOPYFILE_ALL

#define COPYFILE_ALL (COPYFILE_METADATA | COPYFILE_DATA)

macroCOPYFILE_NOCACHE

#define COPYFILE_NOCACHE (1<<14)
when using fcopyfile() force the fd to turn caching off

macroCOPYFILE_RECURSIVE

#define COPYFILE_RECURSIVE (1<<15)
Descend into hierarchies

macroCOPYFILE_CHECK

#define COPYFILE_CHECK (1<<16)
return flags for xattr or acls if set

macroCOPYFILE_EXCL

#define COPYFILE_EXCL (1<<17)
fail if destination exists

macroCOPYFILE_NOFOLLOW_SRC

#define COPYFILE_NOFOLLOW_SRC (1<<18)
don't follow if source is a symlink

macroCOPYFILE_NOFOLLOW_DST

#define COPYFILE_NOFOLLOW_DST (1<<19)
don't follow if dst is a symlink

macroCOPYFILE_MOVE

#define COPYFILE_MOVE (1<<20)
unlink src after copy

macroCOPYFILE_PACK

#define COPYFILE_PACK (1<<22)

macroCOPYFILE_UNPACK

#define COPYFILE_UNPACK (1<<23)

macroCOPYFILE_CLONE

#define COPYFILE_CLONE (1<<24)

macroCOPYFILE_CLONE_FORCE

#define COPYFILE_CLONE_FORCE (1<<25)

macroCOPYFILE_RUN_IN_PLACE

#define COPYFILE_RUN_IN_PLACE (1<<26)

macroCOPYFILE_DATA_SPARSE

#define COPYFILE_DATA_SPARSE (1<<27)

macroCOPYFILE_PRESERVE_DST_TRACKED

#define COPYFILE_PRESERVE_DST_TRACKED (1<<28)

macroCOPYFILE_VERBOSE

#define COPYFILE_VERBOSE (1<<30)

macroCOPYFILE_RECURSE_ERROR

#define COPYFILE_RECURSE_ERROR 0

macroCOPYFILE_RECURSE_FILE

#define COPYFILE_RECURSE_FILE 1

macroCOPYFILE_RECURSE_DIR

#define COPYFILE_RECURSE_DIR 2

macroCOPYFILE_RECURSE_DIR_CLEANUP

#define COPYFILE_RECURSE_DIR_CLEANUP 3

macroCOPYFILE_COPY_DATA

#define COPYFILE_COPY_DATA 4

macroCOPYFILE_COPY_XATTR

#define COPYFILE_COPY_XATTR 5

macroCOPYFILE_START

#define COPYFILE_START 1

macroCOPYFILE_FINISH

#define COPYFILE_FINISH 2

macroCOPYFILE_ERR

#define COPYFILE_ERR 3

macroCOPYFILE_PROGRESS

#define COPYFILE_PROGRESS 4

macroCOPYFILE_CONTINUE

#define COPYFILE_CONTINUE 0

macroCOPYFILE_SKIP

#define COPYFILE_SKIP 1

macroCOPYFILE_QUIT

#define COPYFILE_QUIT 2