Skip site navigation (1)Skip section navigation (2)
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>