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/