Date: Fri, 6 Aug 2010 10:30:03 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-arch@freebsd.org Subject: Re: Change to sysctl to support linux kobj Message-ID: <201008061030.03214.jhb@freebsd.org> In-Reply-To: <alpine.BSF.2.00.1008051140280.1414@desktop> References: <alpine.BSF.2.00.1008051140280.1414@desktop>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, August 05, 2010 5:46:07 pm Jeff Roberson wrote: > Hi folks, > > I really need two pointer arguments to a sysctl function to support linux > sysfs via sysctl. To facilitate this I propose changing the int arg2 to a > uinptr_t. This keeps it as an integer type but makes it wide enough to > accept a pointer. A small number of places in the kernel have to be fixed > for the new type or because they don't use SYSCTL_HANDLER_ARGS. This will > introduce an api/abi incompatibility although it is relatively minor. > > Comments? Alternatives? Presumably it should be intptr_t to stay signed. One could always create a structure that holds the two pointers and pass that as arg1 also which is what other code does that needs to pass in more than a simple pointer to an int, etc. as well. > Thanks, > Jeff > > Index: sysctl.h > =================================================================== > --- sysctl.h (revision 207767) > +++ sysctl.h (working copy) > @@ -114,8 +114,8 @@ > #define CTL_AUTO_START 0x100 > > #ifdef _KERNEL > -#define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg2, \ > - struct sysctl_req *req > +#define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, \ > + uintptr_t arg2, struct sysctl_req *req > > /* definitions for sysctl_req 'lock' member */ > #define REQ_UNLOCKED 0 /* not locked and not wired */ > @@ -158,7 +158,7 @@ > int oid_number; > u_int oid_kind; > void *oid_arg1; > - int oid_arg2; > + uintptr_t oid_arg2; > const char *oid_name; > int (*oid_handler)(SYSCTL_HANDLER_ARGS); > const char *oid_fmt; > > _______________________________________________ > freebsd-arch@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arch > To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org" > -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008061030.03214.jhb>