From owner-freebsd-hackers@FreeBSD.ORG Fri Aug 5 19:26:06 2005 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5C43D16A420 for ; Fri, 5 Aug 2005 19:26:06 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7D32A43D49 for ; Fri, 5 Aug 2005 19:26:05 +0000 (GMT) (envelope-from jhb@FreeBSD.org) Received: from [10.50.40.201] (Not Verified[65.202.103.25]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Fri, 05 Aug 2005 15:40:46 -0400 From: John Baldwin To: freebsd-hackers@freebsd.org Date: Fri, 5 Aug 2005 13:08:31 -0400 User-Agent: KMail/1.8 References: <20050805005543.5bd947f2.thib@mi.is> <200508051101.33927.jhb@FreeBSD.org> <20050805164417.32edf853.thib@mi.is> In-Reply-To: <20050805164417.32edf853.thib@mi.is> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200508051308.32649.jhb@FreeBSD.org> Cc: Subject: Re: Checking sysctl values from within the kernel. X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Aug 2005 19:26:06 -0000 On Friday 05 August 2005 12:44 pm, Thordur I. Bjornsson wrote: > On Fri, 5 Aug 2005 11:01:32 -0400 > > John Baldwin wrote: > > On Friday 05 August 2005 10:50 am, Dan Nelson wrote: > > > In the last episode (Aug 05), Thordur I. Bjornsson said: > > > > If I want to check a sysctl value from within the kernel (e.g. an > > > > KLD), should I use the system calls described in sysctl(3) ? > > > > > > > > If not, what is the propper way to do so ? > > > > > > Since most sysctls are direct mappings onto integer variables in the > > > kernel, just check the variable directly. > > > > There's also a kernel_sysctl() function available in the kernel for > > in-kernel access to sysctls. You might have to lookup the OID for a > > given name yourself though. Actually, there's a > > kernel_sysctlbyname() as well. > > > > -- > > John Baldwin <>< http://www.FreeBSD.org/~jhb/ > > "Power Users Use the Power to Serve" = http://www.FreeBSD.org > > Ahh. Cool > This is not in any manpage ... > > I'm trying to understand the first argument to kernel_systcl(), > kernel_sysctl(struct thread *td, ... ) > > This thread, that it takes as an argument is this something that I need > to worry about when writing KLD's or could I just pass a NULL pointer ? > > The proplem is that I do not know/understand how threading works in the > kernel. I'll be lookin into that (although pointers are more then > welcome ;) Pass curthread as the thread. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org