summaryrefslogtreecommitdiff
path: root/sys/dev/sysmon
diff options
context:
space:
mode:
authordarrenr <darrenr@NetBSD.org>2003-06-28 14:20:43 +0000
committerdarrenr <darrenr@NetBSD.org>2003-06-28 14:20:43 +0000
commit960df3c8d11a934b85f6f7d3ac388ec5ee57c12f (patch)
tree04eacdb0da6eefa4c57bf27833661e791d6a5853 /sys/dev/sysmon
parentda6b84e29093b9bfc2c3f38bfa199d379d8984d5 (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.c32
-rw-r--r--sys/dev/sysmon/sysmon_envsys.c12
-rw-r--r--sys/dev/sysmon/sysmon_power.c14
-rw-r--r--sys/dev/sysmon/sysmon_wdog.c12
-rw-r--r--sys/dev/sysmon/sysmonvar.h29
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_ */