ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I am trying to map a PCI physical address bar to my user space program. In order to be able to map this physical address to user space I am creating a dummy character driver and capture the bar address in my driver. Later, I send this address to user (using IOCTL) and call mmap on the physical address.
As you can see I am not trying to map a file or something, I am trying to map the real physical memory which I know its address.
What is the error code in errno? My guess is (from mmap manual):
EACCES A file descriptor refers to a non-regular file. Or MAP_PRIVATE was requested, but fd is not open for reading. Or MAP_SHARED was
requested and PROT_WRITE is set, but fd is not open in read/write (O_RDWR) mode. Or PROT_WRITE is set, but the file is append-only.
You have MAP_SHARED and PROT_READ, but open the file only with O_WRONLY.