aboutsummaryrefslogtreecommitdiff
path: root/unix/gdev/m70vms/zwrm70.x
blob: 7cc1ef8ab1a749a8f9a249f124f67210408d0986 (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
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.

include	<mach.h>
include	<knet.h>
include	"m70.h"

# ZWRM70 -- Initiate an asynchronous write to the IIS.

procedure zwrm70 (chan, buf, nbytes, offset)

int	chan			# FCB pointer for device
char	buf[ARB]		# input buffer
int	nbytes			# number of  bytes to write
long	offset			# not used for this device

pointer	fcb
short	rwflag, opcd, nwords, ier
data	rwflag /IIS_WRITE/, opcd /EFN/

begin
	fcb = chan
	if (FCB_KCHAN(fcb) == NULL) {
	    nwords = nbytes / (SZ_SHORT * SZB_CHAR)
	    call m70io (Mems[fcb], buf, nwords, rwflag, opcd, FCB_IOSB(fcb,1),
		ier)

	    FCB_NBYTES(fcb) = nbytes
	    FCB_EFN(fcb)    = opcd

	    if (ier != 0)
		FCB_STATUS(fcb) = ERR
	    else
		FCB_STATUS(fcb) = IIS_WRITE
	} else
	    call zawrbf (FCB_KCHAN(fcb), buf, nbytes, offset)
end