Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9058f3b3 authored by Richard Weinberger's avatar Richard Weinberger
Browse files

Remove rest of exec domains.



It is gone from all archs, now we can remove
the final bits.

Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent fa41b1c7
Loading
Loading
Loading
Loading
+1 −39
Original line number Original line Diff line number Diff line
@@ -3,52 +3,14 @@


#include <uapi/linux/personality.h>
#include <uapi/linux/personality.h>



/*
 * Handling of different ABIs (personalities).
 */

struct exec_domain;
struct pt_regs;

extern int		register_exec_domain(struct exec_domain *);
extern int		unregister_exec_domain(struct exec_domain *);
extern int		__set_personality(unsigned int);


/*
 * Description of an execution domain.
 * 
 * The first two members are refernced from assembly source
 * and should stay where they are unless explicitly needed.
 */
typedef void (*handler_t)(int, struct pt_regs *);

struct exec_domain {
	const char		*name;		/* name of the execdomain */
	handler_t		handler;	/* handler for syscalls */
	unsigned char		pers_low;	/* lowest personality */
	unsigned char		pers_high;	/* highest personality */
	unsigned long		*signal_map;	/* signal mapping */
	unsigned long		*signal_invmap;	/* reverse signal mapping */
	struct map_segment	*err_map;	/* error mapping */
	struct map_segment	*socktype_map;	/* socket type mapping */
	struct map_segment	*sockopt_map;	/* socket option mapping */
	struct map_segment	*af_map;	/* address family mapping */
	struct module		*module;	/* module context of the ed. */
	struct exec_domain	*next;		/* linked list (internal) */
};

/*
/*
 * Return the base personality without flags.
 * Return the base personality without flags.
 */
 */
#define personality(pers)	(pers & PER_MASK)
#define personality(pers)	(pers & PER_MASK)



/*
/*
 * Change personality of the currently running process.
 * Change personality of the currently running process.
 */
 */
#define set_personality(pers) \
#define set_personality(pers)	(current->personality = (pers))
	((current->personality == (pers)) ? 0 : __set_personality(pers))


#endif /* _LINUX_PERSONALITY_H */
#endif /* _LINUX_PERSONALITY_H */
+0 −6
Original line number Original line Diff line number Diff line
@@ -125,7 +125,6 @@ struct sched_attr {
	u64 sched_period;
	u64 sched_period;
};
};


struct exec_domain;
struct futex_pi_state;
struct futex_pi_state;
struct robust_list_head;
struct robust_list_head;
struct bio_list;
struct bio_list;
@@ -2288,11 +2287,6 @@ extern void set_curr_task(int cpu, struct task_struct *p);


void yield(void);
void yield(void);


/*
 * The default (Linux) execution domain.
 */
extern struct exec_domain	default_exec_domain;

union thread_union {
union thread_union {
	struct thread_info thread_info;
	struct thread_info thread_info;
	unsigned long stack[THREAD_SIZE/sizeof(long)];
	unsigned long stack[THREAD_SIZE/sizeof(long)];
+0 −37
Original line number Original line Diff line number Diff line
@@ -20,43 +20,6 @@
#include <linux/types.h>
#include <linux/types.h>
#include <linux/fs_struct.h>
#include <linux/fs_struct.h>


static void default_handler(int, struct pt_regs *);
static unsigned long ident_map[32] = {
	0,	1,	2,	3,	4,	5,	6,	7,
	8,	9,	10,	11,	12,	13,	14,	15,
	16,	17,	18,	19,	20,	21,	22,	23,
	24,	25,	26,	27,	28,	29,	30,	31
};

struct exec_domain default_exec_domain = {
	.name		= "Linux",		/* name */
	.handler	= default_handler,	/* lcall7 causes a seg fault. */
	.pers_low	= 0,			/* PER_LINUX personality. */
	.pers_high	= 0,			/* PER_LINUX personality. */
	.signal_map	= ident_map,		/* Identity map signals. */
	.signal_invmap	= ident_map,		/*  - both ways. */
};


static void
default_handler(int segment, struct pt_regs *regp)
{
	set_personality(0);

	if (current_thread_info()->exec_domain->handler != default_handler)
		current_thread_info()->exec_domain->handler(segment, regp);
	else
		send_sig(SIGSEGV, current, 1);
}

int __set_personality(unsigned int personality)
{
	current->personality = personality;

	return 0;
}
EXPORT_SYMBOL(__set_personality);

#ifdef CONFIG_PROC_FS
#ifdef CONFIG_PROC_FS
static int execdomains_proc_show(struct seq_file *m, void *v)
static int execdomains_proc_show(struct seq_file *m, void *v)
{
{