This file is indexed.

/usr/include/ncbi/ncbisami.h is in libncbi6-dev 6.1.20110713-3ubuntu2.

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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
/* $Id: ncbisami.h,v 6.5 2006/05/10 20:47:13 camacho Exp $
* ===========================================================================
*
*                            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.
*
* ===========================================================================
*
* File Name:  $RCSfile: ncbisami.h,v $
*
* Author:  Sergei Shavirin
*
* Initial Version Creation Date: 02/24/1997
*
* $Revision: 6.5 $
*
* File Description:
*         Internal include file for ISAM library
*
* $Log: ncbisami.h,v $
* Revision 6.5  2006/05/10 20:47:13  camacho
* From Ilya Dondoshansky: Added sorting_done field to ISAMData to indicate that data is already sorted
*
* Revision 6.4  2002/01/18 18:53:13  madden
* Changes to research the last page if appropriate
*
* Revision 6.3  2000/07/18 19:29:28  shavirin
* Added new parameter test_non_unique to suppress check for non-unique
* strings ids in the database - default - TRUE.
*
* Revision 6.2  1999/08/25 20:19:24  shavirin
* Added parameter for user options to the internal structure.
*
* Revision 6.1  1999/02/19 22:01:59  madden
* Add NlmMFILEPtr to ISAMData typedef
*
* Revision 6.0  1997/08/25 18:53:32  madden
* Revision changed to 6.0
*
* Revision 1.6  1997/05/12 19:55:32  shavirin
* Some fixes type-changes to support ISAMCreateDatabase() API
*
* Revision 1.5  1997/05/07 21:14:18  shavirin
* Added definitions for fields array encoding and ISAMCreateDatabase()
* function.
*
* Revision 1.4  1997/05/06 21:36:50  shavirin
* Added definitions of functions for Codded Array compression
* implementation
*
 * Revision 1.3  1997/05/05  18:17:35  shavirin
 * Added support for platforms without memory mapping
 *
 * Revision 1.2  1997/05/01  17:26:16  shavirin
 * Added String ISAM index functionality
 *
 * Revision 1.1  1997/02/24  21:07:17  shavirin
 * Initial revision
 *
*
* ==========================================================================
*/

#ifndef _NCBISAMI_H_
#define _NCBISAMI_H_ ncbisami

/****************************************************************************/
/* INCLUDES */
/****************************************************************************/

#include <ncbisam.h>

/****************************************************************************/
/* INTERNAL FINCTION DEFINITIONS */
/****************************************************************************/

#ifdef __cplusplus
extern "C" {
#endif

#ifdef __cplusplus
}
#endif
/****************************************************************************/
/* DEFINES */
/****************************************************************************/

#define MAX_FILENAME_LEN 256
#define LINE_SIZE_CHUNK  4096
#define BUFF_SIZE_CHUNK  1024
#define UID_NUM_CHUNK    1024

#define ISAM_VERSION 1
#define ISAM_DATA_CHAR '\2'
#define ENDS_ISAM_KEY(Ptr) ((*Ptr == NULLB) || (*Ptr == ISAM_DATA_CHAR) || (*Ptr == '\n') || (*Ptr == '\r'))

#define Log2(N) (log(N)/log(2.0))
#define CA_TMP_CHUNK 4096
#define FA_Mask 0x7F
#define DEFAULT_CA_MAX_OFFSET 10000000

/****************************************************************************/
/* TYPEDEFS */
/****************************************************************************/

typedef struct NISAMKeyData
{
    Uint4 key;
    Uint4 data;
} NISAMKeyData, PNTR NISAMKeyDataPtr;

typedef struct ISAMUidField
{
    Uint4 uid;
    Uint4 field;
} ISAMUidField, PNTR ISAMUidFieldPtr;

typedef struct ISAMData
{
    Int4            type;           /* Type of ISAM index */
  
    CharPtr         DBFileName;     /* Filename of database file */
    CharPtr         IndexFileName;  /* Filename of ISAM index file */

    CharPtr         CAName;         /* Common filename-directory for CA */
    CharPtr         CADBExt;        /* Extention for CA/FA files */
    CharPtr         CAOffExt;       /* Extention for CA-Offset files */
    Int4            CAMaxOffset;    /* Offset for switch CA DB/Offset file */

    Nlm_MemMapPtr   mmp;            /* Memory map pointer to index file */
    NlmMFILEPtr     mfp;            /* Memory map pointer to database file for numeric search. */
    CharPtr         FileStart;      /* Pointer to index file if no memmap */
    Int4            NumTerms;       /* Number of terms in database */
    Int4            NumSamples;     /* Number of terms in ISAM index */
    Int4            PageSize;       /* Page size of ISAM index */
    FILE            *db_fd;         /* File pointer of ISAM database */
    Boolean         initialized;    /* Is this structure was initialized 
                                       for ISAM Search ? */
    Uint4Ptr        KeySamples;     /* Pointer to first sample offset 
                                       in ISAM index */
    NISAMKeyDataPtr KeyDataSamples; /* Pointer to first NISAMKeyData structure
                                       in ISAM index (for search with data) */
    
    CharPtr         line;           /* Temporary buffer to work with strings */
    Int4            max_line_size;  /* Maximum string length in the database */
    Int4            idx_option;    /* Options set by upper layer */
    Boolean       test_non_unique; /* Check if data for String ISAM sorted */
	/* the following values are used to find gi's on a page that was recently searched. */
    NISAMKeyDataPtr lastKeyDataPage;	/* last page searched. */
    Int4 first_gi, last_gi;		/* first and last gi's of last page. */
    Int4 first, last;		/* first and last offset's of last page. */
    Boolean sorting_done; /* Is data already sorted? */
} ISAMData, PNTR ISAMDataPtr;

typedef struct ISAMTmpCA
{
    Uint1Ptr buffer;  /* Buffer with coded array bytes */
    Int4 allocated;   /* Memory size allocated for the buffer */
    Int4 length;      /* Final length of CA buffer */
    Int4 num_uids;    /* Number of coded uids in CA */
    Int4 num_bits;    /* Number of bits used for CA compression */
    Int4 byte_num;    /* Temorary value for into CA buffer */
    Int4 bit_num;     /* Temporary value for CA buffer */
} ISAMTmpCA, PNTR ISAMTmpCAPtr;

static Uint4 PowersOfTwo[] = {01,02,04,010,020,040,0100,0200,0400,01000,
                               02000,04000,010000,020000,040000,0100000,
                               0200000,0400000,01000000,02000000,
                               04000000,010000000,020000000,040000000,
                               0100000000,0200000000,0400000000,
                               01000000000,02000000000,
                               04000000000,010000000000, 020000000000};

static Uint1 OneBit[] = {0x80 , 0x40, 0x20, 0x10, 0x8, 0x4, 0x2, 0x1};

#endif