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