From owner-freebsd-hackers Wed Dec 3 18:59:49 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id SAA09402 for hackers-outgoing; Wed, 3 Dec 1997 18:59:49 -0800 (PST) (envelope-from owner-freebsd-hackers) Received: from word.smith.net.au (vh1.gsoft.com.au [203.38.152.122]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id SAA09387 for ; Wed, 3 Dec 1997 18:59:43 -0800 (PST) (envelope-from mike@word.smith.net.au) Received: from word (localhost [127.0.0.1]) by word.smith.net.au (8.8.7/8.8.5) with ESMTP id KAA00691; Tue, 2 Dec 1997 10:32:52 +1030 (CST) Message-Id: <199712020002.KAA00691@word.smith.net.au> X-Mailer: exmh version 2.0zeta 7/24/97 To: "Fred L. Templin" cc: "John S. Dyson" , freebsd-hackers@freebsd.org Subject: Re: copyout()/copyin() In-reply-to: Your message of "Mon, 01 Dec 1997 13:13:57 -0800." <199712012114.NAA10819@grayling.erg.sri.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 02 Dec 1997 10:32:52 +1030 From: Mike Smith Sender: owner-freebsd-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk This is kinda interesting stuff; I'm just about to launch into the design of a PCI adapter and driver that would ideally be able to do this... > This is essentially what I'm doing right now; I basically only copy the data > when driven by the process - either as the result of a synchronous syscall or > after the kernel wakes the process up after an asynchronous event. The > disadvantage is that I'd really like to move the data directly between the > user buffers and device memory; bypassing kernel memory altogether (I know; I > failed to mention this in my original message!) Which brings us to: What sort of timing granularity and latency can you accept? If you're not too bothered about latency just have the read/write call sleep and wake it out of your interrupt handler. Then traverse the uio manually using the fu*/su* functions. mike