This file is indexed.

/usr/include/Yap/Atoms.h is in yap 6.2.2-6build1.

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
/*************************************************************************
*									 *
*	 YAP Prolog   %W% %G%
*									 *
*	Yap Prolog was developed at NCCUP - Universidade do Porto	 *
*									 *
* Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997	 *
*									 *
**************************************************************************
*									 *
* File:		Atoms.h.m4						 *
* Last rev:	19/2/88							 *
* mods:									 *
* comments:	atom properties header file for YAP			 *
*									 *
*************************************************************************/

#ifndef ATOMS_H
#define ATOMS_H 1

#undef EXTERN
#ifndef ADTDEFS_C
#define EXTERN  static
#else
#define EXTERN
#endif

#include <wchar.h>

typedef    struct atom_blob {
  size_t length;
  char data[MIN_ARRAY];
} atom_blob_t;

/*********  operations for atoms ****************************************/

/*    Atoms are assumed to be uniquely represented by an OFFSET and to have
    associated with them a struct of type AtomEntry
    The	two functions
	RepAtom	: Atom -> *AtomEntry
	AbsAtom	: *AtomEntry ->	Atom
    are used to encapsulate the implementation of atoms
*/

typedef struct AtomEntryStruct *Atom;
typedef struct PropEntryStruct *Prop;


/* I can only define the structure after I define the actual atoms */

/*		 atom structure						*/
typedef struct AtomEntryStruct
{
  Atom NextOfAE;		/* used to build hash chains                    */
  Prop PropsOfAE;		/* property list for this atom                  */
#if defined(YAPOR) || defined(THREADS)
  rwlock_t ARWLock;
#endif

  union {
    char uStrOfAE[MIN_ARRAY];	/* representation of atom as a string           */
    wchar_t uWStrOfAE[MIN_ARRAY];	/* representation of atom as a string           */
    struct atom_blob blob[MIN_ARRAY];
  } rep;
}
AtomEntry;

#define StrOfAE rep.uStrOfAE
#define WStrOfAE rep.uWStrOfAE


/* Props and Atoms are stored in chains, ending with a NIL */
#ifdef USE_OFFSETS
#	define EndOfPAEntr(P)	( Addr(P) == AtomBase)
#else
#	define EndOfPAEntr(P)	( Addr(P) == NIL )
#endif

#define AtomName(at)	RepAtom(at)->StrOfAE


/* ********************** Properties  **********************************/

#if defined(USE_OFFSETS)
#define USE_OFFSETS_IN_PROPS 1
#else
#define USE_OFFSETS_IN_PROPS 0
#endif

typedef SFLAGS PropFlags;

/*	    basic property entry structure				*/
typedef struct PropEntryStruct
{
  Prop NextOfPE;		/* used to chain properties                     */
  PropFlags KindOfPE;		/* kind of property                             */
} PropEntry;

/* ************************* Functors  **********************************/

     /*         Functor data type
        abstype Functor =       atom # int
        with MkFunctor(a,n) = ...
        and  NameOfFunctor(f) = ...
        and  ArityOfFunctor(f) = ...                                    */

#define	MaxArity	    255


#define FunctorProperty   ((PropFlags)(0xbb00))

/* functor property */
typedef struct FunctorEntryStruct
{
  Prop NextOfPE;		/* used to chain properties     */
  PropFlags KindOfPE;		/* kind of property             */
  unsigned int ArityOfFE;	/* arity of functor             */
  Atom NameOfFE;		/* back pointer to owner atom   */
  Prop PropsOfFE;		/* pointer to list of properties for this functor */
#if defined(YAPOR) || defined(THREADS)
  rwlock_t FRWLock;
#endif
} FunctorEntry;

typedef FunctorEntry *Functor;

#endif /* ATOMS_H */