aboutsummaryrefslogtreecommitdiff
path: root/sys/fio/fdevtx.x
blob: 65c02fc894b16dc1f4e474a01786daef3099c578 (plain) (blame)
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
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.

include	<syserr.h>
include	<config.h>
include	<fio.h>

# FDEVTX -- Install a new text file device in the device table, if it has
# not already been installed.

procedure fdevtx (zget, zput, zfls, zstt, zcls, zsek, znot)

int	i, dev_epa
extern	zget(), zput(), zfls(), zstt(), zcls(), zsek(), znot()
include	<fio.com>

begin
	# Search the device table to determine if the device has already been
	# installed.  The ZDEV array indices the device table by the EPA of
	# each device driver.

	call zlocpr (zget, dev_epa)
	for (i=1;  i < next_dev;  i=i+LEN_DTE)
	    if (zdev[i] == dev_epa)
		return

	# Device not found.  Install the new device in the table.
	next_dev = next_dev + LEN_DTE
	if (next_dev > LEN_DEVTBL)
	    call syserr (SYS_FDEVTBLOVFL)
	else {
	    call zlocpr (zget, zdev[i])
	    call zlocpr (zput, zdev[i+1])
	    call zlocpr (zfls, zdev[i+2])
	    call zlocpr (zstt, zdev[i+3])
	    call zlocpr (zcls, zdev[i+4])
	    call zlocpr (zsek, zdev[i+5])
	    call zlocpr (znot, zdev[i+6])
	}
end