Date: Sat, 08 May 2010 15:14:25 -0700 From: Patrick Mahan <mahan@mahan.org> To: =?UTF-8?B?THVrw6HFoSBDemVybmVy?= <czerner.lukas@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: How to get data from kernel module ? Message-ID: <4BE5E241.2030604@mahan.org> In-Reply-To: <alpine.DEB.1.10.1005061528380.21095@a04-0215a.kn.vutbr.cz> References: <alpine.DEB.1.10.1005061528380.21095@a04-0215a.kn.vutbr.cz>
next in thread | previous in thread | raw e-mail | index | archive | help
Luk=C3=A1=C5=A1 Czerner wrote: > Hi, >=20 > I am creating a kernel module and I need to get some information from > that module. I can do this with ioctl and pass the data to the > user space but it seems a bit unpractical to me, because I do not know = > the amount of the data - it can differ. I do not know of any way to > pass a list of structures to the userspace through ioctl - is there > any? >=20 > So my question is, is there any standard way in FreeBSD to do this ? > In linux I would probably use the sysfs, but in FreeBSD I can not find > anything similar, except just creating some virtual filesystem on my > own and obviously this is not what I want to do. >=20 You could use ioctl(). You will need to make two calls. Once without the data pointer and once with. Take a look at src/sbin/ifconfig/ifmedia.c Take a look at sysctl(3) in particular, if you have the sources online look at src/usr.bin/netstat/inet.c or src/usr.bin/netstat/route.c. You will need to also look at their corresponding kernel code. Or finally, you could use kvm(3). Good luck, Patrick
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BE5E241.2030604>