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>
next in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPpySAaJ2CbsOMrvsrrstD_EQxt3d015T6HgF-Y9zPC7WAh4vA>