mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
proc: move /proc/execdomains to kernel/exec_domain.c
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
This commit is contained in:
parent
cf9887f102
commit
6e62775ece
@ -63,7 +63,6 @@
|
||||
* have a way to deal with that gracefully. Right now I used straightforward
|
||||
* wrappers, but this needs further analysis wrt potential overflows.
|
||||
*/
|
||||
extern int get_exec_domain_list(char *);
|
||||
|
||||
static int proc_calc_metrics(char *page, char **start, off_t off,
|
||||
int count, int *eof, int len)
|
||||
@ -486,13 +485,6 @@ static const struct file_operations proc_locks_operations = {
|
||||
};
|
||||
#endif /* CONFIG_FILE_LOCKING */
|
||||
|
||||
static int execdomains_read_proc(char *page, char **start, off_t off,
|
||||
int count, int *eof, void *data)
|
||||
{
|
||||
int len = get_exec_domain_list(page);
|
||||
return proc_calc_metrics(page, start, off, count, eof, len);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PROC_PAGE_MONITOR
|
||||
#define KPMSIZE sizeof(u64)
|
||||
#define KPMMASK (KPMSIZE - 1)
|
||||
@ -632,7 +624,6 @@ void __init proc_misc_init(void)
|
||||
char *name;
|
||||
int (*read_proc)(char*,char**,off_t,int,int*,void*);
|
||||
} *p, simple_ones[] = {
|
||||
{"execdomains", execdomains_read_proc},
|
||||
{NULL,}
|
||||
};
|
||||
for (p = simple_ones; p->name; p++)
|
||||
|
@ -12,7 +12,9 @@
|
||||
#include <linux/kmod.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/personality.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/types.h>
|
||||
@ -173,21 +175,40 @@ __set_personality(u_long personality)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
get_exec_domain_list(char *page)
|
||||
#ifdef CONFIG_PROC_FS
|
||||
static int execdomains_proc_show(struct seq_file *m, void *v)
|
||||
{
|
||||
struct exec_domain *ep;
|
||||
int len = 0;
|
||||
|
||||
read_lock(&exec_domains_lock);
|
||||
for (ep = exec_domains; ep && len < PAGE_SIZE - 80; ep = ep->next)
|
||||
len += sprintf(page + len, "%d-%d\t%-16s\t[%s]\n",
|
||||
for (ep = exec_domains; ep; ep = ep->next)
|
||||
seq_printf(m, "%d-%d\t%-16s\t[%s]\n",
|
||||
ep->pers_low, ep->pers_high, ep->name,
|
||||
module_name(ep->module));
|
||||
read_unlock(&exec_domains_lock);
|
||||
return (len);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int execdomains_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, execdomains_proc_show, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations execdomains_proc_fops = {
|
||||
.open = execdomains_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = single_release,
|
||||
};
|
||||
|
||||
static int __init proc_execdomains_init(void)
|
||||
{
|
||||
proc_create("execdomains", 0, NULL, &execdomains_proc_fops);
|
||||
return 0;
|
||||
}
|
||||
module_init(proc_execdomains_init);
|
||||
#endif
|
||||
|
||||
asmlinkage long
|
||||
sys_personality(u_long personality)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user