How to use uio_pci_generic driver.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!
I have a problem writing application using uio subsystem.
As described at http://www.kernel.org/doc/htmldocs/uio-howto.html#uio_pci_generic, I bind my device to uio. Files in /sys/class/uio/uio0/ appears, dmesg say no problems.
But when I trying to mmap regions of device file /sys/class/uio/uio0/.../mapX not created.
A mmap part of code:

uint32_t UioMap(int devnum, int map_num)
{
    char *u = (char *) calloc(64, 1);
    sprintf(u, "/sys/class/uio/uio%d/device/resource%d", devnum, map_num);
    int fd = open(u, O_RDONLY); 
    if(fd < 0)
    {
        fprintf(stderr,"Error on open!\n");
        return NULL;
    }
    else fprintf(stderr,"fd = %d\n", fd);
    void* map_addr = mmap(NULL,
            0x800000,
            PROT_READ,
            MAP_SHARED,
            fd,
            map_num * getpagesize());
    if(map_addr == MAP_FAILED)
    {
        perror("mmap");
    }
    free(u);
    return (uint32_t *) map_addr;
}

Is there any examples of usage uio_pci_generic in realworld?

--
Dmitriy
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux