cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

xfs_sysfs.h (1246B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * Copyright (c) 2014 Red Hat, Inc.
      4 * All Rights Reserved.
      5 */
      6
      7#ifndef __XFS_SYSFS_H__
      8#define __XFS_SYSFS_H__
      9
     10extern struct kobj_type xfs_mp_ktype;	/* xfs_mount */
     11extern struct kobj_type xfs_dbg_ktype;	/* debug */
     12extern struct kobj_type xfs_log_ktype;	/* xlog */
     13extern struct kobj_type xfs_stats_ktype;	/* stats */
     14
     15static inline struct xfs_kobj *
     16to_kobj(struct kobject *kobject)
     17{
     18	return container_of(kobject, struct xfs_kobj, kobject);
     19}
     20
     21static inline void
     22xfs_sysfs_release(struct kobject *kobject)
     23{
     24	struct xfs_kobj *kobj = to_kobj(kobject);
     25	complete(&kobj->complete);
     26}
     27
     28static inline int
     29xfs_sysfs_init(
     30	struct xfs_kobj		*kobj,
     31	struct kobj_type	*ktype,
     32	struct xfs_kobj		*parent_kobj,
     33	const char		*name)
     34{
     35	struct kobject		*parent;
     36
     37	parent = parent_kobj ? &parent_kobj->kobject : NULL;
     38	init_completion(&kobj->complete);
     39	return kobject_init_and_add(&kobj->kobject, ktype, parent, "%s", name);
     40}
     41
     42static inline void
     43xfs_sysfs_del(
     44	struct xfs_kobj	*kobj)
     45{
     46	kobject_del(&kobj->kobject);
     47	kobject_put(&kobj->kobject);
     48	wait_for_completion(&kobj->complete);
     49}
     50
     51int	xfs_error_sysfs_init(struct xfs_mount *mp);
     52void	xfs_error_sysfs_del(struct xfs_mount *mp);
     53
     54#endif	/* __XFS_SYSFS_H__ */