\hypertarget{ctl__util_8h_source}{}\doxysection{ctl\+\_\+util.\+h}
\label{ctl__util_8h_source}\index{cam/ctl/ctl\_util.h@{cam/ctl/ctl\_util.h}}
\mbox{\hyperlink{ctl__util_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2003 Silicon Graphics International Corp.}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00005}00005 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions, and the following disclaimer,}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00012}00012 \textcolor{comment}{ *    without modification.}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00013}00013 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce at minimum a disclaimer}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00014}00014 \textcolor{comment}{ *    substantially similar to the "{}NO WARRANTY"{} disclaimer below}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00015}00015 \textcolor{comment}{ *    ("{}Disclaimer"{}) and any redistribution must be conditioned upon}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00016}00016 \textcolor{comment}{ *    including a substantially similar Disclaimer requirement for further}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00017}00017 \textcolor{comment}{ *    binary redistribution.}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00018}00018 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00019}00019 \textcolor{comment}{ * NO WARRANTY}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00020}00020 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00021}00021 \textcolor{comment}{ * "{}AS IS"{} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00022}00022 \textcolor{comment}{ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00023}00023 \textcolor{comment}{ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00024}00024 \textcolor{comment}{ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00025}00025 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00026}00026 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00027}00027 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00028}00028 \textcolor{comment}{ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00029}00029 \textcolor{comment}{ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00030}00030 \textcolor{comment}{ * POSSIBILITY OF SUCH DAMAGES.}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00031}00031 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00032}00032 \textcolor{comment}{ * \$Id: //depot/users/kenm/FreeBSD-\/test2/sys/cam/ctl/ctl\_util.h\#2 \$}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00033}00033 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00034}00034 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00035}00035 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00036}00036 \textcolor{comment}{ * CAM Target Layer SCSI library interface}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00037}00037 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00038}00038 \textcolor{comment}{ * Author: Ken Merry <ken@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00039}00039 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00040}00040 }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00041}00041 \textcolor{preprocessor}{\#ifndef \_CTL\_UTIL\_H}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00042}00042 \textcolor{preprocessor}{\#define \_CTL\_UTIL\_H 1}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00044}00044 \_\_BEGIN\_DECLS}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00046}00046 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a15d138f47e2c66885117349b4145f2ee}{ctl\_scsi\_tur}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00047}00047 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_aaa28a44750c508a21d3b16bf80472b3c}{ctl\_scsi\_inquiry}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr, int32\_t data\_len,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00048}00048                       uint8\_t byte2, uint8\_t page\_code, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00049}00049                       uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00050}00050 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ac8bae8c50eda98818962a255b0c439b5}{ctl\_scsi\_request\_sense}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00051}00051                             int32\_t data\_len, uint8\_t byte2,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00052}00052                             \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00053}00053 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_aef5c4416a05b4d2451cdeddec7eb398d}{ctl\_scsi\_report\_luns}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00054}00054                           uint32\_t data\_len, uint8\_t select\_report,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00055}00055                           \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00056}00056 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ab52282a109cecaeff5eb4d704b7273ed}{ctl\_scsi\_read\_write\_buffer}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00057}00057                                 uint32\_t data\_len, \textcolor{keywordtype}{int} read\_buffer,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00058}00058                                 uint8\_t mode, uint8\_t buffer\_id,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00059}00059                                 uint32\_t buffer\_offset, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00060}00060                                 uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00061}00061 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a3c14a565b7967489f4cf62680053a151}{ctl\_scsi\_read\_write}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00062}00062                          uint32\_t data\_len, \textcolor{keywordtype}{int} read\_op, uint8\_t byte2,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00063}00063                          \textcolor{keywordtype}{int} minimum\_cdb\_size, uint64\_t lba,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00064}00064                          uint32\_t num\_blocks, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00065}00065                          uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00066}00066 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ad54be0b091a4cb7a60e6404fb235a05e}{ctl\_scsi\_write\_same}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00067}00067                          uint32\_t data\_len, uint8\_t byte2,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00068}00068                          uint64\_t lba, uint32\_t num\_blocks,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00069}00069                          \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00070}00070 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_aa6f15ddff0639fe465ffac364cdb3d65}{ctl\_scsi\_read\_capacity}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00071}00071                             uint32\_t data\_len, uint32\_t addr, \textcolor{keywordtype}{int} reladr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00072}00072                             \textcolor{keywordtype}{int} pmi, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00073}00073 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a021bdf5b60505333888aa8e3eec23b64}{ctl\_scsi\_read\_capacity\_16}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00074}00074                                uint32\_t data\_len, uint64\_t addr, \textcolor{keywordtype}{int} reladr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00075}00075                                \textcolor{keywordtype}{int} pmi, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00076}00076 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ae97b09a720211367429224a3a6f54738}{ctl\_scsi\_mode\_sense}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00077}00077                          uint32\_t data\_len, \textcolor{keywordtype}{int} dbd, \textcolor{keywordtype}{int} llbaa,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00078}00078                          uint8\_t page\_code, uint8\_t pc, uint8\_t subpage,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00079}00079                          \textcolor{keywordtype}{int} minimum\_cdb\_size, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00080}00080                          uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00081}00081 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a0ab16612fd38a3bd23c37764502aa4a6}{ctl\_scsi\_start\_stop}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \textcolor{keywordtype}{int} start, \textcolor{keywordtype}{int} load\_eject,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00082}00082                          \textcolor{keywordtype}{int} immediate, \textcolor{keywordtype}{int} power\_conditions,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00083}00083                          \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00084}00084 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ae8de62f6613d1b6704bc7c1518a33ab0}{ctl\_scsi\_sync\_cache}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \textcolor{keywordtype}{int} immed, \textcolor{keywordtype}{int} reladr,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00085}00085                          \textcolor{keywordtype}{int} minimum\_cdb\_size, uint64\_t starting\_lba,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00086}00086                          uint32\_t block\_count, \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00087}00087                          uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00088}00088 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a12281b3258aca3d904811ccb31ed0cd5}{ctl\_scsi\_persistent\_res\_in}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr, }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00089}00089                                 uint32\_t data\_len, \textcolor{keywordtype}{int} action,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00090}00090                                 \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00091}00091 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ad3806f111ad8ac8484defcd2e22ce9a0}{ctl\_scsi\_persistent\_res\_out}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr, }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00092}00092                                  uint32\_t data\_len, \textcolor{keywordtype}{int} action, \textcolor{keywordtype}{int} type,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00093}00093                                  uint64\_t key, uint64\_t sa\_key,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00094}00094                                  \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00095}00095 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ad390c4ebefcf8c117764cc74546f020e}{ctl\_scsi\_maintenance\_in}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, uint8\_t *data\_ptr, }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00096}00096                              uint32\_t data\_len, uint8\_t action, }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00097}00097                              \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} tag\_type, uint8\_t control);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00098}00098 \textcolor{preprocessor}{\#ifndef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00099}00099 \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}} *ctl\_scsi\_alloc\_io(uint32\_t initid);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00100}00100 \textcolor{keywordtype}{void} ctl\_scsi\_free\_io(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00101}00101 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a440d5dfcf09a0001e34ff119f2386c25}{ctl\_scsi\_zero\_io}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00102}00102 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00103}\mbox{\hyperlink{ctl__util_8h_a440d5dfcf09a0001e34ff119f2386c25}{00103}} \textcolor{preprocessor}{\#define ctl\_scsi\_zero\_io(io)    ctl\_zero\_io(io)}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00104}00104 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* !\_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00105}00105 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{ctl__util_8h_abddd8126bc97b5fce31849bcc3896edc}{ctl\_scsi\_task\_string}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structctl__taskio}{ctl\_taskio}} *\mbox{\hyperlink{unionctl__io_a5af37f48478b398c51d492549bc860a6}{taskio}});}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00106}00106 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a28fd3e285ddc77de383c4c4366fec5d6}{ctl\_io\_sbuf}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \textcolor{keyword}{struct} sbuf *sb);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00107}00107 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ac1de02fcd44895b0fc611fbe5d5bf22b}{ctl\_io\_error\_sbuf}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00108}00108                        \textcolor{keyword}{struct} \mbox{\hyperlink{structscsi__inquiry__data}{scsi\_inquiry\_data}} *inq\_data, \textcolor{keyword}{struct} sbuf *sb);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00109}00109 \textcolor{keywordtype}{char} *\mbox{\hyperlink{ctl__util_8h_a0e38776572d4460932d847c8b68a9d4b}{ctl\_io\_string}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \textcolor{keywordtype}{char} *str, \textcolor{keywordtype}{int} str\_len);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00110}00110 \textcolor{keywordtype}{char} *\mbox{\hyperlink{ctl__util_8h_a407ad3c716e46a191435b71b0d11b98c}{ctl\_io\_error\_string}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00111}00111                           \textcolor{keyword}{struct} \mbox{\hyperlink{structscsi__inquiry__data}{scsi\_inquiry\_data}} *inq\_data, \textcolor{keywordtype}{char} *str,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00112}00112                           \textcolor{keywordtype}{int} str\_len);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00113}00113 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00114}00114 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_a658bbb32056ff7a16f271d21a00beaa3}{ctl\_io\_print}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00115}00115 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_aec735dfaffa0c1ebf9c680c59714b466}{ctl\_io\_error\_print}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \textcolor{keyword}{struct} \mbox{\hyperlink{structscsi__inquiry__data}{scsi\_inquiry\_data}} *inq\_data);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00116}00116 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_ab19fa8ca87b1e9d0f72b07bea01ec316}{ctl\_data\_print}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00117}00117 \textcolor{preprocessor}{\#else }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00118}00118 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__util_8h_aec735dfaffa0c1ebf9c680c59714b466}{ctl\_io\_error\_print}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \textcolor{keyword}{struct} \mbox{\hyperlink{structscsi__inquiry__data}{scsi\_inquiry\_data}} *inq\_data,}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00119}00119                    FILE *ofile);}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00120}00120 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00122}00122 \_\_END\_DECLS}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00124}00124 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_CTL\_UTIL\_H */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00126}00126 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00127}00127 \textcolor{comment}{ * vim: ts=8}}
\DoxyCodeLine{\Hypertarget{ctl__util_8h_source_l00128}00128 \textcolor{comment}{ */}}

\end{DoxyCode}
