freebsd32: don't implement kldsym
Previously we fell back to sys_kldsym, but because we'd always mismatch on the version field we'd return EINVAL. A freebsd32 implementation is impossible with the current ABI as there simply isn't space to store a kernel virtual address in a uint32_t. Reviewed by: kevans
This commit is contained in:
parent
25fec55b86
commit
91301e6ea5
@ -279,7 +279,6 @@
|
||||
#define FREEBSD32_SYS_freebsd32_sched_rr_get_interval 334
|
||||
#define FREEBSD32_SYS_utrace 335
|
||||
/* 336 is freebsd4 freebsd32_sendfile */
|
||||
#define FREEBSD32_SYS_kldsym 337
|
||||
#define FREEBSD32_SYS_freebsd32_jail 338
|
||||
#define FREEBSD32_SYS_sigprocmask 340
|
||||
#define FREEBSD32_SYS_sigsuspend 341
|
||||
|
@ -346,7 +346,7 @@ const char *freebsd32_syscallnames[] = {
|
||||
"freebsd32_sched_rr_get_interval", /* 334 = freebsd32_sched_rr_get_interval */
|
||||
"utrace", /* 335 = utrace */
|
||||
"compat4.freebsd32_sendfile", /* 336 = freebsd4 freebsd32_sendfile */
|
||||
"kldsym", /* 337 = kldsym */
|
||||
"#337", /* 337 = kldsym */
|
||||
"freebsd32_jail", /* 338 = freebsd32_jail */
|
||||
"#339", /* 339 = pioctl */
|
||||
"sigprocmask", /* 340 = sigprocmask */
|
||||
|
@ -399,7 +399,7 @@ struct sysent freebsd32_sysent[] = {
|
||||
{ .sy_narg = AS(freebsd32_sched_rr_get_interval_args), .sy_call = (sy_call_t *)freebsd32_sched_rr_get_interval, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 334 = freebsd32_sched_rr_get_interval */
|
||||
{ .sy_narg = AS(utrace_args), .sy_call = (sy_call_t *)sys_utrace, .sy_auevent = AUE_NULL, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 335 = utrace */
|
||||
{ compat4(AS(freebsd4_freebsd32_sendfile_args),freebsd32_sendfile), .sy_auevent = AUE_SENDFILE, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 336 = freebsd4 freebsd32_sendfile */
|
||||
{ .sy_narg = AS(kldsym_args), .sy_call = (sy_call_t *)sys_kldsym, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 337 = kldsym */
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 337 = kldsym */
|
||||
{ .sy_narg = AS(freebsd32_jail_args), .sy_call = (sy_call_t *)freebsd32_jail, .sy_auevent = AUE_JAIL, .sy_flags = 0, .sy_thrcnt = SY_THR_STATIC }, /* 338 = freebsd32_jail */
|
||||
{ .sy_narg = 0, .sy_call = (sy_call_t *)nosys, .sy_auevent = AUE_NULL, .sy_flags = 0, .sy_thrcnt = SY_THR_ABSENT }, /* 339 = pioctl */
|
||||
{ .sy_narg = AS(sigprocmask_args), .sy_call = (sy_call_t *)sys_sigprocmask, .sy_auevent = AUE_SIGPROCMASK, .sy_flags = SYF_CAPENABLED, .sy_thrcnt = SY_THR_STATIC }, /* 340 = sigprocmask */
|
||||
|
@ -1550,15 +1550,6 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
|
||||
*n_args = 2;
|
||||
break;
|
||||
}
|
||||
/* kldsym */
|
||||
case 337: {
|
||||
struct kldsym_args *p = params;
|
||||
iarg[0] = p->fileid; /* int */
|
||||
iarg[1] = p->cmd; /* int */
|
||||
uarg[2] = (intptr_t)p->data; /* void * */
|
||||
*n_args = 3;
|
||||
break;
|
||||
}
|
||||
/* freebsd32_jail */
|
||||
case 338: {
|
||||
struct freebsd32_jail_args *p = params;
|
||||
@ -5867,22 +5858,6 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
|
||||
break;
|
||||
};
|
||||
break;
|
||||
/* kldsym */
|
||||
case 337:
|
||||
switch (ndx) {
|
||||
case 0:
|
||||
p = "int";
|
||||
break;
|
||||
case 1:
|
||||
p = "int";
|
||||
break;
|
||||
case 2:
|
||||
p = "userland void *";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
break;
|
||||
/* freebsd32_jail */
|
||||
case 338:
|
||||
switch (ndx) {
|
||||
@ -10151,11 +10126,6 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
|
||||
if (ndx == 0 || ndx == 1)
|
||||
p = "int";
|
||||
break;
|
||||
/* kldsym */
|
||||
case 337:
|
||||
if (ndx == 0 || ndx == 1)
|
||||
p = "int";
|
||||
break;
|
||||
/* freebsd32_jail */
|
||||
case 338:
|
||||
if (ndx == 0 || ndx == 1)
|
||||
|
@ -611,8 +611,7 @@
|
||||
uint32_t offset1, uint32_t offset2, \
|
||||
size_t nbytes, struct sf_hdtr32 *hdtr, \
|
||||
off_t *sbytes, int flags); }
|
||||
337 AUE_NULL NOPROTO { int kldsym(int fileid, int cmd, \
|
||||
void *data); }
|
||||
337 AUE_NULL UNIMPL kldsym
|
||||
338 AUE_JAIL STD { int freebsd32_jail(struct jail32 *jail); }
|
||||
339 AUE_NULL UNIMPL pioctl
|
||||
340 AUE_SIGPROCMASK NOPROTO { int sigprocmask(int how, \
|
||||
|
Loading…
Reference in New Issue
Block a user