Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev



On Fri, May 27, 2011 at 1:30 AM, David Laight <david%l8s.co.uk@localhost> wrote:
> On Thu, May 26, 2011 at 07:12:57AM +0000, David Holland wrote:
>> On Wed, May 25, 2011 at 04:33:38PM +0000, Masao Uebayashi wrote:
>>  > Modified Files:
>>  >    src/sys/dev/bluetooth: bcsp.c bthub.c btuart.c
>>  >    src/sys/dev/ieee1394: fwdev.c fwmem.c fwohci.c
>>  >
>>  > Log Message:
>>  > Declare cfdrivers using extern rather than including ioconf.h.
>>
>> This is wrong. Please revert it.
>>
>> The purpose of declaring things in header files is to make sure all
>> uses are consistent.
>
> Is there another header file that could contain:
>    #define CFDRIVER(prefix) extern struct cfdriver prefix##_cd

sys/device.h has CFDRIVER_DECL, which defines (not declares) a
cfdriver struct.  So something like

#ifndef _MODULE
#define CFDRIVER_DECL(x) extern struct cfdriver __CONCAT(x,_cd)
#else
#define CFDRIVER_DECL(x) \
struct cfdriver __CONCAT(x,_cd) = { ... }
#endif

would work.  (Already working here.)

>
> Then the bcsp.h could contain:
>    CFDRIVER(bcsp);
> which gives (effectively) the same guarantee as including ioconf.h.
>
> I think something like that would help building drivers as kernel modules.
>
>        David
>
> --
> David Laight: david%l8s.co.uk@localhost
>


Home | Main Index | Thread Index | Old Index