\hypertarget{geom__vinum__var_8h_source}{}\doxysection{geom\+\_\+vinum\+\_\+var.\+h}
\label{geom__vinum__var_8h_source}\index{geom/vinum/geom\_vinum\_var.h@{geom/vinum/geom\_vinum\_var.h}}
\mbox{\hyperlink{geom__vinum__var_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/4-\/Clause}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2004, 2007 Lukas Ertl}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 1997, 1998, 1999}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00006}00006 \textcolor{comment}{ *      Nan Yang Computer Services Limited.  All rights reserved.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00008}00008 \textcolor{comment}{ * Parts copyright (c) 1997, 1998 Cybernet Corporation, NetMAX project.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00009}00009 \textcolor{comment}{ * Parts written by Greg Lehey.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00010}00010 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00011}00011 \textcolor{comment}{ *  This software is distributed under the so-\/called ``Berkeley}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00012}00012 \textcolor{comment}{ *  License'':                                                                    *}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00013}00013 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00014}00014 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00015}00015 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00016}00016 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00017}00017 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00018}00018 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00019}00019 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00020}00020 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00021}00021 \textcolor{comment}{ * 3. All advertising materials mentioning features or use of this software}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00022}00022 \textcolor{comment}{ *    must display the following acknowledgement:}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00023}00023 \textcolor{comment}{ *      This product includes software developed by Nan Yang Computer}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00024}00024 \textcolor{comment}{ *      Services Limited.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00025}00025 \textcolor{comment}{ * 4. Neither the name of the Company nor the names of its contributors}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00026}00026 \textcolor{comment}{ *    may be used to endorse or promote products derived from this software}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00027}00027 \textcolor{comment}{ *    without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00028}00028 \textcolor{comment}{ *  }}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00029}00029 \textcolor{comment}{ * This software is provided ``as is'', and any express or implied}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00030}00030 \textcolor{comment}{ * warranties, including, but not limited to, the implied warranties of}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00031}00031 \textcolor{comment}{ * merchantability and fitness for a particular purpose are disclaimed.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00032}00032 \textcolor{comment}{ * In no event shall the company or contributors be liable for any               * direct, indirect, incidental, special, exemplary, or consequential}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00033}00033 \textcolor{comment}{ * damages (including, but not limited to, procurement of substitute}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00034}00034 \textcolor{comment}{ * goods or services; loss of use, data, or profits; or business}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00035}00035 \textcolor{comment}{ * interruption) however caused and on any theory of liability, whether}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00036}00036 \textcolor{comment}{ * in contract, strict liability, or tort (including negligence or}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00037}00037 \textcolor{comment}{ * otherwise) arising in any way out of the use of this software, even if}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00038}00038 \textcolor{comment}{ * advised of the possibility of such damage.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00039}00039 \textcolor{comment}{ *  }}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00040}00040 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00041}00041 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00043}00043 \textcolor{preprocessor}{\#ifndef \_GEOM\_VINUM\_VAR\_H\_}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00044}00044 \textcolor{preprocessor}{\#define \_GEOM\_VINUM\_VAR\_H\_}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00046}00046 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00047}00047 \textcolor{comment}{ * Slice header}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00048}00048 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00049}00049 \textcolor{comment}{ * Vinum drives start with this structure:}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00050}00050 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00051}00051 \textcolor{comment}{ *\(\backslash\)                                            Sector}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00052}00052 \textcolor{comment}{ * |-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/|}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00053}00053 \textcolor{comment}{ * |   PDP-\/11 memorial boot block         |      0}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00054}00054 \textcolor{comment}{ * |-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/|}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00055}00055 \textcolor{comment}{ * |   Disk label, maybe                  |      1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00056}00056 \textcolor{comment}{ * |-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/|}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00057}00057 \textcolor{comment}{ * |   Slice definition  (vinum\_hdr)      |      8}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00058}00058 \textcolor{comment}{ * |-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/|}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00059}00059 \textcolor{comment}{ * |                                      |}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00060}00060 \textcolor{comment}{ * |   Configuration info, first copy     |      9}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00061}00061 \textcolor{comment}{ * |                                      |}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00062}00062 \textcolor{comment}{ * |-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/|}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00063}00063 \textcolor{comment}{ * |                                      |}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00064}00064 \textcolor{comment}{ * |   Configuration info, second copy    |      9 + size of config}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00065}00065 \textcolor{comment}{ * |                                      |}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00066}00066 \textcolor{comment}{ * |-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/|}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00067}00067 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00069}00069 \textcolor{comment}{/* Sizes and offsets of our information. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00070}\mbox{\hyperlink{geom__vinum__var_8h_adb0ec2b339a204b6ff15f4928e9d58a1}{00070}} \textcolor{preprocessor}{\#define GV\_HDR\_OFFSET   4096    }\textcolor{comment}{/* Offset of vinum header. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00071}\mbox{\hyperlink{geom__vinum__var_8h_a1be1fbdcd7d6587989a4f92a552ab05a}{00071}} \textcolor{preprocessor}{\#define GV\_HDR\_LEN      512     }\textcolor{comment}{/* Size of vinum header. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00072}\mbox{\hyperlink{geom__vinum__var_8h_a4370be27acf9dd153cf01d582d533834}{00072}} \textcolor{preprocessor}{\#define GV\_CFG\_OFFSET   4608    }\textcolor{comment}{/* Offset of first config copy. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00073}\mbox{\hyperlink{geom__vinum__var_8h_a6c3c83ed812a770435735ffed804e98f}{00073}} \textcolor{preprocessor}{\#define GV\_CFG\_LEN      65536   }\textcolor{comment}{/* Size of config copy. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00074}00074 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00075}00075 \textcolor{comment}{/* This is where the actual data starts. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00076}\mbox{\hyperlink{geom__vinum__var_8h_a41a10b380adbacc1eebe7ed20a3cfdad}{00076}} \textcolor{preprocessor}{\#define GV\_DATA\_START   (GV\_CFG\_LEN * 2 + GV\_CFG\_OFFSET)}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00077}00077 \textcolor{comment}{/* \#define GV\_DATA\_START        (GV\_CFG\_LEN * 2 + GV\_HDR\_LEN) */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00078}00078 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00079}\mbox{\hyperlink{geom__vinum__var_8h_a5b0ca71b395a8780c1056041a4a3f56c}{00079}} \textcolor{preprocessor}{\#define GV\_MAXDRIVENAME 32      }\textcolor{comment}{/* Maximum length of a device name. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00080}\mbox{\hyperlink{geom__vinum__var_8h_a107a2bc0616c9e28a0bd12e967d4c5b4}{00080}} \textcolor{preprocessor}{\#define GV\_MAXSDNAME    64      }\textcolor{comment}{/* Maximum length of a subdisk name. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00081}\mbox{\hyperlink{geom__vinum__var_8h_aa8c6366f0e203d09152dc02f2d4fda3a}{00081}} \textcolor{preprocessor}{\#define GV\_MAXPLEXNAME  64      }\textcolor{comment}{/* Maximum length of a plex name. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00082}\mbox{\hyperlink{geom__vinum__var_8h_a4527a51313b9d7ed77b6d0ff5c461623}{00082}} \textcolor{preprocessor}{\#define GV\_MAXVOLNAME   64      }\textcolor{comment}{/* Maximum length of a volume name. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00083}00083 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00084}00084 \textcolor{comment}{/* Command line flags. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00085}\mbox{\hyperlink{geom__vinum__var_8h_a99744114a3bac7a8fa5e51db81837c3d}{00085}} \textcolor{preprocessor}{\#define GV\_FLAG\_R       0x01}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00086}\mbox{\hyperlink{geom__vinum__var_8h_a8db5b81ccd9b2a6b364f68e773fcbd92}{00086}} \textcolor{preprocessor}{\#define GV\_FLAG\_S       0x02}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00087}\mbox{\hyperlink{geom__vinum__var_8h_a7ec60b9e571a8dd40d0ee02875cbb1a7}{00087}} \textcolor{preprocessor}{\#define GV\_FLAG\_V       0x04}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00088}\mbox{\hyperlink{geom__vinum__var_8h_a3dc41db1a74cb75768dd540377e04761}{00088}} \textcolor{preprocessor}{\#define GV\_FLAG\_VV      0x08}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00089}\mbox{\hyperlink{geom__vinum__var_8h_a916ff06e2bdbe5d20c32322c9a75128b}{00089}} \textcolor{preprocessor}{\#define GV\_FLAG\_F       0x10}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00090}00090 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00091}00091 \textcolor{comment}{/* Object types. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00092}\mbox{\hyperlink{geom__vinum__var_8h_ac00b5b481f097143593b6ac29dd4156f}{00092}} \textcolor{preprocessor}{\#define GV\_TYPE\_VOL     1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00093}\mbox{\hyperlink{geom__vinum__var_8h_a2a21f3f69c0e60c425744a299cd49a6f}{00093}} \textcolor{preprocessor}{\#define GV\_TYPE\_PLEX    2}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00094}\mbox{\hyperlink{geom__vinum__var_8h_acb4b8aa524c3ba1c7abaa181a5cb6bb9}{00094}} \textcolor{preprocessor}{\#define GV\_TYPE\_SD      3}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00095}\mbox{\hyperlink{geom__vinum__var_8h_a4f601240cfd57a614dee2cca5a2e9d67}{00095}} \textcolor{preprocessor}{\#define GV\_TYPE\_DRIVE   4}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00096}00096 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00097}00097 \textcolor{comment}{/* State changing flags. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00098}\mbox{\hyperlink{geom__vinum__var_8h_aff3aa8190eaa79b37017c0a247c4bfb9}{00098}} \textcolor{preprocessor}{\#define GV\_SETSTATE\_FORCE       0x1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00099}\mbox{\hyperlink{geom__vinum__var_8h_a5015f80eba1026837e357a5b3f5ca7bb}{00099}} \textcolor{preprocessor}{\#define GV\_SETSTATE\_CONFIG      0x2}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00100}00100 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00101}00101 \textcolor{comment}{/* Subdisk state bitmaps for plexes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00102}\mbox{\hyperlink{geom__vinum__var_8h_ac6b70b573a2ca73882bc1e7c11d5343b}{00102}} \textcolor{preprocessor}{\#define GV\_SD\_DOWNSTATE         0x01    }\textcolor{comment}{/* Subdisk is down. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00103}\mbox{\hyperlink{geom__vinum__var_8h_a0ae1a61f9fa533a335c50bf470abd2c3}{00103}} \textcolor{preprocessor}{\#define GV\_SD\_STALESTATE        0x02    }\textcolor{comment}{/* Subdisk is stale. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00104}\mbox{\hyperlink{geom__vinum__var_8h_ad73f1d427bef51384a23154ad0f31b89}{00104}} \textcolor{preprocessor}{\#define GV\_SD\_INITSTATE         0x04    }\textcolor{comment}{/* Subdisk is initializing. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00105}\mbox{\hyperlink{geom__vinum__var_8h_a13610e128cf1e379398747f96c1a8c41}{00105}} \textcolor{preprocessor}{\#define GV\_SD\_UPSTATE           0x08    }\textcolor{comment}{/* Subdisk is up. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00107}00107 \textcolor{comment}{/* Synchronization/initialization request sizes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00108}\mbox{\hyperlink{geom__vinum__var_8h_a3d6ae949041c47234b8cc471c6d0df2e}{00108}} \textcolor{preprocessor}{\#define GV\_MIN\_SYNCSIZE         512}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00109}\mbox{\hyperlink{geom__vinum__var_8h_aab1a68690f059b46b96ea4777d999294}{00109}} \textcolor{preprocessor}{\#define GV\_MAX\_SYNCSIZE         maxphys}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00110}\mbox{\hyperlink{geom__vinum__var_8h_ad84cadf344e9db2631304a31726ab953}{00110}} \textcolor{preprocessor}{\#define GV\_DFLT\_SYNCSIZE        65536}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00111}00111 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00112}00112 \textcolor{comment}{/* Flags for BIOs, as they are processed within vinum. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00113}\mbox{\hyperlink{geom__vinum__var_8h_a6236c35e932d6914f6818865ac32fbd8}{00113}} \textcolor{preprocessor}{\#define GV\_BIO\_GROW     0x01}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00114}\mbox{\hyperlink{geom__vinum__var_8h_ad280c068b1168acdcdc2064024d54f95}{00114}} \textcolor{preprocessor}{\#define GV\_BIO\_MALLOC   0x02}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00115}\mbox{\hyperlink{geom__vinum__var_8h_a7f7be1ada34be0f4b60d9b7675f0fbe3}{00115}} \textcolor{preprocessor}{\#define GV\_BIO\_ONHOLD   0x04}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00116}\mbox{\hyperlink{geom__vinum__var_8h_a7ec2ae8b8f781367b43b86d0879acc13}{00116}} \textcolor{preprocessor}{\#define GV\_BIO\_SYNCREQ  0x08}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00117}\mbox{\hyperlink{geom__vinum__var_8h_a5632598a5f005134df05bbc85868551e}{00117}} \textcolor{preprocessor}{\#define GV\_BIO\_INIT     0x10}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00118}\mbox{\hyperlink{geom__vinum__var_8h_a66b73898628473532c02ab0d692e17a7}{00118}} \textcolor{preprocessor}{\#define GV\_BIO\_REBUILD  0x20}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00119}\mbox{\hyperlink{geom__vinum__var_8h_ae600d8e4f9500fea2a7e91e59198ccec}{00119}} \textcolor{preprocessor}{\#define GV\_BIO\_CHECK    0x40}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00120}\mbox{\hyperlink{geom__vinum__var_8h_a41c57c709a8ded486887ca2a3a9d45d2}{00120}} \textcolor{preprocessor}{\#define GV\_BIO\_PARITY   0x80}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00121}\mbox{\hyperlink{geom__vinum__var_8h_a94386dbf2c0a5844982a7b6762d88423}{00121}} \textcolor{preprocessor}{\#define GV\_BIO\_INTERNAL \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00122}00122 \textcolor{preprocessor}{    (GV\_BIO\_SYNCREQ | GV\_BIO\_INIT | GV\_BIO\_REBUILD | GV\_BIO\_CHECK | GV\_BIO\_GROW)}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00124}00124 \textcolor{comment}{/* Error codes to be used within gvinum. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00125}\mbox{\hyperlink{geom__vinum__var_8h_ab7754e801e32ba31fc925dc54f224708}{00125}} \textcolor{preprocessor}{\#define GV\_ERR\_SETSTATE         (-\/1)    }\textcolor{comment}{/* Error setting state. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00126}\mbox{\hyperlink{geom__vinum__var_8h_a3d73ee9cebd3e0cd7c6001d70ccf027c}{00126}} \textcolor{preprocessor}{\#define GV\_ERR\_BADSIZE          (-\/2)    }\textcolor{comment}{/* Object has wrong size. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00127}\mbox{\hyperlink{geom__vinum__var_8h_a3c233435eafa5a210c8b21f484061149}{00127}} \textcolor{preprocessor}{\#define GV\_ERR\_INVTYPE          (-\/3)    }\textcolor{comment}{/* Invalid object type. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00128}\mbox{\hyperlink{geom__vinum__var_8h_a32a00379f5d1c16f4d2808120d503bdb}{00128}} \textcolor{preprocessor}{\#define GV\_ERR\_CREATE           (-\/4)    }\textcolor{comment}{/* Error creating gvinum object. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00129}\mbox{\hyperlink{geom__vinum__var_8h_a34608a22fc52b3fc8b0d849ee996e0a7}{00129}} \textcolor{preprocessor}{\#define GV\_ERR\_ISBUSY           (-\/5)    }\textcolor{comment}{/* Object is busy. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00130}\mbox{\hyperlink{geom__vinum__var_8h_a99756b5de9852cd4510167afb3c477df}{00130}} \textcolor{preprocessor}{\#define GV\_ERR\_ISATTACHED       (-\/6)    }\textcolor{comment}{/* Object is attached to another. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00131}\mbox{\hyperlink{geom__vinum__var_8h_ada1000a7c1cc0029c956bae687c46279}{00131}} \textcolor{preprocessor}{\#define GV\_ERR\_INVFLAG          (-\/7)    }\textcolor{comment}{/* Invalid flag passed. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00132}\mbox{\hyperlink{geom__vinum__var_8h_a8cee3d102e39840048f667e4965028d0}{00132}} \textcolor{preprocessor}{\#define GV\_ERR\_INVSTATE         (-\/8)    }\textcolor{comment}{/* Invalid state. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00133}\mbox{\hyperlink{geom__vinum__var_8h_ab8633f9cf1571091fdadc9e3e0521955}{00133}} \textcolor{preprocessor}{\#define GV\_ERR\_NOTFOUND         (-\/9)    }\textcolor{comment}{/* Object not found. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00134}\mbox{\hyperlink{geom__vinum__var_8h_aaaa75bcfb6886e6cc48ef4c19d654f13}{00134}} \textcolor{preprocessor}{\#define GV\_ERR\_NAMETAKEN        (-\/10)   }\textcolor{comment}{/* Object name is taken. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00135}\mbox{\hyperlink{geom__vinum__var_8h_a615fef907719df54f5cc52528ce446a9}{00135}} \textcolor{preprocessor}{\#define GV\_ERR\_NOSPACE          (-\/11)   }\textcolor{comment}{/* No space left on drive/subdisk. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00136}\mbox{\hyperlink{geom__vinum__var_8h_af3db933b99d4c5e303ac210879c0d0e4}{00136}} \textcolor{preprocessor}{\#define GV\_ERR\_BADOFFSET        (-\/12)   }\textcolor{comment}{/* Invalid offset specified. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00137}\mbox{\hyperlink{geom__vinum__var_8h_acd2e3306a9eac5979a251a8e0ffeed45}{00137}} \textcolor{preprocessor}{\#define GV\_ERR\_INVNAME          (-\/13)   }\textcolor{comment}{/* Invalid object name. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00138}\mbox{\hyperlink{geom__vinum__var_8h_aba3c9f4d2817ca3c9aad0883875b2b28}{00138}} \textcolor{preprocessor}{\#define GV\_ERR\_PLEXORG          (-\/14)   }\textcolor{comment}{/* Invalid plex organization. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00139}00139 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00140}00140 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00141}00141 \textcolor{comment}{ * hostname is 256 bytes long, but we don't need to shlep multiple copies in}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00142}00142 \textcolor{comment}{ * vinum.  We use the host name just to identify this system, and 32 bytes}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00143}00143 \textcolor{comment}{ * should be ample for that purpose.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00144}00144 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00145}00145 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00146}\mbox{\hyperlink{geom__vinum__var_8h_ab5d4f058f58781a3a1c0a4d9818ec2b7}{00146}} \textcolor{preprocessor}{\#define GV\_HOSTNAME\_LEN 32}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00147}\mbox{\hyperlink{structgv__label}{00147}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__label}{gv\_label}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00148}\mbox{\hyperlink{structgv__label_a2d6f939131335ca1ab0f2353e7574145}{00148}}         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__label_a2d6f939131335ca1ab0f2353e7574145}{sysname}}[\mbox{\hyperlink{geom__vinum__var_8h_ab5d4f058f58781a3a1c0a4d9818ec2b7}{GV\_HOSTNAME\_LEN}}]; \textcolor{comment}{/* System name at creation time. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00149}\mbox{\hyperlink{structgv__label_ad9f1874fb38fc9ebfc9962588757f0bc}{00149}}         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__label_ad9f1874fb38fc9ebfc9962588757f0bc}{name}}[\mbox{\hyperlink{geom__vinum__var_8h_a5b0ca71b395a8780c1056041a4a3f56c}{GV\_MAXDRIVENAME}}];       \textcolor{comment}{/* Our name of the drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00150}\mbox{\hyperlink{structgv__label_aba23425e488a0b6a143b982ccc38e608}{00150}}         \textcolor{keyword}{struct }timeval  \mbox{\hyperlink{structgv__label_aba23425e488a0b6a143b982ccc38e608}{date\_of\_birth}};     \textcolor{comment}{/* The time it was created ... */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00151}\mbox{\hyperlink{structgv__label_ab9734ccbc7a3a4f46ffbbff40c4a41c4}{00151}}         \textcolor{keyword}{struct }timeval  \mbox{\hyperlink{structgv__label_ab9734ccbc7a3a4f46ffbbff40c4a41c4}{last\_update}}; \textcolor{comment}{/* ... and the time of last update. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00152}\mbox{\hyperlink{structgv__label_abec50855cb03cff9fa2cfc19947e5e5e}{00152}}         off\_t           \mbox{\hyperlink{structgv__label_abec50855cb03cff9fa2cfc19947e5e5e}{drive\_size}};   \textcolor{comment}{/* Total size incl. headers. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00153}00153 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00154}00154 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00155}00155 \textcolor{comment}{/* The 'header' of each valid vinum drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00156}\mbox{\hyperlink{structgv__hdr}{00156}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__hdr}{gv\_hdr}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00157}\mbox{\hyperlink{structgv__hdr_a959aa1edaed399d2b4ba914ccecad4f4}{00157}}         uint64\_t        \mbox{\hyperlink{structgv__hdr_a959aa1edaed399d2b4ba914ccecad4f4}{magic}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00158}\mbox{\hyperlink{geom__vinum__var_8h_acedf054504b600dbb465cdfd4b3546a4}{00158}} \textcolor{preprocessor}{\#define GV\_OLD\_MAGIC    0x494E2056494E4F00LL}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00159}\mbox{\hyperlink{geom__vinum__var_8h_ae97fd92e3064764f145fc74bd76d6ce8}{00159}} \textcolor{preprocessor}{\#define GV\_OLD\_NOMAGIC  0x4E4F2056494E4F00LL}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00160}\mbox{\hyperlink{geom__vinum__var_8h_a64cef7148ef7b5300d837c41ebb2a043}{00160}} \textcolor{preprocessor}{\#define GV\_MAGIC        0x56494E554D2D3100LL}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00161}\mbox{\hyperlink{geom__vinum__var_8h_a440f4f4e9444572bf991be69c1cd543d}{00161}} \textcolor{preprocessor}{\#define GV\_NOMAGIC      0x56494E554D2D2D00LL}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00162}00162 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00163}\mbox{\hyperlink{structgv__hdr_aa9578dadf76608e34735a67562883257}{00163}}         uint64\_t        \mbox{\hyperlink{structgv__hdr_aa9578dadf76608e34735a67562883257}{config\_length}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00164}\mbox{\hyperlink{structgv__hdr_a1b79d91c9f053afaf4f3b2c484d86ad6}{00164}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__label}{gv\_label}} \mbox{\hyperlink{structgv__hdr_a1b79d91c9f053afaf4f3b2c484d86ad6}{label}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00165}00165 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00166}00166 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00167}00167 \textcolor{comment}{/* A single freelist entry of a drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00168}\mbox{\hyperlink{structgv__freelist}{00168}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__freelist}{gv\_freelist}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00169}\mbox{\hyperlink{structgv__freelist_a24c49538b2057655ead0d0b71772d3b4}{00169}}         off\_t \mbox{\hyperlink{structgv__freelist_a24c49538b2057655ead0d0b71772d3b4}{size}};                         \textcolor{comment}{/* Size of this free slot. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00170}\mbox{\hyperlink{structgv__freelist_a1729993ab39e0f0299785dc7a914eeab}{00170}}         off\_t \mbox{\hyperlink{structgv__freelist_a1729993ab39e0f0299785dc7a914eeab}{offset}};                             \textcolor{comment}{/* Offset on the drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00171}\mbox{\hyperlink{structgv__freelist_a8b98bba65aabd28926dca6d4d835934a}{00171}}         \mbox{\hyperlink{structgv__freelist_a8b98bba65aabd28926dca6d4d835934a}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__freelist}{gv\_freelist}}) freelist;}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00172}00172 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00173}00173 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00174}00174 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00175}00175 \textcolor{comment}{ * Since we share structures between userland and kernel, we need this helper}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00176}00176 \textcolor{comment}{ * struct instead of struct bio\_queue\_head and friends.  Maybe I find a proper}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00177}00177 \textcolor{comment}{ * solution some day.}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00178}00178 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00179}\mbox{\hyperlink{structgv__bioq}{00179}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__bioq}{gv\_bioq}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00180}\mbox{\hyperlink{structgv__bioq_a2ca0d4bfe4e38758b45d4707d55af174}{00180}}         \textcolor{keyword}{struct }bio *\mbox{\hyperlink{structgv__bioq_a2ca0d4bfe4e38758b45d4707d55af174}{bp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00181}\mbox{\hyperlink{structgv__bioq_a7229274f32312087606c5e8be56528ab}{00181}}         \mbox{\hyperlink{structgv__bioq_a7229274f32312087606c5e8be56528ab}{TAILQ\_ENTRY}}(\mbox{\hyperlink{structgv__bioq}{gv\_bioq}})  queue;}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00182}00182 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00184}\mbox{\hyperlink{geom__vinum__var_8h_a195ede1f328c4badc1d6a30ea866d785}{00184}} \textcolor{preprocessor}{\#define GV\_EVENT\_DRIVE\_TASTED           1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00185}\mbox{\hyperlink{geom__vinum__var_8h_af6c963b13a8139c90c26098807a626c3}{00185}} \textcolor{preprocessor}{\#define GV\_EVENT\_DRIVE\_LOST             2}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00186}\mbox{\hyperlink{geom__vinum__var_8h_af2776e15db7cdcf355d233b026e7fff8}{00186}} \textcolor{preprocessor}{\#define GV\_EVENT\_THREAD\_EXIT            3}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00187}\mbox{\hyperlink{geom__vinum__var_8h_a480b951d3b2be99105033ae9610e6649}{00187}} \textcolor{preprocessor}{\#define GV\_EVENT\_CREATE\_DRIVE           4}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00188}\mbox{\hyperlink{geom__vinum__var_8h_a6888b5f96c632fb9855773ada490edc1}{00188}} \textcolor{preprocessor}{\#define GV\_EVENT\_CREATE\_VOLUME          5}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00189}\mbox{\hyperlink{geom__vinum__var_8h_a5565910a1dd3dacbe9b0ac6c7cf10019}{00189}} \textcolor{preprocessor}{\#define GV\_EVENT\_CREATE\_PLEX            6}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00190}\mbox{\hyperlink{geom__vinum__var_8h_a4ab966fca5e2e79772385350fbc3b368}{00190}} \textcolor{preprocessor}{\#define GV\_EVENT\_CREATE\_SD              7}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00191}\mbox{\hyperlink{geom__vinum__var_8h_a3f48efe317df71ff850737d390626744}{00191}} \textcolor{preprocessor}{\#define GV\_EVENT\_SAVE\_CONFIG            8}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00192}\mbox{\hyperlink{geom__vinum__var_8h_ac17d0d1cd7fa94ded622c3395ccae3f0}{00192}} \textcolor{preprocessor}{\#define GV\_EVENT\_RM\_VOLUME              9}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00193}\mbox{\hyperlink{geom__vinum__var_8h_ac801d3ac3883ae3f61ed231fffea6172}{00193}} \textcolor{preprocessor}{\#define GV\_EVENT\_RM\_PLEX                10}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00194}\mbox{\hyperlink{geom__vinum__var_8h_a108798cc4cad36a12b3086daf968ad3a}{00194}} \textcolor{preprocessor}{\#define GV\_EVENT\_RM\_SD                  11}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00195}\mbox{\hyperlink{geom__vinum__var_8h_abb0a5ac4c1f727f5a4ce2bb3bdebc8f8}{00195}} \textcolor{preprocessor}{\#define GV\_EVENT\_RM\_DRIVE               12}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00196}\mbox{\hyperlink{geom__vinum__var_8h_ac1b8cf9a4aa038cfdef57f93ec194f7a}{00196}} \textcolor{preprocessor}{\#define GV\_EVENT\_SET\_SD\_STATE           13}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00197}\mbox{\hyperlink{geom__vinum__var_8h_a05586992825ebb2ad76d56db2ebca698}{00197}} \textcolor{preprocessor}{\#define GV\_EVENT\_SET\_DRIVE\_STATE        14}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00198}\mbox{\hyperlink{geom__vinum__var_8h_a7ae1dad97b995a4c4236bfcf89215e72}{00198}} \textcolor{preprocessor}{\#define GV\_EVENT\_SET\_VOL\_STATE          15}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00199}\mbox{\hyperlink{geom__vinum__var_8h_ac7a1b177b6ba4cb23559c7be832dac60}{00199}} \textcolor{preprocessor}{\#define GV\_EVENT\_SET\_PLEX\_STATE         16}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00200}\mbox{\hyperlink{geom__vinum__var_8h_af910d594c3d69ffff471443dbee27fcc}{00200}} \textcolor{preprocessor}{\#define GV\_EVENT\_RESET\_CONFIG           17}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00201}\mbox{\hyperlink{geom__vinum__var_8h_a3c68affa6a823d58135adeceecf262b3}{00201}} \textcolor{preprocessor}{\#define GV\_EVENT\_PARITY\_REBUILD         18}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00202}\mbox{\hyperlink{geom__vinum__var_8h_a6bae96aa1c56a021d71b0c54ebc3d4b0}{00202}} \textcolor{preprocessor}{\#define GV\_EVENT\_PARITY\_CHECK           19}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00203}\mbox{\hyperlink{geom__vinum__var_8h_a7c66dc8dba5b5f222ab61e656d446b7c}{00203}} \textcolor{preprocessor}{\#define GV\_EVENT\_START\_PLEX             20}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00204}\mbox{\hyperlink{geom__vinum__var_8h_a8b4d22d714d8208b053befae4efab0dc}{00204}} \textcolor{preprocessor}{\#define GV\_EVENT\_START\_VOLUME           21}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00205}\mbox{\hyperlink{geom__vinum__var_8h_a414abb4c5f5d30e390c6759952b1d57e}{00205}} \textcolor{preprocessor}{\#define GV\_EVENT\_ATTACH\_PLEX            22}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00206}\mbox{\hyperlink{geom__vinum__var_8h_a650a63b1e11b4dc9090d8ecfaa693981}{00206}} \textcolor{preprocessor}{\#define GV\_EVENT\_ATTACH\_SD              23}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00207}\mbox{\hyperlink{geom__vinum__var_8h_a4b247265713baeb9b91c00511a112278}{00207}} \textcolor{preprocessor}{\#define GV\_EVENT\_DETACH\_PLEX            24}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00208}\mbox{\hyperlink{geom__vinum__var_8h_ac967b716907874cfd92064647ffb6391}{00208}} \textcolor{preprocessor}{\#define GV\_EVENT\_DETACH\_SD              25}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00209}\mbox{\hyperlink{geom__vinum__var_8h_af01e6b524901b3a26442f099caaf54db}{00209}} \textcolor{preprocessor}{\#define GV\_EVENT\_RENAME\_VOL             26}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00210}\mbox{\hyperlink{geom__vinum__var_8h_ade9dff02a5e8a7d2750316340f3f3e80}{00210}} \textcolor{preprocessor}{\#define GV\_EVENT\_RENAME\_PLEX            27}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00211}\mbox{\hyperlink{geom__vinum__var_8h_ac6ccaf1377ad685a73708fdeddbc10d8}{00211}} \textcolor{preprocessor}{\#define GV\_EVENT\_RENAME\_SD              28}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00212}\mbox{\hyperlink{geom__vinum__var_8h_a342e86c8c807bd96d1c335afac5e472e}{00212}} \textcolor{preprocessor}{\#define GV\_EVENT\_RENAME\_DRIVE           29}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00213}\mbox{\hyperlink{geom__vinum__var_8h_a09230185db91cc767b0abeab165df846}{00213}} \textcolor{preprocessor}{\#define GV\_EVENT\_MOVE\_SD                30}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00214}\mbox{\hyperlink{geom__vinum__var_8h_a3b9d93a59b0f7777ed50c19e9f2b730c}{00214}} \textcolor{preprocessor}{\#define GV\_EVENT\_SETUP\_OBJECTS          31}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00215}00215 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00216}00216 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00217}\mbox{\hyperlink{structgv__event}{00217}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__event}{gv\_event}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00218}\mbox{\hyperlink{structgv__event_aa246af9f1f13d0315a3df56bf55cb9f8}{00218}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__event_aa246af9f1f13d0315a3df56bf55cb9f8}{type}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00219}\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{00219}}         \textcolor{keywordtype}{void}    *\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00220}\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{00220}}         \textcolor{keywordtype}{void}    *\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00221}\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{00221}}         intmax\_t \mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00222}\mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{00222}}         intmax\_t \mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{arg4}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00223}\mbox{\hyperlink{structgv__event_a99f1a89d2c1a13542a258b082b73b989}{00223}}         \mbox{\hyperlink{structgv__event_a99f1a89d2c1a13542a258b082b73b989}{TAILQ\_ENTRY}}(\mbox{\hyperlink{structgv__event}{gv\_event}})        events;}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00224}00224 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00225}00225 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00226}00226 \textcolor{comment}{/* This struct contains the main vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00227}\mbox{\hyperlink{structgv__softc}{00227}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00228}00228         \textcolor{comment}{/* Linked lists of all objects in our setup. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00229}\mbox{\hyperlink{structgv__softc_a38627758118f6b3771c81e08692299e3}{00229}}         \mbox{\hyperlink{structgv__softc_a38627758118f6b3771c81e08692299e3}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__drive}{gv\_drive}})   drives;         \textcolor{comment}{/* All drives. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00230}\mbox{\hyperlink{structgv__softc_aec6435469735dc8062c6041bc444a335}{00230}}         \mbox{\hyperlink{structgv__softc_aec6435469735dc8062c6041bc444a335}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__plex}{gv\_plex}})     plexes;         \textcolor{comment}{/* All plexes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00231}\mbox{\hyperlink{structgv__softc_af7948ca8f2823c3d7126dec3829e4171}{00231}}         \mbox{\hyperlink{structgv__softc_af7948ca8f2823c3d7126dec3829e4171}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__sd}{gv\_sd}}) subdisks;       \textcolor{comment}{/* All subdisks. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00232}\mbox{\hyperlink{structgv__softc_a8176cd1e5609c483f7b5b0354de7cb1e}{00232}}         \mbox{\hyperlink{structgv__softc_a8176cd1e5609c483f7b5b0354de7cb1e}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__volume}{gv\_volume}}) volumes;        \textcolor{comment}{/* All volumes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00233}00233 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00234}\mbox{\hyperlink{structgv__softc_a7e1e7bf52ecb6d3f355c44eae375f05c}{00234}}         \mbox{\hyperlink{structgv__softc_a7e1e7bf52ecb6d3f355c44eae375f05c}{TAILQ\_HEAD}}(,\mbox{\hyperlink{structgv__event}{gv\_event}}) equeue;         \textcolor{comment}{/* Event queue. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00235}\mbox{\hyperlink{structgv__softc_a47297f4eedb9eb29e5bfdf2f984df80e}{00235}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structgv__softc_a47297f4eedb9eb29e5bfdf2f984df80e}{equeue\_mtx}};   \textcolor{comment}{/* Event queue lock. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00236}\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{00236}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}};   \textcolor{comment}{/* BIO queue lock. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00237}\mbox{\hyperlink{structgv__softc_a04414d0bbb98bcc3a1167fbe75dfc914}{00237}}         \textcolor{keyword}{struct }mtx              \mbox{\hyperlink{structgv__softc_a04414d0bbb98bcc3a1167fbe75dfc914}{config\_mtx}};   \textcolor{comment}{/* Configuration lock. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00238}\mbox{\hyperlink{structgv__softc_a854eab818ff0c1d2aa4a65d0e992b715}{00238}}         \textcolor{keyword}{struct }bio\_queue\_head   *\mbox{\hyperlink{structgv__softc_a854eab818ff0c1d2aa4a65d0e992b715}{bqueue\_down}};        \textcolor{comment}{/* BIO queue incoming}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00239}00239 \textcolor{comment}{                                                   requests. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00240}\mbox{\hyperlink{structgv__softc_affb434652c15df650bb17cc545d4e402}{00240}}         \textcolor{keyword}{struct }bio\_queue\_head   *\mbox{\hyperlink{structgv__softc_affb434652c15df650bb17cc545d4e402}{bqueue\_up}};    \textcolor{comment}{/* BIO queue for completed}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00241}00241 \textcolor{comment}{                                                   requests. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00242}\mbox{\hyperlink{structgv__softc_a1e8edc954044192e67411991c0c91c2d}{00242}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}}             *\mbox{\hyperlink{structgv__softc_a1e8edc954044192e67411991c0c91c2d}{geom}};              \textcolor{comment}{/* Pointer to our VINUM geom. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00243}\mbox{\hyperlink{structgv__softc_a0062d2738969b5a506e71916cd158d77}{00243}}         \textcolor{keyword}{struct }proc             *\mbox{\hyperlink{structgv__softc_a0062d2738969b5a506e71916cd158d77}{worker}};  \textcolor{comment}{/* Worker process. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00244}00244 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00245}00245 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00246}00246 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00247}00247 \textcolor{comment}{/* softc for a drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00248}\mbox{\hyperlink{structgv__drive}{00248}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__drive}{gv\_drive}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00249}\mbox{\hyperlink{structgv__drive_a69e5c72365075804074d21c056111ebf}{00249}}         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__drive_a69e5c72365075804074d21c056111ebf}{name}}[\mbox{\hyperlink{geom__vinum__var_8h_a5b0ca71b395a8780c1056041a4a3f56c}{GV\_MAXDRIVENAME}}];               \textcolor{comment}{/* The name of this drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00250}\mbox{\hyperlink{structgv__drive_a940421a9537b8ce86596e18365122ae6}{00250}}         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__drive_a940421a9537b8ce86596e18365122ae6}{device}}[\mbox{\hyperlink{geom__vinum__var_8h_a5b0ca71b395a8780c1056041a4a3f56c}{GV\_MAXDRIVENAME}}];   \textcolor{comment}{/* Associated device. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00251}\mbox{\hyperlink{structgv__drive_af2b798d0717a723c580025dc04416ce7}{00251}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__drive_af2b798d0717a723c580025dc04416ce7}{state}};                             \textcolor{comment}{/* The state of this drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00252}\mbox{\hyperlink{geom__vinum__var_8h_ab7ae7c257cd1b6a3ef82c1e963713b2b}{00252}} \textcolor{preprocessor}{\#define GV\_DRIVE\_DOWN   0}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00253}\mbox{\hyperlink{geom__vinum__var_8h_a8a76c535d700d8c84cb573b43fd010f7}{00253}} \textcolor{preprocessor}{\#define GV\_DRIVE\_UP     1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00254}00254 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00255}\mbox{\hyperlink{structgv__drive_ad8cfe06dc5d399ff13ee2037c9731050}{00255}}         off\_t   \mbox{\hyperlink{structgv__drive_ad8cfe06dc5d399ff13ee2037c9731050}{size}};                               \textcolor{comment}{/* Size of this drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00256}\mbox{\hyperlink{structgv__drive_abb6ee3ed5a472c5e12dd25fc9991e5a3}{00256}}         off\_t   \mbox{\hyperlink{structgv__drive_abb6ee3ed5a472c5e12dd25fc9991e5a3}{avail}};                             \textcolor{comment}{/* Available space. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00257}\mbox{\hyperlink{structgv__drive_a8a8479a25677d4bf6bb239b9fe906a8f}{00257}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__drive_a8a8479a25677d4bf6bb239b9fe906a8f}{sdcount}};                 \textcolor{comment}{/* Number of subdisks. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00258}00258 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00259}\mbox{\hyperlink{structgv__drive_a9786a03e20a91ab9c73a7aa93b90629a}{00259}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__drive_a9786a03e20a91ab9c73a7aa93b90629a}{flags}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00260}\mbox{\hyperlink{geom__vinum__var_8h_a2d0154c5734105d6367843e651300fa5}{00260}} \textcolor{preprocessor}{\#define GV\_DRIVE\_REFERENCED     0x01    }\textcolor{comment}{/* The drive isn't really existing,}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00261}\mbox{\hyperlink{geom__vinum__var_8h_aa0c685a9487e042c42636404c864965d}{00261}} \textcolor{comment}{                                           but was referenced by a subdisk}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00262}00262 \textcolor{comment}{                                           during taste. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00263}\mbox{\hyperlink{structgv__drive_a22fd8c09eb90dd896835874d2a0c2601}{00263}} \textcolor{preprocessor}{\#define GV\_DRIVE\_ORPHANED       0x02    }\textcolor{comment}{/* The drive was orphaned. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00264}00264 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00265}\mbox{\hyperlink{structgv__drive_a69dfc95c0bafb10b4239b5d45059e85d}{00265}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__hdr}{gv\_hdr}}     *\mbox{\hyperlink{structgv__drive_a22fd8c09eb90dd896835874d2a0c2601}{hdr}};                \textcolor{comment}{/* The drive header. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00266}\mbox{\hyperlink{structgv__drive_a759edecae364198073e02410a6db4132}{00266}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00267}00267         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{structgv__drive_a69dfc95c0bafb10b4239b5d45059e85d}{consumer}};  \textcolor{comment}{/* Consumer attached to this drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00268}\mbox{\hyperlink{structgv__drive_a01732fd038eda27dfcc68fd2972bb725}{00268}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__drive_a759edecae364198073e02410a6db4132}{active}};                   \textcolor{comment}{/* Number of active requests. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00269}\mbox{\hyperlink{structgv__drive_ad1efb875f87e77ee1127a8fa70039b8f}{00269}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00270}\mbox{\hyperlink{structgv__drive_a7fb121653e60f772b0fe916290df1a3c}{00270}}         \textcolor{keywordtype}{int} \mbox{\hyperlink{structgv__drive_a01732fd038eda27dfcc68fd2972bb725}{freelist\_entries}};                   \textcolor{comment}{/* Count of freelist entries. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00271}\mbox{\hyperlink{structgv__drive_ae56005336bfd0ee6f5c367c58ca60eb7}{00271}}         \mbox{\hyperlink{structgv__drive_ad1efb875f87e77ee1127a8fa70039b8f}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__freelist}{gv\_freelist}})     freelist;       \textcolor{comment}{/* List of freelist entries. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00272}00272         \mbox{\hyperlink{structgv__drive_ad1efb875f87e77ee1127a8fa70039b8f}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__sd}{gv\_sd}}) subdisks;       \textcolor{comment}{/* Subdisks on this drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00273}\mbox{\hyperlink{structgv__drive_a368fba77f67a1acc21238b5066c86261}{00273}}         \mbox{\hyperlink{structgv__drive_ae56005336bfd0ee6f5c367c58ca60eb7}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__drive}{gv\_drive}})  drive;          \textcolor{comment}{/* Entry in the vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00274}00274 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00275}00275         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *\mbox{\hyperlink{structgv__drive_a368fba77f67a1acc21238b5066c86261}{vinumconf}};            \textcolor{comment}{/* Pointer to the vinum conf. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00276}00276 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00277}\mbox{\hyperlink{structgv__sd}{00277}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00278}\mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{00278}} \textcolor{comment}{/* softc for a subdisk. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00279}\mbox{\hyperlink{structgv__sd_a7caba67088081bb1e3ede489c8b0dbbc}{00279}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__sd}{gv\_sd}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00280}\mbox{\hyperlink{structgv__sd_a7affffaf0220e9c53c090bb6f41fb2b4}{00280}}         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{name}}[\mbox{\hyperlink{geom__vinum__var_8h_a107a2bc0616c9e28a0bd12e967d4c5b4}{GV\_MAXSDNAME}}];     \textcolor{comment}{/* The name of this subdisk. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00281}\mbox{\hyperlink{structgv__sd_aec325f89682a834bf445a955dd6b8dac}{00281}}         off\_t   \mbox{\hyperlink{structgv__sd_a7caba67088081bb1e3ede489c8b0dbbc}{size}};                       \textcolor{comment}{/* The size of this subdisk. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00282}\mbox{\hyperlink{structgv__sd_ae69fbd03ecc14fbc16b0d4ed0421b59d}{00282}}         off\_t   \mbox{\hyperlink{structgv__sd_a7affffaf0220e9c53c090bb6f41fb2b4}{drive\_offset}};               \textcolor{comment}{/* Offset in the underlying drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00283}\mbox{\hyperlink{geom__vinum__var_8h_a397e4bbebbaca115ef30ebb13a9d18bf}{00283}}         off\_t   \mbox{\hyperlink{structgv__sd_aec325f89682a834bf445a955dd6b8dac}{plex\_offset}};         \textcolor{comment}{/* Offset in the associated plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00284}\mbox{\hyperlink{geom__vinum__var_8h_a5dd4abf3a748b1a4ee0da0bab79840d2}{00284}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__sd_ae69fbd03ecc14fbc16b0d4ed0421b59d}{state}};                     \textcolor{comment}{/* The state of this subdisk. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00285}\mbox{\hyperlink{geom__vinum__var_8h_abb3257448e42ad06d3218e02cc26c8ba}{00285}} \textcolor{preprocessor}{\#define GV\_SD\_DOWN              0}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00286}\mbox{\hyperlink{geom__vinum__var_8h_a7fe4bfdd815ab9446e630efe806619d1}{00286}} \textcolor{preprocessor}{\#define GV\_SD\_STALE             1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00287}\mbox{\hyperlink{geom__vinum__var_8h_a85ea8962028c1319a7fd5cd7adc4e497}{00287}} \textcolor{preprocessor}{\#define GV\_SD\_INITIALIZING      2}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00288}00288 \textcolor{preprocessor}{\#define GV\_SD\_REVIVING          3}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00289}\mbox{\hyperlink{structgv__sd_a25df42425522821a5790d0aae58ecc32}{00289}} \textcolor{preprocessor}{\#define GV\_SD\_UP                4}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00290}00290 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00291}\mbox{\hyperlink{structgv__sd_a820803c492a08cf3b5f080e225957797}{00291}}         off\_t   \mbox{\hyperlink{structgv__sd_a25df42425522821a5790d0aae58ecc32}{initialized}};         \textcolor{comment}{/* Count of initialized bytes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00292}\mbox{\hyperlink{structgv__sd_a44469b499ce944f60566f37ecde422bb}{00292}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00293}00293         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__sd_a820803c492a08cf3b5f080e225957797}{init\_size}};             \textcolor{comment}{/* Initialization read/write size. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00294}\mbox{\hyperlink{structgv__sd_a84a4472842dd92c5ebcf7b103be32c90}{00294}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__sd_a44469b499ce944f60566f37ecde422bb}{init\_error}};           \textcolor{comment}{/* Flag error on initialization. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00295}\mbox{\hyperlink{geom__vinum__var_8h_a584cc0d4d0451a7c5f719bbfacc530d7}{00295}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00296}\mbox{\hyperlink{geom__vinum__var_8h_a6afc2a50dc71d53a4aa15f84eac2c254}{00296}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__sd_a84a4472842dd92c5ebcf7b103be32c90}{flags}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00297}\mbox{\hyperlink{geom__vinum__var_8h_a580eee21c71602cef6f2e6443719adb8}{00297}} \textcolor{preprocessor}{\#define GV\_SD\_NEWBORN           0x01    }\textcolor{comment}{/* Subdisk is created by user. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00298}\mbox{\hyperlink{geom__vinum__var_8h_a0cd7617b098897b809b9c9c9498a7605}{00298}} \textcolor{preprocessor}{\#define GV\_SD\_TASTED            0x02    }\textcolor{comment}{/* Subdisk is created during taste. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00299}00299 \textcolor{preprocessor}{\#define GV\_SD\_CANGOUP           0x04    }\textcolor{comment}{/* Subdisk can go up immediately. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00300}\mbox{\hyperlink{structgv__sd_abb67fc2a84afb2c110794b6de19d55d6}{00300}} \textcolor{preprocessor}{\#define GV\_SD\_GROW              0x08    }\textcolor{comment}{/* Subdisk is added to striped plex. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00301}\mbox{\hyperlink{structgv__sd_abc2c739f0fbd33ce2480d93752375f22}{00301}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00302}00302         \textcolor{keywordtype}{char} \mbox{\hyperlink{structgv__sd_abb67fc2a84afb2c110794b6de19d55d6}{drive}}[\mbox{\hyperlink{geom__vinum__var_8h_a5b0ca71b395a8780c1056041a4a3f56c}{GV\_MAXDRIVENAME}}];        \textcolor{comment}{/* Name of underlying drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00303}\mbox{\hyperlink{structgv__sd_a2b31867e2118053e8a27ce048a84335e}{00303}}         \textcolor{keywordtype}{char} \mbox{\hyperlink{structgv__sd_abc2c739f0fbd33ce2480d93752375f22}{plex}}[\mbox{\hyperlink{geom__vinum__var_8h_aa8c6366f0e203d09152dc02f2d4fda3a}{GV\_MAXPLEXNAME}}];    \textcolor{comment}{/* Name of associated plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00304}\mbox{\hyperlink{structgv__sd_a6894be1eac4716d6eb2bd9e08b9643cf}{00304}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00305}00305         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__drive}{gv\_drive}} *\mbox{\hyperlink{structgv__sd_a2b31867e2118053e8a27ce048a84335e}{drive\_sc}};      \textcolor{comment}{/* Pointer to underlying drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00306}\mbox{\hyperlink{structgv__sd_acb1fd38c684908926c33a1c4f2f1ef83}{00306}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}}   *\mbox{\hyperlink{structgv__sd_a6894be1eac4716d6eb2bd9e08b9643cf}{plex\_sc}};        \textcolor{comment}{/* Pointer to associated plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00307}\mbox{\hyperlink{structgv__sd_a6f34d42fbb23b84576b6c460edd91cae}{00307}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00308}\mbox{\hyperlink{structgv__sd_aa9ec13d3f7421de70918a75bd5caf1ae}{00308}}         \mbox{\hyperlink{structgv__sd_aa9ec13d3f7421de70918a75bd5caf1ae}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__sd}{gv\_sd}}) from\_drive;    \textcolor{comment}{/* Subdisk list of underlying drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00309}00309         \mbox{\hyperlink{structgv__sd_acb1fd38c684908926c33a1c4f2f1ef83}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__sd}{gv\_sd}}) in\_plex;       \textcolor{comment}{/* Subdisk list of associated plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00310}\mbox{\hyperlink{structgv__sd_a5852499bf04d1041f8014be8424f1f95}{00310}}         \mbox{\hyperlink{structgv__sd_acb1fd38c684908926c33a1c4f2f1ef83}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__sd}{gv\_sd}}) \mbox{\hyperlink{g__raid__md__if_8m_a910062273088d146e8533398780701eb}{sd}};          \textcolor{comment}{/* Entry in the vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00311}00311 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00312}00312         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *\mbox{\hyperlink{structgv__sd_a5852499bf04d1041f8014be8424f1f95}{vinumconf}};    \textcolor{comment}{/* Pointer to the vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00313}00313 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00314}\mbox{\hyperlink{structgv__plex}{00314}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00315}\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{00315}} \textcolor{comment}{/* softc for a plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00316}\mbox{\hyperlink{structgv__plex_ae8a3821966c400898f7dd237e0f678c8}{00316}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00317}\mbox{\hyperlink{structgv__plex_a323004a8a80cc2691e845ba155ad55f0}{00317}}         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}}[\mbox{\hyperlink{geom__vinum__var_8h_aa8c6366f0e203d09152dc02f2d4fda3a}{GV\_MAXPLEXNAME}}]; \textcolor{comment}{/* The name of the plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00318}\mbox{\hyperlink{geom__vinum__var_8h_a9eebfaad55e358e87acc6a9bacc163b7}{00318}}         off\_t   \mbox{\hyperlink{structgv__plex_ae8a3821966c400898f7dd237e0f678c8}{size}};                       \textcolor{comment}{/* The size of the plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00319}\mbox{\hyperlink{geom__vinum__var_8h_a3df68513d03b6c6b7cadc15b872691fb}{00319}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__plex_a323004a8a80cc2691e845ba155ad55f0}{state}};                     \textcolor{comment}{/* The plex state. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00320}\mbox{\hyperlink{geom__vinum__var_8h_a80774ac8b615985dacf9f245fe370d7c}{00320}} \textcolor{preprocessor}{\#define GV\_PLEX\_DOWN            0}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00321}\mbox{\hyperlink{geom__vinum__var_8h_a768ff0748cb47b0fa77b1381d770e6e9}{00321}} \textcolor{preprocessor}{\#define GV\_PLEX\_INITIALIZING    1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00322}\mbox{\hyperlink{geom__vinum__var_8h_a2a5ed58267acc541957b387d71bd868d}{00322}} \textcolor{preprocessor}{\#define GV\_PLEX\_DEGRADED        2}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00323}00323 \textcolor{preprocessor}{\#define GV\_PLEX\_GROWABLE        3}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00324}\mbox{\hyperlink{structgv__plex_ac35ac16eab74d053052bdb850ff7efbd}{00324}} \textcolor{preprocessor}{\#define GV\_PLEX\_UP              4}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00325}\mbox{\hyperlink{geom__vinum__var_8h_a2799ce5ed6851c4411a94e3dfbdaeb80}{00325}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00326}\mbox{\hyperlink{geom__vinum__var_8h_a49fa4ea4e60154b1e54c70eb1f53cf19}{00326}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__plex_ac35ac16eab74d053052bdb850ff7efbd}{org}};                 \textcolor{comment}{/* The plex organisation. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00327}\mbox{\hyperlink{geom__vinum__var_8h_a02ae949789d43dde7a6e5540aab97beb}{00327}} \textcolor{preprocessor}{\#define GV\_PLEX\_DISORG  0}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00328}\mbox{\hyperlink{geom__vinum__var_8h_a77d0838869414279112148a8b1efee50}{00328}} \textcolor{preprocessor}{\#define GV\_PLEX\_CONCAT  1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00329}00329 \textcolor{preprocessor}{\#define GV\_PLEX\_STRIPED 2}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00330}\mbox{\hyperlink{structgv__plex_a670e4abf06a7ee6c9737aeffd3e1e15e}{00330}} \textcolor{preprocessor}{\#define GV\_PLEX\_RAID5   4}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00331}00331 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00332}\mbox{\hyperlink{structgv__plex_a3dba998991302b326667692db3ab2ac5}{00332}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__plex_a670e4abf06a7ee6c9737aeffd3e1e15e}{stripesize}};           \textcolor{comment}{/* The stripe size of the plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00333}\mbox{\hyperlink{structgv__plex_a8e2820d6bd8419d81213f77131d6bd5c}{00333}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00334}00334         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__plex_a3dba998991302b326667692db3ab2ac5}{volume}}[\mbox{\hyperlink{geom__vinum__var_8h_a4527a51313b9d7ed77b6d0ff5c461623}{GV\_MAXVOLNAME}}];       \textcolor{comment}{/* Name of associated volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00335}\mbox{\hyperlink{structgv__plex_aa0b4fc0266e80422d86f1e451505e1b4}{00335}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__volume}{gv\_volume}} *\mbox{\hyperlink{structgv__plex_a8e2820d6bd8419d81213f77131d6bd5c}{vol\_sc}};        \textcolor{comment}{/* Pointer to associated volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00336}\mbox{\hyperlink{structgv__plex_ab8419aad736c119ac828740cce0e235c}{00336}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00337}\mbox{\hyperlink{structgv__plex_aa943246707740867fdaf52448353c6f0}{00337}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__plex_aa0b4fc0266e80422d86f1e451505e1b4}{sddetached}};           \textcolor{comment}{/* Number of detached subdisks. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00338}\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{00338}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__plex_ab8419aad736c119ac828740cce0e235c}{sdcount}};         \textcolor{comment}{/* Number of subdisks in this plex. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00339}\mbox{\hyperlink{geom__vinum__var_8h_a91211c9ace4ead21f86f44503697faf2}{00339}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__plex_aa943246707740867fdaf52448353c6f0}{sddown}};                   \textcolor{comment}{/* Number of subdisks that are down. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00340}\mbox{\hyperlink{geom__vinum__var_8h_ae2f57f1186f28adbc12ccf3984be2fc2}{00340}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00341}\mbox{\hyperlink{geom__vinum__var_8h_a2e831125a547303e6d2be8b2d0734a24}{00341}} \textcolor{preprocessor}{\#define GV\_PLEX\_ADDED           0x01    }\textcolor{comment}{/* Added to an existing volume. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00342}\mbox{\hyperlink{geom__vinum__var_8h_a13b286c390639eb1d6e8f3823443e7f0}{00342}} \textcolor{preprocessor}{\#define GV\_PLEX\_SYNCING         0x02    }\textcolor{comment}{/* Plex is syncing from another plex. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00343}\mbox{\hyperlink{geom__vinum__var_8h_a7c137a85de28fa7c787fe903acf5e3b0}{00343}} \textcolor{preprocessor}{\#define GV\_PLEX\_NEWBORN         0x20    }\textcolor{comment}{/* The plex was just created. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00344}00344 \textcolor{preprocessor}{\#define GV\_PLEX\_REBUILDING      0x40    }\textcolor{comment}{/* The plex is rebuilding. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00345}\mbox{\hyperlink{structgv__plex_a57ccdca6549fd9e5778635743104391e}{00345}} \textcolor{preprocessor}{\#define GV\_PLEX\_GROWING         0x80    }\textcolor{comment}{/* The plex is growing. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00346}00346 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00347}\mbox{\hyperlink{structgv__plex_a3ec7941a1f912e24fd76b67582eb0a35}{00347}}         off\_t   \mbox{\hyperlink{structgv__plex_a57ccdca6549fd9e5778635743104391e}{synced}};                   \textcolor{comment}{/* Count of synced bytes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00348}00348 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00349}\mbox{\hyperlink{structgv__plex_a298f3939f4f4cfc5d1c6d32e8d661994}{00349}}         \mbox{\hyperlink{structgv__plex_a3ec7941a1f912e24fd76b67582eb0a35}{TAILQ\_HEAD}}(,\mbox{\hyperlink{structgv__raid5__packet}{gv\_raid5\_packet}})   packets; \textcolor{comment}{/* RAID5 sub-\/requests. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00350}\mbox{\hyperlink{structgv__plex_af90eb33fa61eedd726d8d964cd983a36}{00350}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00351}\mbox{\hyperlink{structgv__plex_acf17bef567153d15c0b23a743450711e}{00351}}         \mbox{\hyperlink{structgv__plex_a298f3939f4f4cfc5d1c6d32e8d661994}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__sd}{gv\_sd}})   subdisks;     \textcolor{comment}{/* List of attached subdisks. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00352}00352         \mbox{\hyperlink{structgv__plex_af90eb33fa61eedd726d8d964cd983a36}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__plex}{gv\_plex}}) in\_volume; \textcolor{comment}{/* Plex list of associated volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00353}00353         \mbox{\hyperlink{structgv__plex_af90eb33fa61eedd726d8d964cd983a36}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__plex}{gv\_plex}}) plex;      \textcolor{comment}{/* Entry in the vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00354}\mbox{\hyperlink{structgv__plex_a0337c05399b527c7c515740e851e57d4}{00354}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00355}\mbox{\hyperlink{structgv__plex_a4b161b7fba91c7e3f29732f1bc0a8075}{00355}} \textcolor{preprocessor}{\#ifdef  \_KERNEL}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00356}\mbox{\hyperlink{structgv__plex_aa0e0c78ec187fb3900bcefa7e9775e60}{00356}}         \textcolor{keyword}{struct }bio\_queue\_head   *\mbox{\hyperlink{structgv__plex_a0337c05399b527c7c515740e851e57d4}{bqueue}};  \textcolor{comment}{/* BIO queue. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00357}00357         \textcolor{keyword}{struct }bio\_queue\_head   *\mbox{\hyperlink{structgv__plex_a4b161b7fba91c7e3f29732f1bc0a8075}{wqueue}};  \textcolor{comment}{/* Waiting BIO queue. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00358}00358         \textcolor{keyword}{struct }bio\_queue\_head   *\mbox{\hyperlink{structgv__plex_aa0e0c78ec187fb3900bcefa7e9775e60}{rqueue}};  \textcolor{comment}{/* Rebuild waiting BIO queue. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00359}00359 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00360}00360         \textcolor{keywordtype}{char}                    *bpad, *wpad, *rpad; \textcolor{comment}{/* Padding for userland. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00361}\mbox{\hyperlink{structgv__plex_ad30d136a924b3367b9752c10f2391cdc}{00361}} \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00362}00362 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00363}00363         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *\mbox{\hyperlink{structgv__plex_ad30d136a924b3367b9752c10f2391cdc}{vinumconf}};    \textcolor{comment}{/* Pointer to the vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00364}00364 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00365}\mbox{\hyperlink{structgv__volume}{00365}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00366}\mbox{\hyperlink{structgv__volume_a3369e150403037bca7ed34ea68f25ce0}{00366}} \textcolor{comment}{/* softc for a volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00367}\mbox{\hyperlink{structgv__volume_a9afdb949e852e0ee49733e7fe18bade2}{00367}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__volume}{gv\_volume}} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00368}\mbox{\hyperlink{structgv__volume_a6a2fb4e2da02537035c219df64a65a80}{00368}}         \textcolor{keywordtype}{char}    \mbox{\hyperlink{structgv__volume_a3369e150403037bca7ed34ea68f25ce0}{name}}[\mbox{\hyperlink{geom__vinum__var_8h_a4527a51313b9d7ed77b6d0ff5c461623}{GV\_MAXVOLNAME}}];   \textcolor{comment}{/* The name of the volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00369}\mbox{\hyperlink{structgv__volume_a54dd71f304a3aefc237c7cef1dac9777}{00369}}         off\_t   \mbox{\hyperlink{structgv__volume_a9afdb949e852e0ee49733e7fe18bade2}{size}};                       \textcolor{comment}{/* The size of the volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00370}\mbox{\hyperlink{geom__vinum__var_8h_af08dd2b0a2b9c2b5f74eaf5927a99c5c}{00370}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__volume_a6a2fb4e2da02537035c219df64a65a80}{plexcount}};             \textcolor{comment}{/* Number of plexes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00371}\mbox{\hyperlink{geom__vinum__var_8h_a8844be9458f8ec729320775c16ccc542}{00371}}         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__volume_a54dd71f304a3aefc237c7cef1dac9777}{state}};                     \textcolor{comment}{/* The state of the volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00372}00372 \textcolor{preprocessor}{\#define GV\_VOL\_DOWN     0}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00373}\mbox{\hyperlink{structgv__volume_a152fb6b79767817e0c97ff08279501be}{00373}} \textcolor{preprocessor}{\#define GV\_VOL\_UP       1}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00374}\mbox{\hyperlink{geom__vinum__var_8h_a0052460e423af1a0701c8ce3be6f1a2b}{00374}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00375}00375         \textcolor{keywordtype}{int}     \mbox{\hyperlink{structgv__volume_a152fb6b79767817e0c97ff08279501be}{flags}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00376}\mbox{\hyperlink{structgv__volume_a0fb1b5eef1b8525bc2b0e6d1cb04fb86}{00376}} \textcolor{preprocessor}{\#define GV\_VOL\_NEWBORN          0x08    }\textcolor{comment}{/* The volume was just created. */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00377}\mbox{\hyperlink{structgv__volume_ae4fa738ecc1ca1c3d72813e7b541a277}{00377}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00378}00378         \mbox{\hyperlink{structgv__volume_a0fb1b5eef1b8525bc2b0e6d1cb04fb86}{LIST\_HEAD}}(,\mbox{\hyperlink{structgv__plex}{gv\_plex}})     plexes;         \textcolor{comment}{/* List of attached plexes. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00379}\mbox{\hyperlink{structgv__volume_a22436521ee96530c09a185172fb53bf7}{00379}}         \mbox{\hyperlink{structgv__volume_ae4fa738ecc1ca1c3d72813e7b541a277}{LIST\_ENTRY}}(\mbox{\hyperlink{structgv__volume}{gv\_volume}})        \mbox{\hyperlink{g__raid__tr__if_8m_a1b9eb8854031ced0905afde9f72c9ea8}{volume}};           \textcolor{comment}{/* Entry in vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00380}00380 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00381}00381         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}}     *\mbox{\hyperlink{structgv__volume_a22436521ee96530c09a185172fb53bf7}{provider}};      \textcolor{comment}{/* Provider of this volume. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00382}\mbox{\hyperlink{structgv__volume_a3dac8fbcbadf0de1ad609fbe91e4a8f0}{00382}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00383}00383 \textcolor{preprocessor}{\#ifdef  \_KERNEL}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00384}00384         \textcolor{keyword}{struct }bio\_queue\_head   *\mbox{\hyperlink{structgv__volume_a3dac8fbcbadf0de1ad609fbe91e4a8f0}{wqueue}};  \textcolor{comment}{/* BIO delayed request queue. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00385}00385 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00386}00386         \textcolor{keywordtype}{char}                    *wpad; \textcolor{comment}{/* Padding for userland. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00387}\mbox{\hyperlink{structgv__volume_a349b7fc1e9087ff860b38ff4075e3345}{00387}} \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00388}\mbox{\hyperlink{structgv__volume_ac506c896287304f39a7beff5a450d63b}{00388}} }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00389}00389         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}}   *\mbox{\hyperlink{structgv__volume_a349b7fc1e9087ff860b38ff4075e3345}{last\_read\_plex}};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00390}00390         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *\mbox{\hyperlink{structgv__volume_ac506c896287304f39a7beff5a450d63b}{vinumconf}};    \textcolor{comment}{/* Pointer to the vinum config. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00391}00391 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00392}00392 }
\DoxyCodeLine{\Hypertarget{geom__vinum__var_8h_source_l00393}00393 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* !\_GEOM\_VINUM\_VAR\_H */}\textcolor{preprocessor}{}}

\end{DoxyCode}
