From owner-p4-projects@FreeBSD.ORG Sat Apr 22 02:59:24 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 0E12716A405; Sat, 22 Apr 2006 02:59:24 +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 DA0E116A401 for ; Sat, 22 Apr 2006 02:59:23 +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 7DB0C43D48 for ; Sat, 22 Apr 2006 02:59:23 +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 k3M2xNhu093006 for ; Sat, 22 Apr 2006 02:59:23 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k3M2xNB8092992 for perforce@freebsd.org; Sat, 22 Apr 2006 02:59:23 GMT (envelope-from jb@freebsd.org) Date: Sat, 22 Apr 2006 02:59:23 GMT Message-Id: <200604220259.k3M2xNB8092992@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 95855 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: Sat, 22 Apr 2006 02:59:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=95855 Change 95855 by jb@jb_freebsd2 on 2006/04/22 02:59:14 Remove 'const' from a few places to satisfy gcc's strict checking options that FreeBSD uses. Sun was passing things around as consts and then finally getting to a point where they wanted to drop the const. There is no point using consts unless you are prepared to obey them in your code. Fix some prototypes that gcc wanted to know that they really, really didn't have any arguments passed to them. Update a few more ioctl definitions to reflect the data transfer. Solaris is oblivious to what passes through ioctl. Affected files ... .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace.h#5 edit .. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace_impl.h#3 edit Differences ... ==== //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace.h#5 (text) ==== @@ -55,12 +55,17 @@ #include #else #include +#include #include #include #include typedef struct ucred cred_t; +typedef struct proc proc_t; +typedef struct proc kthread_t; +typedef int model_t; struct modctl { - int something; /* XXX */ + char *mod_filename; + char *mod_modname; }; #endif #include @@ -1193,16 +1198,18 @@ #define DTRACEIOC_DOFGET (DTRACEIOC | 17) /* get DOF */ #define DTRACEIOC_REPLICATE (DTRACEIOC | 18) /* replicate enab */ #else -#define DTRACEIOC_PROVIDER _IO('x',1) /* provider query */ +#define DTRACEIOC_PROVIDER _IOWR('x',1,dtrace_providerdesc_t) + /* provider query */ #define DTRACEIOC_PROBES _IOWR('x',2,dtrace_probedesc_t) /* probe query */ #define DTRACEIOC_BUFSNAP _IO('x',4) /* snapshot buffer */ #define DTRACEIOC_PROBEMATCH _IOWR('x',5,dtrace_probedesc_t) /* match probes */ -#define DTRACEIOC_ENABLE _IO('x',6) /* enable probes */ +#define DTRACEIOC_ENABLE _IOWR('x',6,void *) /* enable probes */ #define DTRACEIOC_AGGSNAP _IO('x',7) /* snapshot agg. */ #define DTRACEIOC_EPROBE _IO('x',8) /* get eprobe desc. */ -#define DTRACEIOC_PROBEARG _IO('x',9) /* get probe arg */ +#define DTRACEIOC_PROBEARG _IOWR('x',9,dtrace_argdesc_t) + /* get probe arg */ #define DTRACEIOC_CONF _IOR('x',10,dtrace_conf_t) /* get config. */ #define DTRACEIOC_STATUS _IO('x',11) /* get status */ @@ -1997,8 +2004,8 @@ extern int dtrace_unregister(dtrace_provider_id_t); extern int dtrace_condense(dtrace_provider_id_t); extern void dtrace_invalidate(dtrace_provider_id_t); -extern dtrace_id_t dtrace_probe_lookup(dtrace_provider_id_t, const char *, - const char *, const char *); +extern dtrace_id_t dtrace_probe_lookup(dtrace_provider_id_t, char *, + char *, char *); extern dtrace_id_t dtrace_probe_create(dtrace_provider_id_t, const char *, const char *, const char *, int, void *); extern void *dtrace_probe_arg(dtrace_provider_id_t, dtrace_id_t); @@ -2171,7 +2178,6 @@ DTRACE_VTIME_ACTIVE_TNF /* DTrace virtual time _and_ TNF */ } dtrace_vtime_state_t; -#ifdef DOODAD extern dtrace_vtime_state_t dtrace_vtime_active; extern void dtrace_vtime_switch(kthread_t *next); extern void dtrace_vtime_enable_tnf(void); @@ -2201,16 +2207,16 @@ extern void (*dtrace_cpu_init)(processorid_t); extern void (*dtrace_modload)(struct modctl *); extern void (*dtrace_modunload)(struct modctl *); -extern void (*dtrace_helpers_cleanup)(); +extern void (*dtrace_helpers_cleanup)(void); extern void (*dtrace_helpers_fork)(proc_t *parent, proc_t *child); -extern void (*dtrace_cpustart_init)(); -extern void (*dtrace_cpustart_fini)(); +extern void (*dtrace_cpustart_init)(void); +extern void (*dtrace_cpustart_fini)(void); -extern void (*dtrace_kreloc_init)(); -extern void (*dtrace_kreloc_fini)(); +extern void (*dtrace_kreloc_init)(void); +extern void (*dtrace_kreloc_fini)(void); -extern void (*dtrace_debugger_init)(); -extern void (*dtrace_debugger_fini)(); +extern void (*dtrace_debugger_init)(void); +extern void (*dtrace_debugger_fini)(void); extern dtrace_cacheid_t dtrace_predcache_id; extern hrtime_t dtrace_gethrtime(void); @@ -2222,13 +2228,10 @@ extern int dtrace_safe_defer_signal(void); extern void dtrace_safe_synchronous_signal(void); -#endif #if defined(__i386) || defined(__amd64) extern int dtrace_instr_size(uchar_t *instr); -#ifdef DOODAD extern int dtrace_instr_size_isa(uchar_t *, model_t, int *); -#endif extern void dtrace_invop_add(int (*)(uintptr_t, uintptr_t *, uintptr_t)); extern void dtrace_invop_remove(int (*)(uintptr_t, uintptr_t *, uintptr_t)); extern void dtrace_invop_callsite(void); ==== //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace_impl.h#3 (text) ==== @@ -50,7 +50,13 @@ #else #include #include +#ifdef __sparcv9 +typedef uint32_t pc_t; +#else +typedef uintptr_t pc_t; #endif +typedef u_int32_t vmem_t; +#endif /* * DTrace Implementation Constants and Typedefs @@ -120,13 +126,13 @@ typedef int dtrace_probekey_f(const char *, const char *, int); typedef struct dtrace_probekey { - const char *dtpk_prov; /* provider name to match */ + char *dtpk_prov; /* provider name to match */ dtrace_probekey_f *dtpk_pmatch; /* provider matching function */ - const char *dtpk_mod; /* module name to match */ + char *dtpk_mod; /* module name to match */ dtrace_probekey_f *dtpk_mmatch; /* module matching function */ - const char *dtpk_func; /* func name to match */ + char *dtpk_func; /* func name to match */ dtrace_probekey_f *dtpk_fmatch; /* func matching function */ - const char *dtpk_name; /* name to match */ + char *dtpk_name; /* name to match */ dtrace_probekey_f *dtpk_nmatch; /* name matching function */ dtrace_id_t dtpk_id; /* identifier to match */ } dtrace_probekey_t; @@ -1109,9 +1115,7 @@ int dts_nspeculations; /* number of speculations */ int dts_naggregations; /* number of aggregations */ dtrace_aggregation_t **dts_aggregations; /* aggregation array */ -#ifdef DOODAD vmem_t *dts_aggid_arena; /* arena for aggregation IDs */ -#endif uint64_t dts_errors; /* total number of errors */ uint32_t dts_speculations_busy; /* number of spec. busy */ uint32_t dts_speculations_unavail; /* number of spec unavail */ @@ -1245,8 +1249,8 @@ extern void dtrace_copyinstr(uintptr_t, uintptr_t, size_t); extern void dtrace_copyout(uintptr_t, uintptr_t, size_t); extern void dtrace_copyoutstr(uintptr_t, uintptr_t, size_t); +extern void dtrace_getpcstack(pc_t *, int, int, uint32_t *); #ifdef DOODAD -extern void dtrace_getpcstack(pc_t *, int, int, uint32_t *); extern ulong_t dtrace_getreg(struct regs *, uint_t); #endif extern int dtrace_getstackdepth(int);