\hypertarget{cam__iosched_8h_source}{}\doxysection{cam\+\_\+iosched.\+h}
\label{cam__iosched_8h_source}\index{cam/cam\_iosched.h@{cam/cam\_iosched.h}}
\mbox{\hyperlink{cam__iosched_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00002}00002 \textcolor{comment}{ * CAM IO Scheduler Interface}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00004}00004 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00005}00005 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00006}00006 \textcolor{comment}{ * Copyright (c) 2015 Netflix, Inc.}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00008}00008 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00009}00009 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00010}00010 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00011}00011 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00012}00012 \textcolor{comment}{ *    notice, this list of conditions, and the following disclaimer,}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00013}00013 \textcolor{comment}{ *    without modification, immediately at the beginning of the file.}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00014}00014 \textcolor{comment}{ * 2. The name of the author may not be used to endorse or promote products}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00015}00015 \textcolor{comment}{ *    derived from this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00016}00016 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00017}00017 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00018}00018 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00019}00019 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00020}00020 \textcolor{comment}{ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00021}00021 \textcolor{comment}{ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00022}00022 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00023}00023 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00024}00024 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00025}00025 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00026}00026 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00027}00027 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00028}00028 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00029}00029 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00030}00030 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00031}00031 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00032}00032 \textcolor{preprocessor}{\#ifndef \_CAM\_CAM\_IOSCHED\_H}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00033}00033 \textcolor{preprocessor}{\#define \_CAM\_CAM\_IOSCHED\_H}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00034}00034 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00035}00035 \textcolor{comment}{/* No user-\/serviceable parts in here. */}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00036}00036 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00037}00037 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00038}00038 \textcolor{comment}{/* Forward declare all structs to keep interface thin */}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00039}00039 \textcolor{keyword}{struct }\mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}};}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00040}00040 \textcolor{keyword}{struct }sysctl\_ctx\_list;}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00041}00041 \textcolor{keyword}{struct }sysctl\_oid;}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00042}00042 \textcolor{keyword}{union }\mbox{\hyperlink{unionccb}{ccb}};}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00043}00043 \textcolor{keyword}{struct }bio;}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00045}00045 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00046}00046 \textcolor{comment}{ * For 64-\/bit platforms, we know that uintptr\_t is the same size as sbintime\_t}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00047}00047 \textcolor{comment}{ * so we can store values in it. For 32-\/bit systems, however, uintptr\_t is only}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00048}00048 \textcolor{comment}{ * 32-\/bits, so it won't fit. For those systems, store 24 bits of fraction and 8}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00049}00049 \textcolor{comment}{ * bits of seconds. This allows us to measure an interval of up to \string~256s, which}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00050}00050 \textcolor{comment}{ * is \string~200x what our current uses require. Provide some convenience functions to}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00051}00051 \textcolor{comment}{ * get the time, subtract two times and convert back to sbintime\_t in a safe way}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00052}00052 \textcolor{comment}{ * that can be centralized.}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00053}00053 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00054}00054 \textcolor{preprocessor}{\#ifdef \_\_LP64\_\_}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00055}00055 \textcolor{preprocessor}{\#define CAM\_IOSCHED\_TIME\_SHIFT 0}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00056}00056 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00057}\mbox{\hyperlink{cam__iosched_8h_af3417c817ed3506328c9a762d839085c}{00057}} \textcolor{preprocessor}{\#define CAM\_IOSCHED\_TIME\_SHIFT 8}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00058}00058 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00059}00059 \textcolor{keyword}{static} \textcolor{keyword}{inline} uintptr\_t}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00060}\mbox{\hyperlink{cam__iosched_8h_a93c8403a771dc76811f4fd4d3886fbfe}{00060}} \mbox{\hyperlink{cam__iosched_8h_a93c8403a771dc76811f4fd4d3886fbfe}{cam\_iosched\_now}}(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00061}00061 \{}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00062}00062 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00063}00063         \textcolor{comment}{/* Cast here is to avoid right shifting a signed value */}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00064}00064         \textcolor{keywordflow}{return} (uintptr\_t)((uint64\_t)sbinuptime() >> \mbox{\hyperlink{cam__iosched_8h_af3417c817ed3506328c9a762d839085c}{CAM\_IOSCHED\_TIME\_SHIFT}});}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00065}00065 \}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00066}00066 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00067}00067 \textcolor{keyword}{static} \textcolor{keyword}{inline} uintptr\_t}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00068}\mbox{\hyperlink{cam__iosched_8h_a11a3941fd89e15e1a16f059f7361f509}{00068}} \mbox{\hyperlink{cam__iosched_8h_a11a3941fd89e15e1a16f059f7361f509}{cam\_iosched\_delta\_t}}(uintptr\_t then)}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00069}00069 \{}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00071}00071         \textcolor{comment}{/* Since the types are identical, wrapping works correctly */}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00072}00072         \textcolor{keywordflow}{return} (\mbox{\hyperlink{cam__iosched_8h_a93c8403a771dc76811f4fd4d3886fbfe}{cam\_iosched\_now}}() -\/ then);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00073}00073 \}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00074}00074 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00075}00075 \textcolor{keyword}{static} \textcolor{keyword}{inline} sbintime\_t}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00076}\mbox{\hyperlink{cam__iosched_8h_ad88d25d1fde29cbf254b9219369c9f6b}{00076}} \mbox{\hyperlink{cam__iosched_8h_ad88d25d1fde29cbf254b9219369c9f6b}{cam\_iosched\_sbintime\_t}}(uintptr\_t delta)}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00077}00077 \{}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00078}00078 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00079}00079         \textcolor{comment}{/* Cast here is to widen the type so the left shift doesn't lose precision */}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00080}00080         \textcolor{keywordflow}{return} (sbintime\_t)((uint64\_t)delta << \mbox{\hyperlink{cam__iosched_8h_af3417c817ed3506328c9a762d839085c}{CAM\_IOSCHED\_TIME\_SHIFT}});}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00081}00081 \}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00082}00082 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00083}\mbox{\hyperlink{cam__iosched_8h_af1bf69fbd09abfcb6c764c4632b15613}{00083}} \textcolor{keyword}{typedef} void (*\mbox{\hyperlink{cam__iosched_8h_af1bf69fbd09abfcb6c764c4632b15613}{cam\_iosched\_latfcn\_t}})(\textcolor{keywordtype}{void} *, sbintime\_t, \textcolor{keyword}{struct }bio *);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00084}00084 }
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00085}00085 \textcolor{keywordtype}{int} \mbox{\hyperlink{cam__iosched_8h_a5248089f912c04ef6854e714f1b3fce9}{cam\_iosched\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} **, \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__periph}{cam\_periph}} *periph);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00086}00086 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a965663fcc25e5880d47607ce4447cf81}{cam\_iosched\_fini}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00087}00087 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_aa3e4cfd677472903aabf45960cc609f3}{cam\_iosched\_sysctl\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *, \textcolor{keyword}{struct} sysctl\_ctx\_list *, \textcolor{keyword}{struct} sysctl\_oid *);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00088}00088 \textcolor{keyword}{struct }bio *\mbox{\hyperlink{cam__iosched_8h_a03971d7f50be66f0a2ced3f8d99b80db}{cam\_iosched\_next\_trim}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00089}00089 \textcolor{keyword}{struct }bio *\mbox{\hyperlink{cam__iosched_8h_a4c6ab7f9aa5acdf8ef19e69626f47bb2}{cam\_iosched\_get\_trim}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00090}00090 \textcolor{keyword}{struct }bio *\mbox{\hyperlink{cam__iosched_8h_ad3e6b25feeb09d8e5b566abc03a5c35c}{cam\_iosched\_next\_bio}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00091}00091 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_aeff8aa37d4e5fe11e56b08c9af885a0f}{cam\_iosched\_queue\_work}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keyword}{struct} bio *bp);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00092}00092 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a44e0bd88603d09c4fcefc603bfdfc5e6}{cam\_iosched\_flush}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keyword}{struct} devstat *stp, \textcolor{keywordtype}{int} err);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00093}00093 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_aa100e322be1641871717a10800b67ab3}{cam\_iosched\_schedule}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keyword}{struct} \mbox{\hyperlink{structcam__periph}{cam\_periph}} *periph);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00094}\mbox{\hyperlink{cam__iosched_8h_a2734dfdf3fd03b996b24552a2a08bcba}{00094}} \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a2734dfdf3fd03b996b24552a2a08bcba}{cam\_iosched\_finish\_trim}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00095}00095 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_abd330169d817347da1e75c12fe78dd2f}{cam\_iosched\_submit\_trim}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00096}00096 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a61f20145827f609a6d5ba7d30e6a778f}{cam\_iosched\_put\_back\_trim}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keyword}{struct} bio *bp);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00097}00097 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_aadda0d2908b77646931898d073e74425}{cam\_iosched\_set\_sort\_queue}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keywordtype}{int} val);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00098}00098 \textcolor{keywordtype}{int} \mbox{\hyperlink{cam__iosched_8h_ad54b112be62cd584d9297c788e8dd527}{cam\_iosched\_has\_work\_flags}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, uint32\_t flags);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00099}00099 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a2956ffba76aed46541b150798ad93678}{cam\_iosched\_set\_work\_flags}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, uint32\_t flags);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00100}00100 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a08fec29f9403ebf5da11b2a832d9b794}{cam\_iosched\_clr\_work\_flags}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, uint32\_t flags);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00101}00101 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a5469299df4c9565d5cb837a21082c39a}{cam\_iosched\_trim\_done}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00102}00102 \textcolor{keywordtype}{int} \mbox{\hyperlink{cam__iosched_8h_a64ceb91e16f5b9b39497eefb0a7d1574}{cam\_iosched\_bio\_complete}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keyword}{struct} bio *bp, \textcolor{keyword}{union} \mbox{\hyperlink{unionccb}{ccb}} *done\_ccb);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00103}00103 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a0b85a1e943103eecf5e8193436b09772}{cam\_iosched\_set\_latfcn}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \mbox{\hyperlink{cam__iosched_8h_af1bf69fbd09abfcb6c764c4632b15613}{cam\_iosched\_latfcn\_t}}, \textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00104}00104 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a4aae563d88dc116d728388180fc7c224}{cam\_iosched\_set\_trim\_goal}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keywordtype}{int} goal);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00105}00105 \textcolor{keywordtype}{void} \mbox{\hyperlink{cam__iosched_8h_a692efdfbba06fa55bd5dd385f402ef0d}{cam\_iosched\_set\_trim\_ticks}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structcam__iosched__softc}{cam\_iosched\_softc}} *isc, \textcolor{keywordtype}{int} ticks);}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00106}00106 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{cam__iosched_8h_source_l00107}00107 \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
