Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59f69015 authored by Tejun Heo's avatar Tejun Heo Committed by Greg Kroah-Hartman
Browse files

sysfs: clean up header files



sysfs is about to go through major overhaul making this a pretty good
opportunity to clean up (out-of-tree changes and pending patches will
need regeneration anyway).  Clean up headers.

* Kill space between * and symbolname.

* Move SYSFS_* type constants and flags into fs/sysfs/sysfs.h.
  They're internal to sysfs.

* Reformat function prototypes and add argument symbol names.

* Make dummy function definition order match that of function
  prototypes.

* Add some comments.

* Reorganize fs/sysfs/sysfs.h according to which file the declared
  variable or feature lives in.

This patch does not introduce any behavior change.

Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
Acked-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent f88123ea
Loading
Loading
Loading
Loading
+92 −56
Original line number Diff line number Diff line
/* type-specific structures for sysfs_dirent->s_* union members */
struct sysfs_elem_dir {
	struct kobject		*kobj;
};
@@ -15,6 +16,9 @@ struct sysfs_elem_bin_attr {
};

/*
 * sysfs_dirent - the building block of sysfs hierarchy.  Each and
 * every sysfs node is represented by single sysfs_dirent.
 *
 * As long as s_count reference is held, the sysfs_dirent itself is
 * accessible.  Dereferencing s_elem or any other outer entity
 * requires s_active reference.
@@ -43,6 +47,25 @@ struct sysfs_dirent {

#define SD_DEACTIVATED_BIAS		INT_MIN

#define SYSFS_TYPE_MASK			0x00ff
#define SYSFS_ROOT			0x0001
#define SYSFS_DIR			0x0002
#define SYSFS_KOBJ_ATTR			0x0004
#define SYSFS_KOBJ_BIN_ATTR		0x0008
#define SYSFS_KOBJ_LINK			0x0020
#define SYSFS_COPY_NAME			(SYSFS_DIR | SYSFS_KOBJ_LINK)

#define SYSFS_FLAG_MASK			~SYSFS_TYPE_MASK
#define SYSFS_FLAG_REMOVED		0x0200

static inline unsigned int sysfs_type(struct sysfs_dirent *sd)
{
	return sd->s_flags & SYSFS_TYPE_MASK;
}

/*
 * Context structure to be used while adding/removing nodes.
 */
struct sysfs_addrm_cxt {
	struct sysfs_dirent	*parent_sd;
	struct inode		*parent_inode;
@@ -50,57 +73,45 @@ struct sysfs_addrm_cxt {
	int			cnt;
};

/*
 * mount.c
 */
extern struct sysfs_dirent sysfs_root;
extern struct super_block *sysfs_sb;
extern struct kmem_cache *sysfs_dir_cachep;

extern struct dentry *sysfs_get_dentry(struct sysfs_dirent *sd);
extern struct sysfs_dirent *sysfs_get_active(struct sysfs_dirent *sd);
extern void sysfs_put_active(struct sysfs_dirent *sd);
extern struct sysfs_dirent *sysfs_get_active_two(struct sysfs_dirent *sd);
extern void sysfs_put_active_two(struct sysfs_dirent *sd);
extern void sysfs_addrm_start(struct sysfs_addrm_cxt *acxt,
			      struct sysfs_dirent *parent_sd);
extern int sysfs_add_one(struct sysfs_addrm_cxt *acxt,
			  struct sysfs_dirent *sd);
extern void sysfs_remove_one(struct sysfs_addrm_cxt *acxt,
			     struct sysfs_dirent *sd);
extern void sysfs_addrm_finish(struct sysfs_addrm_cxt *acxt);
/*
 * dir.c
 */
extern struct mutex sysfs_mutex;
extern struct mutex sysfs_rename_mutex;
extern spinlock_t sysfs_assoc_lock;

extern const struct file_operations sysfs_dir_operations;
extern const struct inode_operations sysfs_dir_inode_operations;

extern struct inode * sysfs_get_inode(struct sysfs_dirent *sd);
struct dentry *sysfs_get_dentry(struct sysfs_dirent *sd);
struct sysfs_dirent *sysfs_get_active(struct sysfs_dirent *sd);
void sysfs_put_active(struct sysfs_dirent *sd);
struct sysfs_dirent *sysfs_get_active_two(struct sysfs_dirent *sd);
void sysfs_put_active_two(struct sysfs_dirent *sd);
void sysfs_addrm_start(struct sysfs_addrm_cxt *acxt,
		       struct sysfs_dirent *parent_sd);
int sysfs_add_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd);
void sysfs_remove_one(struct sysfs_addrm_cxt *acxt, struct sysfs_dirent *sd);
void sysfs_addrm_finish(struct sysfs_addrm_cxt *acxt);

