Date: Thu, 22 Mar 2001 05:41:31 +0600 (NOVT) From: Alexey Dokuchaev <danfe@inet.ssc.nsu.ru> To: Mike Smith <msmith@freebsd.org> Cc: hackers@freebsd.org Subject: Re: Some PCI-related programming things Message-ID: <Pine.LNX.4.10.10103220536450.26570-100000@inet.ssc.nsu.ru> In-Reply-To: <200103212327.f2LNReh03247@mass.dis.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 21 Mar 2001, Mike Smith wrote: > > > Ioctls allow user processes to make function calls within a device > > > driver; they are a mechanism for exporting functionality from a device > > > driver out into userspace. > > > > I know that, of course. > > This wasn't clear from your example. Oh, OK, sorry... > > > You don't call them from other device drivers, no. There are exported > > > interfaces inside the kernel for doing this, and you will understand > > > everything much better if you go look at a simple FreeBSD PCI device > > > driver, particularly the _probe and _attach functions. > > > > Look, I am *not* coding a PCI driver. I have looked at various examples > > in sound/pci/ and I know what PCI device driver should look like. > > Ok. So why are you attempting to manipulate PCI configuration space? > > > What I am doing is *porting* linux *character* device driver to FreeBSD. > > A device driver still talks to hardware, and by the sound of it, your > hardware is PCI hardware. Since you won't actually tell me what it is > you're actually doing with any sort of useful level of detail, it is very > hard to give you useful answers. > > > That is, if original version called all that linuxish pci_whatever() > > functions, I have to provide the same functionality under FreeBSD. I > > didn't know how to do this. What I did was, I said man pci, from there I > > figured out about pciconf utility. I took a look at it, and thought, ok, > > this must be the way I have to go for under FreeBSD. > > You're writing a device driver. Look at other device drivers that behave > similarly. Whether the driver has a character interface or not is more > or less irrelevant at this stage. 8) OK, I'll do. Frankly, device driver is easy part, I would eventually figure it out. What makes me worry is that VM staff... > > Trust me, if I wanted to code a PCI dev driver, I would certainly not do > > this. I have a code to take a look at, and I only ask questions when I > > seem to fail to comprehend going of things from the code. It's not > > written anywhere I can't use ioctl from char device driver. Or is it? > > Firstly, there is no such thing as "a character device driver". > Secondly, if it's running inside the kernel, it doesn't matter what it > is; you don't make ioctl calls (exception: ABI shims). OK, I understand. Thanks for explanations, and sorry for somewhat lame questions. The rest is probably going to be rather obvious, given your information + tons of source code I will surely look at :) -- Me To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10103220536450.26570-100000>