no, the syscall just returns -EIMPL because its not implemented... you can
run linuxemu with -d option wich will log all syscalls and other debugging
to strerr, or when something crashes attach acid to the broken process
with the linuxemu.acid file and run utrace(Current()) and look if we hit
unimplemented syscalls. but sys_ulimit() should be pretty harmless.

you can implement that syscall if you want. i should make a small tutorial
about how to add syscalls...

1. find out what the parameters of the syscall is (linuxassembly.org, lxr...)
2. add your syscall function prototype in fns.h like:

int sys_mysyscall(int arg1, void *arg2);

if structs are passed use void * and declare the struct near your
implementation and cast the void* in it. for some complicated syscalls
you can access the registers where arguments are passed in linux
with current->ureg->reg but it should be avoided. the automatic
convertion of syscalls to plan9 function passing allows the later
implementation of for example a bsd syscall emulator. (bsd uses
the traditional stack based argument passing)

3. add your syscalll to the linuxcalltab file like this:

123    2    mysyscall                         sys_mysyscall

the first column is the syscall number, the 2nd is the number of arguments
for the syscall function. the comes just a name and the last one is the
function that will be called.

4. implement your function somewhere

--
cinap
--- Begin Message ---
i don't have the exact message; the machine is remote and currently
powered off.  is it my setup?

--- End Message ---

Reply via email to