libsqsh v1.5.2
Loading...
Searching...
No Matches
sqsh_xattr_private.h
Go to the documentation of this file.
1/******************************************************************************
2 * *
3 * Copyright (c) 2023-2024, Enno Boland <g@s01.de> *
4 * *
5 * Redistribution and use in source and binary forms, with or without *
6 * modification, are permitted provided that the following conditions are *
7 * met: *
8 * *
9 * * Redistributions of source code must retain the above copyright notice, *
10 * this list of conditions and the following disclaimer. *
11 * * Redistributions in binary form must reproduce the above copyright *
12 * notice, this list of conditions and the following disclaimer in the *
13 * documentation and/or other materials provided with the distribution. *
14 * *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS *
16 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, *
17 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR *
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR *
19 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
23 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
24 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
26 * *
27 ******************************************************************************/
28
34#ifndef SQSH_XATTR_PRIVATE_H
35#define SQSH_XATTR_PRIVATE_H
36
38#include "sqsh_table_private.h"
39#include "sqsh_xattr.h"
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45/***************************************
46 * xattr/xattr_iterator.c
47 */
48
56 struct SqshArchive *archive;
57 struct SqshMetablockReader metablock;
58 struct SqshMetablockReader out_of_line_value;
59 struct SqshXattrTable *context;
60 size_t remaining_entries;
61 size_t remaining_size;
62 uint64_t upper_limit;
63 uint64_t next_offset;
64 sqsh_index_t value_index;
65};
66
78 struct SqshXattrIterator *iterator, const struct SqshFile *file);
79
91
103 struct SqshXattrTable *context, struct SqshArchive *sqsh);
104
115
116#ifdef __cplusplus
117}
118#endif
119#endif /* SQSH_XATTR_PRIVATE_H */
#define SQSH_NO_EXPORT
Do not export symbol.
Definition sqsh_common.h:64
#define SQSH_NO_UNUSED
Warn if return value is unused.
Definition sqsh_common.h:59
size_t sqsh_index_t
typedef used for indexing
Definition sqsh_common.h:69
SQSH_NO_EXPORT int sqsh__xattr_iterator_cleanup(struct SqshXattrIterator *iterator)
SQSH_NO_EXPORT SQSH_NO_UNUSED int sqsh__xattr_table_init(struct SqshXattrTable *context, struct SqshArchive *sqsh)
SQSH_NO_EXPORT SQSH_NO_UNUSED int sqsh__xattr_iterator_init(struct SqshXattrIterator *iterator, const struct SqshFile *file)
SQSH_NO_EXPORT int sqsh__xattr_table_cleanup(struct SqshXattrTable *context)
The Inode context.
Reader over metablocks.
An iterator over extended attributes.
The extended attribute lookup table.