| @@ -1,106 +1,105 @@ | | | @@ -1,106 +1,105 @@ |
1 | /* $NetBSD: component.c,v 1.10 2013/12/17 14:30:18 pooka Exp $ */ | | 1 | /* $NetBSD: component.c,v 1.11 2014/02/18 06:20:46 pooka Exp $ */ |
2 | | | 2 | |
3 | #include <sys/param.h> | | 3 | #include <sys/param.h> |
4 | #include <sys/proc.h> | | 4 | #include <sys/proc.h> |
5 | | | 5 | |
6 | #include <compat/linux/common/linux_errno.h> | | 6 | #include <compat/linux/common/linux_errno.h> |
7 | | | 7 | |
8 | #include <uvm/uvm_extern.h> | | 8 | #include <uvm/uvm_extern.h> |
9 | | | 9 | |
10 | #include "rump_private.h" | | 10 | #include "rump_private.h" |
11 | | | 11 | |
12 | #include "rump_linux_syscall.h" | | 12 | #include "rump_linux_syscall.h" |
13 | | | 13 | |
14 | extern struct sysent rump_linux_sysent[]; | | 14 | extern struct sysent rump_linux_sysent[]; |
15 | | | 15 | |
16 | #ifdef __HAVE_SYSCALL_INTERN | | 16 | #ifdef __HAVE_SYSCALL_INTERN |
17 | static void | | 17 | static void |
18 | rumplinux_syscall_intern(struct proc *p) | | 18 | rumplinux_syscall_intern(struct proc *p) |
19 | { | | 19 | { |
20 | | | 20 | |
21 | p->p_emuldata = __UNCONST(native_to_linux_errno); | | 21 | p->p_emuldata = __UNCONST(native_to_linux_errno); |
22 | } | | 22 | } |
23 | #endif | | 23 | #endif |
24 | | | 24 | |
25 | struct emul emul_rump_sys_linux = { | | 25 | struct emul emul_rump_sys_linux = { |
26 | .e_name = "linux-rump", | | 26 | .e_name = "linux-rump", |
27 | .e_sysent = rump_linux_sysent, | | 27 | .e_sysent = rump_linux_sysent, |
28 | #ifndef __HAVE_MINIMAL_EMUL | | 28 | #ifndef __HAVE_MINIMAL_EMUL |
29 | .e_nsysent = RUMP_LINUX_SYS_NSYSENT, | | 29 | .e_nsysent = RUMP_LINUX_SYS_NSYSENT, |
30 | .e_errno = native_to_linux_errno, | | 30 | .e_errno = native_to_linux_errno, |
31 | #endif | | 31 | #endif |
32 | .e_vm_default_addr = uvm_default_mapaddr, | | 32 | .e_vm_default_addr = uvm_default_mapaddr, |
33 | #ifdef __HAVE_SYSCALL_INTERN | | 33 | #ifdef __HAVE_SYSCALL_INTERN |
34 | .e_syscall_intern = rumplinux_syscall_intern, | | 34 | .e_syscall_intern = rumplinux_syscall_intern, |
35 | #endif | | 35 | #endif |
36 | }; | | 36 | }; |
37 | | | 37 | |
38 | RUMP_COMPONENT(RUMP_COMPONENT_KERN) | | 38 | RUMP_COMPONENT(RUMP_COMPONENT_KERN) |
39 | { | | 39 | { |
40 | extern struct emul *emul_default; | | 40 | extern struct emul *emul_default; |
41 | | | 41 | |
42 | emul_default = &emul_rump_sys_linux; | | 42 | emul_default = &emul_rump_sys_linux; |
43 | } | | 43 | } |
44 | | | 44 | |
45 | #include <compat/linux/common/linux_machdep.h> | | 45 | #include <compat/linux/common/linux_machdep.h> |
46 | | | 46 | |
47 | dev_t | | 47 | dev_t |
48 | linux_fakedev(dev_t in, int raw) | | 48 | linux_fakedev(dev_t in, int raw) |
49 | { | | 49 | { |
50 | | | 50 | |
51 | /* I don't really think it matters what we return here */ | | 51 | /* I don't really think it matters what we return here */ |
52 | return in; | | 52 | return in; |
53 | } | | 53 | } |
54 | | | 54 | |
55 | /* | | 55 | /* |
56 | * XXX: the linux emulation code is not split into factions | | 56 | * XXX: the linux emulation code is not split into factions |
57 | */ | | 57 | */ |
58 | void rumplinux__stub(void); | | 58 | void rumplinux__stub(void); |
59 | void rumplinux__stub(void) {panic("unavailable");} | | 59 | void rumplinux__stub(void) {panic("unavailable");} |
60 | | | 60 | |
61 | /* timing */ | | 61 | /* timing */ |
62 | __weak_alias(clock_gettime1,rumplinux__stub); | | 62 | __weak_alias(clock_gettime1,rumplinux__stub); |
63 | __weak_alias(clock_settime1,rumplinux__stub); | | 63 | __weak_alias(clock_settime1,rumplinux__stub); |
64 | __weak_alias(clock_getres1,rumplinux__stub); | | 64 | __weak_alias(clock_getres1,rumplinux__stub); |
65 | __weak_alias(compat_50_sys_gettimeofday,rumplinux__stub); | | 65 | __weak_alias(compat_50_sys_gettimeofday,rumplinux__stub); |
66 | __weak_alias(compat_50_sys_settimeofday,rumplinux__stub); | | 66 | __weak_alias(compat_50_sys_settimeofday,rumplinux__stub); |
67 | __weak_alias(nanosleep1,rumplinux__stub); | | 67 | __weak_alias(nanosleep1,rumplinux__stub); |
68 | | | 68 | |
69 | /* vm-related */ | | 69 | /* vm-related */ |
70 | __weak_alias(sys_mmap,rumplinux__stub); | | 70 | __weak_alias(sys_mmap,rumplinux__stub); |
71 | __weak_alias(vm_map_unlock,rumplinux__stub); | | 71 | __weak_alias(vm_map_unlock,rumplinux__stub); |
72 | __weak_alias(uvm_map_lookup_entry,rumplinux__stub); | | 72 | __weak_alias(uvm_map_lookup_entry,rumplinux__stub); |
73 | __weak_alias(sys_obreak,rumplinux__stub); | | 73 | __weak_alias(sys_obreak,rumplinux__stub); |
74 | __weak_alias(sys_swapctl,rumplinux__stub); | | | |
75 | __weak_alias(vm_map_lock,rumplinux__stub); | | 74 | __weak_alias(vm_map_lock,rumplinux__stub); |
76 | __weak_alias(uvm_mremap,rumplinux__stub); | | 75 | __weak_alias(uvm_mremap,rumplinux__stub); |
77 | | | 76 | |
78 | /* signal.c */ | | 77 | /* signal.c */ |
79 | __weak_alias(sigaction1,rumplinux__stub); | | 78 | __weak_alias(sigaction1,rumplinux__stub); |
80 | __weak_alias(kpsignal2,rumplinux__stub); | | 79 | __weak_alias(kpsignal2,rumplinux__stub); |
81 | __weak_alias(sys_kill,rumplinux__stub); | | 80 | __weak_alias(sys_kill,rumplinux__stub); |
82 | __weak_alias(sigsuspend1,rumplinux__stub); | | 81 | __weak_alias(sigsuspend1,rumplinux__stub); |
83 | __weak_alias(sigtimedwait1,rumplinux__stub); | | 82 | __weak_alias(sigtimedwait1,rumplinux__stub); |
84 | __weak_alias(lwp_find,rumplinux__stub); | | 83 | __weak_alias(lwp_find,rumplinux__stub); |
85 | | | 84 | |
86 | /* misc */ | | 85 | /* misc */ |
87 | __weak_alias(linux_machdepioctl,rumplinux__stub); | | 86 | __weak_alias(linux_machdepioctl,rumplinux__stub); |
88 | __weak_alias(linux_ioctl_sg,rumplinux__stub); | | 87 | __weak_alias(linux_ioctl_sg,rumplinux__stub); |
89 | __weak_alias(oss_ioctl_mixer,rumplinux__stub); | | 88 | __weak_alias(oss_ioctl_mixer,rumplinux__stub); |
90 | __weak_alias(oss_ioctl_sequencer,rumplinux__stub); | | 89 | __weak_alias(oss_ioctl_sequencer,rumplinux__stub); |
91 | __weak_alias(oss_ioctl_audio,rumplinux__stub); | | 90 | __weak_alias(oss_ioctl_audio,rumplinux__stub); |
92 | __weak_alias(rusage_to_rusage50,rumplinux__stub); | | 91 | __weak_alias(rusage_to_rusage50,rumplinux__stub); |
93 | __weak_alias(do_sys_wait,rumplinux__stub); | | 92 | __weak_alias(do_sys_wait,rumplinux__stub); |
94 | | | 93 | |
95 | /* arch-specific */ | | 94 | /* arch-specific */ |
96 | __weak_alias(compat_offseterr,rumplinux__stub); | | 95 | __weak_alias(compat_offseterr,rumplinux__stub); |
97 | __weak_alias(linux_sys_ptrace_arch,rumplinux__stub); | | 96 | __weak_alias(linux_sys_ptrace_arch,rumplinux__stub); |
98 | | | 97 | |
99 | #ifdef __i386__ | | 98 | #ifdef __i386__ |
100 | const char * | | 99 | const char * |
101 | linux_get_uname_arch(void) | | 100 | linux_get_uname_arch(void) |
102 | { | | 101 | { |
103 | | | 102 | |
104 | return MACHINE_ARCH; | | 103 | return MACHINE_ARCH; |
105 | } | | 104 | } |
106 | #endif /* __i386__ */ | | 105 | #endif /* __i386__ */ |