doc
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
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 by Andreas Schneider <mail@cynapses.org>
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program 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
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software Foundation,
18
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
*
20
* vim: ft=c.doxygen ts=2 sw=2 et cindent
21
*/
22
23
#ifndef _CSYNC_VIO_FILE_STAT_H
24
#define _CSYNC_VIO_FILE_STAT_H
25
26
/*
27
* cannot include csync_private here because
28
* that would cause circular inclusion
29
*/
30
#include "
c_private.h
"
31
32
#include <sys/types.h>
33
#include <sys/stat.h>
34
#include <unistd.h>
35
#include <stdint.h>
36
37
typedef
struct
csync_vio_file_stat_s
csync_vio_file_stat_t
;
38
39
enum
csync_vio_file_flags_e
{
40
CSYNC_VIO_FILE_FLAGS_NONE
= 0,
41
CSYNC_VIO_FILE_FLAGS_SYMLINK
= 1 << 0,
42
CSYNC_VIO_FILE_FLAGS_LOCAL
= 1 << 1
43
};
44
45
enum
csync_vio_file_type_e
{
46
CSYNC_VIO_FILE_TYPE_UNKNOWN
,
47
CSYNC_VIO_FILE_TYPE_REGULAR
,
48
CSYNC_VIO_FILE_TYPE_DIRECTORY
,
49
CSYNC_VIO_FILE_TYPE_FIFO
,
50
CSYNC_VIO_FILE_TYPE_SOCKET
,
51
CSYNC_VIO_FILE_TYPE_CHARACTER_DEVICE
,
52
CSYNC_VIO_FILE_TYPE_BLOCK_DEVICE
,
53
CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK
54
};
55
56
enum
csync_vio_file_stat_fields_e
{
57
CSYNC_VIO_FILE_STAT_FIELDS_NONE
= 0,
58
CSYNC_VIO_FILE_STAT_FIELDS_TYPE
= 1 << 0,
59
CSYNC_VIO_FILE_STAT_FIELDS_PERMISSIONS
= 1 << 1,
60
CSYNC_VIO_FILE_STAT_FIELDS_FLAGS
= 1 << 2,
61
CSYNC_VIO_FILE_STAT_FIELDS_DEVICE
= 1 << 3,
62
CSYNC_VIO_FILE_STAT_FIELDS_INODE
= 1 << 4,
63
CSYNC_VIO_FILE_STAT_FIELDS_LINK_COUNT
= 1 << 5,
64
CSYNC_VIO_FILE_STAT_FIELDS_SIZE
= 1 << 6,
65
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_COUNT
= 1 << 7,
66
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_SIZE
= 1 << 8,
67
CSYNC_VIO_FILE_STAT_FIELDS_ATIME
= 1 << 9,
68
CSYNC_VIO_FILE_STAT_FIELDS_MTIME
= 1 << 10,
69
CSYNC_VIO_FILE_STAT_FIELDS_CTIME
= 1 << 11,
70
CSYNC_VIO_FILE_STAT_FIELDS_SYMLINK_NAME
= 1 << 12,
71
CSYNC_VIO_FILE_STAT_FIELDS_CHECKSUM
= 1 << 13,
72
CSYNC_VIO_FILE_STAT_FIELDS_ACL
= 1 << 14,
73
CSYNC_VIO_FILE_STAT_FIELDS_UID
= 1 << 15,
74
CSYNC_VIO_FILE_STAT_FIELDS_GID
= 1 << 16,
75
CSYNC_VIO_FILE_STAT_FIELDS_MD5
= 1 << 17,
76
};
77
78
79
struct
csync_vio_file_stat_s
{
80
union
{
81
char
*
symlink_name
;
82
char
*
checksum
;
83
}
u
;
84
85
void
*
acl
;
86
char
*
name
;
87
char
*
md5
;
88
89
uid_t
uid
;
90
gid_t
gid
;
91
92
time_t
atime
;
93
time_t
mtime
;
94
time_t
ctime
;
95
96
int64_t
size
;
97
int64_t
blksize
;
98
unsigned
long
blkcount
;
99
100
mode_t
mode
;
101
102
dev_t
device
;
103
uint64_t
inode
;
104
nlink_t
nlink
;
105
106
enum
csync_vio_file_stat_fields_e
fields
;
107
enum
csync_vio_file_type_e
type
;
108
109
enum
csync_vio_file_flags_e
flags
;
110
111
void
*
reserved1
;
112
void
*
reserved2
;
113
void
*
reserved3
;
114
};
115
116
csync_vio_file_stat_t
*
csync_vio_file_stat_new
(
void
);
117
118
void
csync_vio_file_stat_destroy
(
csync_vio_file_stat_t
*fstat);
119
120
#endif
/* _CSYNC_VIO_METHOD_H */
CSYNC_VIO_FILE_TYPE_CHARACTER_DEVICE
Definition:
csync_vio_file_stat.h:51
csync_vio_file_stat_s::mode
mode_t mode
Definition:
csync_vio_file_stat.h:100
CSYNC_VIO_FILE_TYPE_DIRECTORY
Definition:
csync_vio_file_stat.h:48
csync_vio_file_stat_s::blksize
int64_t blksize
Definition:
csync_vio_file_stat.h:97
csync_vio_file_stat_s::device
dev_t device
Definition:
csync_vio_file_stat.h:102
csync_vio_file_stat_s::reserved3
void * reserved3
Definition:
csync_vio_file_stat.h:113
CSYNC_VIO_FILE_STAT_FIELDS_ATIME
Definition:
csync_vio_file_stat.h:67
c_private.h
CSYNC_VIO_FILE_STAT_FIELDS_TYPE
Definition:
csync_vio_file_stat.h:58
csync_vio_file_stat_s::u
union csync_vio_file_stat_s::@7 u
CSYNC_VIO_FILE_STAT_FIELDS_CHECKSUM
Definition:
csync_vio_file_stat.h:71
CSYNC_VIO_FILE_STAT_FIELDS_NONE
Definition:
csync_vio_file_stat.h:57
CSYNC_VIO_FILE_STAT_FIELDS_DEVICE
Definition:
csync_vio_file_stat.h:61
csync_vio_file_stat_s::fields
enum csync_vio_file_stat_fields_e fields
Definition:
csync_vio_file_stat.h:106
CSYNC_VIO_FILE_STAT_FIELDS_MD5
Definition:
csync_vio_file_stat.h:75
csync_vio_file_stat_s::atime
time_t atime
Definition:
csync_vio_file_stat.h:92
csync_vio_file_stat_s::type
enum csync_vio_file_type_e type
Definition:
csync_vio_file_stat.h:107
csync_vio_file_stat_s::md5
char * md5
Definition:
csync_vio_file_stat.h:87
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_SIZE
Definition:
csync_vio_file_stat.h:66
CSYNC_VIO_FILE_TYPE_REGULAR
Definition:
csync_vio_file_stat.h:47
CSYNC_VIO_FILE_FLAGS_NONE
Definition:
csync_vio_file_stat.h:40
CSYNC_VIO_FILE_TYPE_UNKNOWN
Definition:
csync_vio_file_stat.h:46
csync_vio_file_type_e
csync_vio_file_type_e
Definition:
csync_vio_file_stat.h:45
csync_vio_file_stat_s::size
int64_t size
Definition:
csync_vio_file_stat.h:96
CSYNC_VIO_FILE_STAT_FIELDS_INODE
Definition:
csync_vio_file_stat.h:62
CSYNC_VIO_FILE_STAT_FIELDS_FLAGS
Definition:
csync_vio_file_stat.h:60
CSYNC_VIO_FILE_STAT_FIELDS_UID
Definition:
csync_vio_file_stat.h:73
csync_vio_file_stat_s::blkcount
unsigned long blkcount
Definition:
csync_vio_file_stat.h:98
csync_vio_file_stat_s::reserved1
void * reserved1
Definition:
csync_vio_file_stat.h:111
CSYNC_VIO_FILE_STAT_FIELDS_CTIME
Definition:
csync_vio_file_stat.h:69
csync_vio_file_stat_s::inode
uint64_t inode
Definition:
csync_vio_file_stat.h:103
csync_vio_file_stat_s::reserved2
void * reserved2
Definition:
csync_vio_file_stat.h:112
csync_vio_file_stat_s::name
char * name
Definition:
csync_vio_file_stat.h:86
csync_vio_file_stat_s::symlink_name
char * symlink_name
Definition:
csync_vio_file_stat.h:81
CSYNC_VIO_FILE_TYPE_FIFO
Definition:
csync_vio_file_stat.h:49
csync_vio_file_stat_s::ctime
time_t ctime
Definition:
csync_vio_file_stat.h:94
CSYNC_VIO_FILE_STAT_FIELDS_PERMISSIONS
Definition:
csync_vio_file_stat.h:59
csync_vio_file_stat_s::nlink
nlink_t nlink
Definition:
csync_vio_file_stat.h:104
csync_vio_file_stat_fields_e
csync_vio_file_stat_fields_e
Definition:
csync_vio_file_stat.h:56
csync_vio_file_stat_s::flags
enum csync_vio_file_flags_e flags
Definition:
csync_vio_file_stat.h:109
csync_vio_file_stat_s::checksum
char * checksum
Definition:
csync_vio_file_stat.h:82
CSYNC_VIO_FILE_STAT_FIELDS_LINK_COUNT
Definition:
csync_vio_file_stat.h:63
CSYNC_VIO_FILE_STAT_FIELDS_ACL
Definition:
csync_vio_file_stat.h:72
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_COUNT
Definition:
csync_vio_file_stat.h:65
CSYNC_VIO_FILE_STAT_FIELDS_GID
Definition:
csync_vio_file_stat.h:74
CSYNC_VIO_FILE_FLAGS_SYMLINK
Definition:
csync_vio_file_stat.h:41
CSYNC_VIO_FILE_STAT_FIELDS_SYMLINK_NAME
Definition:
csync_vio_file_stat.h:70
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:89
csync_vio_file_stat_s::acl
void * acl
Definition:
csync_vio_file_stat.h:85
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:50
csync_vio_file_stat_s
Definition:
csync_vio_file_stat.h:79
CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK
Definition:
csync_vio_file_stat.h:53
CSYNC_VIO_FILE_STAT_FIELDS_SIZE
Definition:
csync_vio_file_stat.h:64
csync_vio_file_flags_e
csync_vio_file_flags_e
Definition:
csync_vio_file_stat.h:39
csync_vio_file_stat_s::mtime
time_t mtime
Definition:
csync_vio_file_stat.h:93
CSYNC_VIO_FILE_STAT_FIELDS_MTIME
Definition:
csync_vio_file_stat.h:68
CSYNC_VIO_FILE_TYPE_BLOCK_DEVICE
Definition:
csync_vio_file_stat.h:52
csync_vio_file_stat_s::gid
gid_t gid
Definition:
csync_vio_file_stat.h:90
CSYNC_VIO_FILE_FLAGS_LOCAL
Definition:
csync_vio_file_stat.h:42
Generated by
1.8.6