This file is indexed.

/usr/lib/iraf/lib/plio.h is in iraf-dev 2.16.1+2018.03.10-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
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
# PLIO.H -- Package internal global defines for the Pixel List package.

# Size limiting definitons
define	PL_MAXDIM	7		# maximum mask dimensionality
define	PL_MAGICVAL	2014		# identifies mask and version no.
define	PL_LLBUFLEN	512		# initial llbuf size
define	PL_STARTINC	512		# starting llbuf increment on overflow
define	PL_MAXINC	4096		# maximum increment per resize
define	PL_MAXFREE	40		# max percent free (wasted) space
define	PL_MAXDEPTH	27		# max mask depth, bits
define	PL_DEFMAXLINE	1024		# default max elements per [lr]list

# Main PL descriptor.
define	LEN_PLDES	28
define	MLO		3		# must update PLSET.H too if changed

define	PL_MAGIC	Memi[$1]	# magic / version no.
define	PL_PRIVATE1	Memi[$1+1]	# private data for client
define	PL_PRIVATE2	Memi[$1+2]	# more private data for client
define	PL_MAXLINE	Memi[$1+MLO]	# max elements per [lr]list [PLSET.H]
define	PL_MAXVAL	Memi[$1+4]	# max pixel value (2**N - 1)
define	PL_NAXES	Memi[$1+5]	# dimensionality
define	PL_AXLEN	Memi[$1+6+$2-1]	# length of each axis
define	PL_PLANE	Memi[$1+13+$2-1] # active plane (pl_setplane)
define	PL_LLBP		Memi[$1+20]	# line list bufptr
define	PL_LLOP		Memi[$1+21]	# next location in llbuf
define	PL_LLLEN	Memi[$1+22]	# current llbuf length
define	PL_LLFREE	Memi[$1+23]	# amount of free space in list
define	PL_LLNUPDATES	Memi[$1+24]	# number of list modifications
define	PL_LLINC	Memi[$1+25]	# current llbuf increment on overflow
define	PL_NLP		Memi[$1+26]	# number of line pointers
define	PL_LPP		Memi[$1+27]	# ptr to array of LL offsets

define	PM_REFIM	PL_PRIVATE1($1)	# reference image
define	PM_MAPXY	PL_PRIVATE2($1)	# need to transform coords

# Handy macros.
define	Ref		(PL_LLBP($1)+$2)# llbuf offset -> pointer
define	LL		Mems[Ref($1,$2)]# pointer -> array reference
define	PL_LP		Memi[PL_LPP($1)+$2-1]
define	PL_EMPTYLINE	0		# llbuf offset of the empty line
define	PL_NEEDCOMPRESS	((PL_LLFREE($1)*100/PL_LLOP($1))>PL_MAXFREE)
define	LL_MAXLEN	PL_MAXLINE($1)
define	RL_MAXLEN	(PL_MAXLINE($1)*3)
define	MV		((2**min($1,27))-1)

# Handy rasterop decoding macros.
define	R_OPCODE		and($1,17B)
define	R_DATA			($1/100B)
define	R_NEED_DST		(and(xor(($1)/2,($1)),5)!=0)
define	R_NEED_SRC		(and(xor(($1)/4,($1)),3)!=0)
define	R_NOTDST		(and($1,6)==4)
define	R_NOTSRC		(and($1,6)==2)

# Internal rasterop definitions (PIX_SRC=14B, PIX_DST=12B, CLR=0B, SET=17B).
define	PIX_NOTSRC		03B
define	PIX_NOTDST		05B
define	PIX_SRC_AND_DST		10B
define	PIX_SRC_OR_DST		16B
define	PIX_SRC_XOR_DST		06B
define	PIX_SRC_AND_NOTDST	04B
define	PIX_SRC_OR_NOTDST	15B
define	PIX_NOTSRC_AND_DST	02B
define	PIX_NOTSRC_OR_DST	13B
define	PIX_NOT_SRC_AND_DST	07B
define	PIX_NOT_SRC_OR_DST	01B
define	PIX_NOT_SRC_XOR_DST	11B


# Macro defines for the line list data format.

# ----- Old/original line list header definitions.  This version uses a
# ----- three element header, but the maximum values are limited to 32K by
# ----- the use of type short.

# Line list definitions (accessed as a short integer array).
define	OLL_NREF	$1[1]		# number of references
define	OLL_BLEN	$1[2]		# length of buffer containing LL
define	OLL_LEN		$1[3]		# length of encoded line list
define	OLL_FIRST	4		# first data range entry in list

# Line list definitions (accessed via a short integer pointer).
define	OLP_NREF	Mems[$1]	# number of references
define	OLP_BLEN	Mems[$1+1]	# length of buffer containing LL
define	OLP_LEN		Mems[$1+2]	# length of encoded line list
define	OLP_FIRST	3		# first data range entry in list


# ----- New format line list header definitions.  This version uses a 
# ----- variable length header and a version number to allow new encodings
# ----- while retaining backwards compatibility.

