This file is indexed.

/usr/include/smrbt.h is in libion-dev 3.2.1+dfsg-1.

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
/*

	smrbt.h:	definitions supporting use of red-black trees
			in shared memory.

	Author: Scott Burleigh, JPL
	
	Modification History:
	Date      Who	What
	11-17-11  SCB	Adapted from Julienne Walker tutorial, public
			domain code.
	(http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx)

	Copyright (c) 2011 California Institute of Technology.
	ALL RIGHTS RESERVED.  U.S. Government Sponsorship
	acknowledged.

									*/
#ifndef _SMRBT_H_
#define _SMRBT_H_

#include "psm.h"

#ifndef SMRBT_DEBUG
#define SMRBT_DEBUG	0
#endif

#ifdef __cplusplus
extern "C" {
#endif

/*	Functions for operating on red-black trees in shared memory.	*/

typedef int		(*SmRbtCompareFn)(PsmPartition partition,
				PsmAddress nodeData, void *dataBuffer);
/*	Note: an SmRbtCompareFn operates by comparing some value(s)
	derived from its first argument (which will always be the
	sm_rbt_data of some shared memory rbt node) to some value(s)
	derived from its second argument (which is typically a pointer
	to an object residing in memory).				*/

typedef void		(*SmRbtDeleteFn)(PsmPartition partition,
				PsmAddress nodeData, void *arg);

#define sm_rbt_create(partition) \
Sm_rbt_create(__FILE__, __LINE__, partition)
extern PsmAddress	Sm_rbt_create(char *file, int line,
				PsmPartition partition);
extern void		sm_rbt_unwedge(PsmPartition partition, PsmAddress rbt,
				int interval);

#define sm_rbt_clear(partition, rbt, deleteFn, argument) \
Sm_rbt_clear(__FILE__, __LINE__, partition, rbt, deleteFn, argument)
extern void		Sm_rbt_clear(char *file, int line,
				PsmPartition partition, PsmAddress rbt,
				SmRbtDeleteFn deleteFn, void *argument);

#define sm_rbt_destroy(partition, rbt, deleteFn, argument) \
Sm_rbt_destroy(__FILE__, __LINE__, partition, rbt, deleteFn, argument)
extern void		Sm_rbt_destroy(char *file, int line,
				PsmPartition partition, PsmAddress rbt,
				SmRbtDeleteFn deleteFn, void *argument);

extern PsmAddress	sm_rbt_user_data(PsmPartition partition,
				PsmAddress rbt);
extern void		sm_rbt_user_data_set( PsmPartition partition,
				PsmAddress rbt, PsmAddress userData);
extern long		sm_rbt_length(PsmPartition partition, PsmAddress rbt);

#define sm_rbt_insert(partition, rbt, data, compare, dataBuffer) \
Sm_rbt_insert(__FILE__, __LINE__, partition, rbt, data, compare, dataBuffer)
extern PsmAddress	Sm_rbt_insert(char *file, int line,
				PsmPartition partition, PsmAddress rbt,
				PsmAddress data, SmRbtCompareFn compare,
				void *dataBuffer);

#define sm_rbt_delete(partition, rbt, compare, dataBuffer, deleteFn, \
argument) Sm_rbt_delete(__FILE__, __LINE__, partition, rbt, compare, \
dataBuffer, deleteFn, argument)
extern void		Sm_rbt_delete(char *file, int line,
				PsmPartition partition, PsmAddress rbt,
				SmRbtCompareFn compare, void *dataBuffer,
				SmRbtDeleteFn deleteFn, void *argument);

extern PsmAddress	sm_rbt_search(PsmPartition partition, PsmAddress rbt,
				SmRbtCompareFn compare, void *dataBuffer,
				PsmAddress *successor);

extern PsmAddress	sm_rbt_first(PsmPartition partition, PsmAddress rbt);
extern PsmAddress	sm_rbt_last(PsmPartition partition, PsmAddress rbt);
#define sm_rbt_prev(partition, node) Sm_rbt_traverse(partition, node, 0)
#define sm_rbt_next(partition, node) Sm_rbt_traverse(partition, node, 1)
extern PsmAddress	Sm_rbt_traverse(PsmPartition partition,
				PsmAddress node, int direction);

extern PsmAddress	sm_rbt_rbt(PsmPartition partition, PsmAddress node);
extern PsmAddress	sm_rbt_data(PsmPartition partition, PsmAddress node);
#ifdef __cplusplus
}
#endif

#endif  /* _SMRBT_H_ */