File indexing completed on 2025-01-17 09:55:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef ARCHIVE_ENTRY_H_INCLUDED
0028 #define ARCHIVE_ENTRY_H_INCLUDED
0029
0030
0031 #define ARCHIVE_VERSION_NUMBER 3007006
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 #include <sys/types.h>
0042 #include <stddef.h> /* for wchar_t */
0043 #include <stdint.h>
0044 #include <time.h>
0045
0046 #if defined(_WIN32) && !defined(__CYGWIN__)
0047 #include <windows.h>
0048 #endif
0049
0050
0051 #if !defined(__LA_INT64_T_DEFINED)
0052 # if ARCHIVE_VERSION_NUMBER < 4000000
0053 #define __LA_INT64_T la_int64_t
0054 # endif
0055 #define __LA_INT64_T_DEFINED
0056 # if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__)
0057 typedef __int64 la_int64_t;
0058 # else
0059 #include <unistd.h>
0060 # if defined(_SCO_DS) || defined(__osf__)
0061 typedef long long la_int64_t;
0062 # else
0063 typedef int64_t la_int64_t;
0064 # endif
0065 # endif
0066 #endif
0067
0068
0069 #if !defined(__LA_SSIZE_T_DEFINED)
0070
0071 # if ARCHIVE_VERSION_NUMBER < 4000000
0072 #define __LA_SSIZE_T la_ssize_t
0073 # endif
0074 #define __LA_SSIZE_T_DEFINED
0075 # if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__)
0076 # if defined(_SSIZE_T_DEFINED) || defined(_SSIZE_T_)
0077 typedef ssize_t la_ssize_t;
0078 # elif defined(_WIN64)
0079 typedef __int64 la_ssize_t;
0080 # else
0081 typedef long la_ssize_t;
0082 # endif
0083 # else
0084 # include <unistd.h> /* ssize_t */
0085 typedef ssize_t la_ssize_t;
0086 # endif
0087 #endif
0088
0089
0090 #if ARCHIVE_VERSION_NUMBER >= 3999000
0091
0092 # define __LA_MODE_T int
0093 #elif defined(_WIN32) && !defined(__CYGWIN__) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
0094 # define __LA_MODE_T unsigned short
0095 #else
0096 # define __LA_MODE_T mode_t
0097 #endif
0098
0099
0100 #if defined(__LIBARCHIVE_BUILD) && defined(__ANDROID__)
0101 #include "android_lf.h"
0102 #endif
0103
0104
0105
0106
0107
0108
0109 #if ((defined __WIN32__) || (defined _WIN32) || defined(__CYGWIN__)) && (!defined LIBARCHIVE_STATIC)
0110 # ifdef __LIBARCHIVE_BUILD
0111 # ifdef __GNUC__
0112 # define __LA_DECL __attribute__((dllexport)) extern
0113 # else
0114 # define __LA_DECL __declspec(dllexport)
0115 # endif
0116 # else
0117 # ifdef __GNUC__
0118 # define __LA_DECL
0119 # else
0120 # define __LA_DECL __declspec(dllimport)
0121 # endif
0122 # endif
0123 #elif defined __LIBARCHIVE_ENABLE_VISIBILITY
0124 # define __LA_DECL __attribute__((visibility("default")))
0125 #else
0126
0127 # define __LA_DECL
0128 #endif
0129
0130 #if defined(__GNUC__) && __GNUC__ >= 3 && __GNUC_MINOR__ >= 1
0131 # define __LA_DEPRECATED __attribute__((deprecated))
0132 #else
0133 # define __LA_DEPRECATED
0134 #endif
0135
0136 #ifdef __cplusplus
0137 extern "C" {
0138 #endif
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156 struct archive;
0157 struct archive_entry;
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184 #define AE_IFMT ((__LA_MODE_T)0170000)
0185 #define AE_IFREG ((__LA_MODE_T)0100000)
0186 #define AE_IFLNK ((__LA_MODE_T)0120000)
0187 #define AE_IFSOCK ((__LA_MODE_T)0140000)
0188 #define AE_IFCHR ((__LA_MODE_T)0020000)
0189 #define AE_IFBLK ((__LA_MODE_T)0060000)
0190 #define AE_IFDIR ((__LA_MODE_T)0040000)
0191 #define AE_IFIFO ((__LA_MODE_T)0010000)
0192
0193
0194
0195
0196 #define AE_SYMLINK_TYPE_UNDEFINED 0
0197 #define AE_SYMLINK_TYPE_FILE 1
0198 #define AE_SYMLINK_TYPE_DIRECTORY 2
0199
0200
0201
0202
0203
0204 __LA_DECL struct archive_entry *archive_entry_clear(struct archive_entry *);
0205
0206 __LA_DECL struct archive_entry *archive_entry_clone(struct archive_entry *);
0207 __LA_DECL void archive_entry_free(struct archive_entry *);
0208 __LA_DECL struct archive_entry *archive_entry_new(void);
0209
0210
0211
0212
0213
0214
0215
0216
0217 __LA_DECL struct archive_entry *archive_entry_new2(struct archive *);
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238 __LA_DECL time_t archive_entry_atime(struct archive_entry *);
0239 __LA_DECL long archive_entry_atime_nsec(struct archive_entry *);
0240 __LA_DECL int archive_entry_atime_is_set(struct archive_entry *);
0241 __LA_DECL time_t archive_entry_birthtime(struct archive_entry *);
0242 __LA_DECL long archive_entry_birthtime_nsec(struct archive_entry *);
0243 __LA_DECL int archive_entry_birthtime_is_set(struct archive_entry *);
0244 __LA_DECL time_t archive_entry_ctime(struct archive_entry *);
0245 __LA_DECL long archive_entry_ctime_nsec(struct archive_entry *);
0246 __LA_DECL int archive_entry_ctime_is_set(struct archive_entry *);
0247 __LA_DECL dev_t archive_entry_dev(struct archive_entry *);
0248 __LA_DECL int archive_entry_dev_is_set(struct archive_entry *);
0249 __LA_DECL dev_t archive_entry_devmajor(struct archive_entry *);
0250 __LA_DECL dev_t archive_entry_devminor(struct archive_entry *);
0251 __LA_DECL __LA_MODE_T archive_entry_filetype(struct archive_entry *);
0252 __LA_DECL int archive_entry_filetype_is_set(struct archive_entry *);
0253 __LA_DECL void archive_entry_fflags(struct archive_entry *,
0254 unsigned long * ,
0255 unsigned long * );
0256 __LA_DECL const char *archive_entry_fflags_text(struct archive_entry *);
0257 __LA_DECL la_int64_t archive_entry_gid(struct archive_entry *);
0258 __LA_DECL int archive_entry_gid_is_set(struct archive_entry *);
0259 __LA_DECL const char *archive_entry_gname(struct archive_entry *);
0260 __LA_DECL const char *archive_entry_gname_utf8(struct archive_entry *);
0261 __LA_DECL const wchar_t *archive_entry_gname_w(struct archive_entry *);
0262 __LA_DECL void archive_entry_set_link_to_hardlink(struct archive_entry *);
0263 __LA_DECL const char *archive_entry_hardlink(struct archive_entry *);
0264 __LA_DECL const char *archive_entry_hardlink_utf8(struct archive_entry *);
0265 __LA_DECL const wchar_t *archive_entry_hardlink_w(struct archive_entry *);
0266 __LA_DECL int archive_entry_hardlink_is_set(struct archive_entry *);
0267 __LA_DECL la_int64_t archive_entry_ino(struct archive_entry *);
0268 __LA_DECL la_int64_t archive_entry_ino64(struct archive_entry *);
0269 __LA_DECL int archive_entry_ino_is_set(struct archive_entry *);
0270 __LA_DECL __LA_MODE_T archive_entry_mode(struct archive_entry *);
0271 __LA_DECL time_t archive_entry_mtime(struct archive_entry *);
0272 __LA_DECL long archive_entry_mtime_nsec(struct archive_entry *);
0273 __LA_DECL int archive_entry_mtime_is_set(struct archive_entry *);
0274 __LA_DECL unsigned int archive_entry_nlink(struct archive_entry *);
0275 __LA_DECL const char *archive_entry_pathname(struct archive_entry *);
0276 __LA_DECL const char *archive_entry_pathname_utf8(struct archive_entry *);
0277 __LA_DECL const wchar_t *archive_entry_pathname_w(struct archive_entry *);
0278 __LA_DECL __LA_MODE_T archive_entry_perm(struct archive_entry *);
0279 __LA_DECL int archive_entry_perm_is_set(struct archive_entry *);
0280 __LA_DECL int archive_entry_rdev_is_set(struct archive_entry *);
0281 __LA_DECL dev_t archive_entry_rdev(struct archive_entry *);
0282 __LA_DECL dev_t archive_entry_rdevmajor(struct archive_entry *);
0283 __LA_DECL dev_t archive_entry_rdevminor(struct archive_entry *);
0284 __LA_DECL const char *archive_entry_sourcepath(struct archive_entry *);
0285 __LA_DECL const wchar_t *archive_entry_sourcepath_w(struct archive_entry *);
0286 __LA_DECL la_int64_t archive_entry_size(struct archive_entry *);
0287 __LA_DECL int archive_entry_size_is_set(struct archive_entry *);
0288 __LA_DECL const char *archive_entry_strmode(struct archive_entry *);
0289 __LA_DECL void archive_entry_set_link_to_symlink(struct archive_entry *);
0290 __LA_DECL const char *archive_entry_symlink(struct archive_entry *);
0291 __LA_DECL const char *archive_entry_symlink_utf8(struct archive_entry *);
0292 __LA_DECL int archive_entry_symlink_type(struct archive_entry *);
0293 __LA_DECL const wchar_t *archive_entry_symlink_w(struct archive_entry *);
0294 __LA_DECL la_int64_t archive_entry_uid(struct archive_entry *);
0295 __LA_DECL int archive_entry_uid_is_set(struct archive_entry *);
0296 __LA_DECL const char *archive_entry_uname(struct archive_entry *);
0297 __LA_DECL const char *archive_entry_uname_utf8(struct archive_entry *);
0298 __LA_DECL const wchar_t *archive_entry_uname_w(struct archive_entry *);
0299 __LA_DECL int archive_entry_is_data_encrypted(struct archive_entry *);
0300 __LA_DECL int archive_entry_is_metadata_encrypted(struct archive_entry *);
0301 __LA_DECL int archive_entry_is_encrypted(struct archive_entry *);
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312 __LA_DECL void archive_entry_set_atime(struct archive_entry *, time_t, long);
0313 __LA_DECL void archive_entry_unset_atime(struct archive_entry *);
0314 #if defined(_WIN32) && !defined(__CYGWIN__)
0315 __LA_DECL void archive_entry_copy_bhfi(struct archive_entry *, BY_HANDLE_FILE_INFORMATION *);
0316 #endif
0317 __LA_DECL void archive_entry_set_birthtime(struct archive_entry *, time_t, long);
0318 __LA_DECL void archive_entry_unset_birthtime(struct archive_entry *);
0319 __LA_DECL void archive_entry_set_ctime(struct archive_entry *, time_t, long);
0320 __LA_DECL void archive_entry_unset_ctime(struct archive_entry *);
0321 __LA_DECL void archive_entry_set_dev(struct archive_entry *, dev_t);
0322 __LA_DECL void archive_entry_set_devmajor(struct archive_entry *, dev_t);
0323 __LA_DECL void archive_entry_set_devminor(struct archive_entry *, dev_t);
0324 __LA_DECL void archive_entry_set_filetype(struct archive_entry *, unsigned int);
0325 __LA_DECL void archive_entry_set_fflags(struct archive_entry *,
0326 unsigned long , unsigned long );
0327
0328
0329 __LA_DECL const char *archive_entry_copy_fflags_text(struct archive_entry *,
0330 const char *);
0331 __LA_DECL const char *archive_entry_copy_fflags_text_len(struct archive_entry *,
0332 const char *, size_t);
0333 __LA_DECL const wchar_t *archive_entry_copy_fflags_text_w(struct archive_entry *,
0334 const wchar_t *);
0335 __LA_DECL void archive_entry_set_gid(struct archive_entry *, la_int64_t);
0336 __LA_DECL void archive_entry_set_gname(struct archive_entry *, const char *);
0337 __LA_DECL void archive_entry_set_gname_utf8(struct archive_entry *, const char *);
0338 __LA_DECL void archive_entry_copy_gname(struct archive_entry *, const char *);
0339 __LA_DECL void archive_entry_copy_gname_w(struct archive_entry *, const wchar_t *);
0340 __LA_DECL int archive_entry_update_gname_utf8(struct archive_entry *, const char *);
0341 __LA_DECL void archive_entry_set_hardlink(struct archive_entry *, const char *);
0342 __LA_DECL void archive_entry_set_hardlink_utf8(struct archive_entry *, const char *);
0343 __LA_DECL void archive_entry_copy_hardlink(struct archive_entry *, const char *);
0344 __LA_DECL void archive_entry_copy_hardlink_w(struct archive_entry *, const wchar_t *);
0345 __LA_DECL int archive_entry_update_hardlink_utf8(struct archive_entry *, const char *);
0346 __LA_DECL void archive_entry_set_ino(struct archive_entry *, la_int64_t);
0347 __LA_DECL void archive_entry_set_ino64(struct archive_entry *, la_int64_t);
0348 __LA_DECL void archive_entry_set_link(struct archive_entry *, const char *);
0349 __LA_DECL void archive_entry_set_link_utf8(struct archive_entry *, const char *);
0350 __LA_DECL void archive_entry_copy_link(struct archive_entry *, const char *);
0351 __LA_DECL void archive_entry_copy_link_w(struct archive_entry *, const wchar_t *);
0352 __LA_DECL int archive_entry_update_link_utf8(struct archive_entry *, const char *);
0353 __LA_DECL void archive_entry_set_mode(struct archive_entry *, __LA_MODE_T);
0354 __LA_DECL void archive_entry_set_mtime(struct archive_entry *, time_t, long);
0355 __LA_DECL void archive_entry_unset_mtime(struct archive_entry *);
0356 __LA_DECL void archive_entry_set_nlink(struct archive_entry *, unsigned int);
0357 __LA_DECL void archive_entry_set_pathname(struct archive_entry *, const char *);
0358 __LA_DECL void archive_entry_set_pathname_utf8(struct archive_entry *, const char *);
0359 __LA_DECL void archive_entry_copy_pathname(struct archive_entry *, const char *);
0360 __LA_DECL void archive_entry_copy_pathname_w(struct archive_entry *, const wchar_t *);
0361 __LA_DECL int archive_entry_update_pathname_utf8(struct archive_entry *, const char *);
0362 __LA_DECL void archive_entry_set_perm(struct archive_entry *, __LA_MODE_T);
0363 __LA_DECL void archive_entry_set_rdev(struct archive_entry *, dev_t);
0364 __LA_DECL void archive_entry_set_rdevmajor(struct archive_entry *, dev_t);
0365 __LA_DECL void archive_entry_set_rdevminor(struct archive_entry *, dev_t);
0366 __LA_DECL void archive_entry_set_size(struct archive_entry *, la_int64_t);
0367 __LA_DECL void archive_entry_unset_size(struct archive_entry *);
0368 __LA_DECL void archive_entry_copy_sourcepath(struct archive_entry *, const char *);
0369 __LA_DECL void archive_entry_copy_sourcepath_w(struct archive_entry *, const wchar_t *);
0370 __LA_DECL void archive_entry_set_symlink(struct archive_entry *, const char *);
0371 __LA_DECL void archive_entry_set_symlink_type(struct archive_entry *, int);
0372 __LA_DECL void archive_entry_set_symlink_utf8(struct archive_entry *, const char *);
0373 __LA_DECL void archive_entry_copy_symlink(struct archive_entry *, const char *);
0374 __LA_DECL void archive_entry_copy_symlink_w(struct archive_entry *, const wchar_t *);
0375 __LA_DECL int archive_entry_update_symlink_utf8(struct archive_entry *, const char *);
0376 __LA_DECL void archive_entry_set_uid(struct archive_entry *, la_int64_t);
0377 __LA_DECL void archive_entry_set_uname(struct archive_entry *, const char *);
0378 __LA_DECL void archive_entry_set_uname_utf8(struct archive_entry *, const char *);
0379 __LA_DECL void archive_entry_copy_uname(struct archive_entry *, const char *);
0380 __LA_DECL void archive_entry_copy_uname_w(struct archive_entry *, const wchar_t *);
0381 __LA_DECL int archive_entry_update_uname_utf8(struct archive_entry *, const char *);
0382 __LA_DECL void archive_entry_set_is_data_encrypted(struct archive_entry *, char is_encrypted);
0383 __LA_DECL void archive_entry_set_is_metadata_encrypted(struct archive_entry *, char is_encrypted);
0384
0385
0386
0387
0388
0389
0390
0391
0392
0393
0394
0395
0396 __LA_DECL const struct stat *archive_entry_stat(struct archive_entry *);
0397 __LA_DECL void archive_entry_copy_stat(struct archive_entry *, const struct stat *);
0398
0399
0400
0401
0402
0403
0404
0405
0406 __LA_DECL const void * archive_entry_mac_metadata(struct archive_entry *, size_t *);
0407 __LA_DECL void archive_entry_copy_mac_metadata(struct archive_entry *, const void *, size_t);
0408
0409
0410
0411
0412
0413 #define ARCHIVE_ENTRY_DIGEST_MD5 0x00000001
0414 #define ARCHIVE_ENTRY_DIGEST_RMD160 0x00000002
0415 #define ARCHIVE_ENTRY_DIGEST_SHA1 0x00000003
0416 #define ARCHIVE_ENTRY_DIGEST_SHA256 0x00000004
0417 #define ARCHIVE_ENTRY_DIGEST_SHA384 0x00000005
0418 #define ARCHIVE_ENTRY_DIGEST_SHA512 0x00000006
0419
0420 __LA_DECL const unsigned char * archive_entry_digest(struct archive_entry *, int );
0421
0422
0423
0424
0425
0426
0427
0428
0429
0430
0431
0432
0433
0434
0435
0436
0437 #define ARCHIVE_ENTRY_ACL_EXECUTE 0x00000001
0438 #define ARCHIVE_ENTRY_ACL_WRITE 0x00000002
0439 #define ARCHIVE_ENTRY_ACL_READ 0x00000004
0440 #define ARCHIVE_ENTRY_ACL_READ_DATA 0x00000008
0441 #define ARCHIVE_ENTRY_ACL_LIST_DIRECTORY 0x00000008
0442 #define ARCHIVE_ENTRY_ACL_WRITE_DATA 0x00000010
0443 #define ARCHIVE_ENTRY_ACL_ADD_FILE 0x00000010
0444 #define ARCHIVE_ENTRY_ACL_APPEND_DATA 0x00000020
0445 #define ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY 0x00000020
0446 #define ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS 0x00000040
0447 #define ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS 0x00000080
0448 #define ARCHIVE_ENTRY_ACL_DELETE_CHILD 0x00000100
0449 #define ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES 0x00000200
0450 #define ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES 0x00000400
0451 #define ARCHIVE_ENTRY_ACL_DELETE 0x00000800
0452 #define ARCHIVE_ENTRY_ACL_READ_ACL 0x00001000
0453 #define ARCHIVE_ENTRY_ACL_WRITE_ACL 0x00002000
0454 #define ARCHIVE_ENTRY_ACL_WRITE_OWNER 0x00004000
0455 #define ARCHIVE_ENTRY_ACL_SYNCHRONIZE 0x00008000
0456
0457 #define ARCHIVE_ENTRY_ACL_PERMS_POSIX1E \
0458 (ARCHIVE_ENTRY_ACL_EXECUTE \
0459 | ARCHIVE_ENTRY_ACL_WRITE \
0460 | ARCHIVE_ENTRY_ACL_READ)
0461
0462 #define ARCHIVE_ENTRY_ACL_PERMS_NFS4 \
0463 (ARCHIVE_ENTRY_ACL_EXECUTE \
0464 | ARCHIVE_ENTRY_ACL_READ_DATA \
0465 | ARCHIVE_ENTRY_ACL_LIST_DIRECTORY \
0466 | ARCHIVE_ENTRY_ACL_WRITE_DATA \
0467 | ARCHIVE_ENTRY_ACL_ADD_FILE \
0468 | ARCHIVE_ENTRY_ACL_APPEND_DATA \
0469 | ARCHIVE_ENTRY_ACL_ADD_SUBDIRECTORY \
0470 | ARCHIVE_ENTRY_ACL_READ_NAMED_ATTRS \
0471 | ARCHIVE_ENTRY_ACL_WRITE_NAMED_ATTRS \
0472 | ARCHIVE_ENTRY_ACL_DELETE_CHILD \
0473 | ARCHIVE_ENTRY_ACL_READ_ATTRIBUTES \
0474 | ARCHIVE_ENTRY_ACL_WRITE_ATTRIBUTES \
0475 | ARCHIVE_ENTRY_ACL_DELETE \
0476 | ARCHIVE_ENTRY_ACL_READ_ACL \
0477 | ARCHIVE_ENTRY_ACL_WRITE_ACL \
0478 | ARCHIVE_ENTRY_ACL_WRITE_OWNER \
0479 | ARCHIVE_ENTRY_ACL_SYNCHRONIZE)
0480
0481
0482
0483
0484 #define ARCHIVE_ENTRY_ACL_ENTRY_INHERITED 0x01000000
0485 #define ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT 0x02000000
0486 #define ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT 0x04000000
0487 #define ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT 0x08000000
0488 #define ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY 0x10000000
0489 #define ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS 0x20000000
0490 #define ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS 0x40000000
0491
0492 #define ARCHIVE_ENTRY_ACL_INHERITANCE_NFS4 \
0493 (ARCHIVE_ENTRY_ACL_ENTRY_FILE_INHERIT \
0494 | ARCHIVE_ENTRY_ACL_ENTRY_DIRECTORY_INHERIT \
0495 | ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT \
0496 | ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY \
0497 | ARCHIVE_ENTRY_ACL_ENTRY_SUCCESSFUL_ACCESS \
0498 | ARCHIVE_ENTRY_ACL_ENTRY_FAILED_ACCESS \
0499 | ARCHIVE_ENTRY_ACL_ENTRY_INHERITED)
0500
0501
0502 #define ARCHIVE_ENTRY_ACL_TYPE_ACCESS 0x00000100
0503 #define ARCHIVE_ENTRY_ACL_TYPE_DEFAULT 0x00000200
0504 #define ARCHIVE_ENTRY_ACL_TYPE_ALLOW 0x00000400
0505 #define ARCHIVE_ENTRY_ACL_TYPE_DENY 0x00000800
0506 #define ARCHIVE_ENTRY_ACL_TYPE_AUDIT 0x00001000
0507 #define ARCHIVE_ENTRY_ACL_TYPE_ALARM 0x00002000
0508 #define ARCHIVE_ENTRY_ACL_TYPE_POSIX1E (ARCHIVE_ENTRY_ACL_TYPE_ACCESS \
0509 | ARCHIVE_ENTRY_ACL_TYPE_DEFAULT)
0510 #define ARCHIVE_ENTRY_ACL_TYPE_NFS4 (ARCHIVE_ENTRY_ACL_TYPE_ALLOW \
0511 | ARCHIVE_ENTRY_ACL_TYPE_DENY \
0512 | ARCHIVE_ENTRY_ACL_TYPE_AUDIT \
0513 | ARCHIVE_ENTRY_ACL_TYPE_ALARM)
0514
0515
0516 #define ARCHIVE_ENTRY_ACL_USER 10001
0517 #define ARCHIVE_ENTRY_ACL_USER_OBJ 10002
0518 #define ARCHIVE_ENTRY_ACL_GROUP 10003
0519 #define ARCHIVE_ENTRY_ACL_GROUP_OBJ 10004
0520 #define ARCHIVE_ENTRY_ACL_MASK 10005
0521 #define ARCHIVE_ENTRY_ACL_OTHER 10006
0522 #define ARCHIVE_ENTRY_ACL_EVERYONE 10107
0523
0524
0525
0526
0527
0528
0529
0530
0531
0532
0533 __LA_DECL void archive_entry_acl_clear(struct archive_entry *);
0534 __LA_DECL int archive_entry_acl_add_entry(struct archive_entry *,
0535 int , int , int ,
0536 int , const char * );
0537 __LA_DECL int archive_entry_acl_add_entry_w(struct archive_entry *,
0538 int , int , int ,
0539 int , const wchar_t * );
0540
0541
0542
0543
0544
0545
0546 __LA_DECL int archive_entry_acl_reset(struct archive_entry *, int );
0547 __LA_DECL int archive_entry_acl_next(struct archive_entry *, int ,
0548 int * , int * , int * ,
0549 int * , const char ** );
0550
0551
0552
0553
0554
0555
0556
0557
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567
0568
0569
0570
0571
0572
0573 #define ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID 0x00000001
0574 #define ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT 0x00000002
0575 #define ARCHIVE_ENTRY_ACL_STYLE_SOLARIS 0x00000004
0576 #define ARCHIVE_ENTRY_ACL_STYLE_SEPARATOR_COMMA 0x00000008
0577 #define ARCHIVE_ENTRY_ACL_STYLE_COMPACT 0x00000010
0578
0579 __LA_DECL wchar_t *archive_entry_acl_to_text_w(struct archive_entry *,
0580 la_ssize_t * , int );
0581 __LA_DECL char *archive_entry_acl_to_text(struct archive_entry *,
0582 la_ssize_t * , int );
0583 __LA_DECL int archive_entry_acl_from_text_w(struct archive_entry *,
0584 const wchar_t * , int );
0585 __LA_DECL int archive_entry_acl_from_text(struct archive_entry *,
0586 const char * , int );
0587
0588
0589 #define OLD_ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID 1024
0590 #define OLD_ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT 2048
0591
0592
0593 __LA_DECL const wchar_t *archive_entry_acl_text_w(struct archive_entry *,
0594 int ) __LA_DEPRECATED;
0595 __LA_DECL const char *archive_entry_acl_text(struct archive_entry *,
0596 int ) __LA_DEPRECATED;
0597
0598
0599 __LA_DECL int archive_entry_acl_types(struct archive_entry *);
0600
0601
0602 __LA_DECL int archive_entry_acl_count(struct archive_entry *, int );
0603
0604
0605
0606 struct archive_acl;
0607 __LA_DECL struct archive_acl *archive_entry_acl(struct archive_entry *);
0608
0609
0610
0611
0612
0613 __LA_DECL void archive_entry_xattr_clear(struct archive_entry *);
0614 __LA_DECL void archive_entry_xattr_add_entry(struct archive_entry *,
0615 const char * , const void * ,
0616 size_t );
0617
0618
0619
0620
0621
0622
0623 __LA_DECL int archive_entry_xattr_count(struct archive_entry *);
0624 __LA_DECL int archive_entry_xattr_reset(struct archive_entry *);
0625 __LA_DECL int archive_entry_xattr_next(struct archive_entry *,
0626 const char ** , const void ** , size_t *);
0627
0628
0629
0630
0631
0632 __LA_DECL void archive_entry_sparse_clear(struct archive_entry *);
0633 __LA_DECL void archive_entry_sparse_add_entry(struct archive_entry *,
0634 la_int64_t , la_int64_t );
0635
0636
0637
0638
0639
0640
0641 __LA_DECL int archive_entry_sparse_count(struct archive_entry *);
0642 __LA_DECL int archive_entry_sparse_reset(struct archive_entry *);
0643 __LA_DECL int archive_entry_sparse_next(struct archive_entry *,
0644 la_int64_t * , la_int64_t * );
0645
0646
0647
0648
0649
0650
0651
0652
0653
0654
0655
0656
0657
0658
0659
0660
0661
0662
0663
0664
0665
0666
0667
0668
0669
0670
0671
0672
0673
0674 struct archive_entry_linkresolver;
0675
0676
0677
0678
0679
0680
0681
0682
0683
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693
0694
0695
0696
0697
0698
0699
0700
0701
0702
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715
0716 __LA_DECL struct archive_entry_linkresolver *archive_entry_linkresolver_new(void);
0717 __LA_DECL void archive_entry_linkresolver_set_strategy(
0718 struct archive_entry_linkresolver *, int );
0719 __LA_DECL void archive_entry_linkresolver_free(struct archive_entry_linkresolver *);
0720 __LA_DECL void archive_entry_linkify(struct archive_entry_linkresolver *,
0721 struct archive_entry **, struct archive_entry **);
0722 __LA_DECL struct archive_entry *archive_entry_partial_links(
0723 struct archive_entry_linkresolver *res, unsigned int *links);
0724 #ifdef __cplusplus
0725 }
0726 #endif
0727
0728
0729 #undef __LA_DECL
0730
0731 #endif