Path: utzoo!mnetor!uunet!husc6!cmcl2!brl-adm!umd5!mimsy!chris From: chris@mimsy.UUCP (Chris Torek) Newsgroups: comp.unix.wizards Subject: Re: rdump, Ethernet slowness Message-ID: <9782@mimsy.UUCP> Date: 15 Dec 87 03:15:07 GMT References: <788@hsi.UUCP> <57900004@ccvaxa> Organization: U of Maryland, Dept. of Computer Science, Coll. Pk., MD 20742 Lines: 22 In article <57900004@ccvaxa> aglew@ccvaxa.UUCP writes: >Asynchronous I/O primitives should basically look like this: > >IOtransT aread(fd,buf,n) - initiate a read >IOtransT awrite(fd,buf,n) - initiate a write >iowait(n,iolist) - wait for ios to complete > >With operations to guarantee sequentiality, or sometimes not. I have a pseudo-driver that provides asynchronous read and write operations, but only to character special devices (and only some of them). It works about like this, except that aread(fd, buf, n) is done with read(assocfd, buf, n) and awrite(fd, buf, n) is done with write(assocfd, buf, n). iowait() is implemented by select(assocfd), and sequentiality of transfers can be set or unset by an ioctl on assocfd. It is unfortunate that this only works on some character special devices, and that it requires somewhat major changes to 4.3BSD. -- In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690) Domain: chris@mimsy.umd.edu Path: uunet!mimsy!chris