Subject: kdump is confused about conditionally implemented system calls
To: None <tech-kern@netbsd.org>
From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
List: tech-kern
Date: 06/01/1999 15:19:38
Hello,
while hunting down a MIT-SHM problem, I found a kdump bug. ktracing
a SYSVSHM test program I wrote, and kdumping, I saw this:
18578 shm1 CALL #231 (unimplemented shmget)(0x4712,0x50,0x3c0)
18578 shm1 RET #231 (unimplemented shmget) 262144/0x40000
Note that the system call executed fine!
The system call name tables are created by running makesyscalls.sh.
It creates a #if defined(_KERNEL) around the #include "opt_XXX" lines,
as they won't be there in userland.
As the relevant defines won't be in userland, for all conditional
syscalls only the (#NN unimplemented xxx) strings is included in the
name table. This if fine for the SYSCALL_DEBUG kernel table, but is
wrong (IMO) for kdump.
After browsing makesyscalls and friends for a while, it occured to me, that
the easiest workaround would be to just add appropriate || !defined(_KERNEL)
in the syscalls.master files. As the #if defined()s in all the output files
will be changed: will this break anything?
Regards,
Ignatios Souvatzis
--
* Progress (n.): The process through which Usenet has evolved from
smart people in front of dumb terminals to dumb people in front of
smart terminals. -- obs@burnout.demon.co.uk (obscurity)