Skip site navigation (1)Skip section navigation (2)
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>