Driver development question

John Baldwin jhb at freebsd.org
Mon Jul 20 21:35:58 UTC 2009


On Friday 17 July 2009 11:10:17 am Chris Harrer wrote:
> Hi All,
> 
> I'm hoping someone can point me in the right direction...  I'm developing a
> FreeBSD driver for a PCIe card.  The driver controls a hardware device that
> has DRAM and various state information on it.  I'm trying to mimic
> functionality I have for other OS support such that I can dump memory and
> state information from the card to a file I create from within my driver
> (kernel module).
> 
> For example, in a Linux driver I use filp_open to create the dump file
> (represented by fp), then use fp->f_op->write to put information into the
> file.
> 
> FreeBSD doesn't have filp_* API's.  I've tried searching for example drivers
> and googling for file API's from kernel modules to no avail.  Can someone
> please offer some guidance as to how I might proceed here?
> 
> Thanks in advance and any insight would be most appreciated!

You can look at sys/kern/kern_ktrace.c to see how the ktrace() system call 
creates a file.  I think in general you will wind up using NDINIT/namei() (to 
lookup the vnode for a pathname) and then vn_open() / vn_rdwr() / vn_close().

-- 
John Baldwin


More information about the freebsd-drivers mailing list