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>