From owner-freebsd-hackers Sat Jan 20 11:22:00 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id LAA14198 for hackers-outgoing; Sat, 20 Jan 1996 11:22:00 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id LAA14175 for ; Sat, 20 Jan 1996 11:21:42 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id GAA03759; Sun, 21 Jan 1996 06:19:43 +1100 Date: Sun, 21 Jan 1996 06:19:43 +1100 From: Bruce Evans Message-Id: <199601201919.GAA03759@godzilla.zeta.org.au> To: gibbs@freefall.freebsd.org, mpp@mpp.minn.net Subject: Re: Can't take dumps w/Adaptec 2842 Cc: freebsd-hackers@FreeBSD.org, freebsd-scsi@freefall.freebsd.org Sender: owner-hackers@FreeBSD.org Precedence: bulk >tell you not to sleep. Now the problem is that sddump wants you >to poll since interrupts may well be disabled. I have no problem ^^^^^^^^^^^ are always >putting polling back in for this one case so long as its differentiated >from the other times that SCSI_NOSLEEP is used. Perhaps we need >a new flag? I'd like SCSI_NOSLEEP to mean "calling tsleep may not >be safe" and perhaps SCSI_POLL (only used during sddump) would >cause drivers to disable there interrupt (just in case) and poll >until complete. I'd like a common polled mode i/o interface to all drivers. Something like int (*polled_write)(void *buf, off_t off, size_t nbytes); This could be used to write a single dump routine. (Currently, sddump() is a clone of an old, not so good version of wddump().) For dumping, it might be convenient to only implement the case where `buf' is page aligned, and `off' and `nbytes' are multiples of DEV_BSIZE then (they could be passed as daddr_t's). Bruce