Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102058988
D33780.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D33780.diff
View Options
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c
--- a/sys/amd64/amd64/trap.c
+++ b/sys/amd64/amd64/trap.c
@@ -1011,7 +1011,7 @@
{
struct proc *p;
struct trapframe *frame;
- register_t *argp;
+ syscallarg_t *argp;
caddr_t params;
int reg, regcnt, error;
diff --git a/sys/arm/arm/syscall.c b/sys/arm/arm/syscall.c
--- a/sys/arm/arm/syscall.c
+++ b/sys/arm/arm/syscall.c
@@ -100,7 +100,7 @@
cpu_fetch_syscall_args(struct thread *td)
{
struct proc *p;
- register_t *ap;
+ syscallarg_t *ap;
struct syscall_args *sa;
u_int nap;
int error;
@@ -124,10 +124,10 @@
else
sa->callp = &p->p_sysent->sv_table[sa->code];
error = 0;
- memcpy(sa->args, ap, nap * sizeof(register_t));
+ memcpy(sa->args, ap, nap * sizeof(*sa->args));
if (sa->callp->sy_narg > nap) {
error = copyin((void *)td->td_frame->tf_usr_sp, sa->args +
- nap, (sa->callp->sy_narg - nap) * sizeof(register_t));
+ nap, (sa->callp->sy_narg - nap) * sizeof(*sa->args));
}
if (error == 0) {
td->td_retval[0] = 0;
diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c
--- a/sys/arm64/arm64/trap.c
+++ b/sys/arm64/arm64/trap.c
@@ -134,7 +134,7 @@
cpu_fetch_syscall_args(struct thread *td)
{
struct proc *p;
- register_t *ap, *dst_ap;
+ syscallarg_t *ap, *dst_ap;
struct syscall_args *sa;
p = td->td_proc;
@@ -159,7 +159,7 @@
KASSERT(sa->callp->sy_narg <= nitems(sa->args),
("Syscall %d takes too many arguments", sa->code));
- memcpy(dst_ap, ap, (nitems(sa->args) - 1) * sizeof(register_t));
+ memcpy(dst_ap, ap, (nitems(sa->args) - 1) * sizeof(*dst_ap));
td->td_retval[0] = 0;
td->td_retval[1] = 0;
diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c
--- a/sys/kern/kern_ktrace.c
+++ b/sys/kern/kern_ktrace.c
@@ -524,7 +524,7 @@
}
void
-ktrsyscall(int code, int narg, register_t args[])
+ktrsyscall(int code, int narg, syscallarg_t args[])
{
struct ktr_request *req;
struct ktr_syscall *ktp;
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -474,7 +474,7 @@
struct dbreg dbreg;
struct fpreg fpreg;
struct reg reg;
- char args[sizeof(td->td_sa.args)];
+ syscallarg_t args[nitems(td->td_sa.args)];
struct ptrace_sc_ret psr;
int ptevents;
} r;
@@ -1010,7 +1010,7 @@
/* See the explanation in linux_ptrace_get_syscall_info(). */
bcopy(td2->td_sa.args, addr, SV_PROC_ABI(td->td_proc) ==
SV_ABI_LINUX ? sizeof(td2->td_sa.args) :
- td2->td_sa.callp->sy_narg * sizeof(register_t));
+ td2->td_sa.callp->sy_narg * sizeof(syscallarg_t));
break;
case PT_GET_SC_RET:
diff --git a/sys/riscv/riscv/trap.c b/sys/riscv/riscv/trap.c
--- a/sys/riscv/riscv/trap.c
+++ b/sys/riscv/riscv/trap.c
@@ -94,7 +94,7 @@
cpu_fetch_syscall_args(struct thread *td)
{
struct proc *p;
- register_t *ap, *dst_ap;
+ syscallarg_t *ap, *dst_ap;
struct syscall_args *sa;
p = td->td_proc;
@@ -119,7 +119,7 @@
KASSERT(sa->callp->sy_narg <= nitems(sa->args),
("Syscall %d takes too many arguments", sa->code));
- memcpy(dst_ap, ap, (NARGREG - 1) * sizeof(register_t));
+ memcpy(dst_ap, ap, (NARGREG - 1) * sizeof(*dst_ap));
td->td_retval[0] = 0;
td->td_retval[1] = 0;
diff --git a/sys/sys/ktrace.h b/sys/sys/ktrace.h
--- a/sys/sys/ktrace.h
+++ b/sys/sys/ktrace.h
@@ -284,7 +284,7 @@
void ktrfault(vm_offset_t, int);
void ktrfaultend(int);
void ktrgenio(int, enum uio_rw, struct uio *, int);
-void ktrsyscall(int, int narg, register_t args[]);
+void ktrsyscall(int, int narg, syscallarg_t args[]);
void ktrsysctl(int *name, u_int namelen);
void ktrsysret(int, int, register_t);
void ktrprocctor(struct proc *);
diff --git a/sys/sys/proc.h b/sys/sys/proc.h
--- a/sys/sys/proc.h
+++ b/sys/sys/proc.h
@@ -357,7 +357,7 @@
} td_state; /* (t) thread state */
/* Note: td_state must be accessed using TD_{GET,SET}_STATE(). */
union {
- register_t tdu_retval[2];
+ syscallarg_t tdu_retval[2];
off_t tdu_off;
} td_uretoff; /* (k) Syscall aux returns. */
#define td_retval td_uretoff.tdu_retval
diff --git a/sys/sys/ptrace.h b/sys/sys/ptrace.h
--- a/sys/sys/ptrace.h
+++ b/sys/sys/ptrace.h
@@ -160,7 +160,7 @@
/* Argument structure for PT_GET_SC_RET. */
struct ptrace_sc_ret {
- register_t sr_retval[2]; /* Only valid if sr_error == 0. */
+ syscallarg_t sr_retval[2]; /* Only valid if sr_error == 0. */
int sr_error;
};
diff --git a/sys/sys/types.h b/sys/sys/types.h
--- a/sys/sys/types.h
+++ b/sys/sys/types.h
@@ -270,6 +270,8 @@
typedef __rman_res_t rman_res_t;
+typedef __register_t syscallarg_t;
+
#ifdef _KERNEL
typedef int boolean_t;
typedef struct _device *device_t;
diff --git a/sys/tools/makesyscalls.lua b/sys/tools/makesyscalls.lua
--- a/sys/tools/makesyscalls.lua
+++ b/sys/tools/makesyscalls.lua
@@ -860,7 +860,7 @@
write_line("sysarg", "};\n")
else
write_line("sysarg", string.format(
- "struct %s {\n\tregister_t dummy;\n};\n", argalias))
+ "struct %s {\n\tsyscallarg_t dummy;\n};\n", argalias))
end
end
@@ -986,7 +986,7 @@
write_line(out, "};\n")
elseif flags & nargflags == 0 then
write_line("sysarg", string.format(
- "struct %s {\n\tregister_t dummy;\n};\n", argalias))
+ "struct %s {\n\tsyscallarg_t dummy;\n};\n", argalias))
end
if flags & dprotoflags == 0 then
write_line(outdcl, string.format(
@@ -1439,8 +1439,8 @@
struct thread;
-#define PAD_(t) (sizeof(register_t) <= sizeof(t) ? \
- 0 : sizeof(register_t) - sizeof(t))
+#define PAD_(t) (sizeof(syscallarg_t) <= sizeof(t) ? \
+ 0 : sizeof(syscallarg_t) - sizeof(t))
#if BYTE_ORDER == LITTLE_ENDIAN
#define PADL_(t) 0
@@ -1530,7 +1530,7 @@
process_sysfile(sysfile)
write_line("sysinc",
- "\n#define AS(name) (sizeof(struct name) / sizeof(register_t))\n")
+ "\n#define AS(name) (sizeof(struct name) / sizeof(syscallarg_t))\n")
for _, v in pairs(compat_options) do
if v["count"] > 0 then
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -420,7 +420,7 @@
}
if (error == 0)
- td->td_retval[0] = (register_t) (addr + pageoff);
+ td->td_retval[0] = addr + pageoff;
done:
if (fp)
fdrop(fp, td);
diff --git a/usr.bin/truss/syscall.h b/usr.bin/truss/syscall.h
--- a/usr.bin/truss/syscall.h
+++ b/usr.bin/truss/syscall.h
@@ -227,7 +227,7 @@
};
struct syscall *get_syscall(struct threadinfo *, u_int, u_int);
-char *print_arg(struct syscall_arg *, unsigned long *, register_t *,
+char *print_arg(struct syscall_arg *, unsigned long *, syscallarg_t *,
struct trussinfo *);
/*
@@ -251,8 +251,8 @@
#define LINUX_SENDMSG 16
#define LINUX_RECVMSG 17
-#define PAD_(t) (sizeof(register_t) <= sizeof(t) ? \
- 0 : sizeof(register_t) - sizeof(t))
+#define PAD_(t) (sizeof(syscallarg_t) <= sizeof(t) ? \
+ 0 : sizeof(syscallarg_t) - sizeof(t))
#if BYTE_ORDER == LITTLE_ENDIAN
#define PADL_(t) 0
@@ -271,5 +271,5 @@
};
void print_syscall(struct trussinfo *);
-void print_syscall_ret(struct trussinfo *, int, register_t *);
+void print_syscall_ret(struct trussinfo *, int, syscallarg_t *);
void print_summary(struct trussinfo *trussinfo);
diff --git a/usr.bin/truss/syscalls.c b/usr.bin/truss/syscalls.c
--- a/usr.bin/truss/syscalls.c
+++ b/usr.bin/truss/syscalls.c
@@ -1556,7 +1556,7 @@
* an array of all of the system call arguments.
*/
char *
-print_arg(struct syscall_arg *sc, unsigned long *args, register_t *retval,
+print_arg(struct syscall_arg *sc, unsigned long *args, syscallarg_t *retval,
struct trussinfo *trussinfo)
{
FILE *fp;
@@ -2729,7 +2729,7 @@
}
void
-print_syscall_ret(struct trussinfo *trussinfo, int error, register_t *retval)
+print_syscall_ret(struct trussinfo *trussinfo, int error, syscallarg_t *retval)
{
struct timespec timediff;
struct threadinfo *t;
diff --git a/usr.bin/truss/truss.h b/usr.bin/truss/truss.h
--- a/usr.bin/truss/truss.h
+++ b/usr.bin/truss/truss.h
@@ -81,7 +81,7 @@
struct syscall *sc;
unsigned int number;
unsigned int nargs;
- unsigned long args[10];
+ syscallarg_t args[10];
char *s_args[10]; /* the printable arguments */
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Nov 8, 2:48 AM (20 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14526062
Default Alt Text
D33780.diff (7 KB)
Attached To
Mode
D33780: syscallarg_t: Add a type for system call arguments
Attached
Detach File
Event Timeline
Log In to Comment