chiark / gitweb /
copy: change the various copy_xyz() calls to take a unified flags parameter
[elogind.git] / src / basic / copy.h
1 #pragma once
2
3 /***
4   This file is part of systemd.
5
6   Copyright 2014 Lennart Poettering
7
8   systemd is free software; you can redistribute it and/or modify it
9   under the terms of the GNU Lesser General Public License as published by
10   the Free Software Foundation; either version 2.1 of the License, or
11   (at your option) any later version.
12
13   systemd is distributed in the hope that it will be useful, but
14   WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16   Lesser General Public License for more details.
17
18   You should have received a copy of the GNU Lesser General Public License
19   along with systemd; If not, see <http://www.gnu.org/licenses/>.
20 ***/
21
22 #include <inttypes.h>
23 #include <stdbool.h>
24 #include <stdint.h>
25 #include <sys/types.h>
26
27 #if 0 /// UNNEEDED by elogind
28 #endif // 0
29 #if 0 /// UNNEEDED by elogind
30 typedef enum CopyFlags {
31         COPY_REFLINK    = 0x1,      /* try to reflink */
32         COPY_MERGE      = 0x2,      /* merge existing trees with our new one to copy */
33         COPY_REPLACE    = 0x4,      /* replace an existing file if there's one */
34 } CopyFlags;
35
36 int copy_file_fd(const char *from, int to, CopyFlags copy_flags);
37 int copy_file(const char *from, const char *to, int open_flags, mode_t mode, unsigned chattr_flags, CopyFlags copy_flags);
38 int copy_file_atomic(const char *from, const char *to, mode_t mode, unsigned chattr_flags, CopyFlags copy_flags);
39 int copy_tree(const char *from, const char *to, CopyFlags copy_flags);
40 int copy_tree_at(int fdf, const char *from, int fdt, const char *to, CopyFlags copy_flags);
41 int copy_directory_fd(int dirfd, const char *to, CopyFlags copy_flags);
42 int copy_directory(const char *from, const char *to, CopyFlags copy_flags);
43 int copy_bytes(int fdf, int fdt, uint64_t max_bytes, CopyFlags copy_flags);
44 int copy_times(int fdf, int fdt);
45 int copy_xattr(int fdf, int fdt);
46 #endif // 0