Subject: Linux emulation and not implemented syscalls
To: None <tech-kern@netbsd.org>
From: Matthias Scheler <tron@zhadum.de>
List: tech-kern
Date: 08/16/1999 21:21:17
	Hello,

if you try this small example program under Linux-i386 2.2.x ...

#include <sys/syscall.h>

#include <errno.h>
#include <stdio.h>

#define __NR_foobar 202

static inline _syscall0(int,foobar)

int main(int argc,char **argv)

{
 int result;

 result=foobar();
 (void)printf("%d %d\n",result,errno);
 return 0;
}

... you'll notice that it is not killed and creates this output:

-1 38

"38" means "ENOSYS".

As you can see Linux does NOT kill process if they use an invalid syscall
number. My problem is that I have a program which does this, probably
with intention.

Should we modify sys_nosys() not to signal() a process if it is an
Linux emulation process?

	Kind regards

-- 
Matthias Scheler                            http://www.sighardstrasse.de/~tron/