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