doc
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 
35 
40 };
41 
51 };
52 
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 */
72 };
73 
74 
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 
103 
105 
106  void *reserved1;
107  void *reserved2;
108  void *reserved3;
109 };
110 
112 
114 
115 #endif /* _CSYNC_VIO_METHOD_H */
csync_vio_file_stat_s::name
char * name
Definition: csync_vio_file_stat.h:82
CSYNC_VIO_FILE_TYPE_SOCKET
@ CSYNC_VIO_FILE_TYPE_SOCKET
Definition: csync_vio_file_stat.h:47
csync_vio_file_type_e
csync_vio_file_type_e
Definition: csync_vio_file_stat.h:42
CSYNC_VIO_FILE_STAT_FIELDS_SIZE
@ CSYNC_VIO_FILE_STAT_FIELDS_SIZE
Definition: csync_vio_file_stat.h:61
csync_vio_file_stat_new
csync_vio_file_stat_t * csync_vio_file_stat_new(void)
CSYNC_VIO_FILE_FLAGS_LOCAL
@ CSYNC_VIO_FILE_FLAGS_LOCAL
Definition: csync_vio_file_stat.h:39
csync_vio_file_flags_e
csync_vio_file_flags_e
Definition: csync_vio_file_stat.h:36
csync_vio_file_stat_s::symlink_name
char * symlink_name
Definition: csync_vio_file_stat.h:77
CSYNC_VIO_FILE_TYPE_BLOCK_DEVICE
@ CSYNC_VIO_FILE_TYPE_BLOCK_DEVICE
Definition: csync_vio_file_stat.h:49
CSYNC_VIO_FILE_STAT_FIELDS_TYPE
@ CSYNC_VIO_FILE_STAT_FIELDS_TYPE
Definition: csync_vio_file_stat.h:55
CSYNC_VIO_FILE_STAT_FIELDS_CHECKSUM
@ CSYNC_VIO_FILE_STAT_FIELDS_CHECKSUM
Definition: csync_vio_file_stat.h:68
CSYNC_VIO_FILE_TYPE_CHARACTER_DEVICE
@ CSYNC_VIO_FILE_TYPE_CHARACTER_DEVICE
Definition: csync_vio_file_stat.h:48
CSYNC_VIO_FILE_STAT_FIELDS_ATIME
@ CSYNC_VIO_FILE_STAT_FIELDS_ATIME
Definition: csync_vio_file_stat.h:64
CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK
@ CSYNC_VIO_FILE_TYPE_SYMBOLIC_LINK
Definition: csync_vio_file_stat.h:50
CSYNC_VIO_FILE_STAT_FIELDS_MTIME
@ CSYNC_VIO_FILE_STAT_FIELDS_MTIME
Definition: csync_vio_file_stat.h:65
csync_vio_file_stat_s::u
union csync_vio_file_stat_s::@8 u
CSYNC_VIO_FILE_STAT_FIELDS_NONE
@ CSYNC_VIO_FILE_STAT_FIELDS_NONE
Definition: csync_vio_file_stat.h:54
csync_vio_file_stat_destroy
void csync_vio_file_stat_destroy(csync_vio_file_stat_t *fstat)
csync_vio_file_stat_s::ctime
time_t ctime
Definition: csync_vio_file_stat.h:89
csync_vio_file_stat_s::reserved2
void * reserved2
Definition: csync_vio_file_stat.h:107
csync_vio_file_stat_s::uid
uid_t uid
Definition: csync_vio_file_stat.h:84
csync_vio_file_stat_fields_e
csync_vio_file_stat_fields_e
Definition: csync_vio_file_stat.h:53
CSYNC_VIO_FILE_TYPE_REGULAR
@ CSYNC_VIO_FILE_TYPE_REGULAR
Definition: csync_vio_file_stat.h:44
csync_vio_file_stat_s::acl
void * acl
Definition: csync_vio_file_stat.h:81
csync_vio_file_stat_s::gid
gid_t gid
Definition: csync_vio_file_stat.h:85
CSYNC_VIO_FILE_FLAGS_NONE
@ CSYNC_VIO_FILE_FLAGS_NONE
Definition: csync_vio_file_stat.h:37
CSYNC_VIO_FILE_STAT_FIELDS_INODE
@ CSYNC_VIO_FILE_STAT_FIELDS_INODE
Definition: csync_vio_file_stat.h:59
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::blkcount
unsigned long blkcount
Definition: csync_vio_file_stat.h:93
CSYNC_VIO_FILE_STAT_FIELDS_DEVICE
@ CSYNC_VIO_FILE_STAT_FIELDS_DEVICE
Definition: csync_vio_file_stat.h:58
csync_vio_file_stat_s::mtime
time_t mtime
Definition: csync_vio_file_stat.h:88
csync_vio_file_stat_s::checksum
char * checksum
Definition: csync_vio_file_stat.h:78
csync_vio_file_stat_s::nlink
nlink_t nlink
Definition: csync_vio_file_stat.h:99
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_SIZE
@ CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_SIZE
Definition: csync_vio_file_stat.h:63
csync_vio_file_stat_s::inode
ino_t inode
Definition: csync_vio_file_stat.h:98
CSYNC_VIO_FILE_STAT_FIELDS_FLAGS
@ CSYNC_VIO_FILE_STAT_FIELDS_FLAGS
Definition: csync_vio_file_stat.h:57
CSYNC_VIO_FILE_TYPE_UNKNOWN
@ CSYNC_VIO_FILE_TYPE_UNKNOWN
Definition: csync_vio_file_stat.h:43
CSYNC_VIO_FILE_STAT_FIELDS_PERMISSIONS
@ CSYNC_VIO_FILE_STAT_FIELDS_PERMISSIONS
Definition: csync_vio_file_stat.h:56
csync_vio_file_stat_s::mode
mode_t mode
Definition: csync_vio_file_stat.h:95
csync_vio_file_stat_s::reserved3
void * reserved3
Definition: csync_vio_file_stat.h:108
CSYNC_VIO_FILE_TYPE_FIFO
@ CSYNC_VIO_FILE_TYPE_FIFO
Definition: csync_vio_file_stat.h:46
CSYNC_VIO_FILE_STAT_FIELDS_UID
@ CSYNC_VIO_FILE_STAT_FIELDS_UID
Definition: csync_vio_file_stat.h:70
csync_vio_file_stat_s::size
off_t size
Definition: csync_vio_file_stat.h:91
CSYNC_VIO_FILE_STAT_FIELDS_ACL
@ CSYNC_VIO_FILE_STAT_FIELDS_ACL
Definition: csync_vio_file_stat.h:69
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::device
dev_t device
Definition: csync_vio_file_stat.h:97
c_private.h
CSYNC_VIO_FILE_STAT_FIELDS_CTIME
@ CSYNC_VIO_FILE_STAT_FIELDS_CTIME
Definition: csync_vio_file_stat.h:66
csync_vio_file_stat_s::blksize
off_t blksize
Definition: csync_vio_file_stat.h:92
csync_vio_file_stat_s
Definition: csync_vio_file_stat.h:75
csync_vio_file_stat_s::atime
time_t atime
Definition: csync_vio_file_stat.h:87
CSYNC_VIO_FILE_STAT_FIELDS_SYMLINK_NAME
@ CSYNC_VIO_FILE_STAT_FIELDS_SYMLINK_NAME
Definition: csync_vio_file_stat.h:67
CSYNC_VIO_FILE_FLAGS_SYMLINK
@ CSYNC_VIO_FILE_FLAGS_SYMLINK
Definition: csync_vio_file_stat.h:38
CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_COUNT
@ CSYNC_VIO_FILE_STAT_FIELDS_BLOCK_COUNT
Definition: csync_vio_file_stat.h:62
csync_vio_file_stat_s::reserved1
void * reserved1
Definition: csync_vio_file_stat.h:106
CSYNC_VIO_FILE_TYPE_DIRECTORY
@ CSYNC_VIO_FILE_TYPE_DIRECTORY
Definition: csync_vio_file_stat.h:45
CSYNC_VIO_FILE_STAT_FIELDS_GID
@ CSYNC_VIO_FILE_STAT_FIELDS_GID
Definition: csync_vio_file_stat.h:71
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_LINK_COUNT
@ CSYNC_VIO_FILE_STAT_FIELDS_LINK_COUNT
Definition: csync_vio_file_stat.h:60