summaryrefslogtreecommitdiffstats
path: root/sys/dev/vinum/vinumvar.h
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1998-10-21 08:32:32 +0000
committergrog <grog@FreeBSD.org>1998-10-21 08:32:32 +0000
commitc4f583ab45280938d0a6fb05b51d4ecadfc1f413 (patch)
treedae6747deab534df8daae0214b7739eb96b1f003 /sys/dev/vinum/vinumvar.h
parentf8807b8fc154475494280090923ce6f4d311d64e (diff)
downloadFreeBSD-src-c4f583ab45280938d0a6fb05b51d4ecadfc1f413.zip
FreeBSD-src-c4f583ab45280938d0a6fb05b51d4ecadfc1f413.tar.gz
config.c:
config_drive: Catch an instance of anonymous drives. Doubtless many remain. interrupt.c: complete_rqe: Call logrq to log iodone events if DEBUG_LASTREQS is set. Call set_sd_state with setstate_noupdate to avoid buffered I/O out of interrupt context. Use define DEBUG_RESID instead of constant. memory.c: Remove dead expandrq() function Malloc: Remove directory component of file names in malloc table. Add function vinum_rqinfo (part of the request tracing stuff). request.c: Add function logrq (part of the request tracing stuff). vinumstrategy: Check whether config needs to be written to disk, do it if so. This is a stopgap until the Vinum daemon (bacchusd? oenologistd?) is written. If DEBUG_LASTREQS is set, call logrq to log user buffer headers. launch_requests: Correct format of debug output to console. If DEBUG_LASTREQS is set, call logrq to log request elements. request.h: Add definitions for request trace. state.c: set_sd_state: Check flags for setstate_noupdate. If set, don't write the config to disk, just set global VF_DIRTYCONFIG flag. This is part of the kludge to avoid writing config from an interrupt context. vinumext.h: Add declaration for vinum_rqinfo, put inside #ifdef DEBUG Remove dead macro expandrq vinumio.h: Increase maximum ioctl reply length to 4 kB if DEBUG is set. Define VINUM_RQINFO ioctl if DEBUG is set. vinumioctl.c: vinumioctl: Change implementation of VINUM_DEBUG ioctl: use a debug flag (DEBUG_REMOTEGDB) to decide whether to go into remote debugging or not. Implement VINUM_RQINFO. vinumkw.h: Define kw_info even when not debugging. vinumvar.h: Define VF_DIRTYCONFIG Add pointers to request info to vinum_info if DEBUG is set. Define setstate_noupdate Define additional debug bits DEBUG_RESID, DEBUG_LASTREQS and DEBUG_REMOTEGDB.
Diffstat (limited to 'sys/dev/vinum/vinumvar.h')
-rw-r--r--sys/dev/vinum/vinumvar.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/vinum/vinumvar.h b/sys/dev/vinum/vinumvar.h
index ca54f76..ee347fc 100644
--- a/sys/dev/vinum/vinumvar.h
+++ b/sys/dev/vinum/vinumvar.h
@@ -185,6 +185,7 @@ enum objflags {
VF_CONFIG_SETUPSTATE = 0x2000, /* set a volume up if all plexes are empty */
VF_READING_CONFIG = 0x4000, /* we're reading config database from disk */
VF_KERNELOP = 0x8000, /* we're performing ops from kernel space */
+ VF_DIRTYCONFIG = 0x10000, /* config needs updating */
};
/* Global configuration information for the vinum subsystem */
@@ -212,6 +213,8 @@ struct _vinum_conf {
#if DEBUG
int lastrq;
struct buf *lastbuf;
+ struct rqinfo **rqipp;
+ struct rqinfo *rqinfop;
#endif
};
@@ -226,7 +229,7 @@ struct _vinum_conf {
* Vinum drives start with this structure:
*
- * Sector
+ *\ Sector
* |--------------------------------------|
* | PDP-11 memorial boot block | 0
* |--------------------------------------|
@@ -500,11 +503,15 @@ enum setstateflags {
setstate_force = 1, /* force the state change */
setstate_configuring = 2, /* we're currently configuring, don't save */
setstate_recursing = 4, /* we're called from another setstate function */
- setstate_norecurse = 8 /* don't call other setstate functions */
+ setstate_norecurse = 8, /* don't call other setstate functions */
+ setstate_noupdate = 16 /* don't update config */
};
#ifdef DEBUG
/* Debugging stuff */
#define DEBUG_ADDRESSES 1
#define DEBUG_NUMOUTPUT 2
+#define DEBUG_RESID 4 /* go into debugger in complete_rqe */
+#define DEBUG_LASTREQS 8 /* keep a circular buffer of last requests */
+#define DEBUG_REMOTEGDB 256 /* go into remote gdb */
#endif
OpenPOWER on IntegriCloud