Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Jul 2009 09:58:48 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-drivers@freebsd.org
Subject:   Re: Driver development question
Message-ID:  <200907200958.49119.jhb@freebsd.org>
In-Reply-To: <002801ca06f0$b1d42af0$157c80d0$@net>
References:  <002801ca06f0$b1d42af0$157c80d0$@net>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907200958.49119.jhb>