aboutsummaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorPaul Saab <ps@FreeBSD.org>2000-07-01 12:45:51 +0000
committerPaul Saab <ps@FreeBSD.org>2000-07-01 12:45:51 +0000
commit4e3eee501aca91e63ceb82fab53f1b079d7c28f0 (patch)
tree7038284bf1799337830878d09653fecf7d17cd04 /usr.bin
parent5848d02f2972834a7e0792d4f06a666047499b81 (diff)
Notes
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/truss/alpha-fbsd.c7
-rw-r--r--usr.bin/truss/i386-fbsd.c7
-rw-r--r--usr.bin/truss/i386-linux.c5
-rw-r--r--usr.bin/truss/syscall.h1
-rw-r--r--usr.bin/truss/syscalls.c23
5 files changed, 22 insertions, 21 deletions
diff --git a/usr.bin/truss/alpha-fbsd.c b/usr.bin/truss/alpha-fbsd.c
index 125e126da9c4..6b58e22dd578 100644
--- a/usr.bin/truss/alpha-fbsd.c
+++ b/usr.bin/truss/alpha-fbsd.c
@@ -321,12 +321,7 @@ alpha_syscall_exit(int pid, int syscall) {
* but that complicates things considerably.
*/
- print_syscall(outfile, fsc.name, fsc.nargs, fsc.s_args);
- if (errorp) {
- fprintf(outfile, "errno %d '%s'\n", retval, strerror(retval));
- } else {
- fprintf(outfile, "returns %d (0x%x)\n", retval, retval);
- }
+ print_syscall_ret(outfile, fsc.name, fsc.nargs, fsc.s_args, errorp, retval);
clear_fsc();
return;
diff --git a/usr.bin/truss/i386-fbsd.c b/usr.bin/truss/i386-fbsd.c
index 463f475cefaf..065c90b84f9d 100644
--- a/usr.bin/truss/i386-fbsd.c
+++ b/usr.bin/truss/i386-fbsd.c
@@ -299,12 +299,7 @@ i386_syscall_exit(int pid, int syscall) {
* but that complicates things considerably.
*/
- print_syscall(outfile, fsc.name, fsc.nargs, fsc.s_args);
- if (errorp) {
- fprintf(outfile, "errno %d '%s'\n", retval, strerror(retval));
- } else {
- fprintf(outfile, "returns %d (0x%x)\n", retval, retval);
- }
+ print_syscall_ret(outfile, fsc.name, fsc.nargs, fsc.s_args, errorp, retval);
clear_fsc();
return;
diff --git a/usr.bin/truss/i386-linux.c b/usr.bin/truss/i386-linux.c
index ec7632b83e0d..d95c644000c7 100644
--- a/usr.bin/truss/i386-linux.c
+++ b/usr.bin/truss/i386-linux.c
@@ -238,15 +238,12 @@ i386_linux_syscall_exit(int pid, int syscall) {
}
}
}
- print_syscall(outfile, lsc.name, lsc.nargs, lsc.s_args);
if (errorp) {
for (i = 0; i < sizeof(bsd_to_linux_errno) / sizeof(int); i++)
if (retval == bsd_to_linux_errno[i])
break;
- fprintf(outfile, "errno %d '%s'\n", retval, strerror(i));
- } else {
- fprintf(outfile, "returns %d (0x%x)\n", retval, retval);
}
+ print_syscall_ret(outfile, lsc.name, lsc.nargs, lsc.s_args, errorp, i);
clear_lsc();
return;
}
diff --git a/usr.bin/truss/syscall.h b/usr.bin/truss/syscall.h
index 2b3c66b5928c..5e556e10cc28 100644
--- a/usr.bin/truss/syscall.h
+++ b/usr.bin/truss/syscall.h
@@ -45,3 +45,4 @@ struct syscall *get_syscall(const char*);
char *get_string(int, void*, int);
char *print_arg(int, struct syscall_args *, unsigned long*);
void print_syscall(FILE *, const char *, int, char **);
+void print_syscall_ret(FILE *, const char *, int, char **, int, int);
diff --git a/usr.bin/truss/syscalls.c b/usr.bin/truss/syscalls.c
index 1b98cba1cfc6..29e8c29a5731 100644
--- a/usr.bin/truss/syscalls.c
+++ b/usr.bin/truss/syscalls.c
@@ -256,13 +256,26 @@ print_arg(int fd, struct syscall_args *sc, unsigned long *args) {
void
print_syscall(FILE *outfile, const char *name, int nargs, char **s_args) {
int i;
- fprintf(outfile, "syscall %s(", name);
+ int len = 0;
+ len += fprintf(outfile, "%s(", name);
for (i = 0; i < nargs; i++) {
if (s_args[i])
- fprintf(outfile, "%s", s_args[i]);
+ len += fprintf(outfile, "%s", s_args[i]);
else
- fprintf(outfile, "<missing argument>");
- fprintf(outfile, "%s", i < (nargs - 1) ? "," : "");
+ len += fprintf(outfile, "<missing argument>");
+ len += fprintf(outfile, "%s", i < (nargs - 1) ? "," : "");
+ }
+ len += fprintf(outfile, ")");
+ for (i = 0; i < 6 - (len / 8); i++)
+ fprintf(outfile, "\t");
+}
+
+void
+print_syscall_ret(FILE *outfile, const char *name, int nargs, char **s_args, int errorp, int retval) {
+ print_syscall(outfile, name, nargs, s_args);
+ if (errorp) {
+ fprintf(outfile, " ERR#%d '%s'\n", retval, strerror(retval));
+ } else {
+ fprintf(outfile, " = %d (0x%x)\n", retval, retval);
}
- fprintf(outfile, ")\n\t");
}