Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/kernel/exec_domain.c
26243 views
1
// SPDX-License-Identifier: GPL-2.0
2
/*
3
* Handling of different ABIs (personalities).
4
*
5
* We group personalities into execution domains which have their
6
* own handlers for kernel entry points, signal mapping, etc...
7
*
8
* 2001-05-06 Complete rewrite, Christoph Hellwig ([email protected])
9
*/
10
11
#include <linux/init.h>
12
#include <linux/kernel.h>
13
#include <linux/kmod.h>
14
#include <linux/module.h>
15
#include <linux/personality.h>
16
#include <linux/proc_fs.h>
17
#include <linux/sched.h>
18
#include <linux/seq_file.h>
19
#include <linux/syscalls.h>
20
#include <linux/sysctl.h>
21
#include <linux/types.h>
22
23
#ifdef CONFIG_PROC_FS
24
static int execdomains_proc_show(struct seq_file *m, void *v)
25
{
26
seq_puts(m, "0-0\tLinux \t[kernel]\n");
27
return 0;
28
}
29
30
static int __init proc_execdomains_init(void)
31
{
32
proc_create_single("execdomains", 0, NULL, execdomains_proc_show);
33
return 0;
34
}
35
module_init(proc_execdomains_init);
36
#endif
37
38
SYSCALL_DEFINE1(personality, unsigned int, personality)
39
{
40
unsigned int old = current->personality;
41
42
if (personality != 0xffffffff)
43
set_personality(personality);
44
45
return old;
46
}
47
48