xref: /linux/fs/sysfs/sysfs.h (revision e21f9e2e862e9eb3dd64eaddb6256b3e5098660f)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * fs/sysfs/sysfs.h - sysfs internal header file
4  *
5  * Copyright (c) 2001-3 Patrick Mochel
6  * Copyright (c) 2007 SUSE Linux Products GmbH
7  * Copyright (c) 2007 Tejun Heo <teheo@suse.de>
8  */
9 
10 #ifndef __SYSFS_INTERNAL_H
11 #define __SYSFS_INTERNAL_H
12 
13 #include <linux/sysfs.h>
14 
15 /*
16  * mount.c
17  */
18 extern struct kernfs_node *sysfs_root_kn;
19 
20 /*
21  * dir.c
22  */
23 extern spinlock_t sysfs_symlink_target_lock;
24 
25 void sysfs_warn_dup(struct kernfs_node *parent, const char *name);
26 
27 /*
28  * file.c
29  */
30 int sysfs_add_file(struct kernfs_node *parent,
31 		   const struct attribute *attr, bool is_bin);
32 int sysfs_add_file_mode_ns(struct kernfs_node *parent,
33 			   const struct attribute *attr, bool is_bin,
34 			   umode_t amode, const void *ns);
35 
36 /*
37  * symlink.c
38  */
39 int sysfs_create_link_sd(struct kernfs_node *kn, struct kobject *target,
40 			 const char *name);
41 
42 #endif	/* __SYSFS_INTERNAL_H */
43