reference drivers

Michael Honeyfield michael at endace.com
Wed Oct 12 14:04:16 PDT 2005


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 at endace.com
http://www.endace.com



More information about the freebsd-drivers mailing list