Date: Thu, 13 Oct 2005 10:04:02 +1300 From: Michael Honeyfield <michael@endace.com> To: freebsd-drivers@freebsd.org Subject: Re: reference drivers Message-ID: <434D7A42.1080005@endace.com> In-Reply-To: <200510121532.54474.jhb@freebsd.org> References: <434983A6.8040403@endace.com> <200510121532.54474.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote: >On Sunday 09 October 2005 04:55 pm, Michael Honeyfield wrote: > > >>Hello all, >> >>I have been working on a small project that involes writting a drver for >>FreeBSD. I have used this link as my reference for my driver: >> >>http://www.ben.com/minipci/driver.php >> >>Now, after my modifications, I can load the kernel module fine. However, >>the mmap function is not even called. Is the mmap function used inside >>this diver the correct way map registers from kernel space to user space? >> >> > >Yes. It should be called when an application does an mmap() on an fd returned >by open()'ing the file in /dev. > > > Ok, good to know I am on the right path. Where is a good place to look if the foo_mmap() is not actually called? I use this routine as a test for mapping a register into user space: fd = open( "/dev/bar0", O_RDWR ); reg = mmap(NULL, 0x10000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if( reg == MAP_FAILED) { fprintf( stderr, "can't mmap bar!\n" ); exit(1); } the code takes an arg, and the register I am selecting is there. The above code snippet works on Linux. Cheers -- Michael Honeyfield TECHNICAL SUPPORT ____________________________________________________ Endace Technology michael@endace.com http://www.endace.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?434D7A42.1080005>