From 8d8bf4059a879c24b56b934d3b3efda655a32a7f Mon Sep 17 00:00:00 2001 From: grog Date: Thu, 24 Jun 1999 08:52:27 +0000 Subject: Clarify some comments. struct request: Add a daemon function to close drives when they go down. --- sys/dev/vinum/request.h | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/sys/dev/vinum/request.h b/sys/dev/vinum/request.h index 93010e6..b070f85 100644 --- a/sys/dev/vinum/request.h +++ b/sys/dev/vinum/request.h @@ -20,7 +20,7 @@ * 4. Neither the name of the Company nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. - * + * * This software is provided ``as is'', and any express or implied * warranties, including, but not limited to, the implied warranties of * merchantability and fitness for a particular purpose are disclaimed. @@ -33,7 +33,7 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: request.h,v 1.13 1999/01/14 05:46:22 grog Exp grog $ + * $Id: request.h,v 1.14 1999/03/16 03:37:50 grog Exp grog $ */ /* Information needed to set up a transfer */ @@ -66,16 +66,18 @@ enum xferinfo { }; /* - * Describe one low-level request, part - * of a high-level request. This is an - * extended struct buf buffer, and the first - * element *must* be a struct buf. We pass this structure - * to the I/O routines instead of a struct buf in oder - * to be able to locate the high-level request when it - * completes. + * Describe one low-level request, part of a + * high-level request. This is an extended + * struct buf buffer, and the first element + * *must* be a struct buf. We pass this + * structure to the I/O routines instead of a + * struct buf in order to be able to locate the + * high-level request when it completes. * - * All offsets and lengths are in "blocks", i.e. sectors + * All offsets and lengths are in "blocks", + * i.e. sectors. */ + struct rqelement { struct buf b; /* buf structure */ struct rqgroup *rqg; /* pointer to our group */ @@ -83,14 +85,16 @@ struct rqelement { daddr_t sdoffset; /* offset in subdisk */ int useroffset; /* offset in user buffer of normal data */ /* - * dataoffset and datalen refer to "individual" - * data transfers (normal read, parityless write) - * and also degraded write. + * dataoffset and datalen refer to + * "individual" data transfers which involve + * only this drive (normal read, parityless + * write) and also degraded write. * * groupoffset and grouplen refer to the other - * "group" operations (normal write, recovery read) - * Both the offsets are relative to the start of the - * local buffer + * "group" operations (normal write, recovery + * read) which involve more than one drive. + * Both the offsets are relative to the start + * of the local buffer. */ int dataoffset; /* offset in buffer of the normal data */ int groupoffset; /* offset in buffer of group data */ @@ -105,7 +109,7 @@ struct rqelement { /* * A group of requests built to satisfy a certain - * component of a user request + * component of a user request. */ struct rqgroup { struct rqgroup *next; /* pointer to next group */ @@ -120,7 +124,7 @@ struct rqgroup { /* * Describe one high-level request and the - * work we have to do to satisfy it + * work we have to do to satisfy it. */ struct request { struct buf *bp; /* pointer to the high-level request */ @@ -140,7 +144,7 @@ struct request { /* * Extended buffer header for subdisk I/O. Includes - * a pointer to the user I/O request. + * a pointer to the user I/O request. */ struct sdbuf { struct buf b; /* our buffer */ @@ -153,7 +157,7 @@ struct sdbuf { * Values returned by rqe and friends. * Be careful with these: they are in order of increasing * seriousness. Some routines check for > REQUEST_RECOVERED - * to indicate a completely failed request. + * to indicate a completely failed request. */ enum requeststatus { REQUEST_OK, /* request built OK */ @@ -206,6 +210,7 @@ enum daemonrq { daemonrq_ping, /* show sign of life */ daemonrq_init, /* initialize a plex */ daemonrq_revive, /* revive a subdisk */ + daemonrq_closedrive, /* close a drive */ }; /* info field for daemon requests */ @@ -213,6 +218,7 @@ union daemoninfo { /* and the request information */ struct request *rq; /* for daemonrq_ioerror */ struct sd *sd; /* for daemonrq_revive */ struct plex *plex; /* for daemonrq_init */ + struct drive *drive; /* for daemonrq_closedrive */ int nothing; /* for passing NULL */ }; -- cgit v1.1