cregit-Linux how code gets into the kernel

Release 4.18 include/linux/proc_fs.h

Directory: include/linux
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * The proc filesystem constants/structures
 */
#ifndef _LINUX_PROC_FS_H

#define _LINUX_PROC_FS_H

#include <linux/types.h>
#include <linux/fs.h>

struct proc_dir_entry;
struct seq_file;
struct seq_operations;

#ifdef CONFIG_PROC_FS


typedef int (*proc_write_t)(struct file *, char *, size_t);

extern void proc_root_init(void);
extern void proc_flush_task(struct task_struct *);

extern struct proc_dir_entry *proc_symlink(const char *,
		struct proc_dir_entry *, const char *);
extern struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *);
extern struct proc_dir_entry *proc_mkdir_data(const char *, umode_t,
					      struct proc_dir_entry *, void *);
extern struct proc_dir_entry *proc_mkdir_mode(const char *, umode_t,
					      struct proc_dir_entry *);
struct proc_dir_entry *proc_create_mount_point(const char *name);

struct proc_dir_entry *proc_create_seq_private(const char *name, umode_t mode,
		struct proc_dir_entry *parent, const struct seq_operations *ops,
		unsigned int state_size, void *data);

#define proc_create_seq_data(name, mode, parent, ops, data) \
	proc_create_seq_private(name, mode, parent, ops, 0, data)

#define proc_create_seq(name, mode, parent, ops) \
	proc_create_seq_private(name, mode, parent, ops, 0, NULL)
struct proc_dir_entry *proc_create_single_data(const char *name, umode_t mode,
		struct proc_dir_entry *parent,
		int (*show)(struct seq_file *, void *), void *data);

#define proc_create_single(name, mode, parent, show) \
	proc_create_single_data(name, mode, parent, show, NULL)
 
extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
					       struct proc_dir_entry *,
					       const struct file_operations *,
					       void *);

struct proc_dir_entry *proc_create(const char *name, umode_t mode, struct proc_dir_entry *parent, const struct file_operations *proc_fops);
extern void proc_set_size(struct proc_dir_entry *, loff_t);
extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t);
extern void *PDE_DATA(const struct inode *);
extern void *proc_get_parent_data(const struct inode *);
extern void proc_remove(struct proc_dir_entry *);
extern void remove_proc_entry(const char *, struct proc_dir_entry *);
extern int remove_proc_subtree(const char *, struct proc_dir_entry *);

struct proc_dir_entry *proc_create_net_data(const char *name, umode_t mode,
		struct proc_dir_entry *parent, const struct seq_operations *ops,
		unsigned int state_size, void *data);

#define proc_create_net(name, mode, parent, state_size, ops) \
	proc_create_net_data(name, mode, parent, state_size, ops, NULL)
struct proc_dir_entry *proc_create_net_single(const char *name, umode_t mode,
		struct proc_dir_entry *parent,
		int (*show)(struct seq_file *, void *), void *data);
struct proc_dir_entry *proc_create_net_data_write(const char *name, umode_t mode,
						  struct proc_dir_entry *parent,
						  const struct seq_operations *ops,
						  proc_write_t write,
						  unsigned int state_size, void *data);
struct proc_dir_entry *proc_create_net_single_write(const char *name, umode_t mode,
						    struct proc_dir_entry *parent,
						    int (*show)(struct seq_file *, void *),
						    proc_write_t write,
						    void *data);

#else /* CONFIG_PROC_FS */


static inline void proc_root_init(void) { }

Contributors

PersonTokensPropCommitsCommitProp
Andrew Morton8100.00%1100.00%
Total8100.00%1100.00%


static inline void proc_flush_task(struct task_struct *task) { }

Contributors

PersonTokensPropCommitsCommitProp
David Howells11100.00%2100.00%
Total11100.00%2100.00%


static inline struct proc_dir_entry *proc_symlink(const char *name, struct proc_dir_entry *parent,const char *dest) { return NULL;}

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)2592.59%250.00%
Roland Dreier13.70%125.00%
Linus Torvalds13.70%125.00%
Total27100.00%4100.00%


static inline struct proc_dir_entry *proc_mkdir(const char *name, struct proc_dir_entry *parent) {return NULL;}

Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds (pre-git)2195.45%266.67%
Linus Torvalds14.55%133.33%
Total22100.00%3100.00%


