Print this page
OS-5462 lxbrand kernel should be lint clean
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
OS-3554 lx brand: node.js test test-fs-append-file.js hangs on 64-bit
OS-3209 javac futex problem when dtrace probes enabled - dtrace_systrace_syscall32 only passes 6 args
OS-3217 brandsys syscall takes 7 parameters, not 6
*** 21,31 ****
/*
* Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2012 Milan Jurik. All rights reserved.
* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
! * Copyright (c) 2015, Joyent, Inc.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
--- 21,31 ----
/*
* Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2012 Milan Jurik. All rights reserved.
* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved.
! * Copyright 2016 Joyent, Inc.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
*** 59,70 ****
*/
int access(char *, int);
int alarm(int);
int auditsys(struct auditcalls *, rval_t *);
! int64_t brandsys(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t,
! uintptr_t);
int brk(caddr_t);
int chdir(char *);
int chmod(char *, int);
int chown(char *, uid_t, gid_t);
int chroot(char *);
--- 59,69 ----
*/
int access(char *, int);
int alarm(int);
int auditsys(struct auditcalls *, rval_t *);
! int64_t brandsys(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
int brk(caddr_t);
int chdir(char *);
int chmod(char *, int);
int chown(char *, uid_t, gid_t);
int chroot(char *);
*** 644,654 ****
*/
/* 175 */ IF_LP64(
SYSENT_NOSYS(),
SYSENT_C("llseek", llseek32, 4)),
/* 176 */ SYSENT_LOADABLE(), /* inst_sync */
! /* 177 */ SYSENT_CI("brandsys", brandsys, 6),
/* 178 */ SYSENT_LOADABLE(), /* kaio */
/* 179 */ SYSENT_LOADABLE(), /* cpc */
/* 180 */ SYSENT_CI("lgrpsys", lgrpsys, 3),
/* 181 */ SYSENT_CI("rusagesys", rusagesys, 5),
/* 182 */ SYSENT_LOADABLE(), /* portfs */
--- 643,653 ----
*/
/* 175 */ IF_LP64(
SYSENT_NOSYS(),
SYSENT_C("llseek", llseek32, 4)),
/* 176 */ SYSENT_LOADABLE(), /* inst_sync */
! /* 177 */ SYSENT_CI("brandsys", brandsys, 5),
/* 178 */ SYSENT_LOADABLE(), /* kaio */
/* 179 */ SYSENT_LOADABLE(), /* cpc */
/* 180 */ SYSENT_CI("lgrpsys", lgrpsys, 3),
/* 181 */ SYSENT_CI("rusagesys", rusagesys, 5),
/* 182 */ SYSENT_LOADABLE(), /* portfs */
*** 999,1009 ****
/* 172 */ SYSENT_CI("lwp_cond_broadcast", lwp_cond_broadcast, 1),
/* 173 */ SYSENT_CI("pread", pread32, 4),
/* 174 */ SYSENT_CI("pwrite", pwrite32, 4),
/* 175 */ SYSENT_C("llseek", llseek32, 4),
/* 176 */ SYSENT_LOADABLE32(), /* inst_sync */
! /* 177 */ SYSENT_CI("brandsys", brandsys, 6),
/* 178 */ SYSENT_LOADABLE32(), /* kaio */
/* 179 */ SYSENT_LOADABLE32(), /* cpc */
/* 180 */ SYSENT_CI("lgrpsys", lgrpsys, 3),
/* 181 */ SYSENT_CI("rusagesys", rusagesys, 5),
/* 182 */ SYSENT_LOADABLE32(), /* portfs */
--- 998,1008 ----
/* 172 */ SYSENT_CI("lwp_cond_broadcast", lwp_cond_broadcast, 1),
/* 173 */ SYSENT_CI("pread", pread32, 4),
/* 174 */ SYSENT_CI("pwrite", pwrite32, 4),
/* 175 */ SYSENT_C("llseek", llseek32, 4),
/* 176 */ SYSENT_LOADABLE32(), /* inst_sync */
! /* 177 */ SYSENT_CI("brandsys", brandsys, 5),
/* 178 */ SYSENT_LOADABLE32(), /* kaio */
/* 179 */ SYSENT_LOADABLE32(), /* cpc */
/* 180 */ SYSENT_CI("lgrpsys", lgrpsys, 3),
/* 181 */ SYSENT_CI("rusagesys", rusagesys, 5),
/* 182 */ SYSENT_LOADABLE32(), /* portfs */
*** 1091,1120 ****
*/
char **syscallnames;
systrace_sysent_t *systrace_sysent;
void (*systrace_probe)(dtrace_id_t, uintptr_t, uintptr_t,
! uintptr_t, uintptr_t, uintptr_t, uintptr_t);
/*ARGSUSED*/
void
systrace_stub(dtrace_id_t id, uintptr_t arg0, uintptr_t arg1,
! uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
{}
/*ARGSUSED*/
int64_t
dtrace_systrace_syscall(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2,
! uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
{
systrace_sysent_t *sy = &systrace_sysent[curthread->t_sysnum];
dtrace_id_t id;
int64_t rval;
proc_t *p;
if ((id = sy->stsy_entry) != DTRACE_IDNONE)
! (*systrace_probe)(id, arg0, arg1, arg2, arg3, arg4, arg5);
/*
* We want to explicitly allow DTrace consumers to stop a process
* before it actually executes the meat of the syscall.
*/
--- 1090,1122 ----
*/
char **syscallnames;
systrace_sysent_t *systrace_sysent;
void (*systrace_probe)(dtrace_id_t, uintptr_t, uintptr_t,
! uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
/*ARGSUSED*/
void
systrace_stub(dtrace_id_t id, uintptr_t arg0, uintptr_t arg1,
! uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5,
! uintptr_t arg6, uintptr_t arg7)
{}
/*ARGSUSED*/
int64_t
dtrace_systrace_syscall(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2,
! uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6,
! uintptr_t arg7)
{
systrace_sysent_t *sy = &systrace_sysent[curthread->t_sysnum];
dtrace_id_t id;
int64_t rval;
proc_t *p;
if ((id = sy->stsy_entry) != DTRACE_IDNONE)
! (*systrace_probe)(id, arg0, arg1, arg2, arg3, arg4, arg5,
! arg6, arg7);
/*
* We want to explicitly allow DTrace consumers to stop a process
* before it actually executes the meat of the syscall.
*/
*** 1124,1141 ****
curthread->t_dtrace_stop = 0;
stop(PR_REQUESTED, 0);
}
mutex_exit(&p->p_lock);
! rval = (*sy->stsy_underlying)(arg0, arg1, arg2, arg3, arg4, arg5);
if (ttolwp(curthread)->lwp_errno != 0)
rval = -1;
if ((id = sy->stsy_return) != DTRACE_IDNONE)
(*systrace_probe)(id, (uintptr_t)rval, (uintptr_t)rval,
! (uintptr_t)((int64_t)rval >> 32), 0, 0, 0);
return (rval);
}
#ifdef _SYSCALL32_IMPL
--- 1126,1144 ----
curthread->t_dtrace_stop = 0;
stop(PR_REQUESTED, 0);
}
mutex_exit(&p->p_lock);
! rval = (*sy->stsy_underlying)(arg0, arg1, arg2, arg3, arg4, arg5,
! arg6, arg7);
if (ttolwp(curthread)->lwp_errno != 0)
rval = -1;
if ((id = sy->stsy_return) != DTRACE_IDNONE)
(*systrace_probe)(id, (uintptr_t)rval, (uintptr_t)rval,
! (uintptr_t)((int64_t)rval >> 32), 0, 0, 0, 0, 0);
return (rval);
}
#ifdef _SYSCALL32_IMPL
*** 1143,1161 ****
systrace_sysent_t *systrace_sysent32;
/*ARGSUSED*/
int64_t
dtrace_systrace_syscall32(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2,
! uintptr_t arg3, uintptr_t arg4, uintptr_t arg5)
{
systrace_sysent_t *sy = &systrace_sysent32[curthread->t_sysnum];
dtrace_id_t id;
int64_t rval;
proc_t *p;
if ((id = sy->stsy_entry) != DTRACE_IDNONE)
! (*systrace_probe)(id, arg0, arg1, arg2, arg3, arg4, arg5);
/*
* We want to explicitly allow DTrace consumers to stop a process
* before it actually executes the meat of the syscall.
*/
--- 1146,1166 ----
systrace_sysent_t *systrace_sysent32;
/*ARGSUSED*/
int64_t
dtrace_systrace_syscall32(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2,
! uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6,
! uintptr_t arg7)
{
systrace_sysent_t *sy = &systrace_sysent32[curthread->t_sysnum];
dtrace_id_t id;
int64_t rval;
proc_t *p;
if ((id = sy->stsy_entry) != DTRACE_IDNONE)
! (*systrace_probe)(id, arg0, arg1, arg2, arg3, arg4, arg5, arg6,
! arg7);
/*
* We want to explicitly allow DTrace consumers to stop a process
* before it actually executes the meat of the syscall.
*/
*** 1165,1182 ****
curthread->t_dtrace_stop = 0;
stop(PR_REQUESTED, 0);
}
mutex_exit(&p->p_lock);
! rval = (*sy->stsy_underlying)(arg0, arg1, arg2, arg3, arg4, arg5);
if (ttolwp(curthread)->lwp_errno != 0)
rval = -1;
if ((id = sy->stsy_return) != DTRACE_IDNONE)
(*systrace_probe)(id, (uintptr_t)rval, (uintptr_t)rval,
! (uintptr_t)((uint64_t)rval >> 32), 0, 0, 0);
return (rval);
}
#endif
--- 1170,1188 ----
curthread->t_dtrace_stop = 0;
stop(PR_REQUESTED, 0);
}
mutex_exit(&p->p_lock);
! rval = (*sy->stsy_underlying)(arg0, arg1, arg2, arg3, arg4, arg5, arg6,
! arg7);
if (ttolwp(curthread)->lwp_errno != 0)
rval = -1;
if ((id = sy->stsy_return) != DTRACE_IDNONE)
(*systrace_probe)(id, (uintptr_t)rval, (uintptr_t)rval,
! (uintptr_t)((uint64_t)rval >> 32), 0, 0, 0, 0, 0);
return (rval);
}
#endif
*** 1200,1206 ****
sy = &systrace_sysent32[curthread->t_sysnum];
#endif
}
if ((id = sy->stsy_return) != DTRACE_IDNONE)
! (*systrace_probe)(id, 0, 0, 0, 0, 0, 0);
}
--- 1206,1212 ----
sy = &systrace_sysent32[curthread->t_sysnum];
#endif
}
if ((id = sy->stsy_return) != DTRACE_IDNONE)
! (*systrace_probe)(id, 0, 0, 0, 0, 0, 0, 0, 0);
}