Date: Mon, 28 Aug 1995 04:56:01 +1000 From: Bruce Evans <bde@zeta.org.au> To: bde@zeta.org.au, wollman@lcs.mit.edu Cc: CVS-commiters@freefall.FreeBSD.org, bde@freefall.FreeBSD.org, cvs-sys@freefall.FreeBSD.org Subject: Re: cvs commit: src/sys/vm vm_map.h vm_map.c Message-ID: <199508271856.EAA26062@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> 1) for syscalls. The conversion from the application's args is >[...] >> bar_args *'. Perhaps the right method is to pass a `void *' >> or `int *' and convert it in each function, like you have to >> do for qsort(). >This is precisely the approach I took when doing this rationalization >in 1.x. I would have preferred to continue it (and fix the current >syscalls to match the old model), but other people wanted to do it the >new (broken) 4.4-Lite way, and I let them have their way. I'm now automatically generating prototypes from the data syscalls.master. I cast the initializers in init_sysent.c to hide the warnings. I had to add some new optional fields to handle non-orthogonal names arg struct tags such as `args' instead of getfoo_args for getfoo(), and non- int return types for exit() and umask(). I included the prototypes in <sys/systm.h>. They'll have to be moved, because this increases the kernel build time by 10%! The arg struct declarations should be automatically generated too. syscalls.master will have to look more like vnode_if.src for that. I could generate a nicer visible interface, even one with args on the stack (it's not clear whether the overhead for copying the args again would be > 0). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508271856.EAA26062>