Module Name: src
Committed By: christos
Date: Sat Mar 13 22:31:15 UTC 2010
Modified Files:
src/external/cddl/osnet/dev/dtrace: dtrace_debug.c dtrace_modevent.c
src/external/cddl/osnet/dev/dtrace/amd64: dtrace_asm.S dtrace_isa.c
dtrace_subr.c
src/external/cddl/osnet/dev/dtrace/i386: dtrace_asm.S
src/external/cddl/osnet/dev/fbt: fbt.c
src/external/cddl/osnet/dev/sdt: sdt.c
src/external/cddl/osnet/dist/uts/common/dtrace: dtrace.c
src/external/cddl/osnet/dist/uts/common/sys: ccompile.h ctf_api.h
dtrace_impl.h processor.h
src/external/cddl/osnet/sys/sys: cpuvar.h cred.h proc.h
Log Message:
make dtrace compile on amd64.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c \
src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c \
src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
cvs rdiff -u -r1.2 -r1.3 src/external/cddl/osnet/dev/dtrace/i386/dtrace_asm.S
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/dev/fbt/fbt.c
cvs rdiff -u -r1.5 -r1.6 src/external/cddl/osnet/dev/sdt/sdt.c
cvs rdiff -u -r1.9 -r1.10 \
src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c
cvs rdiff -u -r1.1.1.1 -r1.2 \
src/external/cddl/osnet/dist/uts/common/sys/ccompile.h
cvs rdiff -u -r1.2 -r1.3 \
src/external/cddl/osnet/dist/uts/common/sys/ctf_api.h
cvs rdiff -u -r1.3 -r1.4 \
src/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h
cvs rdiff -u -r1.4 -r1.5 \
src/external/cddl/osnet/dist/uts/common/sys/processor.h
cvs rdiff -u -r1.6 -r1.7 src/external/cddl/osnet/sys/sys/cpuvar.h
cvs rdiff -u -r1.3 -r1.4 src/external/cddl/osnet/sys/sys/cred.h
cvs rdiff -u -r1.4 -r1.5 src/external/cddl/osnet/sys/sys/proc.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dev/dtrace/dtrace_debug.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.2 src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.3
--- src/external/cddl/osnet/dev/dtrace/dtrace_debug.c:1.2 Sat Feb 20 20:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/dtrace_debug.c Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: dtrace_debug.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */
+/* $NetBSD: dtrace_debug.c,v 1.3 2010/03/13 22:31:15 christos Exp $ */
/*-
* Copyright (C) 2008 John Birrell <[email protected]>.
@@ -110,7 +110,6 @@
static void
dtrace_debug_init(void *dummy)
{
- int i;
struct dtrace_debug_data *d;
CPU_INFO_ITERATOR cpuind;
struct cpu_info *cinfo;
Index: src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c
diff -u src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.2 src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.3
--- src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c:1.2 Sat Feb 20 20:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/dtrace_modevent.c Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: dtrace_modevent.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */
+/* $NetBSD: dtrace_modevent.c,v 1.3 2010/03/13 22:31:15 christos Exp $ */
/*
* CDDL HEADER START
@@ -29,7 +29,6 @@
dtrace_modcmd(modcmd_t cmd, void *data)
{
int bmajor = -1, cmajor = -1;
- int error = 0;
switch (cmd) {
case MODULE_CMD_INIT:
Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.2 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.3
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S:1.2 Sat Feb 20 20:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_asm.S Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: dtrace_asm.S,v 1.2 2010/02/21 01:46:33 darran Exp $ */
+/* $NetBSD: dtrace_asm.S,v 1.3 2010/03/13 22:31:15 christos Exp $ */
/*
* CDDL HEADER START
@@ -32,11 +32,14 @@
#define _ASM
-#include <machine/asmacros.h>
+
#include <sys/cpuvar_defs.h>
#include <sys/dtrace.h>
+#include <machine/asm.h>
+#define END(a)
+#define MEXITCOUNT
-#include "assym.s"
+#include "assym.h"
#define INTR_POP \
MEXITCOUNT; \
@@ -78,7 +81,7 @@
pushq (%rsi)
movq %rsp, %rsi
call dtrace_invop
- ALTENTRY(dtrace_invop_callsite)
+// ALTENTRY(dtrace_invop_callsite)
addq $8, %rsp
cmpl $DTRACE_INVOP_PUSHL_EBP, %eax
je bp_push
@@ -144,7 +147,7 @@
/*NOTREACHED*/
bp_ret:
- INTR_POP
+// INTR_POP
pushq %rax /* push temp */
movq 32(%rsp), %rax /* load %rsp */
movq (%rax), %rax /* load calling RIP */
Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.2 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.3
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c:1.2 Sat Feb 20 20:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_isa.c Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: dtrace_isa.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */
+/* $NetBSD: dtrace_isa.c,v 1.3 2010/03/13 22:31:15 christos Exp $ */
/*
* CDDL HEADER START
@@ -32,17 +32,19 @@
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/stack.h>
-#include <sys/pcpu.h>
+//#include <sys/stack.h>
+//#include <sys/pcpu.h>
#include <machine/frame.h>
-#include <machine/md_var.h>
+//#include <machine/md_var.h>
#include <machine/reg.h>
-#include <machine/stack.h>
+//#include <machine/stack.h>
-#include <vm/vm.h>
-#include <vm/vm_param.h>
-#include <vm/pmap.h>
+//#include <vm/vm.h>
+//#include <vm/vm_param.h>
+//#include <vm/pmap.h>
+#include <machine/vmparam.h>
+#include <machine/pmap.h>
uint8_t dtrace_fuword8_nocheck(void *);
@@ -50,6 +52,19 @@
uint32_t dtrace_fuword32_nocheck(void *);
uint64_t dtrace_fuword64_nocheck(void *);
+uintptr_t kernelbase = (uintptr_t)KERNBASE;
+
+#define INKERNEL(va) (((vm_offset_t)(va)) >= USRSTACK && \
+ ((vm_offset_t)(va)) < VM_MAX_KERNEL_ADDRESS)
+
+struct amd64_frame {
+ struct amd64_frame *f_frame;
+ int f_retaddr;
+ int f_arg0;
+};
+
+typedef unsigned long vm_offset_t;
+
void
dtrace_getpcstack(pc_t *pcstack, int pcstack_limit, int aframes,
uint32_t *intrpc)
@@ -58,7 +73,7 @@
register_t rbp;
struct amd64_frame *frame;
vm_offset_t callpc;
- pc_t caller = (pc_t) solaris_cpu[curcpu].cpu_dtrace_caller;
+ pc_t caller = (pc_t) solaris_cpu[cpu_number()].cpu_dtrace_caller;
if (intrpc != 0)
pcstack[depth++] = (pc_t) intrpc;
@@ -89,7 +104,7 @@
if (frame->f_frame <= frame ||
(vm_offset_t)frame->f_frame >=
- (vm_offset_t)rbp + KSTACK_PAGES * PAGE_SIZE)
+ (vm_offset_t)rbp + KSTACK_SIZE)
break;
frame = frame->f_frame;
}
@@ -99,12 +114,13 @@
}
}
+#ifdef notyet
static int
dtrace_getustack_common(uint64_t *pcstack, int pcstack_limit, uintptr_t pc,
uintptr_t sp)
{
volatile uint16_t *flags =
- (volatile uint16_t *)&cpu_core[curcpu].cpuc_dtrace_flags;
+ (volatile uint16_t *)&cpu_core[cpu_number()].cpuc_dtrace_flags;
struct amd64_frame *frame;
int ret = 0;
@@ -141,11 +157,12 @@
void
dtrace_getupcstack(uint64_t *pcstack, int pcstack_limit)
{
+ klwp_t *lwp = ttolwp(curthread);
proc_t *p = curproc;
- struct trapframe *tf;
+ struct regs *rp;
uintptr_t pc, sp;
volatile uint16_t *flags =
- (volatile uint16_t *)&cpu_core[curcpu].cpuc_dtrace_flags;
+ (volatile uint16_t *)&cpu_core[cpu_number()].cpuc_dtrace_flags;
int n;
if (*flags & CPU_DTRACE_FAULT)
@@ -157,7 +174,7 @@
/*
* If there's no user context we still need to zero the stack.
*/
- if (p == NULL || (tf = curthread->td_frame) == NULL)
+ if (lwp == NULL || p == NULL || (rp = lwp->lwp_regs) == NULL)
goto zero;
*pcstack++ = (uint64_t)p->p_pid;
@@ -166,8 +183,8 @@
if (pcstack_limit <= 0)
return;
- pc = tf->tf_rip;
- sp = tf->tf_rsp;
+ pc = rp->r_rip;
+ sp = rp->r_rsp;
if (DTRACE_CPUFLAG_ISSET(CPU_DTRACE_ENTRY)) {
*pcstack++ = (uint64_t)pc;
@@ -193,32 +210,8 @@
int
dtrace_getustackdepth(void)
{
- proc_t *p = curproc;
- struct trapframe *tf;
- uintptr_t pc, sp;
- int n = 0;
-
- if (p == NULL || (tf = curthread->td_frame) == NULL)
- return (0);
-
- if (DTRACE_CPUFLAG_ISSET(CPU_DTRACE_FAULT))
- return (-1);
-
- pc = tf->tf_rip;
- sp = tf->tf_rsp;
-
- if (DTRACE_CPUFLAG_ISSET(CPU_DTRACE_ENTRY)) {
- n++;
-
- pc = dtrace_fulword((void *) sp);
- }
-
- n += dtrace_getustack_common(NULL, 0, pc, sp);
-
- return (n);
}
-#ifdef notyet
void
dtrace_getufpstack(uint64_t *pcstack, uint64_t *fpstack, int pcstack_limit)
{
@@ -227,7 +220,7 @@
struct regs *rp;
uintptr_t pc, sp, oldcontext;
volatile uint16_t *flags =
- (volatile uint16_t *)&cpu_core[curcpu].cpuc_dtrace_flags;
+ (volatile uint16_t *)&cpu_core[cpu_number()].cpuc_dtrace_flags;
size_t s1, s2;
if (*flags & CPU_DTRACE_FAULT)
@@ -343,9 +336,9 @@
sizeof (uintptr_t));
if (arg <= inreg) {
- stack = (uintptr_t *)&rp->r_rdi;
+ stack = (uintptr_t *)&rp->regs[_REG_RDI];
} else {
- stack = (uintptr_t *)(rp->r_rsp);
+ stack = (uintptr_t *)(rp->regs[_REG_RSP]);
arg -= inreg;
}
goto load;
@@ -404,7 +397,7 @@
depth++;
if (frame->f_frame <= frame ||
(vm_offset_t)frame->f_frame >=
- (vm_offset_t)rbp + KSTACK_PAGES * PAGE_SIZE)
+ (vm_offset_t)rbp + KSTACK_SIZE)
break;
frame = frame->f_frame;
}
@@ -528,7 +521,7 @@
if (uaddr + size > VM_MAXUSER_ADDRESS || uaddr + size < uaddr) {
DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
- cpu_core[curcpu].cpuc_dtrace_illval = uaddr;
+ cpu_core[cpu_number()].cpuc_dtrace_illval = uaddr;
return (0);
}
@@ -572,7 +565,7 @@
{
if ((uintptr_t)uaddr > VM_MAXUSER_ADDRESS) {
DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
- cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+ cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
return (0);
}
return (dtrace_fuword8_nocheck(uaddr));
@@ -583,7 +576,7 @@
{
if ((uintptr_t)uaddr > VM_MAXUSER_ADDRESS) {
DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
- cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+ cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
return (0);
}
return (dtrace_fuword16_nocheck(uaddr));
@@ -594,7 +587,7 @@
{
if ((uintptr_t)uaddr > VM_MAXUSER_ADDRESS) {
DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
- cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+ cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
return (0);
}
return (dtrace_fuword32_nocheck(uaddr));
@@ -605,7 +598,7 @@
{
if ((uintptr_t)uaddr > VM_MAXUSER_ADDRESS) {
DTRACE_CPUFLAG_SET(CPU_DTRACE_BADADDR);
- cpu_core[curcpu].cpuc_dtrace_illval = (uintptr_t)uaddr;
+ cpu_core[cpu_number()].cpuc_dtrace_illval = (uintptr_t)uaddr;
return (0);
}
return (dtrace_fuword64_nocheck(uaddr));
Index: src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c
diff -u src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.2 src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.3
--- src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c:1.2 Sat Feb 20 20:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/amd64/dtrace_subr.c Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: dtrace_subr.c,v 1.2 2010/02/21 01:46:33 darran Exp $ */
+/* $NetBSD: dtrace_subr.c,v 1.3 2010/03/13 22:31:15 christos Exp $ */
/*
* CDDL HEADER START
@@ -35,13 +35,19 @@
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/kmem.h>
-#include <sys/smp.h>
+#include <sys/xcall.h>
+#include <sys/cpu.h>
+#include <sys/cpuvar.h>
+//#include <sys/smp.h>
#include <sys/dtrace_impl.h>
#include <sys/dtrace_bsd.h>
-#include <machine/clock.h>
#include <machine/frame.h>
-#include <vm/pmap.h>
+#include <machine/cpu_counter.h>
+#include <uvm/uvm_pglist.h>
+#include <uvm/uvm_prot.h>
+#include <uvm/uvm_pmap.h>
+extern uintptr_t kernelbase;
extern uintptr_t dtrace_in_probe_addr;
extern int dtrace_in_probe;
@@ -53,6 +59,8 @@
} dtrace_invop_hdlr_t;
dtrace_invop_hdlr_t *dtrace_invop_hdlr;
+void dtrace_gethrtime_init(void *);
+
int
dtrace_invop(uintptr_t addr, uintptr_t *stack, uintptr_t eax)
@@ -109,34 +117,35 @@
void
dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit))
{
- (*func)(0, (uintptr_t) addr_PTmap);
+ (*func)(0, kernelbase);
}
-void
-dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
+static void
+xcall_func(void *arg0, void *arg1)
{
- cpumask_t cpus;
+ dtrace_xcall_t func = arg0;
- critical_enter();
+ (*func)(arg1);
+}
- if (cpu == DTRACE_CPUALL)
- cpus = all_cpus;
- else
- cpus = (cpumask_t) (1 << cpu);
+void
+dtrace_xcall(processorid_t cpu, dtrace_xcall_t func, void *arg)
+{
+ uint64_t where;
- /* If the current CPU is in the set, call the function directly: */
- if ((cpus & (1 << curcpu)) != 0) {
- (*func)(arg);
+ if (cpu == DTRACE_CPUALL) {
+ where = xc_broadcast(0, xcall_func, func, arg);
+ } else {
+ struct cpu_info *cinfo = cpu_lookup(cpu);
- /* Mask the current CPU from the set */
- cpus &= ~(1 << curcpu);
+ KASSERT(cinfo != NULL);
+ where = xc_unicast(0, xcall_func, func, arg, cinfo);
}
+ xc_wait(where);
- /* If there are any CPUs in the set, cross-call to those CPUs */
- if (cpus != 0)
- smp_rendezvous_cpus(cpus, NULL, func, smp_no_rendevous_barrier, arg);
-
- critical_exit();
+ /* XXX Q. Do we really need the other cpus to wait also?
+ * (see solaris:xc_sync())
+ */
}
static void
@@ -365,14 +374,17 @@
}
#endif
+#ifdef notyet
static int64_t tgt_cpu_tsc;
static int64_t hst_cpu_tsc;
-static int64_t tsc_skew[MAXCPU];
+#endif
+static int64_t tsc_skew[MAXCPUS];
static uint64_t nsec_scale;
/* See below for the explanation of this macro. */
#define SCALE_SHIFT 28
+#ifdef notyet
static void
dtrace_gethrtime_init_sync(void *arg)
{
@@ -384,7 +396,7 @@
*/
uintptr_t cpu = (uintptr_t) arg;
- if (cpu == curcpu) {
+ if (cpu == cpu_number()) {
int i;
for (i = 0; i < 1000000000; i++)
tgt_cpu_tsc = rdtsc();
@@ -398,18 +410,20 @@
{
uintptr_t cpu = (uintptr_t) arg;
- if (cpu == curcpu)
+ if (cpu == cpu_number())
tgt_cpu_tsc = rdtsc();
else
hst_cpu_tsc = rdtsc();
}
+#endif
-static void
+void
dtrace_gethrtime_init(void *arg)
{
uint64_t tsc_f;
- cpumask_t map;
- int i;
+ CPU_INFO_ITERATOR cpuind;
+ struct cpu_info *cinfo = curcpu();
+ cpuid_t cur_cpuid = cpu_number(); /* current cpu id */
/*
* Get TSC frequency known at this moment.
@@ -417,7 +431,7 @@
* Otherwise tick->time conversion will be inaccurate, but
* will preserve monotonic property of TSC.
*/
- tsc_f = tsc_freq;
+ tsc_f = cpu_frequency(cinfo);
/*
* The following line checks that nsec_scale calculated below
@@ -425,7 +439,8 @@
* another 32-bit integer without overflowing 64-bit.
* Thus minimum supported TSC frequency is 62.5MHz.
*/
- KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)), ("TSC frequency is too low"));
+ //KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)), ("TSC frequency is too low"));
+ KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)));
/*
* We scale up NANOSEC/tsc_f ratio to preserve as much precision
@@ -439,8 +454,15 @@
nsec_scale = ((uint64_t)NANOSEC << SCALE_SHIFT) / tsc_f;
/* The current CPU is the reference one. */
- tsc_skew[curcpu] = 0;
+ tsc_skew[cur_cpuid] = 0;
+
+ for (CPU_INFO_FOREACH(cpuind, cinfo)) {
+ /* use skew relative to cpu 0 */
+ tsc_skew[cpu_index(cinfo)] = cinfo->ci_data.cpu_cc_skew;
+ }
+ /* Already handled in x86/tsc.c for ci_data.cpu_cc_skew */
+#if 0
for (i = 0; i <= mp_maxid; i++) {
if (i == curcpu)
continue;
@@ -458,10 +480,9 @@
tsc_skew[i] = tgt_cpu_tsc - hst_cpu_tsc;
}
+#endif
}
-SYSINIT(dtrace_gethrtime_init, SI_SUB_SMP, SI_ORDER_ANY, dtrace_gethrtime_init, NULL);
-
/*
* DTrace needs a high resolution time function which can
* be called from a probe context and guaranteed not to have
@@ -482,7 +503,7 @@
* (see nsec_scale calculations) taking into account 32-bit shift of
* the higher half and finally add.
*/
- tsc = rdtsc() + tsc_skew[curcpu];
+ tsc = rdtsc() + tsc_skew[cpu_number()];
lo = tsc;
hi = tsc >> 32;
return (((lo * nsec_scale) >> SCALE_SHIFT) +
@@ -510,7 +531,7 @@
* Check if DTrace has enabled 'no-fault' mode:
*
*/
- if ((cpu_core[curcpu].cpuc_dtrace_flags & CPU_DTRACE_NOFAULT) != 0) {
+ if ((cpu_core[cpu_number()].cpuc_dtrace_flags & CPU_DTRACE_NOFAULT) != 0) {
/*
* There are only a couple of trap types that are expected.
* All the rest will be handled in the usual way.
@@ -522,7 +543,7 @@
/* General protection fault. */
case T_PROTFLT:
/* Flag an illegal operation. */
- cpu_core[curcpu].cpuc_dtrace_flags |= CPU_DTRACE_ILLOP;
+ cpu_core[cpu_number()].cpuc_dtrace_flags |= CPU_DTRACE_ILLOP;
/*
* Offset the instruction pointer to the instruction
@@ -533,8 +554,8 @@
/* Page fault. */
case T_PAGEFLT:
/* Flag a bad address. */
- cpu_core[curcpu].cpuc_dtrace_flags |= CPU_DTRACE_BADADDR;
- cpu_core[curcpu].cpuc_dtrace_illval = frame->tf_addr;
+ cpu_core[cpu_number()].cpuc_dtrace_flags |= CPU_DTRACE_BADADDR;
+ cpu_core[cpu_number()].cpuc_dtrace_illval = rcr2();
/*
* Offset the instruction pointer to the instruction
Index: src/external/cddl/osnet/dev/dtrace/i386/dtrace_asm.S
diff -u src/external/cddl/osnet/dev/dtrace/i386/dtrace_asm.S:1.2 src/external/cddl/osnet/dev/dtrace/i386/dtrace_asm.S:1.3
--- src/external/cddl/osnet/dev/dtrace/i386/dtrace_asm.S:1.2 Sat Feb 20 20:46:33 2010
+++ src/external/cddl/osnet/dev/dtrace/i386/dtrace_asm.S Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: dtrace_asm.S,v 1.2 2010/02/21 01:46:33 darran Exp $ */
+/* $NetBSD: dtrace_asm.S,v 1.3 2010/03/13 22:31:15 christos Exp $ */
/*
* CDDL HEADER START
@@ -33,6 +33,7 @@
#include <sys/cpuvar_defs.h>
#include <sys/dtrace.h>
#include <machine/asm.h>
+#include <machine/frameasm.h>
ENTRY(dtrace_invop_start)
Index: src/external/cddl/osnet/dev/fbt/fbt.c
diff -u src/external/cddl/osnet/dev/fbt/fbt.c:1.4 src/external/cddl/osnet/dev/fbt/fbt.c:1.5
--- src/external/cddl/osnet/dev/fbt/fbt.c:1.4 Fri Mar 12 20:10:01 2010
+++ src/external/cddl/osnet/dev/fbt/fbt.c Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: fbt.c,v 1.4 2010/03/13 01:10:01 darran Exp $ */
+/* $NetBSD: fbt.c,v 1.5 2010/03/13 22:31:15 christos Exp $ */
/*
* CDDL HEADER START
@@ -41,6 +41,7 @@
#include <sys/filio.h>
#include <sys/kernel.h>
#include <sys/kmem.h>
+#include <sys/ksyms.h>
#include <sys/cpu.h>
#include <sys/kthread.h>
#include <sys/limits.h>
@@ -154,12 +155,14 @@
struct fbt_probe *fbtp_next;
} fbt_probe_t;
+#ifdef notyet
static struct cdev *fbt_cdev;
+static int fbt_verbose = 0;
+#endif
static dtrace_provider_id_t fbt_id;
static fbt_probe_t **fbt_probetab;
static int fbt_probetab_size;
static int fbt_probetab_mask;
-static int fbt_verbose = 0;
static void
fbt_doubletrap(void)
@@ -244,7 +247,6 @@
dtrace_modctl_t *mod = opaque;
const char *modname = mod->mod_info->mi_name;
int j;
- int ind;
int size;
/* got a function? */
@@ -523,7 +525,9 @@
fbt_enable(void *arg, dtrace_id_t id, void *parg)
{
fbt_probe_t *fbt = parg;
+#if 0
dtrace_modctl_t *ctl = fbt->fbtp_ctl;
+#endif
u_long psl;
u_long cr0;
@@ -574,7 +578,9 @@
fbt_disable(void *arg, dtrace_id_t id, void *parg)
{
fbt_probe_t *fbt = parg;
+#if 0
dtrace_modctl_t *ctl = fbt->fbtp_ctl;
+#endif
u_long psl;
u_long cr0;
@@ -609,7 +615,9 @@
fbt_suspend(void *arg, dtrace_id_t id, void *parg)
{
fbt_probe_t *fbt = parg;
+#if 0
dtrace_modctl_t *ctl = fbt->fbtp_ctl;
+#endif
u_long psl;
u_long cr0;
@@ -644,7 +652,9 @@
fbt_resume(void *arg, dtrace_id_t id, void *parg)
{
fbt_probe_t *fbt = parg;
+#if 0
dtrace_modctl_t *ctl = fbt->fbtp_ctl;
+#endif
u_long psl;
u_long cr0;
@@ -1505,7 +1515,6 @@
fbt_modcmd(modcmd_t cmd, void *data)
{
int bmajor = -1, cmajor = -1;
- int error = 0;
switch (cmd) {
case MODULE_CMD_INIT:
Index: src/external/cddl/osnet/dev/sdt/sdt.c
diff -u src/external/cddl/osnet/dev/sdt/sdt.c:1.5 src/external/cddl/osnet/dev/sdt/sdt.c:1.6
--- src/external/cddl/osnet/dev/sdt/sdt.c:1.5 Thu Mar 4 21:21:41 2010
+++ src/external/cddl/osnet/dev/sdt/sdt.c Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: sdt.c,v 1.5 2010/03/05 02:21:41 darran Exp $ */
+/* $NetBSD: sdt.c,v 1.6 2010/03/13 22:31:15 christos Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
@@ -40,6 +40,7 @@
#include <sys/systm.h>
#include <sys/conf.h>
#include <sys/kernel.h>
+#include <sys/kmem.h>
#include <sys/module.h>
#include <sys/mutex.h>
@@ -79,7 +80,9 @@
sdt_destroy
};
+#ifdef notyet
static struct cdev *sdt_cdev;
+#endif
/*
* Provider and probe definitions
@@ -144,10 +147,7 @@
static void
sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc)
{
- sdt_provider_t *sprov = arg;
sdt_probe_t *sprobe = parg;
- int res;
- int ind;
#ifdef SDT_DEBUG
printf("sdt: %s probe %d\n", __func__, id);
@@ -381,7 +381,6 @@
sdt_load(void *dummy)
{
int ind;
- int res;
#ifdef SDT_DEBUG
printf("sdt: %s\n", __func__);
@@ -389,8 +388,8 @@
sdt_init(dtrace_probe);
- sdt_list = (sdt_provider_t **)kmem_alloc(
- sizeof(sdt_provider_t *) * SDT_MAX_PROVIDER);
+ sdt_list = kmem_alloc(sizeof(sdt_provider_t *) * SDT_MAX_PROVIDER,
+ KM_SLEEP);
mutex_init(&sdt_mutex, "sdt_mutex", MUTEX_DEFAULT, NULL);
@@ -454,7 +453,6 @@
sdt_modcmd(modcmd_t cmd, void *data)
{
int bmajor = -1, cmajor = -1;
- int error = 0;
switch (cmd) {
case MODULE_CMD_INIT:
Index: src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c
diff -u src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.9 src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.10
--- src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c:1.9 Fri Mar 12 16:53:16 2010
+++ src/external/cddl/osnet/dist/uts/common/dtrace/dtrace.c Sat Mar 13 17:31:15 2010
@@ -26,7 +26,7 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/* #pragma ident "%Z%%M% %I% %E% SMI" */
/*
* DTrace - Dynamic Tracing for Solaris
@@ -1209,7 +1209,7 @@
gid_t gid;
uid = kauth_cred_getuid(s_cr);
- uid = kauth_cred_getgid(s_cr);
+ gid = kauth_cred_getgid(s_cr);
if (uid == kauth_cred_getuid(cr) &&
uid == kauth_cred_geteuid(cr) &&
@@ -2737,6 +2737,7 @@
return (ret);
}
+#ifdef notyet
/*
* Return a string from a memoy address which is known to have one or
* more concatenated, individually zero terminated, sub-strings.
@@ -2774,6 +2775,7 @@
mstate->dtms_scratch_ptr += strsz;
return (ret);
}
+#endif
/*
* This function implements the DIF emulator's variable lookups. The emulator
@@ -10773,7 +10775,6 @@
return (ENOMEM);
#else
- int i;
#if defined(__amd64__)
/*
@@ -11788,12 +11789,12 @@
static dof_hdr_t *
dtrace_dof_property(const char *name)
{
+ dof_hdr_t *dof = NULL;
+#if defined(sun)
uchar_t *buf;
uint64_t loadsz;
unsigned int len, i;
- dof_hdr_t *dof = NULL;
-#if defined(sun)
/*
* Unfortunately, array of values in .conf files are always (and
* only) interpreted to be integer arrays. We must read our DOF
@@ -13500,7 +13501,7 @@
if ((rval = kthread_create(PRI_BIO, KTHREAD_MPSAFE,
NULL, dtrace_state_deadman, state,
&dtrace_deadman_proc, "dtrace_deadman")) != 0) {
- printf("failed to create deadman thread %s, error=%d\n", rval);
+ printf("failed to create deadman thread, error=%d\n", rval);
goto out;
}
#endif
Index: src/external/cddl/osnet/dist/uts/common/sys/ccompile.h
diff -u src/external/cddl/osnet/dist/uts/common/sys/ccompile.h:1.1.1.1 src/external/cddl/osnet/dist/uts/common/sys/ccompile.h:1.2
--- src/external/cddl/osnet/dist/uts/common/sys/ccompile.h:1.1.1.1 Fri Aug 7 14:33:47 2009
+++ src/external/cddl/osnet/dist/uts/common/sys/ccompile.h Sat Mar 13 17:31:15 2010
@@ -27,7 +27,7 @@
#ifndef _SYS_CCOMPILE_H
#define _SYS_CCOMPILE_H
-#pragma ident "%Z%%M% %I% %E% SMI"
+/* #pragma ident "%Z%%M% %I% %E% SMI" */
/*
* This file contains definitions designed to enable different compilers
Index: src/external/cddl/osnet/dist/uts/common/sys/ctf_api.h
diff -u src/external/cddl/osnet/dist/uts/common/sys/ctf_api.h:1.2 src/external/cddl/osnet/dist/uts/common/sys/ctf_api.h:1.3
--- src/external/cddl/osnet/dist/uts/common/sys/ctf_api.h:1.2 Sat Feb 20 19:49:56 2010
+++ src/external/cddl/osnet/dist/uts/common/sys/ctf_api.h Sat Mar 13 17:31:15 2010
@@ -40,7 +40,7 @@
#ifndef _CTF_API_H
#define _CTF_API_H
-#pragma ident "%Z%%M% %I% %E% SMI"
+/* #pragma ident "%Z%%M% %I% %E% SMI" */
#include <sys/types.h>
#include <sys/param.h>
Index: src/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h
diff -u src/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h:1.3 src/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h:1.4
--- src/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h:1.3 Sat Feb 20 20:46:34 2010
+++ src/external/cddl/osnet/dist/uts/common/sys/dtrace_impl.h Sat Mar 13 17:31:15 2010
@@ -29,7 +29,7 @@
#ifndef _SYS_DTRACE_IMPL_H
#define _SYS_DTRACE_IMPL_H
-#pragma ident "%Z%%M% %I% %E% SMI"
+/* #pragma ident "%Z%%M% %I% %E% SMI" */
#ifdef __cplusplus
extern "C" {
Index: src/external/cddl/osnet/dist/uts/common/sys/processor.h
diff -u src/external/cddl/osnet/dist/uts/common/sys/processor.h:1.4 src/external/cddl/osnet/dist/uts/common/sys/processor.h:1.5
--- src/external/cddl/osnet/dist/uts/common/sys/processor.h:1.4 Mon Mar 1 17:20:15 2010
+++ src/external/cddl/osnet/dist/uts/common/sys/processor.h Sat Mar 13 17:31:15 2010
@@ -32,7 +32,7 @@
#ifndef _SYS_PROCESSOR_H
#define _SYS_PROCESSOR_H
-#pragma ident "%Z%%M% %I% %E% SMI"
+/* #pragma ident "%Z%%M% %I% %E% SMI" */
#include <sys/types.h>
#include <sys/procset.h>
Index: src/external/cddl/osnet/sys/sys/cpuvar.h
diff -u src/external/cddl/osnet/sys/sys/cpuvar.h:1.6 src/external/cddl/osnet/sys/sys/cpuvar.h:1.7
--- src/external/cddl/osnet/sys/sys/cpuvar.h:1.6 Fri Mar 12 16:37:37 2010
+++ src/external/cddl/osnet/sys/sys/cpuvar.h Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpuvar.h,v 1.6 2010/03/12 21:37:37 darran Exp $ */
+/* $NetBSD: cpuvar.h,v 1.7 2010/03/13 22:31:15 christos Exp $ */
/*
* CDDL HEADER START
@@ -153,6 +153,7 @@
} cpu_setup_t;
typedef int cpu_setup_func_t(cpu_setup_t, int, void *);
+#define mp_maxid ncpu
#endif /* _COMPAT_OPENSOLARIS_SYS_CPUVAR_H */
Index: src/external/cddl/osnet/sys/sys/cred.h
diff -u src/external/cddl/osnet/sys/sys/cred.h:1.3 src/external/cddl/osnet/sys/sys/cred.h:1.4
--- src/external/cddl/osnet/sys/sys/cred.h:1.3 Sat Feb 20 20:46:35 2010
+++ src/external/cddl/osnet/sys/sys/cred.h Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cred.h,v 1.3 2010/02/21 01:46:35 darran Exp $ */
+/* $NetBSD: cred.h,v 1.4 2010/03/13 22:31:15 christos Exp $ */
/*-
* Copyright (c) 2007 Pawel Jakub Dawidek <[email protected]>
@@ -72,7 +72,7 @@
return gids;
}
-static int
+static __inline int
groupmember(gid_t gid, cred_t *cr)
{
int result;
Index: src/external/cddl/osnet/sys/sys/proc.h
diff -u src/external/cddl/osnet/sys/sys/proc.h:1.4 src/external/cddl/osnet/sys/sys/proc.h:1.5
--- src/external/cddl/osnet/sys/sys/proc.h:1.4 Sun Feb 28 09:45:47 2010
+++ src/external/cddl/osnet/sys/sys/proc.h Sat Mar 13 17:31:15 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: proc.h,v 1.4 2010/02/28 14:45:47 haad Exp $ */
+/* $NetBSD: proc.h,v 1.5 2010/03/13 22:31:15 christos Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -94,12 +94,12 @@
struct contract {
};
-kthread_t *thread_create(void *, size_t, void (*)(), void *, size_t,
+kthread_t *thread_create(void *, size_t, void (*)(void *), void *, size_t,
proc_t *, int, pri_t);
void thread_exit(void);
void thread_join(uint64_t);
-int newproc(void (*)(), caddr_t, id_t, int, struct contract **, pid_t);
+int newproc(void (*)(void *), caddr_t, id_t, int, struct contract **, pid_t);
#endif /* _KERNEL */