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_mode_ns(struct kernfs_node *parent, 31 const struct attribute *attr, umode_t amode, kuid_t uid, 32 kgid_t gid, const void *ns); 33 int sysfs_add_bin_file_mode_ns(struct kernfs_node *parent, 34 const struct bin_attribute *battr, umode_t mode, size_t size, 35 kuid_t uid, kgid_t gid, const void *ns); 36 37 /* 38 * symlink.c 39 */ 40 int sysfs_create_link_sd(struct kernfs_node *kn, struct kobject *target, 41 const char *name); 42 43 #endif /* __SYSFS_INTERNAL_H */ 44