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

fs_struct.h (1066B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _LINUX_FS_STRUCT_H
      3#define _LINUX_FS_STRUCT_H
      4
      5#include <linux/path.h>
      6#include <linux/spinlock.h>
      7#include <linux/seqlock.h>
      8
      9struct fs_struct {
     10	int users;
     11	spinlock_t lock;
     12	seqcount_spinlock_t seq;
     13	int umask;
     14	int in_exec;
     15	struct path root, pwd;
     16} __randomize_layout;
     17
     18extern struct kmem_cache *fs_cachep;
     19
     20extern void exit_fs(struct task_struct *);
     21extern void set_fs_root(struct fs_struct *, const struct path *);
     22extern void set_fs_pwd(struct fs_struct *, const struct path *);
     23extern struct fs_struct *copy_fs_struct(struct fs_struct *);
     24extern void free_fs_struct(struct fs_struct *);
     25extern int unshare_fs_struct(void);
     26
     27static inline void get_fs_root(struct fs_struct *fs, struct path *root)
     28{
     29	spin_lock(&fs->lock);
     30	*root = fs->root;
     31	path_get(root);
     32	spin_unlock(&fs->lock);
     33}
     34
     35static inline void get_fs_pwd(struct fs_struct *fs, struct path *pwd)
     36{
     37	spin_lock(&fs->lock);
     38	*pwd = fs->pwd;
     39	path_get(pwd);
     40	spin_unlock(&fs->lock);
     41}
     42
     43extern bool current_chrooted(void);
     44
     45#endif /* _LINUX_FS_STRUCT_H */