This file is indexed.

/usr/share/scheme48-1.9/posix/packages.scm is in scheme48 1.9-5.

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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
; Part of Scheme 48 1.9.  See file COPYING for notices and license.

; Authors: Richard Kelsey, Jonathan Rees, Mike Sperber, Roderic Morris,
; Eric Knauel, Martin Gasbichler, Will Noble

(define-interface posix-files-interface
  (export directory-stream?
	  open-directory-stream		; name -> directory
	  read-directory-stream		; directory -> name or #f
	  close-directory-stream	; directory -> ()
	  list-directory		; name -> list of names

	  working-directory
	  set-working-directory!

	  open-file

	  (file-options :syntax)
	  file-options-on?
	  file-options-union

	  make-directory
	  make-fifo

	  link
	  unlink
	  remove-directory
	  rename

	  get-file-info get-file/link-info get-port-info

	  file-info?
	  file-info-name
	  file-info-type
	  file-info-device
	  file-info-inode
	  file-info-mode
	  file-info-link-count
	  file-info-owner
	  file-info-group
	  file-info-size
	  file-info-last-access
	  file-info-last-modification
	  file-info-last-status-change

	  file-type? file-type-name
	  (file-type :syntax)

	  set-file-creation-mask!

	  file-mode?
	  (file-mode :syntax)
	  file-mode+ file-mode-
	  file-mode=? file-mode<=? file-mode>=?
	  file-mode->integer integer->file-mode

	  accessible?
	  (access-mode :syntax)

	  create-symbolic-link
	  read-symbolic-link
	  ))

(define-interface posix-time-interface
  (export make-time time? time-seconds
	  time=? time<? time<=? time>? time>=?
	  time->string
	  current-time
	  make-date date?
	  date-second date-minute date-hour
	  date-month-day date-month
	  date-year
	  date-week-day
	  date-year-day
	  date-dst

	  date->string
	  time->utc-date
	  time->local-date
	  date->time
	  format-date
	  ))

(define-interface posix-users-interface
  (export user-id?
	  user-id->integer integer->user-id
	  user-id=?

	  user-info?
	  user-info-name user-info-id user-info-group
	  user-info-home-directory user-info-shell
	  user-id->user-info
	  name->user-info

	  group-id?
	  group-id->integer integer->group-id
	  group-id=?

	  group-info?
	  group-info-name group-info-id group-info-members
	  group-id->group-info
	  name->group-info
	  ))

(define-interface posix-errnos-interface
  (export (errno :syntax)
	  errno-name
	  errno-os-number
	  integer->errno
	  name->errno
          errno=?
          errno?))

(define-interface posix-syslog-interface
  (export (syslog-option :syntax)
	  syslog-option?

	  make-syslog-options
	  syslog-options?
	  (syslog-options :syntax)

	  (syslog-facility :syntax)
	  syslog-facility?

	  (syslog-level :syntax)
	  syslog-level?

	  make-syslog-mask
	  syslog-mask?
	  (syslog-mask :syntax)
	  syslog-mask-all
	  syslog-mask-upto

	  with-syslog-destination

	  syslog

	  open-syslog-channel
	  close-syslog-channel
	  with-syslog-channel))

