Subversion Repositories Kolibri OS

Rev

Rev 6082 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6082 Rev 6934
Line 1... Line 1...
1
#ifndef _LINUX_PERSONALITY_H
1
#ifndef _LINUX_PERSONALITY_H
2
#define _LINUX_PERSONALITY_H
2
#define _LINUX_PERSONALITY_H
Line 3... Line 3...
3
 
3
 
Line 4... Line -...
4
#include 
-
 
5
 
-
 
6
 
-
 
7
/*
-
 
8
 * Handling of different ABIs (personalities).
-
 
9
 */
-
 
10
 
-
 
11
struct exec_domain;
-
 
12
struct pt_regs;
-
 
13
 
-
 
14
extern int		register_exec_domain(struct exec_domain *);
-
 
15
extern int		unregister_exec_domain(struct exec_domain *);
-
 
16
extern int		__set_personality(unsigned int);
-
 
17
 
-
 
18
 
-
 
19
/*
-
 
20
 * Description of an execution domain.
-
 
21
 * 
-
 
22
 * The first two members are refernced from assembly source
-
 
23
 * and should stay where they are unless explicitly needed.
-
 
24
 */
-
 
25
typedef void (*handler_t)(int, struct pt_regs *);
-
 
26
 
-
 
27
struct exec_domain {
-
 
28
	const char		*name;		/* name of the execdomain */
-
 
29
	handler_t		handler;	/* handler for syscalls */
-
 
30
	unsigned char		pers_low;	/* lowest personality */
-
 
31
	unsigned char		pers_high;	/* highest personality */
-
 
32
	unsigned long		*signal_map;	/* signal mapping */
-
 
33
	unsigned long		*signal_invmap;	/* reverse signal mapping */
-
 
34
	struct map_segment	*err_map;	/* error mapping */
-
 
35
	struct map_segment	*socktype_map;	/* socket type mapping */
-
 
36
	struct map_segment	*sockopt_map;	/* socket option mapping */
-
 
37
	struct map_segment	*af_map;	/* address family mapping */
-
 
38
	struct module		*module;	/* module context of the ed. */
-
 
39
	struct exec_domain	*next;		/* linked list (internal) */
-
 
40
};
4
#include 
41
 
5
 
42
/*
6
/*
43
 * Return the base personality without flags.
7
 * Return the base personality without flags.