Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jul 2009 06:55:26 -0400
From:      "Christopher J. Harrer" <charrer@alacritech.com>
To:        "'Marc Loerner'" <marc.loerner@hob.de>, <freebsd-drivers@freebsd.org>
Subject:   RE: Driver development question
Message-ID:  <081601ca09f1$c1458ed0$43d0ac70$@com>
In-Reply-To: <200907210834.21541.marc.loerner@hob.de>
References:  <002801ca06f0$b1d42af0$157c80d0$@net>	<200907200958.49119.jhb@freebsd.org> <4A64F200.2060900@errno.com> <200907210834.21541.marc.loerner@hob.de>

next in thread | previous in thread | raw e-mail | index | archive | help
> -----Original Message-----
> From: owner-freebsd-drivers@freebsd.org [mailto:owner-freebsd-
> drivers@freebsd.org] On Behalf Of Marc Loerner
> Sent: Tuesday, July 21, 2009 2:34 AM
> To: freebsd-drivers@freebsd.org
> Subject: Re: Driver development question
> 
> Am Dienstag 21 Juli 2009 00:38:56 schrieb Sam Leffler:
> > John Baldwin wrote:
> > > 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().
> >
> > man alq(9).
> >
> >
> 
> Why not use kern_open, kern_close, kern_preadv, kern_pwritev?
> 
> Regards,
> Marc

Thanks for the suggestions everyone, I will be investigating more today.  I
appreciate all the pointers!

Cheers,

Chris




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?081601ca09f1$c1458ed0$43d0ac70$>