xref: /openbmc/linux/fs/sysfs/sysfs.h (revision 03ab8e6297acd1bc0eedaa050e2a1635c576fd11)
1619daeeeSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
26d66f5cdSTejun Heo /*
36d66f5cdSTejun Heo  * fs/sysfs/sysfs.h - sysfs internal header file
46d66f5cdSTejun Heo  *
56d66f5cdSTejun Heo  * Copyright (c) 2001-3 Patrick Mochel
66d66f5cdSTejun Heo  * Copyright (c) 2007 SUSE Linux Products GmbH
76d66f5cdSTejun Heo  * Copyright (c) 2007 Tejun Heo <teheo@suse.de>
86d66f5cdSTejun Heo  */
96d66f5cdSTejun Heo 
10ae6621b0STejun Heo #ifndef __SYSFS_INTERNAL_H
11ae6621b0STejun Heo #define __SYSFS_INTERNAL_H
12ddd29ec6SDavid P. Quigley 
13ae6621b0STejun Heo #include <linux/sysfs.h>
14fb6896daSTejun Heo 
1559f69015STejun Heo /*
1659f69015STejun Heo  * mount.c
1759f69015STejun Heo  */
18324a56e1STejun Heo extern struct kernfs_node *sysfs_root_kn;
191da177e4SLinus Torvalds 
2059f69015STejun Heo /*
2159f69015STejun Heo  * dir.c
2259f69015STejun Heo  */
230cae60f9STejun Heo extern spinlock_t sysfs_symlink_target_lock;
241da177e4SLinus Torvalds 
25324a56e1STejun Heo void sysfs_warn_dup(struct kernfs_node *parent, const char *name);
2659f69015STejun Heo 
2759f69015STejun Heo /*
2859f69015STejun Heo  * file.c
2959f69015STejun Heo  */
30324a56e1STejun Heo int sysfs_add_file_mode_ns(struct kernfs_node *parent,
31*5cf3bb0dSChristoph Hellwig 		const struct attribute *attr, umode_t amode, kuid_t uid,
32*5cf3bb0dSChristoph Hellwig 		kgid_t gid, const void *ns);
33*5cf3bb0dSChristoph Hellwig int sysfs_add_bin_file_mode_ns(struct kernfs_node *parent,
34*5cf3bb0dSChristoph Hellwig 		const struct bin_attribute *battr, umode_t mode,
35*5cf3bb0dSChristoph Hellwig 		kuid_t uid, kgid_t gid, const void *ns);
3673d97146STejun Heo 
3759f69015STejun Heo /*
3859f69015STejun Heo  * symlink.c
3959f69015STejun Heo  */
40324a56e1STejun Heo int sysfs_create_link_sd(struct kernfs_node *kn, struct kobject *target,
410bb8f3d6SRafael J. Wysocki 			 const char *name);
42ae6621b0STejun Heo 
43ae6621b0STejun Heo #endif	/* __SYSFS_INTERNAL_H */
44