\hypertarget{g__raid3_8h_source}{}\doxysection{g\+\_\+raid3.\+h}
\label{g__raid3_8h_source}\index{geom/raid3/g\_raid3.h@{geom/raid3/g\_raid3.h}}
\mbox{\hyperlink{g__raid3_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2004-\/2006 Pawel Jakub Dawidek <pjd@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00005}00005 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00012}00012 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00014}00014 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00015}00015 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00016}00016 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00017}00017 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00018}00018 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00019}00019 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00020}00020 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00021}00021 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00022}00022 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00023}00023 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00024}00024 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00025}00025 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00026}00026 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00027}00027 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00028}00028 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00029}00029 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00030}00030 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00031}00031 \textcolor{preprocessor}{\#ifndef \_G\_RAID3\_H\_}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00032}00032 \textcolor{preprocessor}{\#define \_G\_RAID3\_H\_}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/endian.h>}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/md5.h>}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00037}\mbox{\hyperlink{g__raid3_8h_adaca5052c17d74148addda231950a29b}{00037}} \textcolor{preprocessor}{\#define G\_RAID3\_CLASS\_NAME      "{}RAID3"{}}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00038}00038 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00039}\mbox{\hyperlink{g__raid3_8h_a8bef29a737244aeb885e796f9be1e8e9}{00039}} \textcolor{preprocessor}{\#define G\_RAID3\_MAGIC           "{}GEOM::RAID3"{}}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00040}00040 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00041}00041 \textcolor{comment}{ * Version history:}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00042}00042 \textcolor{comment}{ * 0 -\/ Initial version number.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00043}00043 \textcolor{comment}{ * 1 -\/ Added 'round-\/robin reading' algorithm.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00044}00044 \textcolor{comment}{ * 2 -\/ Added 'verify reading' algorithm.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00045}00045 \textcolor{comment}{ * 3 -\/ Added md\_genid field to metadata.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00046}00046 \textcolor{comment}{ * 4 -\/ Added md\_provsize field to metadata.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00047}00047 \textcolor{comment}{ * 5 -\/ Added 'no failure synchronization' flag.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00048}00048 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00049}\mbox{\hyperlink{g__raid3_8h_a115da3b66392aa82089d7a767734d0d9}{00049}} \textcolor{preprocessor}{\#define G\_RAID3\_VERSION         5}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00050}00050 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00051}\mbox{\hyperlink{g__raid3_8h_a44e1359eb76e703ef241a3bb6f51bf7c}{00051}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_FLAG\_DIRTY         0x0000000000000001ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00052}\mbox{\hyperlink{g__raid3_8h_a5ab166d3a0034408df43cdba111991c7}{00052}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_FLAG\_SYNCHRONIZING 0x0000000000000002ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00053}\mbox{\hyperlink{g__raid3_8h_a5282abc5a8e372654d24cac5b7d0302b}{00053}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_FLAG\_FORCE\_SYNC    0x0000000000000004ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00054}\mbox{\hyperlink{g__raid3_8h_a716568d6e59e37d05e95bda2ce7e6e8c}{00054}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_FLAG\_HARDCODED     0x0000000000000008ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00055}\mbox{\hyperlink{g__raid3_8h_ab7e2febcd89666181191db4f2b004935}{00055}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_FLAG\_BROKEN        0x0000000000000010ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00056}\mbox{\hyperlink{g__raid3_8h_ad349a5fe58c8a17aa5421ecbca716c0e}{00056}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_FLAG\_MASK          (G\_RAID3\_DISK\_FLAG\_DIRTY |      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00057}00057 \textcolor{preprocessor}{                                         G\_RAID3\_DISK\_FLAG\_SYNCHRONIZING | \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00058}00058 \textcolor{preprocessor}{                                         G\_RAID3\_DISK\_FLAG\_FORCE\_SYNC)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00060}\mbox{\hyperlink{g__raid3_8h_a0a94748b2d425a256c3cef0f51ad5176}{00060}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_NOAUTOSYNC  0x0000000000000001ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00061}\mbox{\hyperlink{g__raid3_8h_a3fea077718788462e655b1363fe0bcc9}{00061}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_ROUND\_ROBIN 0x0000000000000002ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00062}\mbox{\hyperlink{g__raid3_8h_a4b40ddb04da52a14bd04c8761802a99f}{00062}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_VERIFY      0x0000000000000004ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00063}\mbox{\hyperlink{g__raid3_8h_acd0b9737417b02e49e34410aca1a4407}{00063}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_NOFAILSYNC  0x0000000000000008ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00064}\mbox{\hyperlink{g__raid3_8h_a8476eba0a9f686e33d337bf13e419e9c}{00064}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_MASK        (G\_RAID3\_DEVICE\_FLAG\_NOAUTOSYNC | \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00065}00065 \textcolor{preprocessor}{                                         G\_RAID3\_DEVICE\_FLAG\_ROUND\_ROBIN | \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00066}00066 \textcolor{preprocessor}{                                         G\_RAID3\_DEVICE\_FLAG\_VERIFY | \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00067}00067 \textcolor{preprocessor}{                                         G\_RAID3\_DEVICE\_FLAG\_NOFAILSYNC)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00069}00069 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00070}00070 \textcolor{keyword}{extern} u\_int \mbox{\hyperlink{g__raid3_8h_a04fb8e0d470bbdee2de52db054113120}{g\_raid3\_debug}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00072}\mbox{\hyperlink{g__raid3_8h_a913d92272bb4c849449b1ee6ff9d57d6}{00072}} \textcolor{preprocessor}{\#define G\_RAID3\_DEBUG(lvl, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00073}00073 \textcolor{preprocessor}{    \_GEOM\_DEBUG("{}GEOM\_RAID3"{}}, g\_raid3\_debug, (lvl), NULL, \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00074}\mbox{\hyperlink{g__raid3_8h_abb843e5e52a99af00c5c04091e5bd411}{00074}} \textcolor{preprocessor}{\#define G\_RAID3\_LOGREQ(lvl, bp, ...) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00075}00075 \textcolor{preprocessor}{    \_GEOM\_DEBUG("{}GEOM\_RAID3"{}}, g\_raid3\_debug, (lvl), (bp), \_\_VA\_ARGS\_\_)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00076}00076 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00077}\mbox{\hyperlink{g__raid3_8h_a484371371fcc5c4d1fcd8756606ec454}{00077}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_CFLAG\_REGULAR       0x01}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00078}\mbox{\hyperlink{g__raid3_8h_ac55629f9c30f51cc9b4b076e0c90a1ec}{00078}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_CFLAG\_SYNC          0x02}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00079}\mbox{\hyperlink{g__raid3_8h_a91122e71a637447f66461f690ef40166}{00079}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_CFLAG\_PARITY        0x04}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00080}\mbox{\hyperlink{g__raid3_8h_ab12e298f51bfafcad4954f5e3927f744}{00080}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_CFLAG\_NODISK        0x08}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00081}\mbox{\hyperlink{g__raid3_8h_a2de573c5e57f73ec8b0f76f724e2fc0a}{00081}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_CFLAG\_REGSYNC       0x10}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00082}\mbox{\hyperlink{g__raid3_8h_ad6848155ba11539942d3990aab82d172}{00082}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_CFLAG\_MASK          (G\_RAID3\_BIO\_CFLAG\_REGULAR |    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00083}00083 \textcolor{preprocessor}{                                         G\_RAID3\_BIO\_CFLAG\_SYNC |       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00084}00084 \textcolor{preprocessor}{                                         G\_RAID3\_BIO\_CFLAG\_PARITY |     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00085}00085 \textcolor{preprocessor}{                                         G\_RAID3\_BIO\_CFLAG\_NODISK |     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00086}00086 \textcolor{preprocessor}{                                         G\_RAID3\_BIO\_CFLAG\_REGSYNC)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00087}00087 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00088}\mbox{\hyperlink{g__raid3_8h_a4850f389aa37342323ccbfef51629946}{00088}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_PFLAG\_DEGRADED      0x01}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00089}\mbox{\hyperlink{g__raid3_8h_aaef52036436beaa135b20ef43002c628}{00089}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_PFLAG\_NOPARITY      0x02}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00090}\mbox{\hyperlink{g__raid3_8h_a0e5e2cacdd9b5ee7907f1e62bca0495c}{00090}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_PFLAG\_VERIFY        0x04}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00091}\mbox{\hyperlink{g__raid3_8h_acf079753965227307fff62b83899de8b}{00091}} \textcolor{preprocessor}{\#define G\_RAID3\_BIO\_PFLAG\_MASK          (G\_RAID3\_BIO\_PFLAG\_DEGRADED |   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00092}00092 \textcolor{preprocessor}{                                         G\_RAID3\_BIO\_PFLAG\_NOPARITY |   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00093}00093 \textcolor{preprocessor}{                                         G\_RAID3\_BIO\_PFLAG\_VERIFY)}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00095}00095 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00096}00096 \textcolor{comment}{ * Informations needed for synchronization.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00097}00097 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00098}\mbox{\hyperlink{structg__raid3__disk__sync}{00098}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__disk__sync}{g\_raid3\_disk\_sync}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00099}\mbox{\hyperlink{structg__raid3__disk__sync_a1855db42ebfe778801d87dd238dde50c}{00099}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{structg__raid3__disk__sync_a1855db42ebfe778801d87dd238dde50c}{ds\_consumer}};    \textcolor{comment}{/* Consumer connected to our device. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00100}\mbox{\hyperlink{structg__raid3__disk__sync_a87f8a48c6bb9fba8b8e3dc67acac231f}{00100}}         off\_t             \mbox{\hyperlink{structg__raid3__disk__sync_a87f8a48c6bb9fba8b8e3dc67acac231f}{ds\_offset}};   \textcolor{comment}{/* Offset of next request to send. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00101}\mbox{\hyperlink{structg__raid3__disk__sync_a6041b9fa190a6d7c4d9f66e1baf6b33d}{00101}}         off\_t             \mbox{\hyperlink{structg__raid3__disk__sync_a6041b9fa190a6d7c4d9f66e1baf6b33d}{ds\_offset\_done}}; \textcolor{comment}{/* Offset of already synchronized}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00102}00102 \textcolor{comment}{                                           region. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00103}\mbox{\hyperlink{structg__raid3__disk__sync_ae5d380dd38bbbc47349365200828d270}{00103}}         off\_t             \mbox{\hyperlink{structg__raid3__disk__sync_ae5d380dd38bbbc47349365200828d270}{ds\_resync}};   \textcolor{comment}{/* Resynchronize from this offset. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00104}\mbox{\hyperlink{structg__raid3__disk__sync_a59292fbbce21d572eb2cb7c436f15466}{00104}}         u\_int             \mbox{\hyperlink{structg__raid3__disk__sync_a59292fbbce21d572eb2cb7c436f15466}{ds\_syncid}};   \textcolor{comment}{/* Disk's synchronization ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00105}\mbox{\hyperlink{structg__raid3__disk__sync_a27b366e3a65355ef92f6ee6e58b82962}{00105}}         u\_int             \mbox{\hyperlink{structg__raid3__disk__sync_a27b366e3a65355ef92f6ee6e58b82962}{ds\_inflight}};       \textcolor{comment}{/* Number of in-\/flight sync requests. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00106}\mbox{\hyperlink{structg__raid3__disk__sync_ac693dec599e7098eca675a616172b3da}{00106}}         \textcolor{keyword}{struct }bio      **\mbox{\hyperlink{structg__raid3__disk__sync_ac693dec599e7098eca675a616172b3da}{ds\_bios}};       \textcolor{comment}{/* BIOs for synchronization I/O. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00107}00107 \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00108}00108 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00109}00109 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00110}00110 \textcolor{comment}{ * Informations needed for synchronization.}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00111}00111 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00112}\mbox{\hyperlink{structg__raid3__device__sync}{00112}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__device__sync}{g\_raid3\_device\_sync}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00113}\mbox{\hyperlink{structg__raid3__device__sync_a3e51729353d5647522ebf0a68f33ee39}{00113}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}}     *\mbox{\hyperlink{structg__raid3__device__sync_a3e51729353d5647522ebf0a68f33ee39}{ds\_geom}};        \textcolor{comment}{/* Synchronization geom. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00114}00114 \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00115}00115 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00116}\mbox{\hyperlink{g__raid3_8h_a23880652d23a8744a43f641a669670e4}{00116}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_NODISK               0}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00117}\mbox{\hyperlink{g__raid3_8h_ad25d2039e53f55c72b432b1032bcc6ad}{00117}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_NONE                 1}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00118}\mbox{\hyperlink{g__raid3_8h_a2190ba5a3e4ce318cca047cb1e36bae8}{00118}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_NEW                  2}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00119}\mbox{\hyperlink{g__raid3_8h_a61fe6cfc543b348c8c4f4261e80fda60}{00119}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_ACTIVE               3}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00120}\mbox{\hyperlink{g__raid3_8h_a4f9f8ae589476a6db2c1743f022bcc89}{00120}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_STALE                4}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00121}\mbox{\hyperlink{g__raid3_8h_a0150c5484e167f11ca4a00f1567b66ff}{00121}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_SYNCHRONIZING        5}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00122}\mbox{\hyperlink{g__raid3_8h_ac183dd891e800c2b90022cb3c515b4f0}{00122}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_DISCONNECTED         6}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00123}\mbox{\hyperlink{g__raid3_8h_ac103945eee2547993cf4165674257a7c}{00123}} \textcolor{preprocessor}{\#define G\_RAID3\_DISK\_STATE\_DESTROY              7}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00124}\mbox{\hyperlink{structg__raid3__disk}{00124}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00125}\mbox{\hyperlink{structg__raid3__disk_a49712ee9a61df5ad718342b82ec4f16f}{00125}}         u\_int            \mbox{\hyperlink{structg__raid3__disk_a49712ee9a61df5ad718342b82ec4f16f}{d\_no}};              \textcolor{comment}{/* Disk number. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00126}\mbox{\hyperlink{structg__raid3__disk_af1ff43b8bc2a24ec9195c0f3f3863db5}{00126}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{structg__raid3__disk_af1ff43b8bc2a24ec9195c0f3f3863db5}{d\_consumer}};      \textcolor{comment}{/* Consumer. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00127}\mbox{\hyperlink{structg__raid3__disk_a986ec821adbf2342eb7a4bf29dee7dd6}{00127}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__softc}{g\_raid3\_softc}} *\mbox{\hyperlink{structg__raid3__disk_a986ec821adbf2342eb7a4bf29dee7dd6}{d\_softc}};      \textcolor{comment}{/* Back-\/pointer to softc. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00128}\mbox{\hyperlink{structg__raid3__disk_a0652aa020ff42d68b49327eb9497b9b3}{00128}}         \textcolor{keywordtype}{int}              \mbox{\hyperlink{structg__raid3__disk_a0652aa020ff42d68b49327eb9497b9b3}{d\_state}};        \textcolor{comment}{/* Disk state. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00129}\mbox{\hyperlink{structg__raid3__disk_ad27b3b577f799f59cc2bfb094f3ee24e}{00129}}         uint64\_t         \mbox{\hyperlink{structg__raid3__disk_ad27b3b577f799f59cc2bfb094f3ee24e}{d\_flags}};        \textcolor{comment}{/* Additional flags. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00130}\mbox{\hyperlink{structg__raid3__disk_a3d8c22a3074b05fe41071f76a9d03318}{00130}}         u\_int            \mbox{\hyperlink{structg__raid3__disk_a3d8c22a3074b05fe41071f76a9d03318}{d\_genid}};        \textcolor{comment}{/* Disk's generation ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00131}\mbox{\hyperlink{structg__raid3__disk_a3c88b6ffdded851c3bdf1de8c0f02bea}{00131}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__disk__sync}{g\_raid3\_disk\_sync}} \mbox{\hyperlink{structg__raid3__disk_a3c88b6ffdded851c3bdf1de8c0f02bea}{d\_sync}}; \textcolor{comment}{/* Sync information. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00132}\mbox{\hyperlink{structg__raid3__disk_ace0afe90ccf5631676d9ba1c193f26bd}{00132}}         \mbox{\hyperlink{structg__raid3__disk_ace0afe90ccf5631676d9ba1c193f26bd}{LIST\_ENTRY}}(\mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}}) d\_next;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00133}00133 \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00134}\mbox{\hyperlink{g__raid3_8h_a8e19949eb7ad5239a30ebbd9485e66c0}{00134}} \textcolor{preprocessor}{\#define d\_name  d\_consumer-\/>provider-\/>name}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00136}\mbox{\hyperlink{g__raid3_8h_ae3e037f5bd1cbe056f756097fabdec8c}{00136}} \textcolor{preprocessor}{\#define G\_RAID3\_EVENT\_DONTWAIT  0x1}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00137}\mbox{\hyperlink{g__raid3_8h_ae8b2c5fbde2256d5644065c6f91e4c03}{00137}} \textcolor{preprocessor}{\#define G\_RAID3\_EVENT\_WAIT      0x2}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00138}\mbox{\hyperlink{g__raid3_8h_abc36a7cccb37dec35a44c25d2f1f9cf9}{00138}} \textcolor{preprocessor}{\#define G\_RAID3\_EVENT\_DEVICE    0x4}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00139}\mbox{\hyperlink{g__raid3_8h_afdccc70d271f9888f7945de34fba2c7c}{00139}} \textcolor{preprocessor}{\#define G\_RAID3\_EVENT\_DONE      0x8}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00140}\mbox{\hyperlink{structg__raid3__event}{00140}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__event}{g\_raid3\_event}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00141}\mbox{\hyperlink{structg__raid3__event_a6998d13e389baa4899e32bd6d15f3d8c}{00141}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} *\mbox{\hyperlink{structg__raid3__event_a6998d13e389baa4899e32bd6d15f3d8c}{e\_disk}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00142}\mbox{\hyperlink{structg__raid3__event_a33dda18f8a73ae4077a940f119ad0ea0}{00142}}         \textcolor{keywordtype}{int}                      \mbox{\hyperlink{structg__raid3__event_a33dda18f8a73ae4077a940f119ad0ea0}{e\_state}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00143}\mbox{\hyperlink{structg__raid3__event_a565017a009cbadd1a64458b62f97d530}{00143}}         \textcolor{keywordtype}{int}                      \mbox{\hyperlink{structg__raid3__event_a565017a009cbadd1a64458b62f97d530}{e\_flags}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00144}\mbox{\hyperlink{structg__raid3__event_ae3d5dd8f0db6fd6c2b7482fb93c6176e}{00144}}         \textcolor{keywordtype}{int}                      \mbox{\hyperlink{structg__raid3__event_ae3d5dd8f0db6fd6c2b7482fb93c6176e}{e\_error}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00145}\mbox{\hyperlink{structg__raid3__event_a0141d2f344ec3bec6f6ff7e77a079f34}{00145}}         \mbox{\hyperlink{structg__raid3__event_a0141d2f344ec3bec6f6ff7e77a079f34}{TAILQ\_ENTRY}}(\mbox{\hyperlink{structg__raid3__event}{g\_raid3\_event}}) e\_next;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00146}00146 \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00147}00147 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00148}\mbox{\hyperlink{g__raid3_8h_a60908818b3d7444fe292a955563af230}{00148}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_DESTROY     0x0100000000000000ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00149}\mbox{\hyperlink{g__raid3_8h_a497139c8e9f5b8d83953bc8001022f46}{00149}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_WAIT        0x0200000000000000ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00150}\mbox{\hyperlink{g__raid3_8h_a7611b8b4647cbe7726eb973cdcdac076}{00150}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_FLAG\_DESTROYING  0x0400000000000000ULL}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00151}00151 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00152}\mbox{\hyperlink{g__raid3_8h_a9b26b4e6486e2badc69aa86cf4c0542b}{00152}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_STATE\_STARTING           0}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00153}\mbox{\hyperlink{g__raid3_8h_a38357d2aaf6a5d91e618a24fbbfa4b46}{00153}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_STATE\_DEGRADED           1}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00154}\mbox{\hyperlink{g__raid3_8h_ad7ddf883f74b9ee11091e04b772a8daa}{00154}} \textcolor{preprocessor}{\#define G\_RAID3\_DEVICE\_STATE\_COMPLETE           2}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00155}00155 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00156}00156 \textcolor{comment}{/* Bump syncid on first write. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00157}\mbox{\hyperlink{g__raid3_8h_acd04b9ef99451674f75b121c61e7e0f9}{00157}} \textcolor{preprocessor}{\#define G\_RAID3\_BUMP\_SYNCID     0x1}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00158}00158 \textcolor{comment}{/* Bump genid immediately. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00159}\mbox{\hyperlink{g__raid3_8h_aa216c96dce280b6a8ff40227a6fc2cf7}{00159}} \textcolor{preprocessor}{\#define G\_RAID3\_BUMP\_GENID      0x2}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00160}00160 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00161}\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312a}{00161}} \textcolor{keyword}{enum} \mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312a}{g\_raid3\_zones}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00162}\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa70522ed26ea9c6f3d541349297356edb}{00162}}         \mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa70522ed26ea9c6f3d541349297356edb}{G\_RAID3\_ZONE\_64K}},}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00163}\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aab82a7648b00b6668a1c67dee684b10fc}{00163}}         \mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aab82a7648b00b6668a1c67dee684b10fc}{G\_RAID3\_ZONE\_16K}},}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00164}\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa84158e287a1d0a2b7474ddc4a552f175}{00164}}         \mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa84158e287a1d0a2b7474ddc4a552f175}{G\_RAID3\_ZONE\_4K}},}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00165}00165         \mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa22546caec33237b9052861d8499ea438}{G\_RAID3\_NUM\_ZONES}}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00166}\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa22546caec33237b9052861d8499ea438}{00166}} \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00167}00167 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00168}00168 \textcolor{keyword}{static} \_\_inline \textcolor{keyword}{enum} \mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312a}{g\_raid3\_zones}}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00169}\mbox{\hyperlink{g__raid3_8h_ac0e83f4412545975aa7d180a3d76f551}{00169}} \mbox{\hyperlink{g__raid3_8h_ac0e83f4412545975aa7d180a3d76f551}{g\_raid3\_zone}}(\textcolor{keywordtype}{size\_t} nbytes) \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00170}00170         \textcolor{keywordflow}{if} (nbytes > 65536)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00171}00171                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa22546caec33237b9052861d8499ea438}{G\_RAID3\_NUM\_ZONES}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00172}00172         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (nbytes > 16384)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00173}00173                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa70522ed26ea9c6f3d541349297356edb}{G\_RAID3\_ZONE\_64K}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00174}00174         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (nbytes > 4096)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00175}00175                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aab82a7648b00b6668a1c67dee684b10fc}{G\_RAID3\_ZONE\_16K}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00176}00176         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00177}00177                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa84158e287a1d0a2b7474ddc4a552f175}{G\_RAID3\_ZONE\_4K}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00178}00178 \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00179}00179 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00180}\mbox{\hyperlink{structg__raid3__softc}{00180}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__softc}{g\_raid3\_softc}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00181}\mbox{\hyperlink{structg__raid3__softc_ae648e9e740d2c051d05477c28e7d1793}{00181}}         u\_int           \mbox{\hyperlink{structg__raid3__softc_ae648e9e740d2c051d05477c28e7d1793}{sc\_state}};       \textcolor{comment}{/* Device state. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00182}\mbox{\hyperlink{structg__raid3__softc_a695e7742c6f6a2879c64817fd9af6bda}{00182}}         uint64\_t        \mbox{\hyperlink{structg__raid3__softc_a695e7742c6f6a2879c64817fd9af6bda}{sc\_mediasize}};       \textcolor{comment}{/* Device size. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00183}\mbox{\hyperlink{structg__raid3__softc_a6b5e2324d6e525897dfe323e420e128b}{00183}}         uint32\_t        \mbox{\hyperlink{structg__raid3__softc_a6b5e2324d6e525897dfe323e420e128b}{sc\_sectorsize}};     \textcolor{comment}{/* Sector size. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00184}\mbox{\hyperlink{structg__raid3__softc_a011a06cea7329cede6169b2437c27d68}{00184}}         uint64\_t        \mbox{\hyperlink{structg__raid3__softc_a011a06cea7329cede6169b2437c27d68}{sc\_flags}};       \textcolor{comment}{/* Additional flags. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00185}00185 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00186}\mbox{\hyperlink{structg__raid3__softc_aac7961881fedc68f241377fd4d9acdf1}{00186}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}}     *\mbox{\hyperlink{structg__raid3__softc_aac7961881fedc68f241377fd4d9acdf1}{sc\_geom}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00187}\mbox{\hyperlink{structg__raid3__softc_ab1b17bfc5b5abc2fc90c892366f7df2e}{00187}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{structg__raid3__softc_ab1b17bfc5b5abc2fc90c892366f7df2e}{sc\_provider}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00188}00188 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00189}\mbox{\hyperlink{structg__raid3__softc_ad7f46106047c0e4fa1fe3203a72a6aaf}{00189}}         uint32\_t        \mbox{\hyperlink{structg__raid3__softc_ad7f46106047c0e4fa1fe3203a72a6aaf}{sc\_id}};             \textcolor{comment}{/* Device unique ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00190}00190 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00191}\mbox{\hyperlink{structg__raid3__softc_aca20630fe4f35786b58c2aa0affeeffd}{00191}}         \textcolor{keyword}{struct }sx        \mbox{\hyperlink{structg__raid3__softc_aca20630fe4f35786b58c2aa0affeeffd}{sc\_lock}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00192}\mbox{\hyperlink{structg__raid3__softc_a349eb52120de56ede3391a726f7373ef}{00192}}         \textcolor{keyword}{struct }bio\_queue\_head \mbox{\hyperlink{structg__raid3__softc_a349eb52120de56ede3391a726f7373ef}{sc\_queue}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00193}\mbox{\hyperlink{structg__raid3__softc_a0757305f421da299360795ca27713bc0}{00193}}         \textcolor{keyword}{struct }mtx       \mbox{\hyperlink{structg__raid3__softc_a0757305f421da299360795ca27713bc0}{sc\_queue\_mtx}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00194}\mbox{\hyperlink{structg__raid3__softc_aac5860d5fd5ece61b688adfe7b092a1f}{00194}}         \textcolor{keyword}{struct }proc     *\mbox{\hyperlink{structg__raid3__softc_aac5860d5fd5ece61b688adfe7b092a1f}{sc\_worker}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00195}\mbox{\hyperlink{structg__raid3__softc_af141955c69fb78c6e135fa97f685c3ed}{00195}}         \textcolor{keyword}{struct }bio\_queue\_head \mbox{\hyperlink{structg__raid3__softc_af141955c69fb78c6e135fa97f685c3ed}{sc\_regular\_delayed}}; \textcolor{comment}{/* Delayed I/O requests due}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00196}00196 \textcolor{comment}{                                                     collision with sync}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00197}00197 \textcolor{comment}{                                                     requests. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00198}\mbox{\hyperlink{structg__raid3__softc_a70eaadd87e4099d053da4ff3a3514ec5}{00198}}         \textcolor{keyword}{struct }bio\_queue\_head \mbox{\hyperlink{structg__raid3__softc_a70eaadd87e4099d053da4ff3a3514ec5}{sc\_inflight}}; \textcolor{comment}{/* In-\/flight regular write}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00199}00199 \textcolor{comment}{                                              requests. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00200}\mbox{\hyperlink{structg__raid3__softc_a62a663402e73b66d65791d286a1a09ae}{00200}}         \textcolor{keyword}{struct }bio\_queue\_head \mbox{\hyperlink{structg__raid3__softc_a62a663402e73b66d65791d286a1a09ae}{sc\_sync\_delayed}}; \textcolor{comment}{/* Delayed sync requests due}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00201}00201 \textcolor{comment}{                                                  collision with regular}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00202}00202 \textcolor{comment}{                                                  requests. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00204}\mbox{\hyperlink{structg__raid3__softc_ac77c06a191f7d17e8fa97b8d79cb7072}{00204}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} *\mbox{\hyperlink{structg__raid3__softc_ac77c06a191f7d17e8fa97b8d79cb7072}{sc\_disks}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00205}\mbox{\hyperlink{structg__raid3__softc_afd1f0415f8b8a02296dd1d9d0119f742}{00205}}         u\_int           \mbox{\hyperlink{structg__raid3__softc_afd1f0415f8b8a02296dd1d9d0119f742}{sc\_ndisks}};     \textcolor{comment}{/* Number of disks. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00206}\mbox{\hyperlink{structg__raid3__softc_ad30ebb5f1f01e4ed9516342420bea2c2}{00206}}         u\_int           \mbox{\hyperlink{structg__raid3__softc_ad30ebb5f1f01e4ed9516342420bea2c2}{sc\_round\_robin}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00207}\mbox{\hyperlink{structg__raid3__softc_a970fedd2484cf1866e1a9fb36a2f5145}{00207}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} *\mbox{\hyperlink{structg__raid3__softc_a970fedd2484cf1866e1a9fb36a2f5145}{sc\_syncdisk}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00208}00208 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00209}\mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone}{00209}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone}{g\_raid3\_zone}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00210}\mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_aadfb183135f45ae2db6c1cc1a15c1708}{00210}}                 uma\_zone\_t      \mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_aadfb183135f45ae2db6c1cc1a15c1708}{sz\_zone}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00211}\mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_afa8996cdf154e36cf768a8d807be36a4}{00211}}                 \textcolor{keywordtype}{size\_t}          \mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_afa8996cdf154e36cf768a8d807be36a4}{sz\_inuse}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00212}\mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_a5954a7fd4813d479ef0274ee2eb30958}{00212}}                 \textcolor{keywordtype}{size\_t}          \mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_a5954a7fd4813d479ef0274ee2eb30958}{sz\_max}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00213}\mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_ab30fe115c9b1d71a3de21170f7accab5}{00213}}                 u\_int           \mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_ab30fe115c9b1d71a3de21170f7accab5}{sz\_requested}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00214}\mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_a98d866972e89c46907d54d316aa1a11e}{00214}}                 u\_int           \mbox{\hyperlink{structg__raid3__softc_1_1g__raid3__zone_a98d866972e89c46907d54d316aa1a11e}{sz\_failed}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00215}\mbox{\hyperlink{structg__raid3__softc_a9b2e8af3c15f8454b0812cf9ad83c311}{00215}}         \} \mbox{\hyperlink{structg__raid3__softc_a9b2e8af3c15f8454b0812cf9ad83c311}{sc\_zones}}[\mbox{\hyperlink{g__raid3_8h_a0831823dc664aed71495a751dc4c312aa22546caec33237b9052861d8499ea438}{G\_RAID3\_NUM\_ZONES}}];}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00216}00216 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00217}\mbox{\hyperlink{structg__raid3__softc_a79ba5892e34e1cf4e6df4612fe637b82}{00217}}         u\_int           \mbox{\hyperlink{structg__raid3__softc_a79ba5892e34e1cf4e6df4612fe637b82}{sc\_genid}};       \textcolor{comment}{/* Generation ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00218}\mbox{\hyperlink{structg__raid3__softc_a0323f2ba66fcb0be4893b7e55c5b8471}{00218}}         u\_int           \mbox{\hyperlink{structg__raid3__softc_a0323f2ba66fcb0be4893b7e55c5b8471}{sc\_syncid}};     \textcolor{comment}{/* Synchronization ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00219}\mbox{\hyperlink{structg__raid3__softc_a8d6c8ddd7837ba9305f96bb8cdbf10e5}{00219}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structg__raid3__softc_a8d6c8ddd7837ba9305f96bb8cdbf10e5}{sc\_bump\_id}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00220}\mbox{\hyperlink{structg__raid3__softc_aba469524145c7925edb59ae621c6b096}{00220}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__device__sync}{g\_raid3\_device\_sync}} \mbox{\hyperlink{structg__raid3__softc_aba469524145c7925edb59ae621c6b096}{sc\_sync}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00221}\mbox{\hyperlink{structg__raid3__softc_a3f65dfd8c54d68e831669a9b7c04c444}{00221}}         \textcolor{keywordtype}{int}             \mbox{\hyperlink{structg__raid3__softc_a3f65dfd8c54d68e831669a9b7c04c444}{sc\_idle}}; \textcolor{comment}{/* DIRTY flags removed. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00222}\mbox{\hyperlink{structg__raid3__softc_a7ee1d5a0fdb55a5c2a04e896b5c43477}{00222}}         time\_t          \mbox{\hyperlink{structg__raid3__softc_a7ee1d5a0fdb55a5c2a04e896b5c43477}{sc\_last\_write}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00223}\mbox{\hyperlink{structg__raid3__softc_acd47263f78491b4d94e4f15afc52d4ef}{00223}}         u\_int           \mbox{\hyperlink{structg__raid3__softc_acd47263f78491b4d94e4f15afc52d4ef}{sc\_writes}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00224}00224 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00225}\mbox{\hyperlink{structg__raid3__softc_a8da2198a71f159a6160864aa83685f61}{00225}}         \mbox{\hyperlink{structg__raid3__softc_a8da2198a71f159a6160864aa83685f61}{TAILQ\_HEAD}}(, \mbox{\hyperlink{structg__raid3__event}{g\_raid3\_event}}) sc\_events;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00226}\mbox{\hyperlink{structg__raid3__softc_aaa9b9952b012a564bbc52b53156ec56b}{00226}}         \textcolor{keyword}{struct }mtx      \mbox{\hyperlink{structg__raid3__softc_aaa9b9952b012a564bbc52b53156ec56b}{sc\_events\_mtx}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00227}00227 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00228}\mbox{\hyperlink{structg__raid3__softc_a19d603e7447071147b944e92c3386dfc}{00228}}         \textcolor{keyword}{struct }callout  \mbox{\hyperlink{structg__raid3__softc_a19d603e7447071147b944e92c3386dfc}{sc\_callout}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00229}00229 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00230}\mbox{\hyperlink{structg__raid3__softc_ac9739107197eb39149a53222ffe8f0b5}{00230}}         \textcolor{keyword}{struct }root\_hold\_token *\mbox{\hyperlink{structg__raid3__softc_ac9739107197eb39149a53222ffe8f0b5}{sc\_rootmount}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00231}00231 \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00232}\mbox{\hyperlink{g__raid3_8h_ab047d2e3041c744656fa453cd79df3e5}{00232}} \textcolor{preprocessor}{\#define sc\_name sc\_geom-\/>name}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00233}00233 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00234}00234 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__raid3_8h_ad9d7fb0dcc6e0b518b388c59cec15691}{g\_raid3\_get\_diskname}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} *\mbox{\hyperlink{structdisk}{disk}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00235}00235 u\_int \mbox{\hyperlink{g__raid3_8h_af4f9dadf111857efba453a3101b07bea}{g\_raid3\_ndisks}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__softc}{g\_raid3\_softc}} *sc, \textcolor{keywordtype}{int} state);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00236}\mbox{\hyperlink{g__raid3_8h_a9cdb38eaf9670811d5e532aa8eccee1c}{00236}} \textcolor{preprocessor}{\#define G\_RAID3\_DESTROY\_SOFT    0}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00237}\mbox{\hyperlink{g__raid3_8h_ad298256ea32dcbe2f2c51b7dfe5eccc4}{00237}} \textcolor{preprocessor}{\#define G\_RAID3\_DESTROY\_DELAYED 1}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00238}\mbox{\hyperlink{g__raid3_8h_aa1ba8eb299604128427b6a4bb03b5fd9}{00238}} \textcolor{preprocessor}{\#define G\_RAID3\_DESTROY\_HARD    2}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00239}00239 \textcolor{keywordtype}{int} \mbox{\hyperlink{g__raid3_8h_afb1bfaa6ba075dab0bf4312e029e3456}{g\_raid3\_destroy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__softc}{g\_raid3\_softc}} *sc, \textcolor{keywordtype}{int} how);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00240}00240 \textcolor{keywordtype}{int} \mbox{\hyperlink{g__raid3_8h_acb7631fd8c8866baeee95476f9a354e4}{g\_raid3\_event\_send}}(\textcolor{keywordtype}{void} *arg, \textcolor{keywordtype}{int} state, \textcolor{keywordtype}{int} flags);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00241}00241 \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00242}00242 \textcolor{keywordtype}{int} \mbox{\hyperlink{g__raid3_8h_a57067dc9d2716940c7591ba5f98882fb}{g\_raid3\_add\_disk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__softc}{g\_raid3\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}},}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00243}00243     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00244}00244 \textcolor{keywordtype}{int} \mbox{\hyperlink{g__raid3_8h_aa8e10436037e4c49ea411c850f53ea27}{g\_raid3\_read\_metadata}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00245}00245 \textcolor{keywordtype}{void} \mbox{\hyperlink{g__raid3_8h_a3176876f4870f1f43c10ca247f2bf5c6}{g\_raid3\_fill\_metadata}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} *\mbox{\hyperlink{structdisk}{disk}},}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00246}00246     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00247}00247 \textcolor{keywordtype}{int} \mbox{\hyperlink{g__raid3_8h_a103d19ab81b882f6e9a94764ca3ab6db}{g\_raid3\_clear\_metadata}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} *\mbox{\hyperlink{structdisk}{disk}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00248}00248 \textcolor{keywordtype}{void} \mbox{\hyperlink{g__raid3_8h_a77e53f047f24b1bba6976a7c8e56181b}{g\_raid3\_update\_metadata}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__disk}{g\_raid3\_disk}} *\mbox{\hyperlink{structdisk}{disk}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00249}00249 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00250}\mbox{\hyperlink{g__raid3_8h_a03e1f817e5f67cac30d66a06e05d7a99}{00250}} \mbox{\hyperlink{geom_8h_a98129532a3f4d0845714f8b272b9da8a}{g\_ctl\_req\_t}} \mbox{\hyperlink{g__raid3_8h_a03e1f817e5f67cac30d66a06e05d7a99}{g\_raid3\_config}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00251}00251 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00252}00252 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00253}\mbox{\hyperlink{structg__raid3__metadata}{00253}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00254}\mbox{\hyperlink{structg__raid3__metadata_a6afc0b5867f32dc50d230086f0cbd583}{00254}}         \textcolor{keywordtype}{char}            \mbox{\hyperlink{structg__raid3__metadata_a6afc0b5867f32dc50d230086f0cbd583}{md\_magic}}[16];   \textcolor{comment}{/* Magic value. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00255}\mbox{\hyperlink{structg__raid3__metadata_a1f20d30bb3c841206af6b0974cf7207f}{00255}}         uint32\_t        \mbox{\hyperlink{structg__raid3__metadata_a1f20d30bb3c841206af6b0974cf7207f}{md\_version}};   \textcolor{comment}{/* Version number. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00256}\mbox{\hyperlink{structg__raid3__metadata_a0af55078b46a6905d5121e8e02035680}{00256}}         \textcolor{keywordtype}{char}            \mbox{\hyperlink{structg__raid3__metadata_a0af55078b46a6905d5121e8e02035680}{md\_name}}[16];     \textcolor{comment}{/* Device name. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00257}\mbox{\hyperlink{structg__raid3__metadata_ad5e1967c9fb4431227df8752beb43b83}{00257}}         uint32\_t        \mbox{\hyperlink{structg__raid3__metadata_ad5e1967c9fb4431227df8752beb43b83}{md\_id}};             \textcolor{comment}{/* Device unique ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00258}\mbox{\hyperlink{structg__raid3__metadata_addb5a523d753f2c72840650d4825cb02}{00258}}         uint16\_t        \mbox{\hyperlink{structg__raid3__metadata_addb5a523d753f2c72840650d4825cb02}{md\_no}};             \textcolor{comment}{/* Component number. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00259}\mbox{\hyperlink{structg__raid3__metadata_a5a4ebca0d975d5566cf73b4decaeac7a}{00259}}         uint16\_t        \mbox{\hyperlink{structg__raid3__metadata_a5a4ebca0d975d5566cf73b4decaeac7a}{md\_all}};           \textcolor{comment}{/* Number of disks in device. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00260}\mbox{\hyperlink{structg__raid3__metadata_a8427865226439b0cfca50232b7c41f12}{00260}}         uint32\_t        \mbox{\hyperlink{structg__raid3__metadata_a8427865226439b0cfca50232b7c41f12}{md\_genid}};       \textcolor{comment}{/* Generation ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00261}\mbox{\hyperlink{structg__raid3__metadata_acd2aed4c1f529d8f3166aed6a052acb7}{00261}}         uint32\_t        \mbox{\hyperlink{structg__raid3__metadata_acd2aed4c1f529d8f3166aed6a052acb7}{md\_syncid}};     \textcolor{comment}{/* Synchronization ID. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00262}\mbox{\hyperlink{structg__raid3__metadata_a18248f9dd03aad04c689d4e2148da9b6}{00262}}         uint64\_t        \mbox{\hyperlink{structg__raid3__metadata_a18248f9dd03aad04c689d4e2148da9b6}{md\_mediasize}};       \textcolor{comment}{/* Size of whole device. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00263}\mbox{\hyperlink{structg__raid3__metadata_af1a15cd686e2345e4267c6f7e0148915}{00263}}         uint32\_t        \mbox{\hyperlink{structg__raid3__metadata_af1a15cd686e2345e4267c6f7e0148915}{md\_sectorsize}};     \textcolor{comment}{/* Sector size. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00264}\mbox{\hyperlink{structg__raid3__metadata_a7fafc14ec30e6d39c6348588b24d3d66}{00264}}         uint64\_t        \mbox{\hyperlink{structg__raid3__metadata_a7fafc14ec30e6d39c6348588b24d3d66}{md\_sync\_offset}};   \textcolor{comment}{/* Synchronized offset. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00265}\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{00265}}         uint64\_t        \mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}};     \textcolor{comment}{/* Additional device flags. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00266}\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{00266}}         uint64\_t        \mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}};     \textcolor{comment}{/* Additional disk flags. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00267}\mbox{\hyperlink{structg__raid3__metadata_ac421dfa4e0c0df94e903f34678f539da}{00267}}         \textcolor{keywordtype}{char}            \mbox{\hyperlink{structg__raid3__metadata_ac421dfa4e0c0df94e903f34678f539da}{md\_provider}}[16]; \textcolor{comment}{/* Hardcoded provider. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00268}\mbox{\hyperlink{structg__raid3__metadata_a381b7ff0993cad7f7beac9c92ab9578a}{00268}}         uint64\_t        \mbox{\hyperlink{structg__raid3__metadata_a381b7ff0993cad7f7beac9c92ab9578a}{md\_provsize}}; \textcolor{comment}{/* Provider's size. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00269}\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{00269}}         u\_char          \mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}[16];     \textcolor{comment}{/* MD5 hash. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00270}00270 \};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00271}00271 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00272}\mbox{\hyperlink{g__raid3_8h_a878aa6351f9e614a75e848a062fcd6a3}{00272}} \mbox{\hyperlink{g__raid3_8h_a878aa6351f9e614a75e848a062fcd6a3}{raid3\_metadata\_encode}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md, u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}})}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00273}00273 \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00274}00274         MD5\_CTX ctx;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00275}00275 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00276}00276         bcopy(md-\/>\mbox{\hyperlink{structg__raid3__metadata_a6afc0b5867f32dc50d230086f0cbd583}{md\_magic}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00277}00277         le32enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 16, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a1f20d30bb3c841206af6b0974cf7207f}{md\_version}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00278}00278         bcopy(md-\/>\mbox{\hyperlink{structg__raid3__metadata_a0af55078b46a6905d5121e8e02035680}{md\_name}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 20, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00279}00279         le32enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 36, md-\/>\mbox{\hyperlink{structg__raid3__metadata_ad5e1967c9fb4431227df8752beb43b83}{md\_id}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00280}00280         le16enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 40, md-\/>\mbox{\hyperlink{structg__raid3__metadata_addb5a523d753f2c72840650d4825cb02}{md\_no}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00281}00281         le16enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 42, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a5a4ebca0d975d5566cf73b4decaeac7a}{md\_all}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00282}00282         le32enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 44, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8427865226439b0cfca50232b7c41f12}{md\_genid}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00283}00283         le32enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 48, md-\/>\mbox{\hyperlink{structg__raid3__metadata_acd2aed4c1f529d8f3166aed6a052acb7}{md\_syncid}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00284}00284         le64enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 52, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a18248f9dd03aad04c689d4e2148da9b6}{md\_mediasize}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00285}00285         le32enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 60, md-\/>\mbox{\hyperlink{structg__raid3__metadata_af1a15cd686e2345e4267c6f7e0148915}{md\_sectorsize}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00286}00286         le64enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 64, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a7fafc14ec30e6d39c6348588b24d3d66}{md\_sync\_offset}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00287}00287         le64enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 72, md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00288}00288         le64enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 80, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00289}00289         bcopy(md-\/>\mbox{\hyperlink{structg__raid3__metadata_ac421dfa4e0c0df94e903f34678f539da}{md\_provider}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 88, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00290}00290         le64enc(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 104, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a381b7ff0993cad7f7beac9c92ab9578a}{md\_provsize}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00291}00291         MD5Init(\&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00292}00292         MD5Update(\&ctx, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, 112);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00293}00293         MD5Final(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00294}00294         bcopy(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 112, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00295}00295 \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00296}00296 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00297}\mbox{\hyperlink{g__raid3_8h_a828c1a3eb20dc4ad8f46822159b73534}{00297}} \mbox{\hyperlink{g__raid3_8h_a828c1a3eb20dc4ad8f46822159b73534}{raid3\_metadata\_decode\_v0v1v2}}(\textcolor{keyword}{const} u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00298}00298 \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00299}00299         MD5\_CTX ctx;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00300}00300 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00301}00301         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 20, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a0af55078b46a6905d5121e8e02035680}{md\_name}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00302}00302         md-\/>\mbox{\hyperlink{structg__raid3__metadata_ad5e1967c9fb4431227df8752beb43b83}{md\_id}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 36);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00303}00303         md-\/>\mbox{\hyperlink{structg__raid3__metadata_addb5a523d753f2c72840650d4825cb02}{md\_no}} = le16dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 40);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00304}00304         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a5a4ebca0d975d5566cf73b4decaeac7a}{md\_all}} = le16dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 42);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00305}00305         md-\/>\mbox{\hyperlink{structg__raid3__metadata_acd2aed4c1f529d8f3166aed6a052acb7}{md\_syncid}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 44);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00306}00306         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a18248f9dd03aad04c689d4e2148da9b6}{md\_mediasize}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 48);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00307}00307         md-\/>\mbox{\hyperlink{structg__raid3__metadata_af1a15cd686e2345e4267c6f7e0148915}{md\_sectorsize}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 56);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00308}00308         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a7fafc14ec30e6d39c6348588b24d3d66}{md\_sync\_offset}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 60);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00309}00309         md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 68);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00310}00310         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 76);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00311}00311         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 84, md-\/>\mbox{\hyperlink{structg__raid3__metadata_ac421dfa4e0c0df94e903f34678f539da}{md\_provider}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00312}00312         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 100, md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00313}00313         MD5Init(\&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00314}00314         MD5Update(\&ctx, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, 100);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00315}00315         MD5Final(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00316}00316         \textcolor{keywordflow}{if} (bcmp(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 100, 16) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00317}00317                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00318}00318 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00319}00319         \textcolor{comment}{/* New fields. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00320}00320         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8427865226439b0cfca50232b7c41f12}{md\_genid}} = 0;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00321}00321         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a381b7ff0993cad7f7beac9c92ab9578a}{md\_provsize}} = 0;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00322}00322 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00323}00323         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00324}00324 \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00325}00325 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00326}\mbox{\hyperlink{g__raid3_8h_ad95d47d1f91ed733222524ea651babec}{00326}} \mbox{\hyperlink{g__raid3_8h_ad95d47d1f91ed733222524ea651babec}{raid3\_metadata\_decode\_v3}}(\textcolor{keyword}{const} u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00327}00327 \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00328}00328         MD5\_CTX ctx;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00329}00329 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00330}00330         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 20, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a0af55078b46a6905d5121e8e02035680}{md\_name}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00331}00331         md-\/>\mbox{\hyperlink{structg__raid3__metadata_ad5e1967c9fb4431227df8752beb43b83}{md\_id}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 36);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00332}00332         md-\/>\mbox{\hyperlink{structg__raid3__metadata_addb5a523d753f2c72840650d4825cb02}{md\_no}} = le16dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 40);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00333}00333         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a5a4ebca0d975d5566cf73b4decaeac7a}{md\_all}} = le16dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 42);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00334}00334         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8427865226439b0cfca50232b7c41f12}{md\_genid}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 44);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00335}00335         md-\/>\mbox{\hyperlink{structg__raid3__metadata_acd2aed4c1f529d8f3166aed6a052acb7}{md\_syncid}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 48);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00336}00336         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a18248f9dd03aad04c689d4e2148da9b6}{md\_mediasize}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 52);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00337}00337         md-\/>\mbox{\hyperlink{structg__raid3__metadata_af1a15cd686e2345e4267c6f7e0148915}{md\_sectorsize}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 60);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00338}00338         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a7fafc14ec30e6d39c6348588b24d3d66}{md\_sync\_offset}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 64);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00339}00339         md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 72);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00340}00340         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 80);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00341}00341         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 88, md-\/>\mbox{\hyperlink{structg__raid3__metadata_ac421dfa4e0c0df94e903f34678f539da}{md\_provider}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00342}00342         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 104, md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00343}00343         MD5Init(\&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00344}00344         MD5Update(\&ctx, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, 104);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00345}00345         MD5Final(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00346}00346         \textcolor{keywordflow}{if} (bcmp(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 104, 16) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00347}00347                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00348}00348 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00349}00349         \textcolor{comment}{/* New fields. */}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00350}00350         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a381b7ff0993cad7f7beac9c92ab9578a}{md\_provsize}} = 0;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00351}00351 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00352}00352         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00353}00353 \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00354}00354 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00355}\mbox{\hyperlink{g__raid3_8h_a6a28b0ce24decba42819244184a554aa}{00355}} \mbox{\hyperlink{g__raid3_8h_a6a28b0ce24decba42819244184a554aa}{raid3\_metadata\_decode\_v4v5}}(\textcolor{keyword}{const} u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00356}00356 \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00357}00357         MD5\_CTX ctx;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00358}00358 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00359}00359         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 20, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a0af55078b46a6905d5121e8e02035680}{md\_name}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00360}00360         md-\/>\mbox{\hyperlink{structg__raid3__metadata_ad5e1967c9fb4431227df8752beb43b83}{md\_id}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 36);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00361}00361         md-\/>\mbox{\hyperlink{structg__raid3__metadata_addb5a523d753f2c72840650d4825cb02}{md\_no}} = le16dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 40);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00362}00362         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a5a4ebca0d975d5566cf73b4decaeac7a}{md\_all}} = le16dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 42);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00363}00363         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8427865226439b0cfca50232b7c41f12}{md\_genid}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 44);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00364}00364         md-\/>\mbox{\hyperlink{structg__raid3__metadata_acd2aed4c1f529d8f3166aed6a052acb7}{md\_syncid}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 48);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00365}00365         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a18248f9dd03aad04c689d4e2148da9b6}{md\_mediasize}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 52);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00366}00366         md-\/>\mbox{\hyperlink{structg__raid3__metadata_af1a15cd686e2345e4267c6f7e0148915}{md\_sectorsize}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 60);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00367}00367         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a7fafc14ec30e6d39c6348588b24d3d66}{md\_sync\_offset}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 64);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00368}00368         md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 72);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00369}00369         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 80);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00370}00370         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 88, md-\/>\mbox{\hyperlink{structg__raid3__metadata_ac421dfa4e0c0df94e903f34678f539da}{md\_provider}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00371}00371         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a381b7ff0993cad7f7beac9c92ab9578a}{md\_provsize}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 104);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00372}00372         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 112, md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00373}00373         MD5Init(\&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00374}00374         MD5Update(\&ctx, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, 112);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00375}00375         MD5Final(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \&ctx);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00376}00376         \textcolor{keywordflow}{if} (bcmp(md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 112, 16) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00377}00377                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00378}00378         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00379}00379 \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00380}00380 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00381}\mbox{\hyperlink{g__raid3_8h_aa5da5c4eb9c6448ad9f856200d6684de}{00381}} \mbox{\hyperlink{g__raid3_8h_aa5da5c4eb9c6448ad9f856200d6684de}{raid3\_metadata\_decode}}(\textcolor{keyword}{const} u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00382}00382 \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00383}00383         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00384}00384 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00385}00385         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a6afc0b5867f32dc50d230086f0cbd583}{md\_magic}}, 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00386}00386         md-\/>\mbox{\hyperlink{structg__raid3__metadata_a1f20d30bb3c841206af6b0974cf7207f}{md\_version}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 16);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00387}00387         \textcolor{keywordflow}{switch} (md-\/>\mbox{\hyperlink{structg__raid3__metadata_a1f20d30bb3c841206af6b0974cf7207f}{md\_version}}) \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00388}00388         \textcolor{keywordflow}{case} 0:}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00389}00389         \textcolor{keywordflow}{case} 1:}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00390}00390         \textcolor{keywordflow}{case} 2:}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00391}00391                 error = \mbox{\hyperlink{g__raid3_8h_a828c1a3eb20dc4ad8f46822159b73534}{raid3\_metadata\_decode\_v0v1v2}}(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, md);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00392}00392                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00393}00393         \textcolor{keywordflow}{case} 3:}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00394}00394                 error = \mbox{\hyperlink{g__raid3_8h_ad95d47d1f91ed733222524ea651babec}{raid3\_metadata\_decode\_v3}}(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, md);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00395}00395                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00396}00396         \textcolor{keywordflow}{case} 4:}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00397}00397         \textcolor{keywordflow}{case} 5:}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00398}00398                 error = \mbox{\hyperlink{g__raid3_8h_a6a28b0ce24decba42819244184a554aa}{raid3\_metadata\_decode\_v4v5}}(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, md);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00399}00399                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00400}00400         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00401}00401                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00402}00402                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00403}00403         \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00404}00404         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00405}00405 \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00406}00406 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00407}00407 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00408}\mbox{\hyperlink{g__raid3_8h_a99510da5714d0ee65aa6832d46534040}{00408}} \mbox{\hyperlink{g__raid3_8h_a99510da5714d0ee65aa6832d46534040}{raid3\_metadata\_dump}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structg__raid3__metadata}{g\_raid3\_metadata}} *md)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00409}00409 \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00410}00410         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{char} hex[] = \textcolor{stringliteral}{"{}0123456789abcdef"{}};}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00411}00411         \textcolor{keywordtype}{char} hash[16 * 2 + 1];}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00412}00412         u\_int i;}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00413}00413 }
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00414}00414         printf(\textcolor{stringliteral}{"{}     magic: \%s\(\backslash\)n"{}}, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a6afc0b5867f32dc50d230086f0cbd583}{md\_magic}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00415}00415         printf(\textcolor{stringliteral}{"{}   version: \%u\(\backslash\)n"{}}, (u\_int)md-\/>\mbox{\hyperlink{structg__raid3__metadata_a1f20d30bb3c841206af6b0974cf7207f}{md\_version}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00416}00416         printf(\textcolor{stringliteral}{"{}      name: \%s\(\backslash\)n"{}}, md-\/>\mbox{\hyperlink{structg__raid3__metadata_a0af55078b46a6905d5121e8e02035680}{md\_name}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00417}00417         printf(\textcolor{stringliteral}{"{}        id: \%u\(\backslash\)n"{}}, (u\_int)md-\/>\mbox{\hyperlink{structg__raid3__metadata_ad5e1967c9fb4431227df8752beb43b83}{md\_id}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00418}00418         printf(\textcolor{stringliteral}{"{}        no: \%u\(\backslash\)n"{}}, (u\_int)md-\/>\mbox{\hyperlink{structg__raid3__metadata_addb5a523d753f2c72840650d4825cb02}{md\_no}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00419}00419         printf(\textcolor{stringliteral}{"{}       all: \%u\(\backslash\)n"{}}, (u\_int)md-\/>\mbox{\hyperlink{structg__raid3__metadata_a5a4ebca0d975d5566cf73b4decaeac7a}{md\_all}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00420}00420         printf(\textcolor{stringliteral}{"{}     genid: \%u\(\backslash\)n"{}}, (u\_int)md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8427865226439b0cfca50232b7c41f12}{md\_genid}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00421}00421         printf(\textcolor{stringliteral}{"{}    syncid: \%u\(\backslash\)n"{}}, (u\_int)md-\/>\mbox{\hyperlink{structg__raid3__metadata_acd2aed4c1f529d8f3166aed6a052acb7}{md\_syncid}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00422}00422         printf(\textcolor{stringliteral}{"{} mediasize: \%jd\(\backslash\)n"{}}, (intmax\_t)md-\/>\mbox{\hyperlink{structg__raid3__metadata_a18248f9dd03aad04c689d4e2148da9b6}{md\_mediasize}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00423}00423         printf(\textcolor{stringliteral}{"{}sectorsize: \%u\(\backslash\)n"{}}, (u\_int)md-\/>\mbox{\hyperlink{structg__raid3__metadata_af1a15cd686e2345e4267c6f7e0148915}{md\_sectorsize}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00424}00424         printf(\textcolor{stringliteral}{"{}syncoffset: \%jd\(\backslash\)n"{}}, (intmax\_t)md-\/>\mbox{\hyperlink{structg__raid3__metadata_a7fafc14ec30e6d39c6348588b24d3d66}{md\_sync\_offset}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00425}00425         printf(\textcolor{stringliteral}{"{}    mflags:"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00426}00426         \textcolor{keywordflow}{if} (md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} == 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00427}00427                 printf(\textcolor{stringliteral}{"{} NONE"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00428}00428         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00429}00429                 \textcolor{keywordflow}{if} ((md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} \& \mbox{\hyperlink{g__raid3_8h_a0a94748b2d425a256c3cef0f51ad5176}{G\_RAID3\_DEVICE\_FLAG\_NOAUTOSYNC}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00430}00430                         printf(\textcolor{stringliteral}{"{} NOAUTOSYNC"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00431}00431                 \textcolor{keywordflow}{if} ((md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} \& \mbox{\hyperlink{g__raid3_8h_a3fea077718788462e655b1363fe0bcc9}{G\_RAID3\_DEVICE\_FLAG\_ROUND\_ROBIN}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00432}00432                         printf(\textcolor{stringliteral}{"{} ROUND-\/ROBIN"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00433}00433                 \textcolor{keywordflow}{if} ((md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} \& \mbox{\hyperlink{g__raid3_8h_a4b40ddb04da52a14bd04c8761802a99f}{G\_RAID3\_DEVICE\_FLAG\_VERIFY}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00434}00434                         printf(\textcolor{stringliteral}{"{} VERIFY"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00435}00435                 \textcolor{keywordflow}{if} ((md-\/>\mbox{\hyperlink{structg__raid3__metadata_aaee866d4bf17205839a57362566ed577}{md\_mflags}} \& \mbox{\hyperlink{g__raid3_8h_acd0b9737417b02e49e34410aca1a4407}{G\_RAID3\_DEVICE\_FLAG\_NOFAILSYNC}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00436}00436                         printf(\textcolor{stringliteral}{"{} NOFAILSYNC"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00437}00437         \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00438}00438         printf(\textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00439}00439         printf(\textcolor{stringliteral}{"{}    dflags:"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00440}00440         \textcolor{keywordflow}{if} (md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}} == 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00441}00441                 printf(\textcolor{stringliteral}{"{} NONE"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00442}00442         \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00443}00443                 \textcolor{keywordflow}{if} ((md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}} \& \mbox{\hyperlink{g__raid3_8h_a44e1359eb76e703ef241a3bb6f51bf7c}{G\_RAID3\_DISK\_FLAG\_DIRTY}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00444}00444                         printf(\textcolor{stringliteral}{"{} DIRTY"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00445}00445                 \textcolor{keywordflow}{if} ((md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}} \& \mbox{\hyperlink{g__raid3_8h_a5ab166d3a0034408df43cdba111991c7}{G\_RAID3\_DISK\_FLAG\_SYNCHRONIZING}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00446}00446                         printf(\textcolor{stringliteral}{"{} SYNCHRONIZING"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00447}00447                 \textcolor{keywordflow}{if} ((md-\/>\mbox{\hyperlink{structg__raid3__metadata_a8408d4e788a104cc683bcb361cc8feee}{md\_dflags}} \& \mbox{\hyperlink{g__raid3_8h_a5282abc5a8e372654d24cac5b7d0302b}{G\_RAID3\_DISK\_FLAG\_FORCE\_SYNC}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00448}00448                         printf(\textcolor{stringliteral}{"{} FORCE\_SYNC"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00449}00449         \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00450}00450         printf(\textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00451}00451         printf(\textcolor{stringliteral}{"{}hcprovider: \%s\(\backslash\)n"{}}, md-\/>\mbox{\hyperlink{structg__raid3__metadata_ac421dfa4e0c0df94e903f34678f539da}{md\_provider}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00452}00452         printf(\textcolor{stringliteral}{"{}  provsize: \%ju\(\backslash\)n"{}}, (uintmax\_t)md-\/>\mbox{\hyperlink{structg__raid3__metadata_a381b7ff0993cad7f7beac9c92ab9578a}{md\_provsize}});}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00453}00453         bzero(hash, \textcolor{keyword}{sizeof}(hash));}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00454}00454         \textcolor{keywordflow}{for} (i = 0; i < 16; i++) \{}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00455}00455                 hash[i * 2] = hex[md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}[i] >> 4];}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00456}00456                 hash[i * 2 + 1] = hex[md-\/>\mbox{\hyperlink{structg__raid3__metadata_af9960bd092a47da29af7be9f17ddf782}{md\_hash}}[i] \& 0x0f];}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00457}00457         \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00458}00458         printf(\textcolor{stringliteral}{"{}  MD5 hash: \%s\(\backslash\)n"{}}, hash);}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00459}00459 \}}
\DoxyCodeLine{\Hypertarget{g__raid3_8h_source_l00460}00460 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* !\_G\_RAID3\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
