]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/sysfs.h
[PATCH] GTOD: persistent clock support
[linux-2.6-omap-h63xx.git] / include / linux / sysfs.h
index 1ea5d3cda6ae2374056769173d6bd56fa9fd4128..192de3afa96ba9244a5e69e98f0e66b17fc6df66 100644 (file)
 #ifndef _SYSFS_H_
 #define _SYSFS_H_
 
+#include <linux/compiler.h>
+#include <linux/list.h>
 #include <asm/atomic.h>
 
 struct kobject;
 struct module;
+struct nameidata;
 
 struct attribute {
        const char              * name;
@@ -86,43 +89,56 @@ struct sysfs_dirent {
 
 #ifdef CONFIG_SYSFS
 
-extern int
-sysfs_create_dir(struct kobject *);
+extern int __must_check
+sysfs_create_dir(struct kobject *, struct dentry *);
 
 extern void
 sysfs_remove_dir(struct kobject *);
 
-extern int
-sysfs_rename_dir(struct kobject *, const char *new_name);
+extern int __must_check
+sysfs_rename_dir(struct kobject *, struct dentry *, const char *new_name);
 
-extern int
+extern int __must_check
+sysfs_move_dir(struct kobject *, struct kobject *);
+
+extern int __must_check
 sysfs_create_file(struct kobject *, const struct attribute *);
 
-extern int
+extern int __must_check
 sysfs_update_file(struct kobject *, const struct attribute *);
 
-extern int
+extern int __must_check
 sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode);
 
 extern void
 sysfs_remove_file(struct kobject *, const struct attribute *);
 
-extern int
+extern int __must_check
 sysfs_create_link(struct kobject * kobj, struct kobject * target, const char * name);
 
 extern void
 sysfs_remove_link(struct kobject *, const char * name);
 
-int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr);
-int sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr);
+int __must_check sysfs_create_bin_file(struct kobject *kobj,
+                                       struct bin_attribute *attr);
+void sysfs_remove_bin_file(struct kobject *kobj, struct bin_attribute *attr);
 
-int sysfs_create_group(struct kobject *, const struct attribute_group *);
+int __must_check sysfs_create_group(struct kobject *,
+                                       const struct attribute_group *);
 void sysfs_remove_group(struct kobject *, const struct attribute_group *);
 void sysfs_notify(struct kobject * k, char *dir, char *attr);
 
+
+extern int sysfs_make_shadowed_dir(struct kobject *kobj,
+       void * (*follow_link)(struct dentry *, struct nameidata *));
+extern struct dentry *sysfs_create_shadow_dir(struct kobject *kobj);
+extern void sysfs_remove_shadow_dir(struct dentry *dir);
+
+extern int __must_check sysfs_init(void);
+
 #else /* CONFIG_SYSFS */
 
-static inline int sysfs_create_dir(struct kobject * k)
+static inline int sysfs_create_dir(struct kobject * k, struct dentry *shadow)
 {
        return 0;
 }
@@ -132,7 +148,14 @@ static inline void sysfs_remove_dir(struct kobject * k)
        ;
 }
 
-static inline int sysfs_rename_dir(struct kobject * k, const char *new_name)
+static inline int sysfs_rename_dir(struct kobject * k,
+                                       struct dentry *new_parent,
+                                       const char *new_name)
+{
+       return 0;
+}
+
+static inline int sysfs_move_dir(struct kobject * k, struct kobject * new_parent)
 {
        return 0;
 }
@@ -191,6 +214,17 @@ static inline void sysfs_notify(struct kobject * k, char *dir, char *attr)
 {
 }
 
+static inline int sysfs_make_shadowed_dir(struct kobject *kobj,
+       void * (*follow_link)(struct dentry *, struct nameidata *))
+{
+       return 0;
+}
+
+static inline int __must_check sysfs_init(void)
+{
+       return 0;
+}
+
 #endif /* CONFIG_SYSFS */
 
 #endif /* _SYSFS_H_ */