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