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