diff options
Diffstat (limited to 'sys/compat/freebsd32/freebsd32_systrace_args.c')
-rw-r--r-- | sys/compat/freebsd32/freebsd32_systrace_args.c | 85 |
1 files changed, 70 insertions, 15 deletions
diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c index 745e739ca0120..efe526910d58f 100644 --- a/sys/compat/freebsd32/freebsd32_systrace_args.c +++ b/sys/compat/freebsd32/freebsd32_systrace_args.c @@ -935,9 +935,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 0; break; } - /* freebsd32_sysctl */ + /* freebsd32___sysctl */ case 202: { - struct freebsd32_sysctl_args *p = params; + struct freebsd32___sysctl_args *p = params; uarg[0] = (intptr_t) p->name; /* int * */ uarg[1] = p->namelen; /* u_int */ uarg[2] = (intptr_t) p->old; /* void * */ @@ -2182,9 +2182,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 1; break; } - /* freebsd32_umtx_op */ + /* freebsd32__umtx_op */ case 454: { - struct freebsd32_umtx_op_args *p = params; + struct freebsd32__umtx_op_args *p = params; uarg[0] = (intptr_t) p->obj; /* void * */ iarg[1] = p->op; /* int */ uarg[2] = p->val; /* u_long */ @@ -3201,16 +3201,32 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args) *n_args = 2; break; } - /* mknodat */ +#ifdef PAD64_REQUIRED + /* freebsd32_mknodat */ case 559: { - struct mknodat_args *p = params; + struct freebsd32_mknodat_args *p = params; iarg[0] = p->fd; /* int */ uarg[1] = (intptr_t) p->path; /* const char * */ iarg[2] = p->mode; /* mode_t */ - iarg[3] = p->dev; /* dev_t */ - *n_args = 4; + iarg[3] = p->pad; /* int */ + uarg[4] = p->dev1; /* uint32_t */ + uarg[5] = p->dev2; /* uint32_t */ + *n_args = 6; break; } +#else + /* freebsd32_mknodat */ + case 559: { + struct freebsd32_mknodat_args *p = params; + iarg[0] = p->fd; /* int */ + uarg[1] = (intptr_t) p->path; /* const char * */ + iarg[2] = p->mode; /* mode_t */ + uarg[3] = p->dev1; /* uint32_t */ + uarg[4] = p->dev2; /* uint32_t */ + *n_args = 5; + break; + } +#endif /* freebsd32_kevent */ case 560: { struct freebsd32_kevent_args *p = params; @@ -4755,7 +4771,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) /* nosys */ case 198: break; - /* freebsd32_sysctl */ + /* freebsd32___sysctl */ case 202: switch(ndx) { case 0: @@ -6765,7 +6781,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; - /* freebsd32_umtx_op */ + /* freebsd32__umtx_op */ case 454: switch(ndx) { case 0: @@ -8642,7 +8658,8 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; }; break; - /* mknodat */ +#ifdef PAD64_REQUIRED + /* freebsd32_mknodat */ case 559: switch(ndx) { case 0: @@ -8655,12 +8672,42 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) p = "mode_t"; break; case 3: - p = "dev_t"; + p = "int"; + break; + case 4: + p = "uint32_t"; + break; + case 5: + p = "uint32_t"; break; default: break; }; break; +#else + /* freebsd32_mknodat */ + case 559: + switch(ndx) { + case 0: + p = "int"; + break; + case 1: + p = "userland const char *"; + break; + case 2: + p = "mode_t"; + break; + case 3: + p = "uint32_t"; + break; + case 4: + p = "uint32_t"; + break; + default: + break; + }; + break; +#endif /* freebsd32_kevent */ case 560: switch(ndx) { @@ -9305,7 +9352,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) break; /* nosys */ case 198: - /* freebsd32_sysctl */ + /* freebsd32___sysctl */ case 202: if (ndx == 0 || ndx == 1) p = "int"; @@ -10040,7 +10087,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; - /* freebsd32_umtx_op */ + /* freebsd32__umtx_op */ case 454: if (ndx == 0 || ndx == 1) p = "int"; @@ -10574,11 +10621,19 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz) if (ndx == 0 || ndx == 1) p = "int"; break; - /* mknodat */ +#ifdef PAD64_REQUIRED + /* freebsd32_mknodat */ + case 559: + if (ndx == 0 || ndx == 1) + p = "int"; + break; +#else + /* freebsd32_mknodat */ case 559: if (ndx == 0 || ndx == 1) p = "int"; break; +#endif /* freebsd32_kevent */ case 560: if (ndx == 0 || ndx == 1) |