\hypertarget{cam__sim_8h_source}{}\doxysection{cam\+\_\+sim.\+h}
\label{cam__sim_8h_source}\index{cam/cam\_sim.h@{cam/cam\_sim.h}}
\mbox{\hyperlink{cam__sim_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00002}00002 \textcolor{comment}{ * Data structures and definitions for SCSI Interface Modules (SIMs).}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00004}00004 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00005}00005 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00006}00006 \textcolor{comment}{ * Copyright (c) 1997 Justin T. Gibbs.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00007}00007 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00008}00008 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00009}00009 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00010}00010 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00011}00011 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00012}00012 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions, and the following disclaimer,}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00014}00014 \textcolor{comment}{ *    without modification, immediately at the beginning of the file.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00015}00015 \textcolor{comment}{ * 2. The name of the author may not be used to endorse or promote products}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00016}00016 \textcolor{comment}{ *    derived from this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00017}00017 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00018}00018 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00019}00019 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00020}00020 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00021}00021 \textcolor{comment}{ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00022}00022 \textcolor{comment}{ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00023}00023 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00024}00024 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00025}00025 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00026}00026 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00027}00027 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00028}00028 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00029}00029 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00030}00030 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00031}00031 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00032}00032 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00033}00033 \textcolor{preprocessor}{\#ifndef \_CAM\_CAM\_SIM\_H}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00034}00034 \textcolor{preprocessor}{\#define \_CAM\_CAM\_SIM\_H 1}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00035}00035 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00036}00036 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00037}00037 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00038}00038 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00039}00039 \textcolor{comment}{ * The sim driver creates a sim for each controller.  The sim device}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00040}00040 \textcolor{comment}{ * queue is separately created in order to allow resource sharing between}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00041}00041 \textcolor{comment}{ * sims.  For instance, a driver may create one sim for each channel of}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00042}00042 \textcolor{comment}{ * a multi-\/channel controller and use the same queue for each channel.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00043}00043 \textcolor{comment}{ * In this way, the queue resources are shared across all the channels}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00044}00044 \textcolor{comment}{ * of the multi-\/channel controller.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00045}00045 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00046}00046 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00047}00047 \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__sim}{cam\_sim}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00048}00048 \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__devq}{cam\_devq}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00050}\mbox{\hyperlink{cam__sim_8h_a6dbf6d92324876b32abb16fed3d9b4ab}{00050}} \textcolor{keyword}{typedef} void (*\mbox{\hyperlink{cam__sim_8h_a6dbf6d92324876b32abb16fed3d9b4ab}{sim\_action\_func}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim, \textcolor{keyword}{union }\mbox{\hyperlink{unionccb}{ccb}} *\mbox{\hyperlink{mmc__sim__if_8m_a3b75bbd1e046a488543d1dccdbcae16b}{ccb}});}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00051}\mbox{\hyperlink{cam__sim_8h_a31c348373dc61de9da1d6297440edd47}{00051}} \textcolor{keyword}{typedef} void (*\mbox{\hyperlink{cam__sim_8h_a31c348373dc61de9da1d6297440edd47}{sim\_poll\_func}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00053}00053 \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__devq}{cam\_devq}} * \mbox{\hyperlink{cam__sim_8h_a2b97368c34f664fdb78cc0771abd24f6}{cam\_simq\_alloc}}(u\_int32\_t max\_sim\_transactions);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00054}00054 \textcolor{keywordtype}{void}              \mbox{\hyperlink{cam__sim_8h_ac7d061b4681412aa660a7c6bf6166a76}{cam\_simq\_free}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__devq}{cam\_devq}} *devq);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00055}00055 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00056}00056 \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__sim}{cam\_sim}} *  \mbox{\hyperlink{cam__sim_8h_a085d2cfcfabfa49abe329e1ab0393ac7}{cam\_sim\_alloc}}(\mbox{\hyperlink{cam__sim_8h_a6dbf6d92324876b32abb16fed3d9b4ab}{sim\_action\_func}} \mbox{\hyperlink{structcam__sim_ac729513edd6aef72fa747e62390fc57f}{sim\_action}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00057}00057                                 \mbox{\hyperlink{cam__sim_8h_a31c348373dc61de9da1d6297440edd47}{sim\_poll\_func}} \mbox{\hyperlink{structcam__sim_a26d28cd10090a88660421f88f971ee00}{sim\_poll}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00058}00058                                 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{structcam__sim_ada801eb1672157418a9b8a99d79fa18c}{sim\_name}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00059}00059                                 \textcolor{keywordtype}{void} *\mbox{\hyperlink{structcam__sim_a274ee0c85216787cfced8f4a275fca41}{softc}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00060}00060                                 u\_int32\_t unit,}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00061}00061                                 \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim_a7019bfd905201eb7b0faac19c0a6645c}{mtx}} *\mbox{\hyperlink{structcam__sim_a7019bfd905201eb7b0faac19c0a6645c}{mtx}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00062}00062                                 \textcolor{keywordtype}{int} max\_dev\_transactions,}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00063}00063                                 \textcolor{keywordtype}{int} max\_tagged\_dev\_transactions,}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00064}00064                                 \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__devq}{cam\_devq}} *queue);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00065}\mbox{\hyperlink{cam__sim_8h_a42e07bf6efd00d64afada91f253bbf39}{00065}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__sim}{cam\_sim}} *  \mbox{\hyperlink{cam__sim_8h_a42e07bf6efd00d64afada91f253bbf39}{cam\_sim\_alloc\_dev}}(\mbox{\hyperlink{cam__sim_8h_a6dbf6d92324876b32abb16fed3d9b4ab}{sim\_action\_func}} \mbox{\hyperlink{structcam__sim_ac729513edd6aef72fa747e62390fc57f}{sim\_action}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00066}00066                                 \mbox{\hyperlink{cam__sim_8h_a31c348373dc61de9da1d6297440edd47}{sim\_poll\_func}} \mbox{\hyperlink{structcam__sim_a26d28cd10090a88660421f88f971ee00}{sim\_poll}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00067}00067                                 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{structcam__sim_ada801eb1672157418a9b8a99d79fa18c}{sim\_name}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00068}00068                                 \textcolor{keywordtype}{void} *\mbox{\hyperlink{structcam__sim_a274ee0c85216787cfced8f4a275fca41}{softc}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00069}00069                                 device\_t dev,}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00070}00070                                 \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim_a7019bfd905201eb7b0faac19c0a6645c}{mtx}} *\mbox{\hyperlink{structcam__sim_a7019bfd905201eb7b0faac19c0a6645c}{mtx}},}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00071}00071                                 \textcolor{keywordtype}{int} max\_dev\_transactions,}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00072}00072                                 \textcolor{keywordtype}{int} max\_tagged\_dev\_transactions,}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00073}00073                                 \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__devq}{cam\_devq}} *queue);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00074}00074 \textcolor{keywordtype}{void}              \mbox{\hyperlink{cam__sim_8h_aa7309a981f4002889ee9eb98cdb75f68}{cam\_sim\_free}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim, \textcolor{keywordtype}{int} free\_devq);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00075}00075 \textcolor{keywordtype}{void}              \mbox{\hyperlink{cam__sim_8h_aae6227389ce7ad7082d7351e8b46ffa1}{cam\_sim\_hold}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00076}00076 \textcolor{keywordtype}{void}              \mbox{\hyperlink{cam__sim_8h_a65eb54d0f1b7db78b17d6f3e6e32b358}{cam\_sim\_release}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00078}00078 \textcolor{comment}{/* Optional sim attributes may be set with these. */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00079}00079 \textcolor{keywordtype}{void}    \mbox{\hyperlink{cam__sim_8h_ac0cf05b441ceb4a2c3835d7fc8bbeef0}{cam\_sim\_set\_path}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim, u\_int32\_t \mbox{\hyperlink{structcam__sim_a4bf10caf7885ac8832c4821de670159a}{path\_id}});}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00080}00080 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00081}00081 \textcolor{comment}{/* Generically useful offsets into the sim private area */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00082}\mbox{\hyperlink{cam__sim_8h_abac0632f4811146d22ae467f03eb0b83}{00082}} \textcolor{preprocessor}{\#define spriv\_ptr0 sim\_priv.entries[0].ptr}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00083}\mbox{\hyperlink{cam__sim_8h_a89bbb4eba53b1c4a3e786807867ab3bc}{00083}} \textcolor{preprocessor}{\#define spriv\_ptr1 sim\_priv.entries[1].ptr}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00084}\mbox{\hyperlink{cam__sim_8h_afe494b7a361894bd2b3dcc500d46695c}{00084}} \textcolor{preprocessor}{\#define spriv\_field0 sim\_priv.entries[0].field}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00085}\mbox{\hyperlink{cam__sim_8h_a7b2ba07ff39dd192aac2df02b671c60c}{00085}} \textcolor{preprocessor}{\#define spriv\_field1 sim\_priv.entries[1].field}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00087}00087 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00088}00088 \textcolor{comment}{ * The sim driver should not access anything directly from this}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00089}00089 \textcolor{comment}{ * structure.}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00090}00090 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00091}\mbox{\hyperlink{structcam__sim}{00091}} \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__sim}{cam\_sim}} \{}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00092}\mbox{\hyperlink{structcam__sim_ac729513edd6aef72fa747e62390fc57f}{00092}}         \mbox{\hyperlink{cam__sim_8h_a6dbf6d92324876b32abb16fed3d9b4ab}{sim\_action\_func}}          \mbox{\hyperlink{structcam__sim_ac729513edd6aef72fa747e62390fc57f}{sim\_action}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00093}\mbox{\hyperlink{structcam__sim_a26d28cd10090a88660421f88f971ee00}{00093}}         \mbox{\hyperlink{cam__sim_8h_a31c348373dc61de9da1d6297440edd47}{sim\_poll\_func}}              \mbox{\hyperlink{structcam__sim_a26d28cd10090a88660421f88f971ee00}{sim\_poll}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00094}\mbox{\hyperlink{structcam__sim_ada801eb1672157418a9b8a99d79fa18c}{00094}}         \textcolor{keyword}{const} \textcolor{keywordtype}{char}              *\mbox{\hyperlink{structcam__sim_ada801eb1672157418a9b8a99d79fa18c}{sim\_name}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00095}\mbox{\hyperlink{structcam__sim_a274ee0c85216787cfced8f4a275fca41}{00095}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structcam__sim_a274ee0c85216787cfced8f4a275fca41}{softc}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00096}\mbox{\hyperlink{structcam__sim_a7019bfd905201eb7b0faac19c0a6645c}{00096}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__sim_a7019bfd905201eb7b0faac19c0a6645c}{mtx}}           *\mbox{\hyperlink{structcam__sim_a7019bfd905201eb7b0faac19c0a6645c}{mtx}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00097}\mbox{\hyperlink{structcam__sim_a278ad283b466e82bf36f35bf312ffad1}{00097}}         \mbox{\hyperlink{structcam__sim_a278ad283b466e82bf36f35bf312ffad1}{TAILQ\_ENTRY}}(\mbox{\hyperlink{structcam__sim}{cam\_sim}})  links;}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00098}\mbox{\hyperlink{structcam__sim_a4bf10caf7885ac8832c4821de670159a}{00098}}         u\_int32\_t               \mbox{\hyperlink{structcam__sim_a4bf10caf7885ac8832c4821de670159a}{path\_id}};\textcolor{comment}{/* The Boot device may set this to 0? */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00099}\mbox{\hyperlink{structcam__sim_a409a92688b2c8e54c1c22b8099f76ba2}{00099}}         u\_int32\_t               \mbox{\hyperlink{structcam__sim_a409a92688b2c8e54c1c22b8099f76ba2}{unit\_number}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00100}\mbox{\hyperlink{structcam__sim_aabf5e9edfe6899dc7fc411977a811b16}{00100}}         u\_int32\_t               \mbox{\hyperlink{structcam__sim_aabf5e9edfe6899dc7fc411977a811b16}{bus\_id}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00101}\mbox{\hyperlink{structcam__sim_a6f05fe863b1d5022065a73c42765ca2e}{00101}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structcam__sim_a6f05fe863b1d5022065a73c42765ca2e}{max\_tagged\_dev\_openings}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00102}\mbox{\hyperlink{structcam__sim_ad117131f8d189c50127fe6caad5ec165}{00102}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structcam__sim_ad117131f8d189c50127fe6caad5ec165}{max\_dev\_openings}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00103}\mbox{\hyperlink{structcam__sim_ad6b77d16f887bd9ccdf9bc65a71a0497}{00103}}         u\_int32\_t               \mbox{\hyperlink{structcam__sim_ad6b77d16f887bd9ccdf9bc65a71a0497}{flags}};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00104}\mbox{\hyperlink{structcam__sim_ad830cbc8394dc455e5567834074e2536}{00104}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__devq}{cam\_devq}}         *\mbox{\hyperlink{structcam__sim_ad830cbc8394dc455e5567834074e2536}{devq}};      \textcolor{comment}{/* Device Queue to use for this SIM */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00105}\mbox{\hyperlink{structcam__sim_ab87ab6f863ab0de421d2e8c9ccfa05ff}{00105}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structcam__sim_ab87ab6f863ab0de421d2e8c9ccfa05ff}{refcount}}; \textcolor{comment}{/* References to the SIM. */}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00106}00106 \};}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00107}00107 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00108}00108 \textcolor{keyword}{static} \_\_inline u\_int32\_t}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00109}\mbox{\hyperlink{cam__sim_8h_a046f3a30bb47046dda5770947d1e0a80}{00109}} \mbox{\hyperlink{cam__sim_8h_a046f3a30bb47046dda5770947d1e0a80}{cam\_sim\_path}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim)}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00110}00110 \{}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00111}00111         \textcolor{keywordflow}{return} (sim-\/>\mbox{\hyperlink{structcam__sim_a4bf10caf7885ac8832c4821de670159a}{path\_id}});}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00112}00112 \}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00113}00113 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00114}00114 \textcolor{keyword}{static} \_\_inline \textcolor{keyword}{const} \textcolor{keywordtype}{char} *}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00115}\mbox{\hyperlink{cam__sim_8h_af072fac14801b2861497672e4459c8c1}{00115}} \mbox{\hyperlink{cam__sim_8h_af072fac14801b2861497672e4459c8c1}{cam\_sim\_name}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim)}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00116}00116 \{}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00117}00117         \textcolor{keywordflow}{return} (sim-\/>\mbox{\hyperlink{structcam__sim_ada801eb1672157418a9b8a99d79fa18c}{sim\_name}});}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00118}00118 \}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00120}00120 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00121}\mbox{\hyperlink{cam__sim_8h_a27ea5b5ae9173d4896a39c3cea08c6ca}{00121}} \mbox{\hyperlink{cam__sim_8h_a27ea5b5ae9173d4896a39c3cea08c6ca}{cam\_sim\_softc}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim)}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00122}00122 \{}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00123}00123         \textcolor{keywordflow}{return} (sim-\/>\mbox{\hyperlink{structcam__sim_a274ee0c85216787cfced8f4a275fca41}{softc}});}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00124}00124 \}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00126}00126 \textcolor{keyword}{static} \_\_inline u\_int32\_t}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00127}\mbox{\hyperlink{cam__sim_8h_a2b0527879b5cc1b2ed63b01b83f51216}{00127}} \mbox{\hyperlink{cam__sim_8h_a2b0527879b5cc1b2ed63b01b83f51216}{cam\_sim\_unit}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim)}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00128}00128 \{}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00129}00129         \textcolor{keywordflow}{return} (sim-\/>\mbox{\hyperlink{structcam__sim_a409a92688b2c8e54c1c22b8099f76ba2}{unit\_number}});}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00130}00130 \}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00131}00131 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00132}00132 \textcolor{keyword}{static} \_\_inline u\_int32\_t}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00133}\mbox{\hyperlink{cam__sim_8h_a878697a5b1420b51b00379cc0a6c76bc}{00133}} \mbox{\hyperlink{cam__sim_8h_a878697a5b1420b51b00379cc0a6c76bc}{cam\_sim\_bus}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim)}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00134}00134 \{}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00135}00135         \textcolor{keywordflow}{return} (sim-\/>\mbox{\hyperlink{structcam__sim_aabf5e9edfe6899dc7fc411977a811b16}{bus\_id}});}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00136}00136 \}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00138}00138 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{bool}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00139}\mbox{\hyperlink{cam__sim_8h_af3361015d6b660c5bf73f9164aa94311}{00139}} \mbox{\hyperlink{cam__sim_8h_af3361015d6b660c5bf73f9164aa94311}{cam\_sim\_pollable}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__sim}{cam\_sim}} *sim)}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00140}00140 \{}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00141}00141         \textcolor{keywordflow}{return} (sim-\/>\mbox{\hyperlink{structcam__sim_a26d28cd10090a88660421f88f971ee00}{sim\_poll}} != NULL);}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00142}00142 \}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00143}00143 }
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00144}00144 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{cam__sim_8h_source_l00145}00145 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_CAM\_CAM\_SIM\_H */}\textcolor{preprocessor}{}}

\end{DoxyCode}
