aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrooks Davis <brooks@FreeBSD.org>2021-11-17 20:12:22 +0000
committerBrooks Davis <brooks@FreeBSD.org>2021-11-17 20:12:22 +0000
commit70c9698f4037bbae2c51d7b628433e6835450448 (patch)
tree2334e730f99a48409cdf360167ef671aa5239668
parent8ba369ed74007a52be045e4c40a1131e4842222e (diff)
downloadsrc-70c9698f4037bbae2c51d7b628433e6835450448.tar.gz
src-70c9698f4037bbae2c51d7b628433e6835450448.zip
freebsd32: match ioctl type to default ABI
The command is a u_long and unsigned integers do not require special handling. The data argument isn't a special structure, just use char *. Reviewed by: kevans
-rw-r--r--sys/compat/freebsd32/freebsd32_ioctl.c2
-rw-r--r--sys/compat/freebsd32/freebsd32_proto.h4
-rw-r--r--sys/compat/freebsd32/freebsd32_systrace_args.c8
-rw-r--r--sys/compat/freebsd32/syscalls.master4
4 files changed, 9 insertions, 9 deletions
diff --git a/sys/compat/freebsd32/freebsd32_ioctl.c b/sys/compat/freebsd32/freebsd32_ioctl.c
index b3ed457f7132..4818a410586a 100644
--- a/sys/compat/freebsd32/freebsd32_ioctl.c
+++ b/sys/compat/freebsd32/freebsd32_ioctl.c
@@ -85,7 +85,7 @@ freebsd32_ioctl_memrange(struct thread *td,
break;
default:
- panic("%s: unknown MEMRANGE %#x", __func__, uap->com);
+ panic("%s: unknown MEMRANGE %#lx", __func__, uap->com);
}
if ((error = fo_ioctl(fp, com, (caddr_t)&mro, td->td_ucred, td)) != 0)
diff --git a/sys/compat/freebsd32/freebsd32_proto.h b/sys/compat/freebsd32/freebsd32_proto.h
index d358244c5d32..22b60cfc51bf 100644
--- a/sys/compat/freebsd32/freebsd32_proto.h
+++ b/sys/compat/freebsd32/freebsd32_proto.h
@@ -79,8 +79,8 @@ struct freebsd32_sigaltstack_args {
};
struct freebsd32_ioctl_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char com_l_[PADL_(uint32_t)]; uint32_t com; char com_r_[PADR_(uint32_t)];
- char data_l_[PADL_(struct md_ioctl32 *)]; struct md_ioctl32 * data; char data_r_[PADR_(struct md_ioctl32 *)];
+ char com_l_[PADL_(u_long)]; u_long com; char com_r_[PADR_(u_long)];
+ char data_l_[PADL_(char *)]; char * data; char data_r_[PADR_(char *)];
};
struct freebsd32_execve_args {
char fname_l_[PADL_(const char *)]; const char * fname; char fname_r_[PADR_(const char *)];
diff --git a/sys/compat/freebsd32/freebsd32_systrace_args.c b/sys/compat/freebsd32/freebsd32_systrace_args.c
index d22304859af1..6b3178f755e9 100644
--- a/sys/compat/freebsd32/freebsd32_systrace_args.c
+++ b/sys/compat/freebsd32/freebsd32_systrace_args.c
@@ -348,8 +348,8 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
case 54: {
struct freebsd32_ioctl_args *p = params;
iarg[0] = p->fd; /* int */
- uarg[1] = p->com; /* uint32_t */
- uarg[2] = (intptr_t)p->data; /* struct md_ioctl32 * */
+ uarg[1] = p->com; /* u_long */
+ uarg[2] = (intptr_t)p->data; /* char * */
*n_args = 3;
break;
}
@@ -3958,10 +3958,10 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
p = "int";
break;
case 1:
- p = "uint32_t";
+ p = "u_long";
break;
case 2:
- p = "userland struct md_ioctl32 *";
+ p = "userland char *";
break;
default:
break;
diff --git a/sys/compat/freebsd32/syscalls.master b/sys/compat/freebsd32/syscalls.master
index 328858071949..3fd815f62127 100644
--- a/sys/compat/freebsd32/syscalls.master
+++ b/sys/compat/freebsd32/syscalls.master
@@ -152,8 +152,8 @@
53 AUE_SIGALTSTACK STD { int freebsd32_sigaltstack( \
const struct sigaltstack32 *ss, \
struct sigaltstack32 *oss); }
-54 AUE_IOCTL STD { int freebsd32_ioctl(int fd, uint32_t com, \
- struct md_ioctl32 *data); }
+54 AUE_IOCTL STD { int freebsd32_ioctl(int fd, u_long com, \
+ char *data); }
55 AUE_REBOOT NOPROTO { int reboot(int opt); }
56 AUE_REVOKE NOPROTO { int revoke(const char *path); }
57 AUE_SYMLINK NOPROTO { int symlink(const char *path, \