Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Jul 2009 15:38:56 -0700
From:      Sam Leffler <sam@errno.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        freebsd-drivers@freebsd.org
Subject:   Re: Driver development question
Message-ID:  <4A64F200.2060900@errno.com>
In-Reply-To: <200907200958.49119.jhb@freebsd.org>
References:  <002801ca06f0$b1d42af0$157c80d0$@net> <200907200958.49119.jhb@freebsd.org>

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

	Sam




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