14 #include <sys/types.h>
15 #include <sys/resource.h>
17 #include <sys/ioctl.h>
22 #define dbprintf(x) db_printf x
27 static char * minix_names
[] = {
28 "0", "EXIT", "FORK", "READ", "WRITE", "OPEN", "CLOSE", "WAIT",
29 "CREAT", "LINK", "UNLINK", "WAITPID", "CHDIR", "TIME", "MKNOD",
30 "CHMOD", "CHOWN", "BRK", "STAT", "LSEEK", "GETPID", "MOUNT",
31 "UMOUNT", "SETUID", "GETUID", "STIME", "PTRACE", "ALARM", "FSTAT",
32 "PAUSE", "UTIME", "31", "32", "ACCESS", "34", "35", "SYNC", "KILL",
33 "RENAME", "MKDIR", "RMDIR", "DUP", "PIPE", "TIMES", "44", "45",
34 "SETGID", "GETGID", "SIGNAL", "49", "50", "51", "52", "53", "IOCTL",
35 "FCNTL", "56", "57", "58", "EXEC", "UMASK", "CHROOT", "SETSID",
36 "GETPGRP", "KSIG", "UNPAUSE", "66", "REVIVE", "TASK_REPLY", "69",
37 "70", "SIGACTION", "SIGSUSPEND", "SIGPENDING", "SIGPROCMASK",
38 "SIGRETURN", "REBOOT", "77"
45 static char *nm
[4] = {"?", "send", "receive", "sendrec"};
46 char tsks
[10], syss
[10];
48 int sr
= (unsigned short) elks_cpu
.regs
.ecx
;
49 int tsk
= (unsigned short) elks_cpu
.regs
.eax
;
50 int sys
= ELKS_PEEK(short, (unsigned short) elks_cpu
.regs
.ebx
+ 2);
52 if (sr
< 0 || sr
> 3) sr
= 0;
55 case 0: strcpy(tsks
, "MM"); break;
56 case 1: strcpy(tsks
, "FS"); break;
57 default: sprintf(tsks
, "task(%d)", tsk
);
59 if( sys
> 0 && sys
< 77 )
60 strcpy(syss
, minix_names
[sys
]);
62 sprintf(syss
, "%d", sys
);
64 fprintf(stderr
, "Minix syscall %s(%s,&{%d,%s,...})\n", nm
[sr
], tsks
, getpid(), syss
);