linux_emul.h (1c65504ca8bb2d3696e328120de762d764e10cdf) linux_emul.h (357afa71139263ad214da3ceea164c974129735c)
1/*-
2 * Copyright (c) 2006 Roman Divacky
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $FreeBSD$
29 */
30
31#ifndef _LINUX_EMUL_H_
1/*-
2 * Copyright (c) 2006 Roman Divacky
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 15 unchanged lines hidden (view full) ---

24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $FreeBSD$
29 */
30
31#ifndef _LINUX_EMUL_H_
32#define _LINUX_EMUL_H_
32#define _LINUX_EMUL_H_
33
34struct linux_emuldata_shared {
35 int refs;
36 pid_t group_pid;
37
38 LIST_HEAD(, linux_emuldata) threads; /* head of list of linux threads */
39};
40

--- 9 unchanged lines hidden (view full) ---

50
51 struct linux_emuldata_shared *shared;
52
53 int pdeath_signal; /* parent death signal */
54
55 LIST_ENTRY(linux_emuldata) threads; /* list of linux threads */
56};
57
33
34struct linux_emuldata_shared {
35 int refs;
36 pid_t group_pid;
37
38 LIST_HEAD(, linux_emuldata) threads; /* head of list of linux threads */
39};
40

--- 9 unchanged lines hidden (view full) ---

50
51 struct linux_emuldata_shared *shared;
52
53 int pdeath_signal; /* parent death signal */
54
55 LIST_ENTRY(linux_emuldata) threads; /* list of linux threads */
56};
57
58struct linux_emuldata *em_find(struct proc *, int locked);
58struct linux_emuldata *em_find(struct proc *, int locked);
59
59
60#define EMUL_LOCK(l) sx_xlock(l)
61#define EMUL_UNLOCK(l) sx_xunlock(l)
60#define EMUL_LOCK(l) mtx_lock(l)
61#define EMUL_UNLOCK(l) mtx_unlock(l)
62
62
63#define EMUL_SHARED_RLOCK(l) sx_slock(l)
64#define EMUL_SHARED_RUNLOCK(l) sx_sunlock(l)
65#define EMUL_SHARED_WLOCK(l) sx_xlock(l)
66#define EMUL_SHARED_WUNLOCK(l) sx_xunlock(l)
63#define EMUL_SHARED_RLOCK(l) sx_slock(l)
64#define EMUL_SHARED_RUNLOCK(l) sx_sunlock(l)
65#define EMUL_SHARED_WLOCK(l) sx_xlock(l)
66#define EMUL_SHARED_WUNLOCK(l) sx_xunlock(l)
67
68/* for em_find use */
67
68/* for em_find use */
69#define EMUL_DOLOCK 1
70#define EMUL_DONTLOCK 0
69#define EMUL_DOLOCK 1
70#define EMUL_DONTLOCK 0
71
72int linux_proc_init(struct thread *, pid_t, int);
73void linux_proc_exit(void *, struct proc *);
74void linux_schedtail(void *, struct proc *);
75void linux_proc_exec(void *, struct proc *, struct image_params *);
76
71
72int linux_proc_init(struct thread *, pid_t, int);
73void linux_proc_exit(void *, struct proc *);
74void linux_schedtail(void *, struct proc *);
75void linux_proc_exec(void *, struct proc *, struct image_params *);
76
77extern struct sx emul_shared_lock;
78extern struct sx emul_lock;
77extern struct sx emul_shared_lock;
78extern struct mtx emul_lock;
79
80#endif /* !_LINUX_EMUL_H_ */
79
80#endif /* !_LINUX_EMUL_H_ */