• Patrick Mochel's avatar
    sysfs: marry api with struct kobject. · eda52025
    Patrick Mochel authored
    This works on obviating the need for a separate data type to describe a sysfs
    directory (which was renamed from struct driver_dir_entry to struct sysfs_dir).
    
    All sysfs creation and removal functions now take a struct kobject, instead
    of a struct sysfs_dir. This kobject is embedded in ->d_fsdata of the directory.
    
    sysfs_create_dir() takes only 1 parameter now: the object that we're creating
    the directory for. The parent dentry is derived by looking at the object's 
    parent. 
    
    sysfs_create_file() takes the object as the first parameter, and the attribute
    as the second, which makes more sense from an API perspective. 
    
    sysfs_remove_file() now takes an attribute as a second parameter, to be 
    consistent with the creation function.
    
    sysfs_remove_link() is created, which is basically the old sysfs_remove_file().
    (symlinks don't have an attribute associated with them; only a name, which was
    prohibiting the previous change). 
    
    open() and close() look for a kobject now, and do refcounting directly on the
    object. Because of that, we don't need the ->open() and ->close() callbacks
    in struct sysfs_ops, so they've been removed. 
    
    read() and write() also now look for a kobject now. 
    
    The comments have been updated, too. 
    eda52025
inode.c 13.2 KB