This file is indexed.

/usr/include/iarray.h is in libowfat-dev 0.29-4.

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
/* this header file comes from libowfat, http://www.fefe.de/libowfat/ */
#ifndef IARRAY_H
#define IARRAY_H

#warning DO NOT USE THIS YET.  It may look thread-safe but it is not!

#include "uint64.h"
#include <stddef.h>
#ifdef __MINGW32__
#include <windows.h>
#else
#include <pthread.h>
#endif

/* this is an indirect array; it only reallocs the indirect index, not
 * the whole array.  The actual data does not move.  So there is no need
 * to lock the array for read accesses. */

typedef struct {
  char** pages;
  size_t elemsize,pagefence,elemperpage,bytesperpage;
  /* pagefence is the number of pages + 1,
   * i.e. the first out of bounds index in "pages" */
#ifdef __MINGW32__
  CRITICAL_SECTION cs;
#else
  pthread_mutex_t m;
#endif
} iarray;

void iarray_init(iarray* ia,size_t elemsize);
void* iarray_get(iarray* ia,size_t pos);
void* iarray_allocate(iarray* ia,size_t pos);

/* WARNING: do not use the array during or after iarray_free, make sure
 * no threads are potentially doing anything with the iarray while it is
 * being freed! */
void iarray_free(iarray* ia);

#endif