From owner-p4-projects@FreeBSD.ORG Wed Apr 26 00:21:55 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F409516A402; Wed, 26 Apr 2006 00:21:54 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B129F16A400 for ; Wed, 26 Apr 2006 00:21:54 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 78F1B43D45 for ; Wed, 26 Apr 2006 00:21:54 +0000 (GMT) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k3Q0LsOA083365 for ; Wed, 26 Apr 2006 00:21:54 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k3Q0Ls5Z083357 for perforce@freebsd.org; Wed, 26 Apr 2006 00:21:54 GMT (envelope-from jb@freebsd.org) Date: Wed, 26 Apr 2006 00:21:54 GMT Message-Id: <200604260021.k3Q0Ls5Z083357@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 96120 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Apr 2006 00:21:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=96120 Change 96120 by jb@jb_freebsd2 on 2006/04/26 00:21:12 SysV -> BSD ioctl for STATUS. We're getting closer and closer to a significant emotional event (as EDS used to say)... Affected files ... .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#8 edit .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace.h#10 edit Differences ... ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#8 (text+ko) ==== @@ -681,12 +681,8 @@ } #endif break; - case DTRACEIOC_STATUS: -printf("DTRACEIOC_STATUS:\n"); -error = EINVAL; -#ifdef DOODAD - { - dtrace_status_t stat; + case DTRACEIOC_STATUS: { + dtrace_status_t *stat = (dtrace_status_t *) addr; dtrace_dstate_t *dstate; int i, j; uint64_t nerrs; @@ -700,7 +696,7 @@ dtrace_membar_producer(); state->dts_laststatus = dtrace_gethrtime(); - bzero(&stat, sizeof (stat)); + bzero(stat, sizeof (stat)); mutex_enter(&dtrace_lock); @@ -710,7 +706,7 @@ } if (state->dts_activity == DTRACE_ACTIVITY_DRAINING) - stat.dtst_exiting = 1; + stat->dtst_exiting = 1; nerrs = state->dts_errors; dstate = &state->dts_vstate.dtvs_dynvars; @@ -718,12 +714,12 @@ for (i = 0; i < NCPU; i++) { dtrace_dstate_percpu_t *dcpu = &dstate->dtds_percpu[i]; - stat.dtst_dyndrops += dcpu->dtdsc_drops; - stat.dtst_dyndrops_dirty += dcpu->dtdsc_dirty_drops; - stat.dtst_dyndrops_rinsing += dcpu->dtdsc_rinsing_drops; + stat->dtst_dyndrops += dcpu->dtdsc_drops; + stat->dtst_dyndrops_dirty += dcpu->dtdsc_dirty_drops; + stat->dtst_dyndrops_rinsing += dcpu->dtdsc_rinsing_drops; if (state->dts_buffer[i].dtb_flags & DTRACEBUF_FULL) - stat.dtst_filled++; + stat->dtst_filled++; nerrs += state->dts_buffer[i].dtb_errors; @@ -733,27 +729,22 @@ spec = &state->dts_speculations[j]; buf = &spec->dtsp_buffer[i]; - stat.dtst_specdrops += buf->dtb_xamot_drops; + stat->dtst_specdrops += buf->dtb_xamot_drops; } } - stat.dtst_specdrops_busy = state->dts_speculations_busy; - stat.dtst_specdrops_unavail = state->dts_speculations_unavail; - stat.dtst_stkstroverflows = state->dts_stkstroverflows; - stat.dtst_dblerrors = state->dts_dblerrors; - stat.dtst_killed = + stat->dtst_specdrops_busy = state->dts_speculations_busy; + stat->dtst_specdrops_unavail = state->dts_speculations_unavail; + stat->dtst_stkstroverflows = state->dts_stkstroverflows; + stat->dtst_dblerrors = state->dts_dblerrors; + stat->dtst_killed = (state->dts_activity == DTRACE_ACTIVITY_KILLED); - stat.dtst_errors = nerrs; + stat->dtst_errors = nerrs; mutex_exit(&dtrace_lock); - if (copyout(&stat, (void *)arg, sizeof (stat)) != 0) - return (EFAULT); - return (0); } -#endif - break; case DTRACEIOC_STOP: printf("DTRACEIOC_STOP:\n"); error = EINVAL; ==== //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace.h#10 (text) ==== @@ -1215,7 +1215,8 @@ /* get probe arg */ #define DTRACEIOC_CONF _IOR('x',10,dtrace_conf_t) /* get config. */ -#define DTRACEIOC_STATUS _IO('x',11) /* get status */ +#define DTRACEIOC_STATUS _IOR('x',11,dtrace_status_t) + /* get status */ #define DTRACEIOC_GO _IOR('x',12,processorid_t) /* start tracing */ #define DTRACEIOC_STOP _IO('x',13) /* stop tracing */