(define-structures ((posix-files posix-files-interface)
		    (posix-users posix-users-interface))
  (open scheme define-record-types finite-types
	external-calls load-dynamic-externals
	bitwise			;for manipulating protection masks
	exceptions
	posix-file-options
	posix-time ; external binding for `posix-time-type'
	channels
	channel-i/o
	channel-ports
	os-strings)
  (for-syntax (open scheme bitwise))
  (files dir))

(define-structure posix-time  posix-time-interface
  (open scheme
	define-record-types
	external-calls load-dynamic-externals
	os-strings)
  (files time))

(define-structure posix-file-options (export ((file-option file-options)
					        :syntax)
					     file-options?
					     file-options-on?
					     file-options-union)
  (open scheme define-record-types finite-types enum-sets
	external-calls load-dynamic-externals
	bitwise)
  (files file-options))

(define-interface posix-process-data-interface
  (export get-process-id get-parent-process-id

	  ; I am not happy with these names.  They don't mention the process.
	  get-user-id get-effective-user-id
	  set-user-id! set-effective-user-id!
	  get-group-id get-effective-group-id
	  set-group-id! set-effective-group-id!

	  get-groups
	  get-login-name

	  lookup-environment-variable
	  lookup-environment-variable->string
	  set-environment-variable!
	  environment-alist
	  environment-alist-as-strings
	  ))

(define-interface posix-platform-names-interface
  (export os-name os-node-name os-release-name os-version-name
	  machine-name))

(define-structures ((posix-process-data posix-process-data-interface)
		    (posix-platform-names posix-platform-names-interface))
  (open scheme define-record-types
	external-calls load-dynamic-externals
	os-strings
	interrupts
	posix-processes posix-users posix-time) ; we need these to be loaded
  (files proc-env))

(define-interface posix-processes-interface
  (export process-id?
	  process-id=?

	  process-id->integer
	  integer->process-id

	  process-id-exit-status
	  process-id-terminating-signal

	  fork
	  fork-and-forget

	  exec
	  exec-with-environment
	  exec-file
	  exec-file-with-environment
	  exec-with-alias

	  exit

	  wait-for-child-process

	  signal-process

	  (signal :syntax)
	  signal-name
	  signal-os-number
	  integer->signal
	  name->signal
          signal=?
          signal?

	  make-signal-queue
	  signal-queue?
	  signal-queue-monitored-signals
	  dequeue-signal!
	  maybe-dequeue-signal!
	  signal-queue-signals
	  add-signal-queue-signal!
	  remove-signal-queue-signal!
	  ))

(define-structure posix-processes posix-processes-interface
  (open scheme
	define-record-types finite-types
	reinitializers
	external-calls load-dynamic-externals
	interrupts
	placeholders
	weak
	value-pipes
	debug-messages
	session-data
	exceptions
	root-scheduler		;scheme-exit-now
	channel-ports		;force-channel-output-ports!
	interrupts		;set-interrupt-handler!
	architecture		;interrupts enum
	os-strings)
  (files proc
	 signal))

(define-interface posix-i/o-interface
  (export open-pipe

	  dup
	  dup-switching-mode
	  dup2
	  remap-file-descriptors!
	  close-all-but

	  close-on-exec?
	  set-close-on-exec?!

	  i/o-flags
	  set-i/o-flags!

	  fd-port?
	  port->fd

	  port-is-a-terminal?
	  port-terminal-name
	  ))

(define-structure posix-i/o posix-i/o-interface
  (open scheme
	external-calls load-dynamic-externals
	i/o			;read-block
	channels
	channel-i/o
	channel-ports
	exceptions
	util
	posix-file-options
	ports			;port?
	os-strings
	architecture
	enum-case)
  (files io))

(define-interface posix-regexps-interface
  (export make-regexp
	  (regexp-option :syntax)
	  regexp?
	  regexp-match

	  match?
	  match-start
	  match-end
	  match-submatches
	  ))

(define-structures ((posix-regexps posix-regexps-interface)
		    (posix-regexps-internal (export make-match)))
  (open scheme define-record-types finite-types
	external-calls load-dynamic-externals
	(subset big-util (string->immutable-string))
	exceptions
	os-strings text-codecs)
  (files regexp))

(define-interface regexps-interface
  (export set
	  range ranges
	  ascii-range ascii-ranges

	  negate intersection union subtract

	  regexp?

	  lower-case upper-case alphabetic
	  numeric hexdigit
	  alphanumeric
	  punctuation whitespace blank
	  graphic printing
	  control

	  sequence one-of text repeat

	  string-start string-end

	  ignore-case use-case

	  submatch no-submatches

	  any-match? exact-match?
	  match

	  match?
	  match-start match-end match-submatches))

(define-interface regexps-internal-interface
  (export set? char-in-set? set-string
	  the-empty-set empty-set?
	  string-start? string-end?
	  submatch? submatch-exp submatch-id
	  sequence? sequence-exps
	  epsilon epsilon?
	  one-of? one-of-exps
	  repeat? repeat-low repeat-high repeat-exp))

(define-structures ((regexps regexps-interface)
		    (regexps-internal regexps-internal-interface))
  (open scheme define-record-types mvlet ascii unicode exceptions
	bitwise bigbit
	reduce
	(modify posix-regexps (hide regexp?) (rename (make-regexp make-posix-regexp)))
	posix-regexps-internal
	(subset util (every)))
  (optimize auto-integrate)
  (files func-regexp))


(define-structure posix-errnos posix-errnos-interface
  (open scheme
	exceptions
	define-record-types
	finite-types
	external-calls load-dynamic-externals
	(subset unicode-char-maps (string-upcase string-foldcase))
	session-data
	interrupts
	reinitializers
	weak)
  (files errno))

(define-structure posix-syslog posix-syslog-interface
  (open scheme
	exceptions
	fluids
	locks
	define-record-types
	finite-types enum-sets enum-sets-internal
	external-calls
	load-dynamic-externals
	reinitializers
	os-strings)
  (files syslog))

; All in one chunk.

(define-structure posix (compound-interface
			  (interface-of posix-processes)
			  (interface-of posix-process-data)
			  (interface-of posix-platform-names)
			  (interface-of posix-files)
			  (interface-of posix-i/o)
			  (interface-of posix-time)
			  (interface-of posix-users)
			  (interface-of posix-regexps)
			  (interface-of posix-errnos)
			  (interface-of posix-syslog))
  (open posix-processes
	posix-process-data
	posix-platform-names
	posix-files
	posix-i/o
	posix-time
	posix-users
	posix-regexps
	posix-errnos
	posix-syslog))