On Wed, Aug 19, 2015 at 5:31 AM, matthew green <m...@eterna.com.au> wrote: > "Masao Uebayashi" writes: >> Module Name: src >> Committed By: uebayasi >> Date: Tue Aug 18 13:46:20 UTC 2015 >> >> Modified Files: >> src/sys/kern: kern_cpu.c kern_drvctl.c >> >> Log Message: >> Convert pseudo attach functions to take no arguments, as some functions >> (pppattach(), putterattach(), etc.) already do. This means that pseudo >> attach function will be able to become a constructor. > > how does this work? > > these functions are called by ioconf.c that generated by config(1), > so i'm not sure how this can not be a build break, or at least a > confusing and inconsistent. > > ioconf.c:void drvctlattach(int); > ioconf.c:const struct pdevinit pdevinit[] = { > ... > ioconf.c: { drvctlattach, 1 }, > > subr_autoconf.c: for (pdev = pdevinit; pdev->pdev_attach != NULL; pdev++) > subr_autoconf.c: (*pdev->pdev_attach)(pdev->pdev_count); > > what's the plan here? this reduction won't work for a number of > basic pdevs (like raid(4)) without updating it to not use the > count argument.
o I admit I did not check all, but 95% of pseudo attach functions do not use `int n'. o I assume that passing an `int' that is ignored by the callee (func(void)) has proven to be harmless on all CPUs, because it has worked. o Killing `int n' is good for reducing kernel build complexity, and reducing combinations of kernel configs. o I am (too) optimistic that those pseudo attach functions that use `int n' can be converted rather easily. o For the first step, make it clear which functions use `int n' and not. o If you are really unhappy of the `(void)', I can use `int n __unused'.