define  LL_CURVERSION	(-100)		# LL version code (must be negative)
define	LL_OLDFORMAT	(LL_VERSION($1) > 0)
define	LL_CURHDRLEN	7

# Line list definitions (accessed as a short integer array).
define	LL_NREFS	$1[1]		# number of references
define	LL_HDRLEN	$1[2]		# length of encoded line list
define	LL_VERSION	$1[3]		# version number (negative)
define	LL_LENLO	$1[4]		# length of encoded line list
define	LL_LENHI	$1[5]		# length of encoded line list
define	LL_BLENLO	$1[6]		# length of LL buffer
define	LL_BLENHI	$1[7]		# length of LL buffer

# Handy line list macros.
define	LL_NREF		(int(LL_NREFS($1)))
define	LL_BLEN		((int(LL_BLENHI($1)))*32768+(int(LL_BLENLO($1))))
define	LL_SETBLEN	LL_BLENLO($1)=mod($2,32768); LL_BLENHI($1)=($2)/32768
define	LL_LEN		((int(LL_LENHI($1)))*32768+(int(LL_LENLO($1))))
define	LL_SETLEN	LL_LENLO($1)=mod($2,32768); LL_LENHI($1)=($2)/32768
define	LL_FIRST	(LL_HDRLEN($1)+1)

# Line list definitions (accessed as a short integer pointer).
define	LP_NREFS	Mems[$1]	# number of references
define	LP_HDRLEN	Mems[$1+1]	# length of encoded line list
define	LP_VERSION	Mems[$1+2]	# version number (negative)
define	LP_LENLO	Mems[$1+3]	# length of encoded line list
define	LP_LENHI	Mems[$1+4]	# length of encoded line list
define	LP_BLENLO	Mems[$1+5]	# length of LL buffer
define	LP_BLENHI	Mems[$1+6]	# length of LL buffer

# Handy line list pointer macros.
define	LP_NREF		(int(LP_NREFS($1)))
define	LP_BLEN		(int(LP_BLENHI($1))*32768+int(LP_BLENLO($1)))
define	LP_SETBLEN	LP_BLENLO($1)=mod($2,32768); LP_BLENHI($1)=($2)/32768
define	LP_LEN		(int(LP_LENHI($1))*32768+int(LP_LENLO($1)))
define	LP_SETLEN	LP_LENLO($1)=mod($2,32768); LP_LENHI($1)=($2)/32768
define	LP_FIRST	(($1)+LP_HDRLEN($1))


# Packed instruction decoding.
define	I_SHIFT		10000B		# shift to encode/decode data bits
define	I_DATA		and(int($1),7777B)	# extract data
define	I_OPCODE	(($1)/10000B)	# extract opcode value
define	I_OPCODEMASK	and(int($1),70000B)	# extract opcode mask
define	I_DATAMAX	7777B		# max data field value
define	I_PVMAX		777777777B	# max mask pixel value (27 bits)

# LL instruction opcodes.
define	I_ZN		0		# N zeros
define	I_HN		4		# N high values
define	I_PN		5		# N-1 zeros and 1 high value
define	I_SH		1		# set high value (2 words)
define	I_IH		2		# increment high value
define	I_DH		3		# decrement high value
define	I_IS		6		# increment and output 1 high value
define	I_DS		7		# decrement and output 1 high value

# The LL instruction opcodes again, but as bitmasks this time.
define	M_ZN		00000B
define	M_HN		40000B
define	M_PN		50000B
define	M_SH		10000B
define	M_IH		20000B
define	M_DH		30000B
define	M_IS		60000B
define	M_DS		70000B

# The following bit is set if the instruction changes the current position.
define	M_MOVE		40000B

# PL external format descriptor (with some extra space).
define	LEN_PLEXTERN	20
define	PLE_MAGIC	Memi[$1]	# usual magic value
define	PLE_NAXES	Memi[$1+1]	# number of axes 
define	PLE_AXLEN	Memi[$1+2+$2-1]	# length of each axis
define	PLE_LLOP	Memi[$1+9]	# next location in llbuf
define	PLE_LLLEN	Memi[$1+10]	# length of llbuf
define	PLE_NLP		Memi[$1+11]	# number of line pointers
define	PLE_NLPX	Memi[$1+12]	# length of compressed LP array
define	PLE_EXLEN	Memi[$1+13]	# length of full PLEXTERN structure
define	PLE_FLAGS	Memi[$1+14]	# flags for type of encoding
define	PLE_MAXLINE	Memi[$1+15]	# max elements per [lr]list
define	PLE_MAXVAL	Memi[$1+16]	# max pixel value

# PLIO mask savefile descriptor.
define	PLIO_SVMAGIC	123126B		# "SV"
define	LEN_SVDES	3
define	SV_MAGIC	Memi[$1]	# identifies file type
define	SV_TITLELEN	Memi[$1+1]	# title string length, including EOS
define	SV_MASKLEN	Memi[$1+2]	# encoded mask length, shorts

# Internal symbols.
define	LOOP_DONE	1
define	LOOP_AGAIN	0