Re: Right way to configure a driver? (sysfs, ioctl, proc, configfs,....)

From: Aritz Bastida
Date: Fri Jan 27 2006 - 05:28:41 EST


Hi!

> Hope this helps,
>
> greg k-h
>

Yes, it helped me much. I'll move all the configuration/statistics to
sysfs. I will read carefully the corresponding chapter in LDD3 :)
But before that, I've got a few questions with what I know:

1.- In what directory should I do all this configuration? I guess as,
I'm writing a module it should be in /sys/module/<my_module>, right?
Or would your recommend /sys/class/net or anything?

2.- In my sysfs directory I would create two subdirectories: "config"
and "stats". In the first I would place read/write files used for
configuration. For example "config/flags" for the flags variable. In
the second read-only files with the statistics. Is this approach
correct?

3.- Actually the most difficult config I must do is to pass three
values from userspace to my module. Specifically two integers and a
long (it's an offset to a memory zone I've previously defined)

struct meminfo {
unsigned int id; /* segment identifier */
unsigned int size; /* size of the memory area */
unsigned long offset; /* offset to the information */
};

How would you pass this information in sysfs? Three values in the same
file? Note that using three different files wouldn't be atomic, and I
need atomicity.

4.- Last, you suggested that I had three files for the rx_packets count:
rx_packets_cpu0
rx_packets_cpu1
rx_packets_total

I have quite a few counters, and if that number of files is multiplied by
the number of cpus, the number of files could be very large (imagine a
8-cpu box), don't you think so? And after all reading a file with three
values could be done very easily with awk...



That's all. Thank you for your help
Regards
Aritz
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/