162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * fs/sysfs/sysfs.h - sysfs internal header file 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (c) 2001-3 Patrick Mochel 662306a36Sopenharmony_ci * Copyright (c) 2007 SUSE Linux Products GmbH 762306a36Sopenharmony_ci * Copyright (c) 2007 Tejun Heo <teheo@suse.de> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef __SYSFS_INTERNAL_H 1162306a36Sopenharmony_ci#define __SYSFS_INTERNAL_H 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <linux/sysfs.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/* 1662306a36Sopenharmony_ci * mount.c 1762306a36Sopenharmony_ci */ 1862306a36Sopenharmony_ciextern struct kernfs_node *sysfs_root_kn; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci/* 2162306a36Sopenharmony_ci * dir.c 2262306a36Sopenharmony_ci */ 2362306a36Sopenharmony_ciextern spinlock_t sysfs_symlink_target_lock; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_civoid sysfs_warn_dup(struct kernfs_node *parent, const char *name); 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci/* 2862306a36Sopenharmony_ci * file.c 2962306a36Sopenharmony_ci */ 3062306a36Sopenharmony_ciint sysfs_add_file_mode_ns(struct kernfs_node *parent, 3162306a36Sopenharmony_ci const struct attribute *attr, umode_t amode, kuid_t uid, 3262306a36Sopenharmony_ci kgid_t gid, const void *ns); 3362306a36Sopenharmony_ciint sysfs_add_bin_file_mode_ns(struct kernfs_node *parent, 3462306a36Sopenharmony_ci const struct bin_attribute *battr, umode_t mode, 3562306a36Sopenharmony_ci kuid_t uid, kgid_t gid, const void *ns); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci/* 3862306a36Sopenharmony_ci * symlink.c 3962306a36Sopenharmony_ci */ 4062306a36Sopenharmony_ciint sysfs_create_link_sd(struct kernfs_node *kn, struct kobject *target, 4162306a36Sopenharmony_ci const char *name); 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci#endif /* __SYSFS_INTERNAL_H */ 44