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 <j...@freebsd.org>. @@ -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 <p...@freebsd.org> @@ -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 */