linux/fs/proc/root.c

// SPDX-License-Identifier: GPL-2.0
/*
 *  linux/fs/proc/root.c
 *
 *  Copyright (C) 1991, 1992 Linus Torvalds
 *
 *  proc root directory handling functions
 */
#include <linux/errno.h>
#include <linux/time.h>
#include <linux/proc_fs.h>
#include <linux/stat.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/sched/stat.h>
#include <linux/module.h>
#include <linux/bitops.h>
#include <linux/user_namespace.h>
#include <linux/fs_context.h>
#include <linux/mount.h>
#include <linux/pid_namespace.h>
#include <linux/fs_parser.h>
#include <linux/cred.h>
#include <linux/magic.h>
#include <linux/slab.h>

#include "internal.h"

struct proc_fs_context {};

enum proc_param {};

static const struct fs_parameter_spec proc_fs_parameters[] =;

static inline int valid_hidepid(unsigned int value)
{}

static int proc_parse_hidepid_param(struct fs_context *fc, struct fs_parameter *param)
{}

static int proc_parse_subset_param(struct fs_context *fc, char *value)
{}

static int proc_parse_param(struct fs_context *fc, struct fs_parameter *param)
{}

static void proc_apply_options(struct proc_fs_info *fs_info,
			       struct fs_context *fc,
			       struct user_namespace *user_ns)
{}

static int proc_fill_super(struct super_block *s, struct fs_context *fc)
{}

static int proc_reconfigure(struct fs_context *fc)
{}

static int proc_get_tree(struct fs_context *fc)
{}

static void proc_fs_context_free(struct fs_context *fc)
{}

static const struct fs_context_operations proc_fs_context_ops =;

static int proc_init_fs_context(struct fs_context *fc)
{}

static void proc_kill_sb(struct super_block *sb)
{}

static struct file_system_type proc_fs_type =;

void __init proc_root_init(void)
{}

static int proc_root_getattr(struct mnt_idmap *idmap,
			     const struct path *path, struct kstat *stat,
			     u32 request_mask, unsigned int query_flags)
{}

static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags)
{}

static int proc_root_readdir(struct file *file, struct dir_context *ctx)
{}

/*
 * The root /proc directory is special, as it has the
 * <pid> directories. Thus we don't use the generic
 * directory handling functions for that..
 */
static const struct file_operations proc_root_operations =;

/*
 * proc root can do almost nothing..
 */
static const struct inode_operations proc_root_inode_operations =;

/*
 * This is the root "inode" in the /proc tree..
 */
struct proc_dir_entry proc_root =;