Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 May 2001 08:58:57 +0200
From:      Alexander Langer <alex@big.endian.de>
To:        SJ <sandejain@rocketmail.com>
Cc:        freebsd-questions@FreeBSD.ORG, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Device driver questions
Message-ID:  <20010523085857.B1103@zerogravity.kawo2.rwth-aachen.d>
In-Reply-To: <20010523003414.51600.qmail@web13405.mail.yahoo.com>; from sandejain@rocketmail.com on Tue, May 22, 2001 at 05:34:14PM -0700
References:  <20010523003414.51600.qmail@web13405.mail.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thus spake SJ (sandejain@rocketmail.com):

Hi!

> 1. "ioconf.c" contains struct config_resource and
>     config_device definitions for declarations in 
>     "config" file. But I noticed that for some devices
>      e.g. device          atadisk
>           device          atapicd
>           ...
>      the corresponding lines in ioconf.c are missing??

I think it's because ata is a self-identifying bus.
Not sure, though.  Are any PCI-only devices listed?

> 3. File naming question:
>    whats the reasoning behind having "bus.h" and 
>    "bus_private.h"....whats the significance of 
>    "private" here.

drivers include bus.h, kernel does also include bus_private.h

> 4. concept behind having devclasses...I know that   
>    devclasses for a particular bus holds devices and
>    device drivers for that bus. But then whats the  
>    need for defining a devclass for each driver we 
>    write ?

Because you can hold multpiple devices that are enumerated, e.g. xl0,
xl1, ...
The devclass is unique for each driver, but not for different busses.
You can have ed0 on ISA and ed1 on PCI for example, using the same
devclass.
If ISA and PCI subdrivers are using a different devclass, the
enumeration breaks.

> 5. Any poniters to literature which explains the 
>    design philosophy and code specific help for device
>    drivers in freebsd - I am referring to files 
>    kern/subr_bus.c, bus.h, bus_private.h, isa/* etc.

Use the source, luke :-)
Seriously, subr_bus.c is quite nice to read if you read it togethers
with, say, sys/pci/pci.c.
That makes the concept quite clear.

The developer's handbook might be worth reading for you, also there
are some tutorials on the website which explain a little.

Alex

-- 
cat: /home/alex/.sig: No such file or directory

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?20010523085857.B1103>