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
#include <sys/types.h>
27
#include <sys/stat.h>
28
#include <unistd.h>
29
30
typedef
struct
csync_vio_file_stat_s
csync_vio_file_stat_t
;
31
32
enum
csync_vio_file_flags_e
{
33
CSYNC_VIO_FILE_FLAGS_NONE
= 0,
34
CSYNC_VIO_FILE_FLAGS_SYMLINK
= 1 << 0,
35
CSYNC_VIO_FILE_FLAGS_LOCAL
= 1 << 1
36
};
37
38
enum
csync_vio_file_type_e
{
39
CSYNC_VIO_FILE_TYPE_UNKNOWN
,
40
CSYNC_VIO_FILE_TYPE_REGULAR
,
41
CSYNC_VIO_FILE_TYPE_DIRECTORY
,
42
CSYNC_VIO_FILE_TYPE_FIFO
,
43
CSYNC_VIO_FILE_TYPE_SOCKET
,
44
CSYNC_VIO_FILE_TYPE_CHARACTER_DEVICE
,
45
CSYNC_VIO_FILE_TYPE_BLOCK_DEVICE
,
46
CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK
47
};
48
49
enum
csync_vio_file_stat_fields_e
{
50
CSYNC_VIO_FILE_STAT_FIELDS_NONE
= 0,
51
CSYNC_VIO_FILE_STAT_FIELDS_TYPE
= 1 << 0,
52
CSYNC_VIO_FILE_STAT_FIELDS_PERMISSIONS
= 1 << 1,
53
CSYNC_VIO_FILE_STAT_FIELDS_FLAGS
= 1 << 2,
54
CSYNC_VIO_FILE_STAT_FIELDS_DEVICE
= 1 << 3,
55
CSYNC_VIO_FILE_STAT_FIELDS_INODE
= 1 << 4,
56
CSYNC_VIO_FILE_STAT_FIELDS_LINK_COUNT
= 1 << 5,
57
CSYNC_VIO_FILE_STAT_FIELDS_SIZE
= 1 << 6,
58
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_COUNT
= 1 << 7,
59
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_SIZE
= 1 << 8,
60
CSYNC_VIO_FILE_STAT_FIELDS_ATIME
= 1 << 9,
61
CSYNC_VIO_FILE_STAT_FIELDS_MTIME
= 1 << 10,
62
CSYNC_VIO_FILE_STAT_FIELDS_CTIME
= 1 << 11,
63
CSYNC_VIO_FILE_STAT_FIELDS_SYMLINK_NAME
= 1 << 12,
64
CSYNC_VIO_FILE_STAT_FIELDS_CHECKSUM
= 1 << 13,
65
CSYNC_VIO_FILE_STAT_FIELDS_ACL
= 1 << 14,
66
CSYNC_VIO_FILE_STAT_FIELDS_UID
= 1 << 15,
67
CSYNC_VIO_FILE_STAT_FIELDS_GID
= 1 << 16,
68
};
69
70
71
struct
csync_vio_file_stat_s
{
72
union
{
73
char
*
symlink_name
;
74
char
*
checksum
;
75
}
u
;
76
77
void
*
acl
;
78
char
*
name
;
79
80
uid_t
uid
;
81
gid_t
gid
;
82
83
time_t
atime
;
84
time_t
mtime
;
85
time_t
ctime
;
86
87
off_t
size
;
88
off_t
blksize
;
89
unsigned
long
blkcount
;
90
91
mode_t
mode
;
92
93
dev_t
device
;
94
ino_t
inode
;
95
nlink_t
nlink
;
96
97
enum
csync_vio_file_stat_fields_e
fields
;
98
enum
csync_vio_file_type_e
type
;
99
100
enum
csync_vio_file_flags_e
flags
;
101
102
void
*
reserved1
;
103
void
*
reserved2
;
104
void
*
reserved3
;
105
};
106
107
csync_vio_file_stat_t
*
csync_vio_file_stat_new
(
void
);
108
109
void
csync_vio_file_stat_destroy
(
csync_vio_file_stat_t
*fstat);
110
111
#endif
/* _CSYNC_VIO_METHOD_H */
Generated by
1.8.2