mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-22 23:24:13 +00: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
2 changed files with 27 additions and 15 deletions
|
@ -63,7 +63,6 @@
|
||||||
* have a way to deal with that gracefully. Right now I used straightforward
|
* have a way to deal with that gracefully. Right now I used straightforward
|
||||||
* wrappers, but this needs further analysis wrt potential overflows.
|
* 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,
|
static int proc_calc_metrics(char *page, char **start, off_t off,
|
||||||
int count, int *eof, int len)
|
int count, int *eof, int len)
|
||||||
|
@ -486,13 +485,6 @@ static const struct file_operations proc_locks_operations = {
|
||||||
};
|
};
|
||||||
#endif /* CONFIG_FILE_LOCKING */
|
#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
|
#ifdef CONFIG_PROC_PAGE_MONITOR
|
||||||
#define KPMSIZE sizeof(u64)
|
#define KPMSIZE sizeof(u64)
|
||||||
#define KPMMASK (KPMSIZE - 1)
|
#define KPMMASK (KPMSIZE - 1)
|
||||||
|
@ -632,7 +624,6 @@ void __init proc_misc_init(void)
|
||||||
char *name;
|
char *name;
|
||||||
int (*read_proc)(char*,char**,off_t,int,int*,void*);
|
int (*read_proc)(char*,char**,off_t,int,int*,void*);
|
||||||
} *p, simple_ones[] = {
|
} *p, simple_ones[] = {
|
||||||
{"execdomains", execdomains_read_proc},
|
|
||||||
{NULL,}
|
{NULL,}
|
||||||
};
|
};
|
||||||
for (p = simple_ones; p->name; p++)
|
for (p = simple_ones; p->name; p++)
|
||||||
|
|
|
@ -12,7 +12,9 @@
|
||||||
#include <linux/kmod.h>
|
#include <linux/kmod.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/personality.h>
|
#include <linux/personality.h>
|
||||||
|
#include <linux/proc_fs.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
|
#include <linux/seq_file.h>
|
||||||
#include <linux/syscalls.h>
|
#include <linux/syscalls.h>
|
||||||
#include <linux/sysctl.h>
|
#include <linux/sysctl.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
|
@ -173,21 +175,40 @@ __set_personality(u_long personality)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
#ifdef CONFIG_PROC_FS
|
||||||
get_exec_domain_list(char *page)
|
static int execdomains_proc_show(struct seq_file *m, void *v)
|
||||||
{
|
{
|
||||||
struct exec_domain *ep;
|
struct exec_domain *ep;
|
||||||
int len = 0;
|
|
||||||
|
|
||||||
read_lock(&exec_domains_lock);
|
read_lock(&exec_domains_lock);
|
||||||
for (ep = exec_domains; ep && len < PAGE_SIZE - 80; ep = ep->next)
|
for (ep = exec_domains; ep; ep = ep->next)
|
||||||
len += sprintf(page + len, "%d-%d\t%-16s\t[%s]\n",
|
seq_printf(m, "%d-%d\t%-16s\t[%s]\n",
|
||||||
ep->pers_low, ep->pers_high, ep->name,
|
ep->pers_low, ep->pers_high, ep->name,
|
||||||
module_name(ep->module));
|
module_name(ep->module));
|
||||||
read_unlock(&exec_domains_lock);
|
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
|
asmlinkage long
|
||||||
sys_personality(u_long personality)
|
sys_personality(u_long personality)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue