This file is indexed.

/usr/include/ncbi-vdb/kfs/arc.h is in libncbi-vdb-dev 2.8.1+dfsg-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*===========================================================================
*
*                            PUBLIC DOMAIN NOTICE
*               National Center for Biotechnology Information
*
*  This software/database is a "United States Government Work" under the
*  terms of the United States Copyright Act.  It was written as part of
*  the author's official duties as a United States Government employee and
*  thus cannot be copyrighted.  This software/database is freely available
*  to the public for use. The National Library of Medicine and the U.S.
*  Government have not placed any restriction on its use or reproduction.
*
*  Although all reasonable efforts have been taken to ensure the accuracy
*  and reliability of the software and data, the NLM and the U.S.
*  Government do not and cannot warrant the performance or results that
*  may be obtained by using this software or data. The NLM and the U.S.
*  Government disclaim all warranties, express or implied, including
*  warranties of performance, merchantability or fitness for any particular
*  purpose.
*
*  Please cite the author in any work or product based on this material.
*
* ===========================================================================
*
*/

#ifndef _h_kfs_arc_
#define _h_kfs_arc_

#ifndef _h_kfs_extern_
#include <kfs/extern.h>
#endif

#ifndef _h_klib_defs_
#include <klib/defs.h>
#endif

#include <kfs/toc.h>

#ifdef __cplusplus
extern "C" {
#endif

struct KDirectory;
struct KFile;
struct KToc;
struct vector;

/* validate_header_offsets
 *	This function is a special friend function to the archive package used
 *	to validate that the compiler used to build the package matches 
 *	used structure offsets "correctly" to enable the parsing of TAR files.
 * NOTE:
 *	This function should not be used except by ktartest (klib/tools/ktartest.c).
 *	It is built only in a special logging version of the libraries.
 */
KFS_EXTERN bool CC validate_header_offsets(void);

typedef struct KArcDir KArcDir;
typedef struct KArcFile KArcFile;

typedef uint32_t KArcFSType;
enum eKArcFSType
{
    tocUnknown,
    tocKFile,
    tocKDirectory,
    tocKVirtual
};


/* OpenArcDirRead
 *
 * This should probably move into the toc-priv with a specific call to open each archive type
 * with the parse private and not needing the dad-gummed CC and KFS_EXTERN
 *  Open an archive file as a KDirectory derived type: made to match 
 *  KDirectoryOpenDirRead() where parse could be the first element of arg
 *
 * [IN]  dir    A KDirectory (of any derived type) to reach the archive file
 * [OUT] pdir   The KDirectory (of type KArcDir) that will be created
 * [IN]  chroot if non-zero, the new directory becomes chroot'd and interprets paths
 *      stating with '/'
 * [IN]  path   The path to the archive - this will become the directory path
 * [IN]  parse  A pointer to the function needed to build a TOC by parsing the file
 *
 * parameters to parse
 * REQUIRED:    KToc *
 * REQUIRED:    void *  KFile* | KDirectory* | ???
 * OPTIONAL:    bool (*)(const char*)           Filter: include or skip this path
 * OPTIONAL:    rc_t (*)(???)               Sort: reorder name list
 */
KFS_EXTERN rc_t CC KDirectoryOpenArcDirRead(const struct KDirectory * self, 
    const struct KDirectory ** pdir, bool chroot, const char * path, KArcFSType baseType,
    rc_t ( CC * parse )(struct KToc *,const void *,
        bool( CC * )(const struct KDirectory*, const char *, void*), void*),
        bool (CC* filter )(const KDirectory*, const char *, void *), void * filterparam);

KFS_EXTERN rc_t CC KDirectoryOpenArcDirRead_silent(const struct KDirectory * self, 
    const struct KDirectory ** pdir, bool chroot, const char * path, KArcFSType baseType,
    rc_t ( CC * parse )(struct KToc *,const void *,
        bool( CC * )(const struct KDirectory*, const char *, void*), void*),
        bool (CC* filter )(const KDirectory*, const char *, void *), void * filterparam);

KFS_EXTERN rc_t CC KDirectoryOpenArcDirRead_silent_preopened(const struct KDirectory * self, 
    const struct KDirectory ** pdir, bool chroot, const char * path, KArcFSType baseType,
    void * f,
    rc_t ( CC * parse )(struct KToc *,const void *,
        bool( CC * )(const struct KDirectory*, const char *, void*), void*),
        bool (CC* filter )(const KDirectory*, const char *, void *), void * filterparam);


KFS_EXTERN bool CC KDirectoryIsKArcDir ( const KDirectory * self );
KFS_EXTERN bool CC KArcDirIsFromRemote ( const KArcDir * self );


#if 0
/* ----------------------------------------------------------------------
 * KDirectoryToKArcDir
 *
 * [IN]  const KDirectory * 	self	Object oriented C
 * [OUT] const KArcDir * 	cast	Object oriented C
 *
 *
 * Get a reference to a KArcDir from a KDirectory as a cast.  It is a new reference.
 */

KFS_EXTERN rc_t CC KDirectoryToKArcDir (const KDirectory * self, const KArcDir ** cast);

KFS_EXTERN rc_t CC KArcDirList ( const KArcDir *self, struct KNamelist **list,
    bool ( CC * f ) ( const KArcDir *dir, const char *name, void *data ),
    void *data, const char *path, ... );
KFS_EXTERN rc_t CC KArcDirVList ( const KArcDir *self, struct KNamelist **list,
    bool ( CC * f ) ( const KArcDir *dir, const char *name, void *data ),
    void *data, const char *path, va_list args );
#endif



#ifdef __cplusplus
}
#endif

#endif /* _h_kfs_arc_ */