Folks, I humbly submit configfs. With configfs, a configfs config_item is created via an explicit userspace operation: mkdir(2). It is destroyed via rmdir(2). The attributes appear at mkdir(2) time, and can be read or modified via read(2) and write(2). readdir(3) queries the list of items and/or attributes. The lifetime of the filesystem representation is completely driven by userspace. The lifetime of the objects themselves are managed by a kref, but at rmdir(2) time they disappear from the filesystem. configfs is not intended to replace sysfs or procfs, merely to coexist with them. An interface in /proc where the API is:
# echo "create foo 1 3 0x00013" > /proc/mythingy or an ioctl(2) interface where the API is: struct mythingy_create { char *name; int index; int count; unsigned long address; } do_create { mythingy_create = {"foo", 1, 3, 0x0013}; return ioctl(fd, MYTHINGY_CREATE, &mythingy_create); } becomes this in configfs: # cd /config/mythingy # mkdir foo # echo 1 > foo/index # echo 3 > foo/count # echo 0x00013 > foo/address Instead of a binary blob that's passed around or a cryptic string that has to be formatted just so, configfs provides an interface that's completely scriptable and navigable. Patch is against 2.6.12-rc1-bk3. http://oss.oracle.com/~jlbec/files/configfs/2.6.12-rc1-bk3/configfs-2.6.12-rc1-bk3-1.patch Joel -- "Not everything that can be counted counts, and not everything that counts can be counted." - Albert Einstein Joel Becker Senior Member of Technical Staff Oracle E-mail: [EMAIL PROTECTED] Phone: (650) 506-8127 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/