extern void release_sysfs_dirent(struct sysfs_dirent * sd);
extern struct sysfs_dirent *sysfs_find_dirent(struct sysfs_dirent *parent_sd,
struct sysfs_dirent *sysfs_find_dirent(struct sysfs_dirent *parent_sd,
				       const unsigned char *name);
extern struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd,
struct sysfs_dirent *sysfs_get_dirent(struct sysfs_dirent *parent_sd,
				      const unsigned char *name);
extern struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode,
					     int type);
struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode, int type);

extern int sysfs_add_file(struct sysfs_dirent *dir_sd,
			  const struct attribute *attr, int type);
extern int sysfs_hash_and_remove(struct sysfs_dirent *dir_sd, const char *name);
extern struct sysfs_dirent *sysfs_find(struct sysfs_dirent *dir, const char * name);
void release_sysfs_dirent(struct sysfs_dirent *sd);

extern int sysfs_create_subdir(struct kobject *kobj, const char *name,
int sysfs_create_subdir(struct kobject *kobj, const char *name,
			struct sysfs_dirent **p_sd);
extern void sysfs_remove_subdir(struct sysfs_dirent *sd);

extern int sysfs_setattr(struct dentry *dentry, struct iattr *iattr);

extern spinlock_t sysfs_assoc_lock;
extern struct mutex sysfs_mutex;
extern struct mutex sysfs_rename_mutex;
extern struct super_block * sysfs_sb;
extern const struct file_operations sysfs_dir_operations;
extern const struct file_operations sysfs_file_operations;
extern const struct file_operations bin_fops;
extern const struct inode_operations sysfs_dir_inode_operations;
extern const struct inode_operations sysfs_symlink_inode_operations;

static inline unsigned int sysfs_type(struct sysfs_dirent *sd)
{
	return sd->s_flags & SYSFS_TYPE_MASK;
}
void sysfs_remove_subdir(struct sysfs_dirent *sd);

static inline struct sysfs_dirent *sysfs_get(struct sysfs_dirent *sd)
{
@@ -116,3 +127,28 @@ static inline void sysfs_put(struct sysfs_dirent * sd)
	if (sd && atomic_dec_and_test(&sd->s_count))
		release_sysfs_dirent(sd);
}

/*
 * inode.c
 */
struct inode *sysfs_get_inode(struct sysfs_dirent *sd);
int sysfs_setattr(struct dentry *dentry, struct iattr *iattr);
int sysfs_hash_and_remove(struct sysfs_dirent *dir_sd, const char *name);

/*
 * file.c
 */
extern const struct file_operations sysfs_file_operations;

int sysfs_add_file(struct sysfs_dirent *dir_sd,
		   const struct attribute *attr, int type);

/*
 * bin.c
 */
extern const struct file_operations bin_fops;

/*
 * symlink.c
 */
extern const struct inode_operations sysfs_symlink_inode_operations;
+57 −70
Original line number Diff line number Diff line
@@ -74,65 +74,43 @@ struct sysfs_ops {
	ssize_t	(*store)(struct kobject *,struct attribute *,const char *, size_t);
};

#define SYSFS_TYPE_MASK		0x00ff
#define SYSFS_ROOT		0x0001
#define SYSFS_DIR		0x0002
#define SYSFS_KOBJ_ATTR 	0x0004
#define SYSFS_KOBJ_BIN_ATTR	0x0008
#define SYSFS_KOBJ_LINK 	0x0020
#define SYSFS_COPY_NAME		(SYSFS_DIR | SYSFS_KOBJ_LINK)

#define SYSFS_FLAG_MASK		~SYSFS_TYPE_MASK
#define SYSFS_FLAG_REMOVED	0x0100

#ifdef CONFIG_SYSFS

extern int sysfs_schedule_callback(struct kobject *kobj,
		void (*func)(void *), void *data, struct module *owner);

extern int __must_check
sysfs_create_dir(struct kobject *);

extern void
sysfs_remove_dir(struct kobject *);

extern int __must_check
sysfs_rename_dir(struct kobject *kobj, const char *new_name);

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 __must_check
sysfs_update_file(struct kobject *, const struct attribute *);
int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
			    void *data, struct module *owner);

