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