\hypertarget{geom__ctl_8c_source}{}\doxysection{geom\+\_\+ctl.\+c}
\label{geom__ctl_8c_source}\index{geom/geom\_ctl.c@{geom/geom\_ctl.c}}
\mbox{\hyperlink{geom__ctl_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/3-\/Clause}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2002 Poul-\/Henning Kamp}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2002 Networks Associates Technology, Inc.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00006}00006 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00007}00007 \textcolor{comment}{ * Copyright (c) 2022 Alexander Motin <mav@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00008}00008 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00009}00009 \textcolor{comment}{ * This software was developed for the FreeBSD Project by Poul-\/Henning Kamp}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00010}00010 \textcolor{comment}{ * and NAI Labs, the Security Research Division of Network Associates, Inc.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00011}00011 \textcolor{comment}{ * under DARPA/SPAWAR contract N66001-\/01-\/C-\/8035 ("{}CBOSS"{}), as part of the}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00012}00012 \textcolor{comment}{ * DARPA CHATS research program.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00013}00013 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00014}00014 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00015}00015 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00016}00016 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00017}00017 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00018}00018 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00019}00019 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00020}00020 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00021}00021 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00022}00022 \textcolor{comment}{ * 3. The names of the authors may not be used to endorse or promote}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00023}00023 \textcolor{comment}{ *    products derived from this software without specific prior written}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00024}00024 \textcolor{comment}{ *    permission.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00025}00025 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00026}00026 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00027}00027 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00028}00028 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00029}00029 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00030}00030 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00031}00031 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00032}00032 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00033}00033 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00034}00034 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00035}00035 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00036}00036 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00037}00037 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00038}00038 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00040}\mbox{\hyperlink{geom__ctl_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00040}} \mbox{\hyperlink{geom__ctl_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00041}00041 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/conf.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/sbuf.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <vm/vm.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <vm/vm\_extern.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00050}00050 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom_8h}{geom/geom.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__int_8h}{geom/geom\_int.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00053}\mbox{\hyperlink{geom__ctl_8c_a13a1b6b5ad9bbcdf1f4694834858fcb0}{00053}} \textcolor{preprocessor}{\#define GCTL\_TABLE 1}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00054}00054 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__ctl_8h}{geom/geom\_ctl.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00056}00056 \textcolor{preprocessor}{\#include <machine/stdarg.h>}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00057}00057 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00058}\mbox{\hyperlink{geom__ctl_8c_ae21d713b4c4603ec4fbc3d6e8107d09e}{00058}} \textcolor{keyword}{static} d\_ioctl\_t \mbox{\hyperlink{geom__ctl_8c_ae21d713b4c4603ec4fbc3d6e8107d09e}{g\_ctl\_ioctl}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00060}\mbox{\hyperlink{geom__ctl_8c_a9b601e2f6e41da062411ec58176cff8f}{00060}} \textcolor{keyword}{static} \textcolor{keyword}{struct }cdevsw \mbox{\hyperlink{geom__ctl_8c_a9b601e2f6e41da062411ec58176cff8f}{g\_ctl\_cdevsw}} = \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00061}00061         .d\_version =    D\_VERSION,}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00062}00062         .d\_flags =      0,}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00063}00063         .d\_ioctl =      \mbox{\hyperlink{geom__ctl_8c_ae21d713b4c4603ec4fbc3d6e8107d09e}{g\_ctl\_ioctl}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00064}00064         .d\_name =       \textcolor{stringliteral}{"{}g\_ctl"{}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00065}00065 \};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00066}00066 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00067}\mbox{\hyperlink{geom__ctl_8c_afc564ba9a76d2dd23c878d76fd951258}{00067}} \mbox{\hyperlink{geom__ctl_8c_afc564ba9a76d2dd23c878d76fd951258}{CTASSERT}}(\mbox{\hyperlink{geom__ctl_8h_a3ef065b28535b7c0746b67be34d53717}{GCTL\_PARAM\_RD}} == VM\_PROT\_READ);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00068}\mbox{\hyperlink{geom__ctl_8c_adaaf8c7a53d029fad9abf02386328b42}{00068}} \mbox{\hyperlink{geom__ctl_8c_afc564ba9a76d2dd23c878d76fd951258}{CTASSERT}}(\mbox{\hyperlink{geom__ctl_8h_a70e4aace425a5f17a379fdff316f3ed8}{GCTL\_PARAM\_WR}} == VM\_PROT\_WRITE);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00070}00070 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00071}\mbox{\hyperlink{geom__ctl_8c_a4b33486181f7ae695d2b9f361b70f839}{00071}} \mbox{\hyperlink{geom__ctl_8c_a4b33486181f7ae695d2b9f361b70f839}{g\_ctl\_init}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00072}00072 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00073}00073 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00074}00074         make\_dev\_credf(MAKEDEV\_ETERNAL, \&\mbox{\hyperlink{geom__ctl_8c_a9b601e2f6e41da062411ec58176cff8f}{g\_ctl\_cdevsw}}, 0, NULL,}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00075}00075             UID\_ROOT, GID\_OPERATOR, 0640, \mbox{\hyperlink{geom__ctl_8h_aedd6e42d4acde1ad1ef047b6f2e611e5}{PATH\_GEOM\_CTL}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00076}00076 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00078}00078 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00079}00079 \textcolor{comment}{ * Report an error back to the user in ascii format.  Return nerror}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00080}00080 \textcolor{comment}{ * or EINVAL if nerror isn't specified.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00081}00081 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00082}00082 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00083}\mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{00083}} \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *fmt, ...)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00084}00084 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00085}00085         va\_list ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00087}00087         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}} == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00088}00088                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00089}00089 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00090}00090         \textcolor{comment}{/* We only record the first error */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00091}00091         \textcolor{keywordflow}{if} (sbuf\_done(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror)) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00092}00092                 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00093}00093                         \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror = EEXIST;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00094}00094 \textcolor{preprocessor}{\#ifdef DIAGNOSTIC}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00095}00095                 printf(\textcolor{stringliteral}{"{}gctl\_error: buffer closed, message discarded.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00096}00096 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00097}00097                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00098}00098         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00099}00099         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00100}00100                 \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror = EINVAL;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00102}00102         \textcolor{comment}{/* If this is the last of several messages, indent it on a new line */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00103}00103         \textcolor{keywordflow}{if} (sbuf\_len(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror) > 0)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00104}00104                 sbuf\_cat(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror, \textcolor{stringliteral}{"{}\(\backslash\)n\(\backslash\)t"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00105}00105         va\_start(ap, fmt);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00106}00106         sbuf\_vprintf(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror, fmt, ap);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00107}00107         va\_end(ap);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00108}00108         \mbox{\hyperlink{geom__ctl_8c_a8c62f2caf3df456ee957658b97be4d35}{gctl\_post\_messages}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00109}00109         \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00110}00110 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00111}00111 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00112}00112 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00113}00113 \textcolor{comment}{ * The gctl\_error() function will only report a single message.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00114}00114 \textcolor{comment}{ * Commands that handle multiple devices may want to report a}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00115}00115 \textcolor{comment}{ * message for each of the devices. The gctl\_msg() function}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00116}00116 \textcolor{comment}{ * can be called multiple times to post messages. When done}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00117}00117 \textcolor{comment}{ * the application must either call gctl\_post\_messages() or}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00118}00118 \textcolor{comment}{ * call gctl\_error() to cause the messages to be reported to}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00119}00119 \textcolor{comment}{ * the calling process.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00120}00120 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00121}00121 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00122}\mbox{\hyperlink{geom__ctl_8c_a05fa1409eb2ceebc2e52412a3d7366e9}{00122}} \mbox{\hyperlink{geom__ctl_8c_a05fa1409eb2ceebc2e52412a3d7366e9}{gctl\_msg}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *fmt, ...)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00123}00123 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00124}00124         va\_list ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00126}00126         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}} == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00127}00127                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00128}00128         \textcolor{keywordflow}{if} (sbuf\_done(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror)) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00129}00129 \textcolor{preprocessor}{\#ifdef DIAGNOSTIC}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00130}00130                 printf(\textcolor{stringliteral}{"{}gctl\_msg: buffer closed, message discarded.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00131}00131 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00132}00132                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00133}00133         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00134}00134         \textcolor{comment}{/* Put second and later messages indented on a new line */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00135}00135         \textcolor{keywordflow}{if} (sbuf\_len(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror) > 0)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00136}00136                 sbuf\_cat(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror, \textcolor{stringliteral}{"{}\(\backslash\)n\(\backslash\)t"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00137}00137         va\_start(ap, fmt);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00138}00138         sbuf\_vprintf(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror, fmt, ap);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00139}00139         va\_end(ap);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00140}00140 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00141}00141 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00142}00142 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00143}00143 \textcolor{comment}{ * Post the messages to the user.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00144}00144 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00145}00145 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00146}\mbox{\hyperlink{geom_8h_a46a56ee1a935196396edd9a0e302e716}{00146}} \mbox{\hyperlink{geom__ctl_8c_a8c62f2caf3df456ee957658b97be4d35}{gctl\_post\_messages}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00147}00147 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00148}00148 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00149}00149         \textcolor{keywordflow}{if} (sbuf\_done(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror)) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00150}00150 \textcolor{preprocessor}{\#ifdef DIAGNOSTIC}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00151}00151                 printf(\textcolor{stringliteral}{"{}gctl\_post\_messages: message buffer already closed.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00152}00152 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00153}00153                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00154}00154         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00155}00155         sbuf\_finish(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00156}00156         \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom_8h_aca9e9300747035c84977158ea1fe1d38}{g\_debugflags}} \& \mbox{\hyperlink{geom_8h_a5d83d7ea202ca46c04a50d5eb41a64ce}{G\_F\_CTLDUMP}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00157}00157                 printf(\textcolor{stringliteral}{"{}gctl \%p message(s) \(\backslash\)"{}\%s\(\backslash\)"{}\(\backslash\)n"{}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00158}00158                     sbuf\_data(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror));}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00159}00159 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00160}00160 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00161}00161 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00162}00162 \textcolor{comment}{ * Allocate space and copyin() something.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00163}00163 \textcolor{comment}{ * XXX: this should really be a standard function in the kernel.}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00164}00164 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00165}00165 \textcolor{keyword}{static} \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00166}\mbox{\hyperlink{geom__ctl_8c_acb94cdd11e90454a6c5dbfd25b26d26f}{00166}} \mbox{\hyperlink{geom__ctl_8c_acb94cdd11e90454a6c5dbfd25b26d26f}{geom\_alloc\_copyin}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keywordtype}{void} *uaddr, \textcolor{keywordtype}{size\_t} len)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00167}00167 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00168}00168         \textcolor{keywordtype}{void} *ptr;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00169}00169 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00170}00170         ptr = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(len, M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00171}00171         \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror = copyin(uaddr, ptr, len);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00172}00172         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00173}00173                 \textcolor{keywordflow}{return} (ptr);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00174}00174         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(ptr);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00175}00175         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00176}00176 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00177}00177 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00178}00178 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00179}\mbox{\hyperlink{geom__ctl_8c_a6eaefb03c7f35f30968c6f46b50cb17b}{00179}} \mbox{\hyperlink{geom__ctl_8c_a6eaefb03c7f35f30968c6f46b50cb17b}{gctl\_copyin}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00180}00180 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00181}00181         \textcolor{keyword}{struct }\mbox{\hyperlink{structgctl__req__arg}{gctl\_req\_arg}} *ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00182}00182         \textcolor{keywordtype}{char} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00183}00183         u\_int i;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00184}00184 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00185}00185         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg > \mbox{\hyperlink{geom__ctl_8h_a9269d9c03a6038d1775dcf708102a6c8}{GEOM\_CTL\_ARG\_MAX}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00186}00186                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}too many arguments"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00187}00187                 \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg = NULL;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00188}00188                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00189}00189         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00190}00190 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00191}00191         ap = \mbox{\hyperlink{geom__ctl_8c_acb94cdd11e90454a6c5dbfd25b26d26f}{geom\_alloc\_copyin}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg * \textcolor{keyword}{sizeof}(*ap));}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00192}00192         \textcolor{keywordflow}{if} (ap == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00193}00193                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}bad control request"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00194}00194                 \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg = NULL;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00195}00195                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00196}00196         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00197}00197 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00198}00198         \textcolor{comment}{/* Nothing have been copyin()'ed yet */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00199}00199         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00200}00200                 ap[i].\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \&= \string~(\mbox{\hyperlink{geom__ctl_8h_a4bf2749e03d7bbc529856e2ee4d1214b}{GCTL\_PARAM\_NAMEKERNEL}}|\mbox{\hyperlink{geom__ctl_8h_a7ecaa1526d5cb4dd349b979ba09d5377}{GCTL\_PARAM\_VALUEKERNEL}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00201}00201                 ap[i].\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \&= \string~GCTL\_PARAM\_CHANGED;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00202}00202                 ap[i].\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}} = NULL;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00203}00203         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00204}00204 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00205}00205         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00206}00206                 \textcolor{keywordflow}{if} (ap[i].\mbox{\hyperlink{structgctl__req__arg_a36d86d454995f73b8d55b9fea7c1e717}{nlen}} < 1 || ap[i].\mbox{\hyperlink{structgctl__req__arg_a36d86d454995f73b8d55b9fea7c1e717}{nlen}} > SPECNAMELEN) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00207}00207                         \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00208}00208                             \textcolor{stringliteral}{"{}wrong param name length \%d: \%d"{}}, i, ap[i].\mbox{\hyperlink{structgctl__req__arg_a36d86d454995f73b8d55b9fea7c1e717}{nlen}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00209}00209                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00210}00210                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00211}00211                 p = \mbox{\hyperlink{geom__ctl_8c_acb94cdd11e90454a6c5dbfd25b26d26f}{geom\_alloc\_copyin}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, ap[i].\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}, ap[i].\mbox{\hyperlink{structgctl__req__arg_a36d86d454995f73b8d55b9fea7c1e717}{nlen}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00212}00212                 \textcolor{keywordflow}{if} (p == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00213}00213                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00214}00214                 \textcolor{keywordflow}{if} (p[ap[i].\mbox{\hyperlink{structgctl__req__arg_a36d86d454995f73b8d55b9fea7c1e717}{nlen}} -\/ 1] != \textcolor{charliteral}{'\(\backslash\)0'}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00215}00215                         \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}unterminated param name"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00216}00216                         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00217}00217                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00218}00218                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00219}00219                 ap[i].\mbox{\hyperlink{structgctl__req__arg_a24088807b1d983675d34eb2f0a3e9b5d}{name}} = p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00220}00220                 ap[i].\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} |= \mbox{\hyperlink{geom__ctl_8h_a4bf2749e03d7bbc529856e2ee4d1214b}{GCTL\_PARAM\_NAMEKERNEL}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00221}00221                 \textcolor{keywordflow}{if} (ap[i].\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} <= 0) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00222}00222                         \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}negative param length"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00223}00223                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00224}00224                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00225}00225                 \textcolor{keywordflow}{if} (ap[i].\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_a3ef065b28535b7c0746b67be34d53717}{GCTL\_PARAM\_RD}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00226}00226                         p = \mbox{\hyperlink{geom__ctl_8c_acb94cdd11e90454a6c5dbfd25b26d26f}{geom\_alloc\_copyin}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, ap[i].\mbox{\hyperlink{structgctl__req__arg_ac682069755505c4d656620a74194ac63}{value}}, ap[i].\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00227}00227                         \textcolor{keywordflow}{if} (p == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00228}00228                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00229}00229                         \textcolor{keywordflow}{if} ((ap[i].\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_acb76c35cc36a4cabc04cd6dd078ae7d4}{GCTL\_PARAM\_ASCII}}) \&\&}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00230}00230                             p[ap[i].\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} -\/ 1] != \textcolor{charliteral}{'\(\backslash\)0'}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00231}00231                                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}unterminated param value"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00232}00232                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00233}00233                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00234}00234                         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00235}00235                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00236}00236                         p = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(ap[i].\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}}, M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00237}00237                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00238}00238                 ap[i].\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}} = p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00239}00239                 ap[i].\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} |= \mbox{\hyperlink{geom__ctl_8h_a7ecaa1526d5cb4dd349b979ba09d5377}{GCTL\_PARAM\_VALUEKERNEL}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00240}00240         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00241}00241         \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg = ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00242}00242         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00243}00243 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00244}00244 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00245}00245 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00246}\mbox{\hyperlink{geom__ctl_8c_a7ccf3c749d7aa9187249db1152339ddf}{00246}} \mbox{\hyperlink{geom__ctl_8c_a7ccf3c749d7aa9187249db1152339ddf}{gctl\_copyout}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00247}00247 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00248}00248         \textcolor{keywordtype}{int} error, i;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00249}00249         \textcolor{keyword}{struct }\mbox{\hyperlink{structgctl__req__arg}{gctl\_req\_arg}} *ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00250}00250 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00251}00251         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00252}00252                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00253}00253         error = 0;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00254}00254         ap = \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00255}00255         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg; i++, ap++) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00256}00256                 \textcolor{keywordflow}{if} (!(ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_a6eda7383c5e61c6bb2c73ce7881ecbce}{GCTL\_PARAM\_CHANGED}}))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00257}00257                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00258}00258                 error = copyout(ap-\/>\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_ac682069755505c4d656620a74194ac63}{value}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00259}00259                 \textcolor{keywordflow}{if} (!error)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00260}00260                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00261}00261                 \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror = error;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00262}00262                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00263}00263         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00264}00264         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00265}00265 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00266}00266 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00267}00267 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00268}\mbox{\hyperlink{geom__ctl_8c_ad10c60858121662a3adfa45ed2ab4336}{00268}} \mbox{\hyperlink{geom__ctl_8c_ad10c60858121662a3adfa45ed2ab4336}{gctl\_free}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00269}00269 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00270}00270         u\_int i;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00271}00271 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00272}00272         sbuf\_delete(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00273}00273         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00274}00274                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00275}00275         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00276}00276                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i].flag \& \mbox{\hyperlink{geom__ctl_8h_a4bf2749e03d7bbc529856e2ee4d1214b}{GCTL\_PARAM\_NAMEKERNEL}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00277}00277                         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i].name);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00278}00278                 \textcolor{keywordflow}{if} ((\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i].flag \& \mbox{\hyperlink{geom__ctl_8h_a7ecaa1526d5cb4dd349b979ba09d5377}{GCTL\_PARAM\_VALUEKERNEL}}) \&\&}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00279}00279                     \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i].len > 0)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00280}00280                         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i].kvalue);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00281}00281         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00282}00282         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00283}00283 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00284}00284 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00285}00285 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00286}\mbox{\hyperlink{geom__ctl_8c_a426340d3b7acce798a777a57a2d17470}{00286}} \mbox{\hyperlink{geom__ctl_8c_a426340d3b7acce798a777a57a2d17470}{gctl\_dump}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *what)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00287}00287 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00288}00288         \textcolor{keyword}{struct }\mbox{\hyperlink{structgctl__req__arg}{gctl\_req\_arg}} *ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00289}00289         u\_int i;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00290}00290         \textcolor{keywordtype}{int} j;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00291}00291 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00292}00292         printf(\textcolor{stringliteral}{"{}Dump of gctl \%s at \%p:\(\backslash\)n"{}}, what, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00293}00293         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror > 0) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00294}00294                 printf(\textcolor{stringliteral}{"{}  nerror:\(\backslash\)t\%d\(\backslash\)n"{}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00295}00295                 \textcolor{keywordflow}{if} (sbuf\_len(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror) > 0)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00296}00296                         printf(\textcolor{stringliteral}{"{}  error:\(\backslash\)t\(\backslash\)"{}\%s\(\backslash\)"{}\(\backslash\)n"{}}, sbuf\_data(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror));}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00297}00297         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00298}00298         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00299}00299                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00300}00300         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00301}00301                 ap = \&\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i];}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00302}00302                 \textcolor{keywordflow}{if} (!(ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_a4bf2749e03d7bbc529856e2ee4d1214b}{GCTL\_PARAM\_NAMEKERNEL}}))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00303}00303                         printf(\textcolor{stringliteral}{"{}  param:\(\backslash\)t\%d@\%p"{}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_a36d86d454995f73b8d55b9fea7c1e717}{nlen}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_a24088807b1d983675d34eb2f0a3e9b5d}{name}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00304}00304                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00305}00305                         printf(\textcolor{stringliteral}{"{}  param:\(\backslash\)t\(\backslash\)"{}\%s\(\backslash\)"{}"{}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_a24088807b1d983675d34eb2f0a3e9b5d}{name}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00306}00306                 printf(\textcolor{stringliteral}{"{} [\%s\%s\%d] = "{}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00307}00307                     ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_a3ef065b28535b7c0746b67be34d53717}{GCTL\_PARAM\_RD}} ? \textcolor{stringliteral}{"{}R"{}} : \textcolor{stringliteral}{"{}"{}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00308}00308                     ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_a70e4aace425a5f17a379fdff316f3ed8}{GCTL\_PARAM\_WR}} ? \textcolor{stringliteral}{"{}W"{}} : \textcolor{stringliteral}{"{}"{}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00309}00309                     ap-\/>\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00310}00310                 \textcolor{keywordflow}{if} (!(ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_a7ecaa1526d5cb4dd349b979ba09d5377}{GCTL\_PARAM\_VALUEKERNEL}})) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00311}00311                         printf(\textcolor{stringliteral}{"{} =@ \%p"{}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_ac682069755505c4d656620a74194ac63}{value}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00312}00312                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_acb76c35cc36a4cabc04cd6dd078ae7d4}{GCTL\_PARAM\_ASCII}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00313}00313                         printf(\textcolor{stringliteral}{"{}\(\backslash\)"{}\%s\(\backslash\)"{}"{}}, (\textcolor{keywordtype}{char} *)ap-\/>\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00314}00314                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (ap-\/>\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} > 0) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00315}00315                         \textcolor{keywordflow}{for} (j = 0; j < ap-\/>\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} \&\& j < 512; j++)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00316}00316                                 printf(\textcolor{stringliteral}{"{} \%02x"{}}, ((u\_char *)ap-\/>\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}})[j]);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00317}00317                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00318}00318                         printf(\textcolor{stringliteral}{"{} = \%p"{}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00319}00319                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00320}00320                 printf(\textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00321}00321         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00322}00322 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00323}00323 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00324}00324 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00325}\mbox{\hyperlink{geom_8h_abf5d22b40dea53afe414a88271754c6a}{00325}} \mbox{\hyperlink{geom__ctl_8c_abf5d22b40dea53afe414a88271754c6a}{gctl\_set\_param}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *param, \textcolor{keywordtype}{void} \textcolor{keyword}{const} *ptr,}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00326}00326     \textcolor{keywordtype}{int} \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00327}00327 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00328}00328         u\_int i;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00329}00329         \textcolor{keyword}{struct }\mbox{\hyperlink{structgctl__req__arg}{gctl\_req\_arg}} *ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00330}00330 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00331}00331         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00332}00332                 ap = \&\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i];}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00333}00333                 \textcolor{keywordflow}{if} (strcmp(param, ap-\/>\mbox{\hyperlink{structgctl__req__arg_a24088807b1d983675d34eb2f0a3e9b5d}{name}}))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00334}00334                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00335}00335                 \textcolor{keywordflow}{if} (!(ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& \mbox{\hyperlink{geom__ctl_8h_a70e4aace425a5f17a379fdff316f3ed8}{GCTL\_PARAM\_WR}}))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00336}00336                         \textcolor{keywordflow}{return} (EPERM);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00337}00337                 ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} |= \mbox{\hyperlink{geom__ctl_8h_a6eda7383c5e61c6bb2c73ce7881ecbce}{GCTL\_PARAM\_CHANGED}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00338}00338                 \textcolor{keywordflow}{if} (ap-\/>\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} < \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00339}00339                         bcopy(ptr, ap-\/>\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}}, ap-\/>\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00340}00340                         \textcolor{keywordflow}{return} (ENOSPC);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00341}00341                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00342}00342                 bcopy(ptr, ap-\/>\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}}, \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00343}00343                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00344}00344         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00345}00345         \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00346}00346 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00347}00347 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00348}00348 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00349}\mbox{\hyperlink{geom_8h_a0e59ccc0c24cea0ff0cee98b64021ba5}{00349}} \mbox{\hyperlink{geom__ctl_8c_a0e59ccc0c24cea0ff0cee98b64021ba5}{gctl\_set\_param\_err}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *param, \textcolor{keywordtype}{void} \textcolor{keyword}{const} *ptr,}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00350}00350     \textcolor{keywordtype}{int} \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00351}00351 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00352}00352 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00353}00353         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{geom__ctl_8c_abf5d22b40dea53afe414a88271754c6a}{gctl\_set\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, param, ptr, \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}})) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00354}00354         \textcolor{keywordflow}{case} EPERM:}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00355}00355                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}No write access \%s argument"{}}, param);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00356}00356                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00357}00357         \textcolor{keywordflow}{case} ENOSPC:}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00358}00358                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Wrong length \%s argument"{}}, param);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00359}00359                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00360}00360         \textcolor{keywordflow}{case} EINVAL:}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00361}00361                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Missing \%s argument"{}}, param);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00362}00362                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00363}00363         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00364}00364 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00365}00365 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00366}00366 \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00367}\mbox{\hyperlink{geom_8h_a1abba7d508f055176e3bbd8eec3051b5}{00367}} \mbox{\hyperlink{geom__ctl_8c_a1abba7d508f055176e3bbd8eec3051b5}{gctl\_get\_param\_flags}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *param, \textcolor{keywordtype}{int} flags, \textcolor{keywordtype}{int} *\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00368}00368 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00369}00369         u\_int i;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00370}00370         \textcolor{keywordtype}{void} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00371}00371         \textcolor{keyword}{struct }\mbox{\hyperlink{structgctl__req__arg}{gctl\_req\_arg}} *ap;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00372}00372 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00373}00373         \textcolor{keywordflow}{for} (i = 0; i < \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>narg; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00374}00374                 ap = \&\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg[i];}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00375}00375                 \textcolor{keywordflow}{if} (strcmp(param, ap-\/>\mbox{\hyperlink{structgctl__req__arg_a24088807b1d983675d34eb2f0a3e9b5d}{name}}))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00376}00376                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00377}00377                 \textcolor{keywordflow}{if} ((ap-\/>\mbox{\hyperlink{structgctl__req__arg_a1fba9eb23df022b6d9e40394ecde0f98}{flag}} \& flags) != flags)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00378}00378                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00379}00379                 p = ap-\/>\mbox{\hyperlink{structgctl__req__arg_abb3571fa1e32c8467462d8f5918d140e}{kvalue}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00380}00380                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} != NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00381}00381                         *\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} = ap-\/>\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00382}00382                 \textcolor{keywordflow}{return} (p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00383}00383         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00384}00384         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00385}00385 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00386}00386 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00387}00387 \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00388}\mbox{\hyperlink{geom_8h_a3e3d6786258b3336d55a96607f9b8eb8}{00388}} \mbox{\hyperlink{geom__ctl_8c_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *param, \textcolor{keywordtype}{int} *\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00389}00389 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00390}00390 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00391}00391         \textcolor{keywordflow}{return} (\mbox{\hyperlink{geom__ctl_8c_a1abba7d508f055176e3bbd8eec3051b5}{gctl\_get\_param\_flags}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, param, \mbox{\hyperlink{geom__ctl_8h_a3ef065b28535b7c0746b67be34d53717}{GCTL\_PARAM\_RD}}, \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}}));}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00392}00392 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00393}00393 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00394}00394 \textcolor{keywordtype}{char} \textcolor{keyword}{const} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00395}\mbox{\hyperlink{geom_8h_ada33526012aac8ee446617bb3749a07c}{00395}} \mbox{\hyperlink{geom__ctl_8c_ada33526012aac8ee446617bb3749a07c}{gctl\_get\_asciiparam}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *param)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00396}00396 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00397}00397         \textcolor{keywordtype}{char} \textcolor{keyword}{const} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00398}00398         \textcolor{keywordtype}{int} \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00399}00399 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00400}00400         p = \mbox{\hyperlink{geom__ctl_8c_a1abba7d508f055176e3bbd8eec3051b5}{gctl\_get\_param\_flags}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, param, \mbox{\hyperlink{geom__ctl_8h_a3ef065b28535b7c0746b67be34d53717}{GCTL\_PARAM\_RD}}, \&\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00401}00401         \textcolor{keywordflow}{if} (p == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00402}00402                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00403}00403         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} < 1) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00404}00404                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Argument without length (\%s)"{}}, param);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00405}00405                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00406}00406         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00407}00407         \textcolor{keywordflow}{if} (p[\mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}} -\/ 1] != \textcolor{charliteral}{'\(\backslash\)0'}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00408}00408                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Unterminated argument (\%s)"{}}, param);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00409}00409                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00410}00410         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00411}00411         \textcolor{keywordflow}{return} (p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00412}00412 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00413}00413 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00414}00414 \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00415}\mbox{\hyperlink{geom_8h_ab1b74fb84c5157c09be416bc8b8d9d64}{00415}} \mbox{\hyperlink{geom__ctl_8c_ab1b74fb84c5157c09be416bc8b8d9d64}{gctl\_get\_paraml\_opt}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *param, \textcolor{keywordtype}{int} \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00416}00416 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00417}00417         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00418}00418         \textcolor{keywordtype}{void} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00419}00419 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00420}00420         p = \mbox{\hyperlink{geom__ctl_8c_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, param, \&i);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00421}00421         \textcolor{keywordflow}{if} (i != \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00422}00422                 p = NULL;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00423}00423                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Wrong length \%s argument"{}}, param);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00424}00424         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00425}00425         \textcolor{keywordflow}{return} (p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00426}00426 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00427}00427 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00428}00428 \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00429}\mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{00429}} \mbox{\hyperlink{geom__ctl_8c_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *param, \textcolor{keywordtype}{int} \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00430}00430 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00431}00431         \textcolor{keywordtype}{void} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00432}00432 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00433}00433         p = \mbox{\hyperlink{geom__ctl_8c_ab1b74fb84c5157c09be416bc8b8d9d64}{gctl\_get\_paraml\_opt}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, param, \mbox{\hyperlink{structgctl__req__arg_a276968772b300669566b157187979933}{len}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00434}00434         \textcolor{keywordflow}{if} (p == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00435}00435                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Missing \%s argument"{}}, param);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00436}00436         \textcolor{keywordflow}{return} (p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00437}00437 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00438}00438 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00439}00439 \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00440}\mbox{\hyperlink{geom_8h_a69c3ddd4cd5c31ed4a30c31d41433f0f}{00440}} \mbox{\hyperlink{geom__ctl_8c_a69c3ddd4cd5c31ed4a30c31d41433f0f}{gctl\_get\_class}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keywordtype}{char} \textcolor{keyword}{const} *arg)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00441}00441 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00442}00442         \textcolor{keywordtype}{char} \textcolor{keyword}{const} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00443}00443         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00444}00444 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00445}00445         p = \mbox{\hyperlink{geom__ctl_8c_ada33526012aac8ee446617bb3749a07c}{gctl\_get\_asciiparam}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, arg);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00446}00446         \textcolor{keywordflow}{if} (p == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00447}00447                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Missing \%s argument"{}}, arg);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00448}00448                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00449}00449         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00450}00450         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&\mbox{\hyperlink{geom__int_8h_a4b01c1506f9178ef85b415acb3028508}{g\_classes}}, \textcolor{keyword}{class}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00451}00451                 \textcolor{keywordflow}{if} (!strcmp(p, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>name))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00452}00452                         \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00453}00453         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00454}00454         \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Class not found: \(\backslash\)"{}\%s\(\backslash\)"{}"{}}, p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00455}00455         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00456}00456 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00457}00457 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00458}00458 \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00459}\mbox{\hyperlink{geom_8h_abed39403ebb1af29764ffa772cfce2a5}{00459}} \mbox{\hyperlink{geom__ctl_8c_abed39403ebb1af29764ffa772cfce2a5}{gctl\_get\_geom}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \textcolor{keywordtype}{char} \textcolor{keyword}{const} *arg)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00460}00460 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00461}00461         \textcolor{keywordtype}{char} \textcolor{keyword}{const} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00462}00462         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00463}00463 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00464}00464         MPASS(\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} != NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00465}00465         p = \mbox{\hyperlink{geom__ctl_8c_ada33526012aac8ee446617bb3749a07c}{gctl\_get\_asciiparam}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, arg);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00466}00466         \textcolor{keywordflow}{if} (p == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00467}00467                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Missing \%s argument"{}}, arg);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00468}00468                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00469}00469         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00470}00470         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom, geom)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00471}00471                 \textcolor{keywordflow}{if} (!strcmp(p, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00472}00472                         \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00473}00473         \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Geom not found: \(\backslash\)"{}\%s\(\backslash\)"{}"{}}, p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00474}00474         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00475}00475 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00476}00476 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00477}00477 \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00478}\mbox{\hyperlink{geom_8h_a02d62eea445edba7982f681b41c6c307}{00478}} \mbox{\hyperlink{geom__ctl_8c_a02d62eea445edba7982f681b41c6c307}{gctl\_get\_provider}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keywordtype}{char} \textcolor{keyword}{const} *arg)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00479}00479 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00480}00480         \textcolor{keywordtype}{char} \textcolor{keyword}{const} *p;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00481}00481         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00482}00482 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00483}00483         p = \mbox{\hyperlink{geom__ctl_8c_ada33526012aac8ee446617bb3749a07c}{gctl\_get\_asciiparam}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, arg);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00484}00484         \textcolor{keywordflow}{if} (p == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00485}00485                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Missing '\%s' argument"{}}, arg);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00486}00486                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00487}00487         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00488}00488         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{geom_8h_ad022ef529cc86a6c4ea72564de2e9ca2}{g\_provider\_by\_name}}(p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00489}00489         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} != NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00490}00490                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00491}00491         \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Provider not found: \(\backslash\)"{}\%s\(\backslash\)"{}"{}}, p);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00492}00492         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00493}00493 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00494}00494 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00495}00495 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00496}\mbox{\hyperlink{geom__ctl_8c_a1bb531a66e5449fc52c66cd7b2f0119f}{00496}} \mbox{\hyperlink{geom__ctl_8c_a1bb531a66e5449fc52c66cd7b2f0119f}{g\_ctl\_getxml}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00497}00497 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00498}00498         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00499}00499         \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00500}00500         \textcolor{keyword}{struct }sbuf *\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00501}00501         \textcolor{keywordtype}{int} len, i = 0, n = 0, *parents;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00502}00502         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, **gps;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00503}00503         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00504}00504 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00505}00505         parents = \mbox{\hyperlink{geom__ctl_8c_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}parents"{}}, \textcolor{keyword}{sizeof}(*parents));}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00506}00506         \textcolor{keywordflow}{if} (parents == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00507}00507                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00508}00508         \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}} = \mbox{\hyperlink{geom__ctl_8c_ada33526012aac8ee446617bb3749a07c}{gctl\_get\_asciiparam}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}arg0"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00509}00509         n = 0;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00510}00510         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom, \mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00511}00511                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}} \&\& strcmp(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}) != 0)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00512}00512                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00513}00513                 n++;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00514}00514                 \textcolor{keywordflow}{if} (*parents) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00515}00515                         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer, consumer)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00516}00516                                 n++;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00517}00517                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00518}00518         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00519}00519         gps = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}((n + 1) * \textcolor{keyword}{sizeof}(*gps), M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00520}00520         i = 0;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00521}00521         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom, \mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00522}00522                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}} \&\& strcmp(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}) != 0)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00523}00523                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00524}00524                 gps[i++] = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00525}00525                 \textcolor{keywordflow}{if} (*parents) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00526}00526                         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer, consumer) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00527}00527                                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}} != NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00528}00528                                         gps[i++] = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}}-\/>\mbox{\hyperlink{structg__provider_afe5c92b8a2a9e4cdf1cab6daa96923c1}{geom}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00529}00529                         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00530}00530                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00531}00531         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00532}00532         KASSERT(i == n, (\textcolor{stringliteral}{"{}different number of geoms found (\%d != \%d)"{}},}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00533}00533             i, n));}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00534}00534         gps[i] = 0;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00535}00535 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00536}00536         \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} = \mbox{\hyperlink{geom__ctl_8c_a1abba7d508f055176e3bbd8eec3051b5}{gctl\_get\_param\_flags}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}output"{}}, \mbox{\hyperlink{geom__ctl_8h_a70e4aace425a5f17a379fdff316f3ed8}{GCTL\_PARAM\_WR}}, \&len);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00537}00537         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00538}00538                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}output parameter missing"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00539}00539                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(gps);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00540}00540                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00541}00541         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00542}00542         \mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}} = sbuf\_new(NULL, \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, len, SBUF\_FIXEDLEN | SBUF\_INCLUDENUL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00543}00543         \mbox{\hyperlink{geom__dump_8c_acf0616ab36c52331f25a69575a35d51e}{g\_conf\_specific}}(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}, gps);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00544}00544         \mbox{\hyperlink{geom__ctl_8c_abf5d22b40dea53afe414a88271754c6a}{gctl\_set\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}output"{}}, \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, 0);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00545}00545         \textcolor{keywordflow}{if} (sbuf\_error(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00546}00546                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}output buffer overflow"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00547}00547         sbuf\_delete(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00548}00548         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(gps);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00549}00549 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00550}00550 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00551}00551 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00552}\mbox{\hyperlink{geom__ctl_8c_a32b1bebf775e090c611e1deafd589a5a}{00552}} \mbox{\hyperlink{geom__ctl_8c_a32b1bebf775e090c611e1deafd589a5a}{g\_ctl\_req}}(\textcolor{keywordtype}{void} *arg, \textcolor{keywordtype}{int} flag \_\_unused)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00553}00553 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00554}00554         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00555}00555         \textcolor{keyword}{struct }\mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00556}00556         \textcolor{keywordtype}{char} \textcolor{keyword}{const} *verb;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00557}00557 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00558}00558         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00559}00559         \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}} = \mbox{\hyperlink{structgctl__req_ad676b12a2b0c438728a70ac2d90522c9}{arg}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00560}00560         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} = \mbox{\hyperlink{geom__ctl_8c_a69c3ddd4cd5c31ed4a30c31d41433f0f}{gctl\_get\_class}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}class"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00561}00561         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} == NULL)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00562}00562                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00563}00563         verb = \mbox{\hyperlink{geom__ctl_8c_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}verb"{}}, NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00564}00564         \textcolor{keywordflow}{if} (verb == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00565}00565                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Verb missing"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00566}00566                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00567}00567         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00568}00568         \textcolor{keywordflow}{if} (strcmp(verb, \textcolor{stringliteral}{"{}getxml"{}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00569}00569                 \mbox{\hyperlink{geom__ctl_8c_a1bb531a66e5449fc52c66cd7b2f0119f}{g\_ctl\_getxml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00570}00570         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>\mbox{\hyperlink{structg__class_ad1e14cd32f35102453e3230531f6f06b}{ctlreq}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00571}00571                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Class takes no requests"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00572}00572         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00573}00573                 \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>\mbox{\hyperlink{structg__class_ad1e14cd32f35102453e3230531f6f06b}{ctlreq}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, verb);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00574}00574         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00575}00575         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00576}00576 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00577}00577 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00578}00578 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00579}\mbox{\hyperlink{geom__ctl_8c_a3eb7eb31bbd264522f58d45348f891d5}{00579}} \mbox{\hyperlink{geom__ctl_8c_a3eb7eb31bbd264522f58d45348f891d5}{g\_ctl\_ioctl\_ctl}}(\textcolor{keyword}{struct} cdev *dev, u\_long \mbox{\hyperlink{g__part__if_8m_ab932f62e09484cd3ce109f3db9d8f3ce}{cmd}}, caddr\_t \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keywordtype}{int} \mbox{\hyperlink{g__part__if_8m_aab9e30d72b4b6af02ce19b24422ad2ce}{fflag}}, \textcolor{keyword}{struct} thread *\mbox{\hyperlink{g__part__if_8m_aaf840c84d139bb8ad4b3e668c92b3c30}{td}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00580}00580 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00581}00581         \textcolor{keyword}{struct }\mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00582}00582         \textcolor{keywordtype}{int} \mbox{\hyperlink{structgctl__req_afbcd8d48705a56f13644541955e00a13}{nerror}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00583}00583 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00584}00584         \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}} = (\textcolor{keywordtype}{void} *)\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00585}00585         \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror = 0;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00586}00586         \textcolor{comment}{/* It is an error if we cannot return an error text */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00587}00587         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>lerror < 2)}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00588}00588                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00589}00589         \textcolor{keywordflow}{if} (!useracc(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>error, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>lerror, VM\_PROT\_WRITE))}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00590}00590                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00591}00591 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00592}00592         \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror = sbuf\_new\_auto();}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00593}00593         \textcolor{comment}{/* Check the version */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00594}00594         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>version != \mbox{\hyperlink{geom__ctl_8h_a86a9e2dcfa725dda1ffd1ebe065bc82b}{GCTL\_VERSION}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00595}00595                 \mbox{\hyperlink{geom__ctl_8c_a701b68df67b5308439ca127884370b17}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}kernel and libgeom version mismatch."{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00596}00596                 \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>arg = NULL;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00597}00597         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00598}00598                 \textcolor{comment}{/* Get things on board */}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00599}00599                 \mbox{\hyperlink{geom__ctl_8c_a6eaefb03c7f35f30968c6f46b50cb17b}{gctl\_copyin}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00600}00600 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00601}00601                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom_8h_aca9e9300747035c84977158ea1fe1d38}{g\_debugflags}} \& \mbox{\hyperlink{geom_8h_a5d83d7ea202ca46c04a50d5eb41a64ce}{G\_F\_CTLDUMP}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00602}00602                         \mbox{\hyperlink{geom__ctl_8c_a426340d3b7acce798a777a57a2d17470}{gctl\_dump}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}request"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00603}00603 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00604}00604                 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00605}00605                         \mbox{\hyperlink{geom_8h_a098098146ac4f2ca5efa831ee5f248ae}{g\_waitfor\_event}}(\mbox{\hyperlink{geom__ctl_8c_a32b1bebf775e090c611e1deafd589a5a}{g\_ctl\_req}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, M\_WAITOK, NULL);}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00606}00606 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00607}00607                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom_8h_aca9e9300747035c84977158ea1fe1d38}{g\_debugflags}} \& \mbox{\hyperlink{geom_8h_a5d83d7ea202ca46c04a50d5eb41a64ce}{G\_F\_CTLDUMP}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00608}00608                                 \mbox{\hyperlink{geom__ctl_8c_a426340d3b7acce798a777a57a2d17470}{gctl\_dump}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}result"{}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00609}00609 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00610}00610                         \mbox{\hyperlink{geom__ctl_8c_a7ccf3c749d7aa9187249db1152339ddf}{gctl\_copyout}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00611}00611                 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00612}00612         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00613}00613         \textcolor{keywordflow}{if} (sbuf\_done(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror)) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00614}00614                 copyout(sbuf\_data(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror), \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>error,}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00615}00615                     imin(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>lerror, sbuf\_len(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>serror) + 1));}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00616}00616         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00617}00617 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00618}00618         \mbox{\hyperlink{structgctl__req_afbcd8d48705a56f13644541955e00a13}{nerror}} = \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}-\/>nerror;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00619}00619         \mbox{\hyperlink{geom__ctl_8c_ad10c60858121662a3adfa45ed2ab4336}{gctl\_free}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00620}00620         \textcolor{keywordflow}{return} (\mbox{\hyperlink{structgctl__req_afbcd8d48705a56f13644541955e00a13}{nerror}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00621}00621 \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00622}00622 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00623}00623 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00624}\mbox{\hyperlink{geom__ctl_8c_aa20ecae3a67c52173a50dff9683a086d}{00624}} \mbox{\hyperlink{geom__ctl_8c_ae21d713b4c4603ec4fbc3d6e8107d09e}{g\_ctl\_ioctl}}(\textcolor{keyword}{struct} cdev *dev, u\_long \mbox{\hyperlink{g__part__if_8m_ab932f62e09484cd3ce109f3db9d8f3ce}{cmd}}, caddr\_t \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keywordtype}{int} \mbox{\hyperlink{g__part__if_8m_aab9e30d72b4b6af02ce19b24422ad2ce}{fflag}}, \textcolor{keyword}{struct} thread *\mbox{\hyperlink{g__part__if_8m_aaf840c84d139bb8ad4b3e668c92b3c30}{td}})}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00625}00625 \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00626}00626         \textcolor{keywordtype}{int} \mbox{\hyperlink{structgctl__req_af47d2e093d68c075daa46bc2969fbe7b}{error}};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00627}00627 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00628}00628         \textcolor{keywordflow}{switch}(\mbox{\hyperlink{g__part__if_8m_ab932f62e09484cd3ce109f3db9d8f3ce}{cmd}}) \{}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00629}00629         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__ctl_8h_a8f066792db729957fb71482c3f377ecd}{GEOM\_CTL}}:}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00630}00630                 \mbox{\hyperlink{structgctl__req_af47d2e093d68c075daa46bc2969fbe7b}{error}} = \mbox{\hyperlink{geom__ctl_8c_a3eb7eb31bbd264522f58d45348f891d5}{g\_ctl\_ioctl\_ctl}}(dev, \mbox{\hyperlink{g__part__if_8m_ab932f62e09484cd3ce109f3db9d8f3ce}{cmd}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \mbox{\hyperlink{g__part__if_8m_aab9e30d72b4b6af02ce19b24422ad2ce}{fflag}}, \mbox{\hyperlink{g__part__if_8m_aaf840c84d139bb8ad4b3e668c92b3c30}{td}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00631}00631                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00632}00632         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00633}00633                 \mbox{\hyperlink{structgctl__req_af47d2e093d68c075daa46bc2969fbe7b}{error}} = ENOIOCTL;}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00634}00634                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00635}00635         \}}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00636}00636         \textcolor{keywordflow}{return} (\mbox{\hyperlink{structgctl__req_af47d2e093d68c075daa46bc2969fbe7b}{error}});}
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00637}00637 }
\DoxyCodeLine{\Hypertarget{geom__ctl_8c_source_l00638}00638 \}}

\end{DoxyCode}
