summaryrefslogtreecommitdiff
path: root/include/linux/sysfs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/sysfs.h')
-rw-r--r--include/linux/sysfs.h83
1 files changed, 75 insertions, 8 deletions
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index b34de79dcf3b..de2083939b74 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -18,6 +18,12 @@ struct attribute {
mode_t mode;
};
+struct attribute_group {
+ char * name;
+ struct attribute ** attrs;
+};
+
+
struct bin_attribute {
struct attribute attr;
size_t size;
@@ -25,14 +31,13 @@ struct bin_attribute {
ssize_t (*write)(struct kobject *, char *, loff_t, size_t);
};
-int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr);
-int sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr);
-
struct sysfs_ops {
ssize_t (*show)(struct kobject *, struct attribute *,char *);
ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t);
};
+#ifdef CONFIG_SYSFS
+
extern int
sysfs_create_dir(struct kobject *);
@@ -57,13 +62,75 @@ sysfs_create_link(struct kobject * kobj, struct kobject * target, char * name);
extern void
sysfs_remove_link(struct kobject *, char * name);
-
-struct attribute_group {
- char * name;
- struct attribute ** attrs;
-};
+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 sysfs_create_group(struct kobject *, const struct attribute_group *);
void sysfs_remove_group(struct kobject *, const struct attribute_group *);
+#else /* CONFIG_SYSFS */
+
+static inline int sysfs_create_dir(struct kobject * k)
+{
+ return 0;
+}
+
+static inline void sysfs_remove_dir(struct kobject * k)
+{
+ ;
+}
+
+static inline void sysfs_rename_dir(struct kobject * k, const char *new_name)
+{
+ ;
+}
+
+static inline int sysfs_create_file(struct kobject * k, const struct attribute * a)
+{
+ return 0;
+}
+
+static inline int sysfs_update_file(struct kobject * k, const struct attribute * a)
+{
+ return 0;
+}
+
+static inline void sysfs_remove_file(struct kobject * k, const struct attribute * a)
+{
+ ;
+}
+
+static inline int sysfs_create_link(struct kobject * k, struct kobject * t, char * n)
+{
+ return 0;
+}
+
+static inline void sysfs_remove_link(struct kobject * k, char * name)
+{
+ ;
+}
+
+
+static inline int sysfs_create_bin_file(struct kobject * k, struct bin_attribute * a)
+{
+ return 0;
+}
+
+static inline int sysfs_remove_bin_file(struct kobject * k, struct bin_attribute * a)
+{
+ return 0;
+}
+
+static inline int sysfs_create_group(struct kobject * k, const struct attribute_group *g)
+{
+ return 0;
+}
+
+static inline void sysfs_remove_group(struct kobject * k, const struct attribute_group * g)
+{
+ ;
+}
+
+#endif /* CONFIG_SYSFS */
+
#endif /* _SYSFS_H_ */