Hello!

I asked this already on freebsd-questions and was suggested to ask on this list, too.

        I have a linux driver for a video grabber card (dfg/bw1 from 'the imaging 
source').  This card does not use a well bt848 or similar chip.  I would like to 
transfer this driver to freebsd.

I do understand how the driver works under linux and I will explain below.  I have 
also read articles on newbus, some netbsd docs, several freebsd manpages and the 
sources of meteor.c.  I know in principle how to do a driver under freebsd.  But I 
never did it before and wanted to get some expertise on how to do it best.

Under Linux the driver is just an empty shell that links into the kernel, then 
allocates some memory and provides rather general access to the pci-bus and the 
allocated memory using ioctl and mmap.
        There is a 'lowlevel' library that translates the ioctl and mmap calls to a 
struct based API.
        This API is then used by a binary only library to do all the work.  I.e. find 
the hardware on the pci-bus.  Read and write the device memory.  Transfer data to main 
memory.  Set grabbing specifics, etc.

The reasons for this implementation are not mine to discuss, but in pricipal I do 
understand the idea, as it separates the OS/hardware specific part from a more general 
library.  And it allows to distribute the library in binary format and evade some 
copyright problems.

A driver as described above would not really be a PCI-device-driver as it would not 
allocate (attach to) a pci-device during configuration.  My feeling is, that this is 
some kind of PCI-interface, or PCI-bus abstraction, more like an API, not like a real 
device.  I think it is more like a new system call then a real device.

My question:  If you (as very experienced driver / kernel programmer) would face this 
task.  And if You were not allowed to question /sidestep the task itself.  Haw would 
You implement this under Freebsd?
        I even do not know enough keywords to ask more specific.  I could ask: Would 
You do a pseudo device?  But I do not know if this could be done by a pseudeo device.  
Etc. ...


Sincerely,

        Robert S.  Haw would You implement this under Freebsd?
        I even do not know enough keywords to ask more specific.  I could ask: Would 
You do a pseudo device?  But I do not know if this could be done by a pseudeo device.  
Etc. ...


Sincerely,

        Robert S.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to