extern int __must_check
sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode);
int __must_check sysfs_create_dir(struct kobject *kobj);
void sysfs_remove_dir(struct kobject *kobj);
int __must_check sysfs_rename_dir(struct kobject *kobj, const char *new_name);
int __must_check sysfs_move_dir(struct kobject *kobj,
				struct kobject *new_parent_kobj);

extern void
sysfs_remove_file(struct kobject *, const struct attribute *);

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 __must_check sysfs_create_file(struct kobject *kobj,
				   const struct attribute *attr);
int __must_check sysfs_update_file(struct kobject *kobj,
				   const struct attribute *attr);
int __must_check sysfs_chmod_file(struct kobject *kobj, struct attribute *attr,
				  mode_t mode);
void sysfs_remove_file(struct kobject *kobj, const struct 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 __must_check sysfs_create_group(struct kobject *,
					const struct attribute_group *);
void sysfs_remove_group(struct kobject *, const struct attribute_group *);
int __must_check sysfs_create_link(struct kobject *kobj, struct kobject *target,
				   const char *name);
void sysfs_remove_link(struct kobject *kobj, const char *name);

int __must_check sysfs_create_group(struct kobject *kobj,
				    const struct attribute_group *grp);
void sysfs_remove_group(struct kobject *kobj,
			const struct attribute_group *grp);
int sysfs_add_file_to_group(struct kobject *kobj,
			const struct attribute *attr, const char *group);
void sysfs_remove_file_from_group(struct kobject *kobj,
			const struct attribute *attr, const char *group);

void sysfs_notify(struct kobject * k, char *dir, char *attr);
void sysfs_notify(struct kobject *kobj, char *dir, char *attr);

extern int __must_check sysfs_init(void);

@@ -149,7 +127,7 @@ static inline int sysfs_create_dir(struct kobject * kobj)
	return 0;
}

static inline void sysfs_remove_dir(struct kobject * k)
static inline void sysfs_remove_dir(struct kobject *kobj)
{
	;
}
@@ -159,57 +137,66 @@ static inline int sysfs_rename_dir(struct kobject * kobj, const char *new_name)
	return 0;
}

static inline int sysfs_move_dir(struct kobject * k, struct kobject * new_parent)
static inline int sysfs_move_dir(struct kobject *kobj,
				 struct kobject *new_parent_kobj)
{
	return 0;
}

static inline int sysfs_create_file(struct kobject * k, const struct attribute * a)
static inline int sysfs_create_file(struct kobject *kobj,
				    const struct attribute *attr)
{
	return 0;
}

static inline int sysfs_update_file(struct kobject * k, const struct attribute * a)
static inline int sysfs_update_file(struct kobject *kobj,
				    const struct attribute *attr)
{
	return 0;
}
static inline int sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode)
static inline int sysfs_chmod_file(struct kobject *kobj,
				   struct attribute *attr, mode_t mode)
{
	return 0;
}

static inline void sysfs_remove_file(struct kobject * k, const struct attribute * a)
static inline void sysfs_remove_file(struct kobject *kobj,
				     const struct attribute *attr)
{
	;
}

static inline int sysfs_create_link(struct kobject * k, struct kobject * t, const char * n)
static inline int sysfs_create_bin_file(struct kobject *kobj,
					struct bin_attribute *attr)
{
	return 0;
}

static inline void sysfs_remove_link(struct kobject * k, const char * name)
static inline int sysfs_remove_bin_file(struct kobject *kobj,
					struct bin_attribute *attr)
{
	;
	return 0;
}


static inline int sysfs_create_bin_file(struct kobject * k, struct bin_attribute * a)
static inline int sysfs_create_link(struct kobject *kobj,
				    struct kobject *target, const char *name)
{
	return 0;
}

static inline int sysfs_remove_bin_file(struct kobject * k, struct bin_attribute * a)
static inline void sysfs_remove_link(struct kobject *kobj, const char *name)
{
	return 0;
	;
}

static inline int sysfs_create_group(struct kobject * k, const struct attribute_group *g)
static inline int sysfs_create_group(struct kobject *kobj,
				     const struct attribute_group *grp)
{
	return 0;
}

static inline void sysfs_remove_group(struct kobject * k, const struct attribute_group * g)
static inline void sysfs_remove_group(struct kobject *kobj,
				      const struct attribute_group *grp)
{
	;
}
@@ -225,7 +212,7 @@ static inline void sysfs_remove_file_from_group(struct kobject *kobj,
{
}

static inline void sysfs_notify(struct kobject * k, char *dir, char *attr)
static inline void sysfs_notify(struct kobject *kobj, char *dir, char *attr)
{
}