static inline struct proc_dir_entry *proc_create_mount_point(const char *name) { return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
Seth Forshee17100.00%1100.00%
Total17100.00%1100.00%


static inline struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
David Howells29100.00%1100.00%
Total29100.00%1100.00%


static inline struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode, struct proc_dir_entry *parent) { return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
Randy Dunlap2496.00%150.00%
Al Viro14.00%150.00%
Total25100.00%2100.00%

#define proc_create_seq_private(name, mode, parent, ops, size, data) ({NULL;}) #define proc_create_seq_data(name, mode, parent, ops, data) ({NULL;}) #define proc_create_seq(name, mode, parent, ops) ({NULL;}) #define proc_create_single(name, mode, parent, show) ({NULL;}) #define proc_create_single_data(name, mode, parent, show, data) ({NULL;}) #define proc_create(name, mode, parent, proc_fops) ({NULL;}) #define proc_create_data(name, mode, parent, proc_fops, data) ({NULL;})
static inline void proc_set_size(struct proc_dir_entry *de, loff_t size) {}

Contributors

PersonTokensPropCommitsCommitProp
David Howells14100.00%1100.00%
Total14100.00%1100.00%


static inline void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid) {}

Contributors

PersonTokensPropCommitsCommitProp
David Howells17100.00%1100.00%
Total17100.00%1100.00%


static inline void *PDE_DATA(const struct inode *inode) {BUG(); return NULL;}

Contributors

PersonTokensPropCommitsCommitProp
David Howells20100.00%1100.00%
Total20100.00%1100.00%


static inline void *proc_get_parent_data(const struct inode *inode) { BUG(); return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
David Howells1575.00%150.00%
Al Viro525.00%150.00%
Total20100.00%2100.00%


static inline void proc_remove(struct proc_dir_entry *de) {}

Contributors

PersonTokensPropCommitsCommitProp
David Howells872.73%150.00%
Al Viro327.27%150.00%
Total11100.00%2100.00%

#define remove_proc_entry(name, parent) do {} while (0)
static inline int remove_proc_subtree(const char *name, struct proc_dir_entry *parent) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
David Howells1260.00%133.33%
Eric W. Biedermann735.00%133.33%
Al Viro15.00%133.33%
Total20100.00%3100.00%

#define proc_create_net_data(name, mode, parent, ops, state_size, data) ({NULL;}) #define proc_create_net(name, mode, parent, state_size, ops) ({NULL;}) #define proc_create_net_single(name, mode, parent, show, data) ({NULL;}) #endif /* CONFIG_PROC_FS */ struct net;
static inline struct proc_dir_entry *proc_net_mkdir( struct net *net, const char *name, struct proc_dir_entry *parent) { return proc_mkdir_data(name, 0, parent, net); }

Contributors

PersonTokensPropCommitsCommitProp
David Howells36100.00%1100.00%
Total36100.00%1100.00%

struct ns_common; int open_related_ns(struct ns_common *ns, struct ns_common *(*get_ns)(struct ns_common *ns)); /* get the associated pid namespace for a file in procfs */
static inline struct pid_namespace *proc_pid_ns(struct inode *inode) { return inode->i_sb->s_fs_info; }

Contributors

PersonTokensPropCommitsCommitProp
Christoph Hellwig21100.00%1100.00%
Total21100.00%1100.00%

#endif /* _LINUX_PROC_FS_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
David Howells39137.52%716.67%
Christoph Hellwig34833.40%614.29%
Linus Torvalds (pre-git)1009.60%819.05%
Denis V. Lunev353.36%12.38%
Seth Forshee282.69%12.38%
Andrey Vagin262.50%12.38%
Randy Dunlap242.30%12.38%
Al Viro232.21%37.14%
Andrew Morton232.21%37.14%
Eric W. Biedermann161.54%37.14%
Alexey Dobriyan161.54%24.76%
Linus Torvalds50.48%24.76%
Jeff Layton30.29%12.38%
Ben Nizette20.19%12.38%
Roland Dreier10.10%12.38%
Greg Kroah-Hartman10.10%12.38%
Total1042100.00%42100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.