Skip site navigation (1)Skip section navigation (2)
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>