Date: Wed, 1 Oct 2014 15:44:48 +1000 From: leon zadorin <leonleon77@gmail.com> To: freebsd-emulation@freebsd.org Subject: does linsysfs support mmap on pci resources (e.g. pci device's registers etc.) Message-ID: <CAPpySAaJ2CbsOMrvsrrstD_EQxt3d015T6HgF-Y9zPC7WAh4vA@mail.gmail.com>
index | next in thread | raw e-mail
Hello everyone,
Sorry if this is a bit of a noob question -- I'm just starting on this
topic... does FreeBSD's emulation of sysfs (from linux world) support
"mmap" on pci resources?
Something similar to the following in the linux environment:
fd = open("/sys/devices/pci0001\:00/0001\:00\:07.0/resource0", O_RDWR | O_SYNC);
ptr = mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
printf("PCI BAR0 0x0000 = 0x%4x\n", *((unsigned short *) ptr);
(above taken from
http://billfarrow.blogspot.com.au/2010/09/userspace-access-to-pci-memory.html)
The reason I am asking is because I would like to map pci device
registers/memory in user space (and read/write some of the device's
registers from userspace). The reasons are auxiliary to this post
(e.g. kernel-bypass, system call bypass, etc.) At this stage it would
suffice to simply accept that user space pci-register access is needed
without paying the price of any system/ioctl/etc. call on every
access-instance to device's config/control register(s).
I would prefer to avoid writing additional explicit (albeit generic)
pci related kernel module in order to provide "mmapping" of the given
pci resources to userspace if there is already such a generic way to
do it via sysfs "syntax" (I would like to reduce any of the
specific/additional code re-writing at the kernel level as much as
possible).
many thanks
leon.
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPpySAaJ2CbsOMrvsrrstD_EQxt3d015T6HgF-Y9zPC7WAh4vA>
