diff options
| author | darrenr <darrenr@NetBSD.org> | 2003-06-28 14:20:43 +0000 |
|---|---|---|
| committer | darrenr <darrenr@NetBSD.org> | 2003-06-28 14:20:43 +0000 |
| commit | 960df3c8d11a934b85f6f7d3ac388ec5ee57c12f (patch) | |
| tree | 04eacdb0da6eefa4c57bf27833661e791d6a5853 /sys/dev/sysmon | |
| parent | da6b84e29093b9bfc2c3f38bfa199d379d8984d5 (diff) | |
Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
Diffstat (limited to 'sys/dev/sysmon')
| -rw-r--r-- | sys/dev/sysmon/sysmon.c | 32 | ||||
| -rw-r--r-- | sys/dev/sysmon/sysmon_envsys.c | 12 | ||||
| -rw-r--r-- | sys/dev/sysmon/sysmon_power.c | 14 | ||||
| -rw-r--r-- | sys/dev/sysmon/sysmon_wdog.c | 12 | ||||
| -rw-r--r-- | sys/dev/sysmon/sysmonvar.h | 29 |
5 files changed, 50 insertions, 49 deletions
diff --git a/sys/dev/sysmon/sysmon.c b/sys/dev/sysmon/sysmon.c index bc5e3ca7ee7..7d0e2886edf 100644 --- a/sys/dev/sysmon/sysmon.c +++ b/sys/dev/sysmon/sysmon.c @@ -1,4 +1,4 @@ -/* $NetBSD: sysmon.c,v 1.8 2003/04/18 01:31:35 thorpej Exp $ */ +/* $NetBSD: sysmon.c,v 1.9 2003/06/28 14:21:45 darrenr Exp $ */ /*- * Copyright (c) 2000 Zembu Labs, Inc. @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sysmon.c,v 1.8 2003/04/18 01:31:35 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sysmon.c,v 1.9 2003/06/28 14:21:45 darrenr Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -72,24 +72,24 @@ const struct cdevsw sysmon_cdevsw = { * Open the system monitor device. */ int -sysmonopen(dev_t dev, int flag, int mode, struct proc *p) +sysmonopen(dev_t dev, int flag, int mode, struct lwp *l) { int error; switch (minor(dev)) { #if NSYSMON_ENVSYS > 0 case SYSMON_MINOR_ENVSYS: - error = sysmonopen_envsys(dev, flag, mode, p); + error = sysmonopen_envsys(dev, flag, mode, l); break; #endif #if NSYSMON_WDOG > 0 case SYSMON_MINOR_WDOG: - error = sysmonopen_wdog(dev, flag, mode, p); + error = sysmonopen_wdog(dev, flag, mode, l); break; #endif #if NSYSMON_POWER > 0 case SYSMON_MINOR_POWER: - error = sysmonopen_power(dev, flag, mode, p); + error = sysmonopen_power(dev, flag, mode, l); break; #endif default: @@ -105,24 +105,24 @@ sysmonopen(dev_t dev, int flag, int mode, struct proc *p) * Close the system monitor device. */ int -sysmonclose(dev_t dev, int flag, int mode, struct proc *p) +sysmonclose(dev_t dev, int flag, int mode, struct lwp *l) { int error; switch (minor(dev)) { #if NSYSMON_ENVSYS > 0 case SYSMON_MINOR_ENVSYS: - error = sysmonclose_envsys(dev, flag, mode, p); + error = sysmonclose_envsys(dev, flag, mode, l); break; #endif #if NSYSMON_WDOG > 0 case SYSMON_MINOR_WDOG: - error = sysmonclose_wdog(dev, flag, mode, p); + error = sysmonclose_wdog(dev, flag, mode, l); break; #endif #if NSYSMON_POWER > 0 case SYSMON_MINOR_POWER: - error = sysmonclose_power(dev, flag, mode, p); + error = sysmonclose_power(dev, flag, mode, l); break; #endif default: @@ -138,24 +138,24 @@ sysmonclose(dev_t dev, int flag, int mode, struct proc *p) * Perform a control request. */ int -sysmonioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) +sysmonioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct lwp *l) { int error; switch (minor(dev)) { #if NSYSMON_ENVSYS > 0 case SYSMON_MINOR_ENVSYS: - error = sysmonioctl_envsys(dev, cmd, data, flag, p); + error = sysmonioctl_envsys(dev, cmd, data, flag, l); break; #endif #if NSYSMON_WDOG > 0 case SYSMON_MINOR_WDOG: - error = sysmonioctl_wdog(dev, cmd, data, flag, p); + error = sysmonioctl_wdog(dev, cmd, data, flag, l); break; #endif #if NSYSMON_POWER > 0 case SYSMON_MINOR_POWER: - error = sysmonioctl_power(dev, cmd, data, flag, p); + error = sysmonioctl_power(dev, cmd, data, flag, l); break; #endif default: @@ -194,14 +194,14 @@ sysmonread(dev_t dev, struct uio *uio, int flags) * Poll the system monitor device. */ int -sysmonpoll(dev_t dev, int events, struct proc *p) +sysmonpoll(dev_t dev, int events, struct lwp *l) { int rv; switch (minor(dev)) { #if NSYSMON_POWER > 0 case SYSMON_MINOR_POWER: - rv = sysmonpoll_power(dev, events, p); + rv = sysmonpoll_power(dev, events, l); break; #endif default: diff --git a/sys/dev/sysmon/sysmon_envsys.c b/sys/dev/sysmon/sysmon_envsys.c index ee4bf338b48..2d539b7c180 100644 --- a/sys/dev/sysmon/sysmon_envsys.c +++ b/sys/dev/sysmon/sysmon_envsys.c @@ -1,4 +1,4 @@ -/* $NetBSD: sysmon_envsys.c,v 1.4 2002/12/31 05:26:56 explorer Exp $ */ +/* $NetBSD: sysmon_envsys.c,v 1.5 2003/06/28 14:21:45 darrenr Exp $ */ /*- * Copyright (c) 2000 Zembu Labs, Inc. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys.c,v 1.4 2002/12/31 05:26:56 explorer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys.c,v 1.5 2003/06/28 14:21:45 darrenr Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -75,7 +75,7 @@ struct simplelock sysmon_envsys_initialized_slock = SIMPLELOCK_INITIALIZER; #define SYSMON_ENVSYS_UNLOCK() \ lockmgr(&sysmon_envsys_lock, LK_RELEASE, NULL) -int sysmonioctl_envsys(dev_t, u_long, caddr_t, int, struct proc *); +int sysmonioctl_envsys(dev_t, u_long, caddr_t, int, struct lwp *); struct sysmon_envsys *sysmon_envsys_find(u_int); void sysmon_envsys_release(struct sysmon_envsys *); @@ -86,7 +86,7 @@ void sysmon_envsys_release(struct sysmon_envsys *); * Open the system monitor device. */ int -sysmonopen_envsys(dev_t dev, int flag, int mode, struct proc *p) +sysmonopen_envsys(dev_t dev, int flag, int mode, struct lwp *l) { simple_lock(&sysmon_envsys_initialized_slock); if (sysmon_envsys_initialized == 0) { @@ -104,7 +104,7 @@ sysmonopen_envsys(dev_t dev, int flag, int mode, struct proc *p) * Close the system monitor device. */ int -sysmonclose_envsys(dev_t dev, int flag, int mode, struct proc *p) +sysmonclose_envsys(dev_t dev, int flag, int mode, struct lwp *l) { /* Nothing to do */ @@ -118,7 +118,7 @@ sysmonclose_envsys(dev_t dev, int flag, int mode, struct proc *p) */ int sysmonioctl_envsys(dev_t dev, u_long cmd, caddr_t data, int flag, - struct proc *p) + struct lwp *l) { struct sysmon_envsys *sme; int error = 0; diff --git a/sys/dev/sysmon/sysmon_power.c b/sys/dev/sysmon/sysmon_power.c index f66171c0065..7c0c9c92369 100644 --- a/sys/dev/sysmon/sysmon_power.c +++ b/sys/dev/sysmon/sysmon_power.c @@ -1,4 +1,4 @@ -/* $NetBSD: sysmon_power.c,v 1.5 2003/05/19 23:24:55 kochi Exp $ */ +/* $NetBSD: sysmon_power.c,v 1.6 2003/06/28 14:21:45 darrenr Exp $ */ /* * Copyright (c) 2003 Wasabi Systems, Inc. @@ -143,7 +143,7 @@ sysmon_power_event_queue_flush(void) * Open the system monitor device. */ int -sysmonopen_power(dev_t dev, int flag, int mode, struct proc *p) +sysmonopen_power(dev_t dev, int flag, int mode, struct lwp *l) { int error = 0; @@ -151,7 +151,7 @@ sysmonopen_power(dev_t dev, int flag, int mode, struct proc *p) if (sysmon_power_daemon != NULL) error = EBUSY; else { - sysmon_power_daemon = p; + sysmon_power_daemon = l->l_proc; sysmon_power_event_queue_flush(); } simple_unlock(&sysmon_power_event_queue_slock); @@ -165,7 +165,7 @@ sysmonopen_power(dev_t dev, int flag, int mode, struct proc *p) * Close the system monitor device. */ int -sysmonclose_power(dev_t dev, int flag, int mode, struct proc *p) +sysmonclose_power(dev_t dev, int flag, int mode, struct lwp *l) { int count; @@ -225,7 +225,7 @@ sysmonread_power(dev_t dev, struct uio *uio, int flags) * Poll the system monitor device. */ int -sysmonpoll_power(dev_t dev, int events, struct proc *p) +sysmonpoll_power(dev_t dev, int events, struct lwp *l) { int revents; @@ -239,7 +239,7 @@ sysmonpoll_power(dev_t dev, int events, struct proc *p) if (sysmon_power_event_queue_count) revents |= events & (POLLIN | POLLRDNORM); else - selrecord(p, &sysmon_power_event_queue_selinfo); + selrecord(l, &sysmon_power_event_queue_selinfo); simple_unlock(&sysmon_power_event_queue_slock); return (revents); @@ -310,7 +310,7 @@ sysmonkqfilter_power(dev_t dev, struct knote *kn) * Perform a power managmenet control request. */ int -sysmonioctl_power(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) +sysmonioctl_power(dev_t dev, u_long cmd, caddr_t data, int flag, struct lwp *l) { int error = 0; diff --git a/sys/dev/sysmon/sysmon_wdog.c b/sys/dev/sysmon/sysmon_wdog.c index 6468d6703fb..63e528c4295 100644 --- a/sys/dev/sysmon/sysmon_wdog.c +++ b/sys/dev/sysmon/sysmon_wdog.c @@ -1,4 +1,4 @@ -/* $NetBSD: sysmon_wdog.c,v 1.6 2002/12/30 06:16:10 explorer Exp $ */ +/* $NetBSD: sysmon_wdog.c,v 1.7 2003/06/28 14:21:45 darrenr Exp $ */ /*- * Copyright (c) 2000 Zembu Labs, Inc. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sysmon_wdog.c,v 1.6 2002/12/30 06:16:10 explorer Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sysmon_wdog.c,v 1.7 2003/06/28 14:21:45 darrenr Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -89,7 +89,7 @@ void sysmon_wdog_shutdown(void *); * Open the system monitor device. */ int -sysmonopen_wdog(dev_t dev, int flag, int mode, struct proc *p) +sysmonopen_wdog(dev_t dev, int flag, int mode, struct lwp *l) { simple_lock(&sysmon_wdog_list_slock); @@ -111,7 +111,7 @@ sysmonopen_wdog(dev_t dev, int flag, int mode, struct proc *p) * Close the system monitor device. */ int -sysmonclose_wdog(dev_t dev, int flag, int mode, struct proc *p) +sysmonclose_wdog(dev_t dev, int flag, int mode, struct lwp *l) { struct sysmon_wdog *smw; int omode, s, error = 0; @@ -149,7 +149,7 @@ sysmonclose_wdog(dev_t dev, int flag, int mode, struct proc *p) * Perform a watchdog control request. */ int -sysmonioctl_wdog(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) +sysmonioctl_wdog(dev_t dev, u_long cmd, caddr_t data, int flag, struct lwp *l) { struct sysmon_wdog *smw; int s, error = 0; @@ -226,7 +226,7 @@ sysmonioctl_wdog(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) if ((smw = sysmon_armed_wdog) != NULL) { error = (*smw->smw_tickle)(smw); if (error == 0) - smw->smw_tickler = p->p_pid; + smw->smw_tickler = l->l_proc->p_pid; } else error = ESRCH; SYSMON_WDOG_UNLOCK(s); diff --git a/sys/dev/sysmon/sysmonvar.h b/sys/dev/sysmon/sysmonvar.h index 539b741f9f8..52f26dfe2c4 100644 --- a/sys/dev/sysmon/sysmonvar.h +++ b/sys/dev/sysmon/sysmonvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: sysmonvar.h,v 1.6 2003/04/18 01:31:35 thorpej Exp $ */ +/* $NetBSD: sysmonvar.h,v 1.7 2003/06/28 14:21:45 darrenr Exp $ */ /*- * Copyright (c) 2000 Zembu Labs, Inc. @@ -41,6 +41,7 @@ #include <sys/power.h> #include <sys/queue.h> +struct lwp; struct proc; struct knote; struct uio; @@ -73,9 +74,9 @@ struct sysmon_envsys { #define SME_SENSOR_IDX(sme, idx) ((idx) - (sme)->sme_fsensor) -int sysmonopen_envsys(dev_t, int, int, struct proc *); -int sysmonclose_envsys(dev_t, int, int, struct proc *); -int sysmonioctl_envsys(dev_t, u_long, caddr_t, int, struct proc *); +int sysmonopen_envsys(dev_t, int, int, struct lwp *); +int sysmonclose_envsys(dev_t, int, int, struct lwp *); +int sysmonioctl_envsys(dev_t, u_long, caddr_t, int, struct lwp *); int sysmon_envsys_register(struct sysmon_envsys *); void sysmon_envsys_unregister(struct sysmon_envsys *); @@ -98,12 +99,12 @@ struct sysmon_wdog { pid_t smw_tickler; /* last process to tickle */ }; -int sysmonopen_wdog(dev_t, int, int, struct proc *); -int sysmonclose_wdog(dev_t, int, int, struct proc *); -int sysmonioctl_wdog(dev_t, u_long, caddr_t, int, struct proc *); +int sysmonopen_wdog(dev_t, int, int, struct lwp *); +int sysmonclose_wdog(dev_t, int, int, struct lwp *); +int sysmonioctl_wdog(dev_t, u_long, caddr_t, int, struct lwp *); -int sysmon_wdog_register(struct sysmon_wdog *); -void sysmon_wdog_unregister(struct sysmon_wdog *); +int sysmon_wdog_register(struct sysmon_wdog *); +void sysmon_wdog_unregister(struct sysmon_wdog *); /***************************************************************************** * Power management support @@ -116,12 +117,12 @@ struct sysmon_pswitch { LIST_ENTRY(sysmon_pswitch) smpsw_list; }; -int sysmonopen_power(dev_t, int, int, struct proc *); -int sysmonclose_power(dev_t, int, int, struct proc *); +int sysmonopen_power(dev_t, int, int, struct lwp *); +int sysmonclose_power(dev_t, int, int, struct lwp *); int sysmonread_power(dev_t, struct uio *, int); -int sysmonpoll_power(dev_t, int, struct proc *); +int sysmonpoll_power(dev_t, int, struct lwp *); int sysmonkqfilter_power(dev_t, struct knote *); -int sysmonioctl_power(dev_t, u_long, caddr_t, int, struct proc *); +int sysmonioctl_power(dev_t, u_long, caddr_t, int, struct lwp *); void sysmon_power_settype(const char *); @@ -129,5 +130,5 @@ int sysmon_pswitch_register(struct sysmon_pswitch *); void sysmon_pswitch_unregister(struct sysmon_pswitch *); void sysmon_pswitch_event(struct sysmon_pswitch *, int); - + #endif /* _DEV_SYSMON_SYSMONVAR_H_ */ |
