Re: [PATCH v3] tools: add static-nodes tool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 16, 2013 at 10:49 AM, Thomas Bächler <thomas@xxxxxxxxxxxxx> wrote:
> Am 16.04.2013 15:12, schrieb Tom Gundersen:
>> +static void write_human(FILE *out, char module[], char devname[], char type, unsigned int maj, unsigned int min)
>
> [...]
>
>> +static void write_tmpfile(FILE *out, char devname[], char type, unsigned int maj, unsigned int min)
>
> [...]
>
>> +static int do_static_nodes(int argc, char *argv[])
>> +{
>> +        struct utsname kernel;
>> +        char modules[PATH_MAX];
>> +        FILE *in = NULL, *out = stdout;
>> +        bool human_readable = 1;
>
> This code emphasizes that there is actually only one format available
> and needs to be changed again when another one is added. Why not
>
> void (*write_output)((FILE *, char[], char[], char, unsigned int,
> unsigned int) = write_human;
>
> ? Then ...
>
>> +                case 'f':
>> +                        if (!streq(optarg, "tmpfiles")) {
>> +                                fprintf(stderr, "Unknown format: '%s'.\n", argv[1]);
>> +                                help();
>> +                                ret = EXIT_FAILURE;
>> +                                goto finish;
>> +                        }
>> +                        human_readable = 0;
>> +                        break;
>
> case 'f':
>     if (streq(optarg, "tmpfiles")) {
>          write_output = write_tmpfiles;
>     }
>     else {
>         fprintf(stderr, "Unknown format: '%s'.\n", argv[1]);
>         [...]
>     }
>     break;
>
> And in the end:
>
>> +                if (human_readable)
>> +                        write_human(out, module, devname, type, maj, min);
>> +                else
>> +                        write_tmpfile(out, devname, type, maj, min);
>
> write_output(out, module, devname, type, maj, min);
>
> Maybe even add an array with output name and function pointer pairs, so
> that we could get a list of available formats using --format=?. For
> consistency, --format=human should also work. Just seems nicer to me, in
> case someone actually plans to extend this later.
>

Agree. Otherwise looks good.

Kay, what's your opinion regarding this command? Is this sufficient to
drop CAP_MKNOD from udev?


Lucas De Marchi
--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux