doc
src
vio
csync_vio_file_stat.h
Go to the documentation of this file.
1
/*
2
* libcsync -- a library to sync a directory with another
3
*
4
* Copyright (c) 2008-2013 by Andreas Schneider <asn@cryptomilk.org>
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef _CSYNC_VIO_FILE_STAT_H
22
#define _CSYNC_VIO_FILE_STAT_H
23
24
/*
25
* cannot include csync_private here because
26
* that would cause circular inclusion
27
*/
28
#include "
c_private.h
"
29
30
#include <sys/types.h>
31
#include <sys/stat.h>
32
#include <unistd.h>
33
34
typedef
struct
csync_vio_file_stat_s
csync_vio_file_stat_t
;
35
36
enum
csync_vio_file_flags_e
{
37
CSYNC_VIO_FILE_FLAGS_NONE
= 0,
38
CSYNC_VIO_FILE_FLAGS_SYMLINK
= 1 << 0,
39
CSYNC_VIO_FILE_FLAGS_LOCAL
= 1 << 1
40
};
41
42
enum
csync_vio_file_type_e
{
43
CSYNC_VIO_FILE_TYPE_UNKNOWN
,
44
CSYNC_VIO_FILE_TYPE_REGULAR
,
45
CSYNC_VIO_FILE_TYPE_DIRECTORY
,
46
CSYNC_VIO_FILE_TYPE_FIFO
,
47
CSYNC_VIO_FILE_TYPE_SOCKET
,
48
CSYNC_VIO_FILE_TYPE_CHARACTER_DEVICE
,
49
CSYNC_VIO_FILE_TYPE_BLOCK_DEVICE
,
50
CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK
51
};
52
53
enum
csync_vio_file_stat_fields_e
{
54
CSYNC_VIO_FILE_STAT_FIELDS_NONE
= 0,
55
CSYNC_VIO_FILE_STAT_FIELDS_TYPE
= 1 << 0,
56
CSYNC_VIO_FILE_STAT_FIELDS_PERMISSIONS
= 1 << 1,
57
CSYNC_VIO_FILE_STAT_FIELDS_FLAGS
= 1 << 2,
58
CSYNC_VIO_FILE_STAT_FIELDS_DEVICE
= 1 << 3,
59
CSYNC_VIO_FILE_STAT_FIELDS_INODE
= 1 << 4,
60
CSYNC_VIO_FILE_STAT_FIELDS_LINK_COUNT
= 1 << 5,
61
CSYNC_VIO_FILE_STAT_FIELDS_SIZE
= 1 << 6,
62
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_COUNT
= 1 << 7,
/* will be removed */
63
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_SIZE
= 1 << 8,
/* will be removed */
64
CSYNC_VIO_FILE_STAT_FIELDS_ATIME
= 1 << 9,
65
CSYNC_VIO_FILE_STAT_FIELDS_MTIME
= 1 << 10,
66
CSYNC_VIO_FILE_STAT_FIELDS_CTIME
= 1 << 11,
67
CSYNC_VIO_FILE_STAT_FIELDS_SYMLINK_NAME
= 1 << 12,
68
CSYNC_VIO_FILE_STAT_FIELDS_CHECKSUM
= 1 << 13,
69
CSYNC_VIO_FILE_STAT_FIELDS_ACL
= 1 << 14,
70
CSYNC_VIO_FILE_STAT_FIELDS_UID
= 1 << 15,
71
CSYNC_VIO_FILE_STAT_FIELDS_GID
= 1 << 16,
72
};
73
74
75
struct
csync_vio_file_stat_s
{
76
union
{
77
char
*
symlink_name
;
78
char
*
checksum
;
79
}
u
;
80
81
void
*
acl
;
82
char
*
name
;
83
84
uid_t
uid
;
85
gid_t
gid
;
86
87
time_t
atime
;
88
time_t
mtime
;
89
time_t
ctime
;
90
91
off_t
size
;
92
off_t
blksize
;
/* will be removed in future, not used in csync */
93
unsigned
long
blkcount
;
/* will be removed in future, not used in csync */
94
95
mode_t
mode
;
96
97
dev_t
device
;
98
ino_t
inode
;
99
nlink_t
nlink
;
100
101
enum
csync_vio_file_stat_fields_e
fields
;
102
enum
csync_vio_file_type_e
type
;
103
104
enum
csync_vio_file_flags_e
flags
;
105
106
void
*
reserved1
;
107
void
*
reserved2
;
108
void
*
reserved3
;
109
};
110
111
csync_vio_file_stat_t
*
csync_vio_file_stat_new
(
void
);
112
113
void
csync_vio_file_stat_destroy
(
csync_vio_file_stat_t
*fstat);
114
115
#endif
/* _CSYNC_VIO_METHOD_H */
CSYNC_VIO_FILE_TYPE_CHARACTER_DEVICE
Definition:
csync_vio_file_stat.h:48
csync_vio_file_stat_s::mode
mode_t mode
Definition:
csync_vio_file_stat.h:95
csync_vio_file_stat_s::size
off_t size
Definition:
csync_vio_file_stat.h:91
CSYNC_VIO_FILE_TYPE_DIRECTORY
Definition:
csync_vio_file_stat.h:45
csync_vio_file_stat_s::device
dev_t device
Definition:
csync_vio_file_stat.h:97
csync_vio_file_stat_s::reserved3
void * reserved3
Definition:
csync_vio_file_stat.h:108
CSYNC_VIO_FILE_STAT_FIELDS_ATIME
Definition:
csync_vio_file_stat.h:64
c_private.h
CSYNC_VIO_FILE_STAT_FIELDS_TYPE
Definition:
csync_vio_file_stat.h:55
CSYNC_VIO_FILE_STAT_FIELDS_CHECKSUM
Definition:
csync_vio_file_stat.h:68
CSYNC_VIO_FILE_STAT_FIELDS_NONE
Definition:
csync_vio_file_stat.h:54
CSYNC_VIO_FILE_STAT_FIELDS_DEVICE
Definition:
csync_vio_file_stat.h:58
csync_vio_file_stat_s::fields
enum csync_vio_file_stat_fields_e fields
Definition:
csync_vio_file_stat.h:101
csync_vio_file_stat_s::blksize
off_t blksize
Definition:
csync_vio_file_stat.h:92
csync_vio_file_stat_s::atime
time_t atime
Definition:
csync_vio_file_stat.h:87
csync_vio_file_stat_s::type
enum csync_vio_file_type_e type
Definition:
csync_vio_file_stat.h:102
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_SIZE
Definition:
csync_vio_file_stat.h:63
CSYNC_VIO_FILE_TYPE_REGULAR
Definition:
csync_vio_file_stat.h:44
CSYNC_VIO_FILE_FLAGS_NONE
Definition:
csync_vio_file_stat.h:37
CSYNC_VIO_FILE_TYPE_UNKNOWN
Definition:
csync_vio_file_stat.h:43
csync_vio_file_type_e
csync_vio_file_type_e
Definition:
csync_vio_file_stat.h:42
CSYNC_VIO_FILE_STAT_FIELDS_INODE
Definition:
csync_vio_file_stat.h:59
CSYNC_VIO_FILE_STAT_FIELDS_FLAGS
Definition:
csync_vio_file_stat.h:57
CSYNC_VIO_FILE_STAT_FIELDS_UID
Definition:
csync_vio_file_stat.h:70
csync_vio_file_stat_s::u
union csync_vio_file_stat_s::@8 u
csync_vio_file_stat_s::blkcount
unsigned long blkcount
Definition:
csync_vio_file_stat.h:93
csync_vio_file_stat_s::reserved1
void * reserved1
Definition:
csync_vio_file_stat.h:106
CSYNC_VIO_FILE_STAT_FIELDS_CTIME
Definition:
csync_vio_file_stat.h:66
csync_vio_file_stat_s::reserved2
void * reserved2
Definition:
csync_vio_file_stat.h:107
csync_vio_file_stat_s::name
char * name
Definition:
csync_vio_file_stat.h:82
csync_vio_file_stat_s::symlink_name
char * symlink_name
Definition:
csync_vio_file_stat.h:77
CSYNC_VIO_FILE_TYPE_FIFO
Definition:
csync_vio_file_stat.h:46
csync_vio_file_stat_s::ctime
time_t ctime
Definition:
csync_vio_file_stat.h:89
CSYNC_VIO_FILE_STAT_FIELDS_PERMISSIONS
Definition:
csync_vio_file_stat.h:56
csync_vio_file_stat_s::nlink
nlink_t nlink
Definition:
csync_vio_file_stat.h:99
csync_vio_file_stat_fields_e
csync_vio_file_stat_fields_e
Definition:
csync_vio_file_stat.h:53
csync_vio_file_stat_s::flags
enum csync_vio_file_flags_e flags
Definition:
csync_vio_file_stat.h:104
csync_vio_file_stat_s::checksum
char * checksum
Definition:
csync_vio_file_stat.h:78
CSYNC_VIO_FILE_STAT_FIELDS_LINK_COUNT
Definition:
csync_vio_file_stat.h:60
CSYNC_VIO_FILE_STAT_FIELDS_ACL
Definition:
csync_vio_file_stat.h:69
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_COUNT
Definition:
csync_vio_file_stat.h:62
CSYNC_VIO_FILE_STAT_FIELDS_GID
Definition:
csync_vio_file_stat.h:71
csync_vio_file_stat_s::inode
ino_t inode
Definition:
csync_vio_file_stat.h:98
CSYNC_VIO_FILE_FLAGS_SYMLINK
Definition:
csync_vio_file_stat.h:38
CSYNC_VIO_FILE_STAT_FIELDS_SYMLINK_NAME
Definition:
csync_vio_file_stat.h:67
csync_vio_file_stat_destroy
void csync_vio_file_stat_destroy(csync_vio_file_stat_t *fstat)
csync_vio_file_stat_s::uid
uid_t uid
Definition:
csync_vio_file_stat.h:84
csync_vio_file_stat_s::acl
void * acl
Definition:
csync_vio_file_stat.h:81
csync_vio_file_stat_new
csync_vio_file_stat_t * csync_vio_file_stat_new(void)
CSYNC_VIO_FILE_TYPE_SOCKET
Definition:
csync_vio_file_stat.h:47
csync_vio_file_stat_s
Definition:
csync_vio_file_stat.h:75
CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK
Definition:
csync_vio_file_stat.h:50
CSYNC_VIO_FILE_STAT_FIELDS_SIZE
Definition:
csync_vio_file_stat.h:61
csync_vio_file_flags_e
csync_vio_file_flags_e
Definition:
csync_vio_file_stat.h:36
csync_vio_file_stat_s::mtime
time_t mtime
Definition:
csync_vio_file_stat.h:88
CSYNC_VIO_FILE_STAT_FIELDS_MTIME
Definition:
csync_vio_file_stat.h:65
CSYNC_VIO_FILE_TYPE_BLOCK_DEVICE
Definition:
csync_vio_file_stat.h:49
csync_vio_file_stat_s::gid
gid_t gid
Definition:
csync_vio_file_stat.h:85
CSYNC_VIO_FILE_FLAGS_LOCAL
Definition:
csync_vio_file_stat.h:39
Generated by
1.8.14