Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Dec 2004 13:20:20 +0800 (CST)
From:      cm c <beatlelittle@yahoo.com.cn>
To:        Dan Nelson <dnelson@allantgroup.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: How to write driver with load time parameter support?
Message-ID:  <20041209052020.9471.qmail@web15302.mail.bjs.yahoo.com>
In-Reply-To: <20041209040502.GJ2629@dan.emsphone.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Thank you very much! It does work!
 
CcM

Dan Nelson <dnelson@allantgroup.com> wrote:
In the last episode (Dec 09), cm c said:
> I'm still not very clear the way to do this. Does this method do set
> the parameters at load time or after load ? Cause Linux can
> insmod abc.o param=123;
> param is set to 123 when abc is linked to the kernel.

You would put something like

abc.param="123" in loader.conf or add it via kenv, and then in your
variable declaration area:

static int myparam = 0;
TUNABLE_INT("abc.param", &myparam);

That works for a module that can only be loaded once, and a static
tuneable name. If you don't know the name of the tunable until your
driver is loaded, you can use the TUNABLE_INT_FETCH() macro in a
function. Sysctls are recommended if you have a value that can be
changed after the module is loaded.

If you are writing a device driver, take a look at how if_fxp.c pulls
in per-device tunable/sysctls (search for bundle_max).

-- 
Dan Nelson
dnelson@allantgroup.com
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"



---------------------------------
Do You Yahoo!?
注册世界一流品质的雅虎免费电邮



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041209052020.9471.qmail>