\hypertarget{ctl__io_8h_source}{}\doxysection{ctl\+\_\+io.\+h}
\label{ctl__io_8h_source}\index{cam/ctl/ctl\_io.h@{cam/ctl/ctl\_io.h}}
\mbox{\hyperlink{ctl__io_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2003 Silicon Graphics International Corp.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2014-\/2015 Alexander Motin <mav@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00006}00006 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00008}00008 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00009}00009 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00010}00010 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00011}00011 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00012}00012 \textcolor{comment}{ *    notice, this list of conditions, and the following disclaimer,}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00013}00013 \textcolor{comment}{ *    without modification.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00014}00014 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce at minimum a disclaimer}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00015}00015 \textcolor{comment}{ *    substantially similar to the "{}NO WARRANTY"{} disclaimer below}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00016}00016 \textcolor{comment}{ *    ("{}Disclaimer"{}) and any redistribution must be conditioned upon}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00017}00017 \textcolor{comment}{ *    including a substantially similar Disclaimer requirement for further}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00018}00018 \textcolor{comment}{ *    binary redistribution.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00019}00019 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00020}00020 \textcolor{comment}{ * NO WARRANTY}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00021}00021 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00022}00022 \textcolor{comment}{ * "{}AS IS"{} AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00023}00023 \textcolor{comment}{ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00024}00024 \textcolor{comment}{ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00025}00025 \textcolor{comment}{ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00026}00026 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00027}00027 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00028}00028 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00029}00029 \textcolor{comment}{ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00030}00030 \textcolor{comment}{ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00031}00031 \textcolor{comment}{ * POSSIBILITY OF SUCH DAMAGES.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00032}00032 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00033}00033 \textcolor{comment}{ * \$Id: //depot/users/kenm/FreeBSD-\/test2/sys/cam/ctl/ctl\_io.h\#5 \$}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00034}00034 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00035}00035 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00036}00036 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00037}00037 \textcolor{comment}{ * CAM Target Layer data movement structures/interface.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00038}00038 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00039}00039 \textcolor{comment}{ * Author: Ken Merry <ken@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00040}00040 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00041}00041 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00042}00042 \textcolor{preprocessor}{\#ifndef \_CTL\_IO\_H\_}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00043}00043 \textcolor{preprocessor}{\#define \_CTL\_IO\_H\_}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00045}00045 \textcolor{preprocessor}{\#ifndef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00046}00046 \textcolor{preprocessor}{\#include <stdbool.h>}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00047}00047 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00048}00048 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00049}\mbox{\hyperlink{ctl__io_8h_a8e80b184852596ea1c5c7faa0ed2985b}{00049}} \textcolor{preprocessor}{\#define CTL\_MAX\_CDBLEN  32}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00050}00050 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00051}00051 \textcolor{comment}{ * Uncomment this next line to enable printing out times for I/Os}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00052}00052 \textcolor{comment}{ * that take longer than CTL\_TIME\_IO\_SECS seconds to get to the datamove}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00053}00053 \textcolor{comment}{ * and/or done stage.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00054}00054 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00055}\mbox{\hyperlink{ctl__io_8h_ab60b10156fbd01270b38eae03ebdc489}{00055}} \textcolor{preprocessor}{\#define CTL\_TIME\_IO}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00056}00056 \textcolor{preprocessor}{\#ifdef  CTL\_TIME\_IO}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00057}\mbox{\hyperlink{ctl__io_8h_a4cf1486330598ae207db86d043339ed6}{00057}} \textcolor{preprocessor}{\#define CTL\_TIME\_IO\_DEFAULT\_SECS        90}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00058}00058 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00060}00060 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00061}00061 \textcolor{comment}{ * Uncomment this next line to enable the CTL I/O delay feature.  You}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00062}00062 \textcolor{comment}{ * can delay I/O at two different points -\/-\/ datamove and done.  This is}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00063}00063 \textcolor{comment}{ * useful for diagnosing abort conditions (for hosts that send an abort on a}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00064}00064 \textcolor{comment}{ * timeout), and for determining how long a host's timeout is.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00065}00065 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00066}00066 \textcolor{comment}{//\#define       CTL\_IO\_DELAY}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00067}00067 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00068}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491}{00068}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00069}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491af309eead4699cd9155a02e024101ff4e}{00069}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491af309eead4699cd9155a02e024101ff4e}{CTL\_STATUS\_NONE}}, \textcolor{comment}{/* No status */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00070}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a1c9e3eb63185106546077e17a148779d}{00070}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a1c9e3eb63185106546077e17a148779d}{CTL\_SUCCESS}},         \textcolor{comment}{/* Transaction completed successfully */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00071}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491ab616fa438e97772b70d79d80608d5183}{00071}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491ab616fa438e97772b70d79d80608d5183}{CTL\_CMD\_TIMEOUT}}, \textcolor{comment}{/* Command timed out, shouldn't happen here */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00072}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491aa66b52c0053d292aab0ac058f7e79c0e}{00072}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491aa66b52c0053d292aab0ac058f7e79c0e}{CTL\_SEL\_TIMEOUT}}, \textcolor{comment}{/* Selection timeout, shouldn't happen here */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00073}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a904d7d8c2527b57aa2753157895cb60b}{00073}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a904d7d8c2527b57aa2753157895cb60b}{CTL\_ERROR}},             \textcolor{comment}{/* General CTL error XXX expand on this? */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00074}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a382e750806810cb27d24bc9a0ff1ef86}{00074}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a382e750806810cb27d24bc9a0ff1ef86}{CTL\_SCSI\_ERROR}},           \textcolor{comment}{/* SCSI error, look at status byte/sense data */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00075}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a4f515acbaad76c48e82c437997bfe8ad}{00075}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a4f515acbaad76c48e82c437997bfe8ad}{CTL\_CMD\_ABORTED}}, \textcolor{comment}{/* Command aborted, don't return status */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00076}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491afd1c411e17da6e84562e497ab72a83fb}{00076}}         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491afd1c411e17da6e84562e497ab72a83fb}{CTL\_STATUS\_MASK}} = 0xfff,\textcolor{comment}{/* Mask off any status flags */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00077}00077         \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a2153fd95515a7cb5c25872c6b610e927}{CTL\_AUTOSENSE}} = 0x1000     \textcolor{comment}{/* Autosense performed */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00078}\mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491a2153fd95515a7cb5c25872c6b610e927}{00078}} \} \mbox{\hyperlink{ctl__io_8h_a8731491c7adfc6d6ee9b3d9306d2d491}{ctl\_io\_status}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00079}00079 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00080}00080 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00081}00081 \textcolor{comment}{ * WARNING:  Keep the data in/out/none flags where they are.  They're used}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00082}00082 \textcolor{comment}{ * in conjunction with ctl\_cmd\_flags.  See comment above ctl\_cmd\_flags}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00083}00083 \textcolor{comment}{ * definition in ctl\_private.h.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00084}00084 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00085}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01}{00085}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00086}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01aba9580b54a8cb795ac774eadce02cea8}{00086}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01aba9580b54a8cb795ac774eadce02cea8}{CTL\_FLAG\_NONE}}              = 0x00000000,   \textcolor{comment}{/* no flags */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00087}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01ac1042c16a3395ba256156c8a68408537}{00087}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01ac1042c16a3395ba256156c8a68408537}{CTL\_FLAG\_DATA\_IN}}        = 0x00000001,   \textcolor{comment}{/* DATA IN */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00088}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01af3e4992dfbefc1d7533d6dae77745fe2}{00088}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01af3e4992dfbefc1d7533d6dae77745fe2}{CTL\_FLAG\_DATA\_OUT}}      = 0x00000002,   \textcolor{comment}{/* DATA OUT */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00089}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a3922bff833d3e1453ad90daae250267e}{00089}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a3922bff833d3e1453ad90daae250267e}{CTL\_FLAG\_DATA\_NONE}}    = 0x00000003,   \textcolor{comment}{/* no data */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00090}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a7270a3d326bc03773df48fb1e8540f56}{00090}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a7270a3d326bc03773df48fb1e8540f56}{CTL\_FLAG\_DATA\_MASK}}    = 0x00000003,}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00091}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a123879817a49ad52198c2289392b5190}{00091}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a123879817a49ad52198c2289392b5190}{CTL\_FLAG\_DO\_AUTOSENSE}}      = 0x00000020,   \textcolor{comment}{/* grab sense info */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00092}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01acbb0494b0f6e48d4c1f05d088a06b5fe}{00092}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01acbb0494b0f6e48d4c1f05d088a06b5fe}{CTL\_FLAG\_USER\_REQ}}      = 0x00000040,   \textcolor{comment}{/* request came from userland */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00093}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a775e7c233293f0888793231713b8777f}{00093}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a775e7c233293f0888793231713b8777f}{CTL\_FLAG\_ALLOCATED}}    = 0x00000100,   \textcolor{comment}{/* data space allocated */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00094}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01ac58ca7360340eb8ed2b3a4a97382b264}{00094}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01ac58ca7360340eb8ed2b3a4a97382b264}{CTL\_FLAG\_ABORT\_STATUS}}      = 0x00000400,   \textcolor{comment}{/* return TASK ABORTED status */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00095}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a6e78f911f4be25ea5f1e20c2c0ea7dc6}{00095}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a6e78f911f4be25ea5f1e20c2c0ea7dc6}{CTL\_FLAG\_ABORT}}            = 0x00000800,   \textcolor{comment}{/* this I/O should be aborted */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00096}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a50dc6d9cd0fcaf12f0864dccb1c8df41}{00096}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a50dc6d9cd0fcaf12f0864dccb1c8df41}{CTL\_FLAG\_DMA\_INPROG}}  = 0x00001000,   \textcolor{comment}{/* DMA in progress */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00097}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a94c588e77dd0369f3ab8f6ea120db68a}{00097}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a94c588e77dd0369f3ab8f6ea120db68a}{CTL\_FLAG\_DELAY\_DONE}}  = 0x00004000,   \textcolor{comment}{/* delay injection done */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00098}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a750bbc8ec977067ccfb679beea88632d}{00098}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a750bbc8ec977067ccfb679beea88632d}{CTL\_FLAG\_INT\_COPY}}      = 0x00008000,   \textcolor{comment}{/* internal copy, no done call*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00099}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a41da03c6678dc8944a76596d6ef0b499}{00099}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a41da03c6678dc8944a76596d6ef0b499}{CTL\_FLAG\_SENT\_2OTHER\_SC}}  = 0x00010000,}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00100}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a5f748de1f4f666f6d79820635fc849cf}{00100}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a5f748de1f4f666f6d79820635fc849cf}{CTL\_FLAG\_FROM\_OTHER\_SC}}    = 0x00020000,}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00101}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a01649922d467acb1325eeda9d8b849a0}{00101}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a01649922d467acb1325eeda9d8b849a0}{CTL\_FLAG\_IS\_WAS\_ON\_RTR}}  = 0x00040000,     \textcolor{comment}{/* Don't rerun cmd on failover*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00102}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01aa340760accb2fc0d26506c04d4385435}{00102}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01aa340760accb2fc0d26506c04d4385435}{CTL\_FLAG\_BUS\_ADDR}}      = 0x00080000,   \textcolor{comment}{/* ctl\_sglist contains BUS}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00103}00103 \textcolor{comment}{                                                   addresses, not virtual ones*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00104}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a02f94a27259fbe26555bdffc92cdc2db}{00104}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a02f94a27259fbe26555bdffc92cdc2db}{CTL\_FLAG\_IO\_CONT}}        = 0x00100000,   \textcolor{comment}{/* Continue I/O instead of}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00105}00105 \textcolor{comment}{                                                   completing */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00106}00106 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00107}00107         CTL\_FLAG\_ALREADY\_DONE   = 0x00200000    \textcolor{comment}{/* I/O already completed */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00108}00108 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00109}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a0a611bec7aa841c6d862ac6a60e2b524}{00109}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a0a611bec7aa841c6d862ac6a60e2b524}{CTL\_FLAG\_NO\_DATAMOVE}}        = 0x00400000,}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00110}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a756e164cd63c8bfffcbdf2fc961aba50}{00110}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a756e164cd63c8bfffcbdf2fc961aba50}{CTL\_FLAG\_DMA\_QUEUED}}  = 0x00800000,   \textcolor{comment}{/* DMA queued but not started*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00111}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a4c438a586e1cf932d8c0863410b6da44}{00111}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a4c438a586e1cf932d8c0863410b6da44}{CTL\_FLAG\_STATUS\_QUEUED}}    = 0x01000000,   \textcolor{comment}{/* Status queued but not sent*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00112}00112 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00113}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01abb9305f2e23c35ab4218f38154f3fde0}{00113}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01abb9305f2e23c35ab4218f38154f3fde0}{CTL\_FLAG\_FAILOVER}}      = 0x04000000,   \textcolor{comment}{/* Killed by a failover */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00114}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a3ec805d6e1598afeb313441bc1fd8bd2}{00114}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a3ec805d6e1598afeb313441bc1fd8bd2}{CTL\_FLAG\_IO\_ACTIVE}}    = 0x08000000,   \textcolor{comment}{/* I/O active on this SC */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00115}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01ab3cdcbee1ad98214606c0346dcddf4bc}{00115}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01ab3cdcbee1ad98214606c0346dcddf4bc}{CTL\_FLAG\_STATUS\_SENT}}        = 0x10000000,   \textcolor{comment}{/* Status sent by datamove */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00116}00116         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a8e9bcc9aaf2eb674349fb290cc43216e}{CTL\_FLAG\_SERSEQ\_DONE}}        = 0x20000000    \textcolor{comment}{/* All storage I/O started */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00117}\mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01a8e9bcc9aaf2eb674349fb290cc43216e}{00117}} \} \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01}{ctl\_io\_flags}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00118}00118 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00119}\mbox{\hyperlink{structctl__lba__len}{00119}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__lba__len}{ctl\_lba\_len}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00120}\mbox{\hyperlink{structctl__lba__len_a80d503fd28a08bba30c8cbb83dffa941}{00120}}         uint64\_t \mbox{\hyperlink{structctl__lba__len_a80d503fd28a08bba30c8cbb83dffa941}{lba}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00121}\mbox{\hyperlink{structctl__lba__len_ae7f077ecbcfd3c53d48023363677d9cc}{00121}}         uint32\_t \mbox{\hyperlink{structctl__lba__len_ae7f077ecbcfd3c53d48023363677d9cc}{len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00122}00122 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00124}\mbox{\hyperlink{structctl__lba__len__flags}{00124}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__lba__len__flags}{ctl\_lba\_len\_flags}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00125}\mbox{\hyperlink{structctl__lba__len__flags_aad9900c6d2ca0a5d643609fd3ee40b30}{00125}}         uint64\_t \mbox{\hyperlink{structctl__lba__len__flags_aad9900c6d2ca0a5d643609fd3ee40b30}{lba}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00126}\mbox{\hyperlink{structctl__lba__len__flags_a44760bca591d6140effec09df908c5e9}{00126}}         uint32\_t \mbox{\hyperlink{structctl__lba__len__flags_a44760bca591d6140effec09df908c5e9}{len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00127}\mbox{\hyperlink{structctl__lba__len__flags_a6052483380a2e37677222cd2118f1ef2}{00127}}         uint32\_t \mbox{\hyperlink{structctl__lba__len__flags_a6052483380a2e37677222cd2118f1ef2}{flags}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00128}\mbox{\hyperlink{ctl__io_8h_a818be1b2c9cf577d11dbab9dc5b117ea}{00128}} \textcolor{preprocessor}{\#define CTL\_LLF\_FUA     0x04000000}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00129}\mbox{\hyperlink{ctl__io_8h_a38942844a79d5ec7ef4d11c916ab1fb6}{00129}} \textcolor{preprocessor}{\#define CTL\_LLF\_DPO     0x08000000}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00130}\mbox{\hyperlink{ctl__io_8h_a1568a43bee61d11884b02ac33ec776a7}{00130}} \textcolor{preprocessor}{\#define CTL\_LLF\_READ    0x10000000}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00131}\mbox{\hyperlink{ctl__io_8h_a0c0401eb7d0d777ab66bb1188dc2f762}{00131}} \textcolor{preprocessor}{\#define CTL\_LLF\_WRITE   0x20000000}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00132}\mbox{\hyperlink{ctl__io_8h_aa32d025777aaf08a29d927f931cb77af}{00132}} \textcolor{preprocessor}{\#define CTL\_LLF\_VERIFY  0x40000000}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00133}\mbox{\hyperlink{ctl__io_8h_a65aeb6f05b80860cfbbf6953b4ed56b5}{00133}} \textcolor{preprocessor}{\#define CTL\_LLF\_COMPARE 0x80000000}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00134}00134 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00136}\mbox{\hyperlink{structctl__ptr__len__flags}{00136}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ptr__len__flags}{ctl\_ptr\_len\_flags}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00137}\mbox{\hyperlink{structctl__ptr__len__flags_a1b00951d7a901b232429629a790e7d32}{00137}}         uint8\_t         *\mbox{\hyperlink{structctl__ptr__len__flags_a1b00951d7a901b232429629a790e7d32}{ptr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00138}\mbox{\hyperlink{structctl__ptr__len__flags_ae14598e67cd9b98885e74d6a98b75380}{00138}}         uint32\_t        \mbox{\hyperlink{structctl__ptr__len__flags_ae14598e67cd9b98885e74d6a98b75380}{len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00139}\mbox{\hyperlink{structctl__ptr__len__flags_a681b709c201121b044b91287a233decc}{00139}}         uint32\_t        \mbox{\hyperlink{structctl__ptr__len__flags_a681b709c201121b044b91287a233decc}{flags}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00140}00140 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00141}00141 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00142}\mbox{\hyperlink{unionctl__priv}{00142}} \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__priv}{ctl\_priv}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00143}\mbox{\hyperlink{unionctl__priv_a53967dd43fbbf87d8aecdb09afdde8de}{00143}}         uint8\_t         \mbox{\hyperlink{unionctl__priv_a53967dd43fbbf87d8aecdb09afdde8de}{bytes}}[\textcolor{keyword}{sizeof}(uint64\_t) * 2];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00144}\mbox{\hyperlink{unionctl__priv_afad030b2e7e9f1026e9c8e218a08622b}{00144}}         uint64\_t        \mbox{\hyperlink{unionctl__priv_afad030b2e7e9f1026e9c8e218a08622b}{integer}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00145}\mbox{\hyperlink{unionctl__priv_aa92f79223120f8c12c2f4fa90ccb5de8}{00145}}         uint64\_t        \mbox{\hyperlink{unionctl__priv_aa92f79223120f8c12c2f4fa90ccb5de8}{integers}}[2];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00146}\mbox{\hyperlink{unionctl__priv_a7a57d9abd212a63f7e395319e4c28b36}{00146}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{unionctl__priv_a7a57d9abd212a63f7e395319e4c28b36}{ptr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00147}\mbox{\hyperlink{unionctl__priv_a8b348a262c2f79b55878665a746f5ca3}{00147}}         \textcolor{keywordtype}{void}            *\mbox{\hyperlink{unionctl__priv_a8b348a262c2f79b55878665a746f5ca3}{ptrs}}[2];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00148}00148 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00150}00150 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00151}00151 \textcolor{comment}{ * Number of CTL private areas.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00152}00152 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00153}\mbox{\hyperlink{ctl__io_8h_ac85d8501441f4cdecac1be1856d1f5fa}{00153}} \textcolor{preprocessor}{\#define CTL\_NUM\_PRIV    6}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00154}00154 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00155}00155 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00156}00156 \textcolor{comment}{ * Which private area are we using for a particular piece of data?}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00157}00157 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00158}\mbox{\hyperlink{ctl__io_8h_a3c6b648c751d733a11e1a80a86b47798}{00158}} \textcolor{preprocessor}{\#define CTL\_PRIV\_LUN            0       }\textcolor{comment}{/* CTL LUN pointer goes here */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00159}\mbox{\hyperlink{ctl__io_8h_a94983f8a1aae0b071bfb193188ec59e1}{00159}} \textcolor{preprocessor}{\#define CTL\_PRIV\_LBA\_LEN        1       }\textcolor{comment}{/* Decoded LBA/len for read/write*/}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00160}\mbox{\hyperlink{ctl__io_8h_a18d4c696b039a95ab1ccea9326c17857}{00160}} \textcolor{preprocessor}{\#define CTL\_PRIV\_MODEPAGE       1       }\textcolor{comment}{/* Modepage info for config write */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00161}\mbox{\hyperlink{ctl__io_8h_ab90929f85b4847769a52ecda40396ac1}{00161}} \textcolor{preprocessor}{\#define CTL\_PRIV\_BACKEND        2       }\textcolor{comment}{/* Reserved for block, RAIDCore */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00162}\mbox{\hyperlink{ctl__io_8h_aa965883df1c05e93b58b8d9e0f51f4e7}{00162}} \textcolor{preprocessor}{\#define CTL\_PRIV\_BACKEND\_LUN    3       }\textcolor{comment}{/* Backend LUN pointer */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00163}\mbox{\hyperlink{ctl__io_8h_a060a1d6666c902724d482da98988a993}{00163}} \textcolor{preprocessor}{\#define CTL\_PRIV\_FRONTEND       4       }\textcolor{comment}{/* Frontend storage */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00164}\mbox{\hyperlink{ctl__io_8h_ac756c0d0c0d103503d41f8b0d00d7a06}{00164}} \textcolor{preprocessor}{\#define CTL\_PRIV\_FRONTEND2      5       }\textcolor{comment}{/* Another frontend storage */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00165}00165 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00166}\mbox{\hyperlink{ctl__io_8h_ac64eaafc4309172e560339adb95256c6}{00166}} \textcolor{preprocessor}{\#define CTL\_LUN(io)     ((io)-\/>io\_hdr.ctl\_private[CTL\_PRIV\_LUN].ptrs[0])}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00167}\mbox{\hyperlink{ctl__io_8h_ab8d16bff3ffc95ae3e5f0f318c432fc4}{00167}} \textcolor{preprocessor}{\#define CTL\_SOFTC(io)   ((io)-\/>io\_hdr.ctl\_private[CTL\_PRIV\_LUN].ptrs[1])}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00168}\mbox{\hyperlink{ctl__io_8h_a34aec2bdde77c6c300c0672e3bf1353c}{00168}} \textcolor{preprocessor}{\#define CTL\_BACKEND\_LUN(io)     ((io)-\/>io\_hdr.ctl\_private[CTL\_PRIV\_BACKEND\_LUN].ptrs[0])}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00169}\mbox{\hyperlink{ctl__io_8h_a4faa78fb59037bbfc2e334615bc7c6c7}{00169}} \textcolor{preprocessor}{\#define CTL\_PORT(io)    (((struct ctl\_softc *)CTL\_SOFTC(io))-\/>  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00170}00170 \textcolor{preprocessor}{    ctl\_ports[(io)-\/>io\_hdr.nexus.targ\_port])}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00172}00172 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00173}00173 \textcolor{comment}{ * These are used only on Originating SC in XFER mode, where requests don't}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00174}00174 \textcolor{comment}{ * ever reach backends, so we can reuse backend's private storage.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00175}00175 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00176}\mbox{\hyperlink{ctl__io_8h_ad29be3d2ea1f4286f2f94b662e8165b7}{00176}} \textcolor{preprocessor}{\#define CTL\_RSGL(io)    ((io)-\/>io\_hdr.ctl\_private[CTL\_PRIV\_BACKEND].ptrs[0])}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00177}\mbox{\hyperlink{ctl__io_8h_ab46cb61d9e5741e704c888f966cdf2b0}{00177}} \textcolor{preprocessor}{\#define CTL\_LSGL(io)    ((io)-\/>io\_hdr.ctl\_private[CTL\_PRIV\_BACKEND].ptrs[1])}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00178}\mbox{\hyperlink{ctl__io_8h_a3e4ab51c78ca7695b5b9eae684ddf756}{00178}} \textcolor{preprocessor}{\#define CTL\_RSGLT(io)   ((struct ctl\_sg\_entry *)CTL\_RSGL(io))}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00179}\mbox{\hyperlink{ctl__io_8h_a674b5876db1ef087d5561026b08b400a}{00179}} \textcolor{preprocessor}{\#define CTL\_LSGLT(io)   ((struct ctl\_sg\_entry *)CTL\_LSGL(io))}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00180}00180 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00181}\mbox{\hyperlink{ctl__io_8h_af601a12875212fff31e2de3e0223ae67}{00181}} \textcolor{preprocessor}{\#define CTL\_INVALID\_PORTNAME 0xFF}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00182}\mbox{\hyperlink{ctl__io_8h_a73f3e58bf49713e96866acca49794a56}{00182}} \textcolor{preprocessor}{\#define CTL\_UNMAPPED\_IID     0xFF}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00184}\mbox{\hyperlink{structctl__sg__entry}{00184}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__sg__entry}{ctl\_sg\_entry}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00185}\mbox{\hyperlink{structctl__sg__entry_a0807b13294648429e725ed8754f38f95}{00185}}         \textcolor{keywordtype}{void}    *\mbox{\hyperlink{structctl__sg__entry_a0807b13294648429e725ed8754f38f95}{addr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00186}\mbox{\hyperlink{structctl__sg__entry_a96f6584fa78c30ecc72625d5c2926c79}{00186}}         \textcolor{keywordtype}{size\_t}  \mbox{\hyperlink{structctl__sg__entry_a96f6584fa78c30ecc72625d5c2926c79}{len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00187}00187 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00188}00188 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00189}\mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ff}{00189}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00190}\mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ffaa577b49f6e01c2a2e4310162789befb9}{00190}}         \mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ffaa577b49f6e01c2a2e4310162789befb9}{CTL\_IO\_NONE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00191}\mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ffa158348f547d85de1ed9736de925a2a6a}{00191}}         \mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ffa158348f547d85de1ed9736de925a2a6a}{CTL\_IO\_SCSI}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00192}\mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ffa44d57f3be59d7198f57d532b2993c92d}{00192}}         \mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ffa44d57f3be59d7198f57d532b2993c92d}{CTL\_IO\_TASK}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00193}00193 \} \mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ff}{ctl\_io\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00194}00194 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00195}\mbox{\hyperlink{structctl__nexus}{00195}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__nexus}{ctl\_nexus}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00196}\mbox{\hyperlink{structctl__nexus_adf583c30da5c38e757f1360d341f9d32}{00196}}         uint32\_t \mbox{\hyperlink{structctl__nexus_adf583c30da5c38e757f1360d341f9d32}{initid}};          \textcolor{comment}{/* Initiator ID */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00197}\mbox{\hyperlink{structctl__nexus_adb614f1edadf984459502e6c49cebfce}{00197}}         uint32\_t \mbox{\hyperlink{structctl__nexus_adb614f1edadf984459502e6c49cebfce}{targ\_port}};            \textcolor{comment}{/* Target port, filled in by PORT */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00198}\mbox{\hyperlink{structctl__nexus_ac36f61555f840df7e1c66aedf8dbdfa8}{00198}}         uint32\_t \mbox{\hyperlink{structctl__nexus_ac36f61555f840df7e1c66aedf8dbdfa8}{targ\_lun}};              \textcolor{comment}{/* Destination lun */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00199}\mbox{\hyperlink{structctl__nexus_a9ae35443a12293bf9c2bf8db00455c15}{00199}}         uint32\_t \mbox{\hyperlink{structctl__nexus_a9ae35443a12293bf9c2bf8db00455c15}{targ\_mapped\_lun}};        \textcolor{comment}{/* Destination lun CTL-\/wide */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00200}00200 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00201}00201 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00202}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977b}{00202}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00203}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977badc224548274501f6273d24880b143081}{00203}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977badc224548274501f6273d24880b143081}{CTL\_MSG\_SERIALIZE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00204}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba4537a85860c342518a91744f5a59bc20}{00204}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba4537a85860c342518a91744f5a59bc20}{CTL\_MSG\_R2R}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00205}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba3d2e52787015e640b0205ce629a89bf8}{00205}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba3d2e52787015e640b0205ce629a89bf8}{CTL\_MSG\_FINISH\_IO}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00206}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bad9c8a8780c1fe68b37b50e247d3a9809}{00206}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bad9c8a8780c1fe68b37b50e247d3a9809}{CTL\_MSG\_BAD\_JUJU}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00207}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba61fbb61b3415ab44a6b1e3f3418a5848}{00207}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba61fbb61b3415ab44a6b1e3f3418a5848}{CTL\_MSG\_MANAGE\_TASKS}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00208}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba1dfcc84cf2f50c9cd89b673e2e05c85a}{00208}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba1dfcc84cf2f50c9cd89b673e2e05c85a}{CTL\_MSG\_PERS\_ACTION}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00209}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977baa16b1615a3476bf1a4e829ba8038e507}{00209}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977baa16b1615a3476bf1a4e829ba8038e507}{CTL\_MSG\_DATAMOVE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00210}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977baace541a4d25e589621ac472cbd5998d1}{00210}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977baace541a4d25e589621ac472cbd5998d1}{CTL\_MSG\_DATAMOVE\_DONE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00211}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba5aa71cf4b6d7700102fd4ece0d2db2db}{00211}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba5aa71cf4b6d7700102fd4ece0d2db2db}{CTL\_MSG\_UA}},                   \textcolor{comment}{/* Set/clear UA on secondary. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00212}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bac810f2228ea49eb6c5521d111fe2dea0}{00212}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bac810f2228ea49eb6c5521d111fe2dea0}{CTL\_MSG\_PORT\_SYNC}},             \textcolor{comment}{/* Information about port. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00213}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba512236569e5245879c7acbc62f18bcb6}{00213}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba512236569e5245879c7acbc62f18bcb6}{CTL\_MSG\_LUN\_SYNC}},               \textcolor{comment}{/* Information about LUN. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00214}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bad83900e67af41a7eb407e91a087c4f3e}{00214}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bad83900e67af41a7eb407e91a087c4f3e}{CTL\_MSG\_IID\_SYNC}},               \textcolor{comment}{/* Information about initiator. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00215}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bac8d54b25b587c37cabdcd1ec76aa473c}{00215}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977bac8d54b25b587c37cabdcd1ec76aa473c}{CTL\_MSG\_LOGIN}},                     \textcolor{comment}{/* Information about HA peer. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00216}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba3fadce2b71938d4e09576448b7dfc72d}{00216}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba3fadce2b71938d4e09576448b7dfc72d}{CTL\_MSG\_MODE\_SYNC}},             \textcolor{comment}{/* Mode page current content. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00217}00217         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba8b1e3288b5d6787f99f0a6013184c9fe}{CTL\_MSG\_FAILOVER}}                \textcolor{comment}{/* Fake, never sent though the wire */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00218}\mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977ba8b1e3288b5d6787f99f0a6013184c9fe}{00218}} \} \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977b}{ctl\_msg\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00219}00219 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00220}00220 \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__scsiio}{ctl\_scsiio}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00221}00221 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00222}\mbox{\hyperlink{structctl__io__hdr}{00222}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00223}\mbox{\hyperlink{structctl__io__hdr_a61d4230868b55881a29701ab1e094d2c}{00223}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_a61d4230868b55881a29701ab1e094d2c}{version}};       \textcolor{comment}{/* interface version XXX */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00224}\mbox{\hyperlink{structctl__io__hdr_a13c2b01a28e2b77943df44e29fdafa84}{00224}}         \mbox{\hyperlink{ctl__io_8h_a22fa76f752966a2de46c63789fe342ff}{ctl\_io\_type}}    \mbox{\hyperlink{structctl__io__hdr_a13c2b01a28e2b77943df44e29fdafa84}{io\_type}};       \textcolor{comment}{/* task I/O, SCSI I/O, etc. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00225}\mbox{\hyperlink{structctl__io__hdr_a06bb6dbdb61483e8bbef904cede376b2}{00225}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977b}{ctl\_msg\_type}}          \mbox{\hyperlink{structctl__io__hdr_a06bb6dbdb61483e8bbef904cede376b2}{msg\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00226}\mbox{\hyperlink{structctl__io__hdr_a2694248a43adfcb898e8d9424df7f193}{00226}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__nexus}{ctl\_nexus}}  \mbox{\hyperlink{structctl__io__hdr_a2694248a43adfcb898e8d9424df7f193}{nexus}};  \textcolor{comment}{/* Initiator, port, target, lun */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00227}\mbox{\hyperlink{structctl__io__hdr_a8874b44b7f53b6492dbe49468e686554}{00227}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_a8874b44b7f53b6492dbe49468e686554}{iid\_indx}};     \textcolor{comment}{/* the index into the iid mapping */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00228}\mbox{\hyperlink{structctl__io__hdr_aae032e0b9a69d74d6dc1002519171844}{00228}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_aae032e0b9a69d74d6dc1002519171844}{flags}};   \textcolor{comment}{/* transaction flags */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00229}\mbox{\hyperlink{structctl__io__hdr_a29f384f2742b9ff6a465ba3280608cf8}{00229}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_a29f384f2742b9ff6a465ba3280608cf8}{status}}; \textcolor{comment}{/* transaction status */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00230}\mbox{\hyperlink{structctl__io__hdr_afd3df5cec33ce765807363f21b0e396b}{00230}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_afd3df5cec33ce765807363f21b0e396b}{port\_status}};       \textcolor{comment}{/* trans status, set by PORT, 0 = good*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00231}\mbox{\hyperlink{structctl__io__hdr_a156b6005a86367b361af84d685e8b25f}{00231}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_a156b6005a86367b361af84d685e8b25f}{timeout}};       \textcolor{comment}{/* timeout in ms */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00232}\mbox{\hyperlink{structctl__io__hdr_a287ef644cce721ce87e0300fae5e7d55}{00232}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_a287ef644cce721ce87e0300fae5e7d55}{retries}};       \textcolor{comment}{/* retry count */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00233}00233 \textcolor{preprocessor}{\#ifdef CTL\_IO\_DELAY}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00234}00234         \textcolor{keyword}{struct }callout    delay\_callout;}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00235}00235 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* CTL\_IO\_DELAY */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00236}00236 \textcolor{preprocessor}{\#ifdef CTL\_TIME\_IO}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00237}\mbox{\hyperlink{structctl__io__hdr_ac874db883ce6b4d6eb2928c9d50b73a3}{00237}}         time\_t            \mbox{\hyperlink{structctl__io__hdr_ac874db883ce6b4d6eb2928c9d50b73a3}{start\_time}}; \textcolor{comment}{/* I/O start time */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00238}\mbox{\hyperlink{structctl__io__hdr_a16c5e8c359330f8addd1c79981a44ab2}{00238}}         \textcolor{keyword}{struct }bintime    \mbox{\hyperlink{structctl__io__hdr_a16c5e8c359330f8addd1c79981a44ab2}{start\_bt}};     \textcolor{comment}{/* Timer start ticks */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00239}\mbox{\hyperlink{structctl__io__hdr_a16bfd17c81cd5f143047d93dc59be02b}{00239}}         \textcolor{keyword}{struct }bintime    \mbox{\hyperlink{structctl__io__hdr_a16bfd17c81cd5f143047d93dc59be02b}{dma\_start\_bt}};     \textcolor{comment}{/* DMA start ticks */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00240}\mbox{\hyperlink{structctl__io__hdr_a40b8839ab30b9af3648cce207cf4a47b}{00240}}         \textcolor{keyword}{struct }bintime    \mbox{\hyperlink{structctl__io__hdr_a40b8839ab30b9af3648cce207cf4a47b}{dma\_bt}}; \textcolor{comment}{/* DMA total ticks */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00241}00241 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* CTL\_TIME\_IO */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00242}\mbox{\hyperlink{structctl__io__hdr_a32c8946d8da5c2ad5d673b23be1fafb1}{00242}}         uint32\_t          \mbox{\hyperlink{structctl__io__hdr_a32c8946d8da5c2ad5d673b23be1fafb1}{num\_dmas}};     \textcolor{comment}{/* Number of DMAs */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00243}\mbox{\hyperlink{structctl__io__hdr_a11531345a6d3a6abb8f22388e1552a2a}{00243}}         \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}}        *\mbox{\hyperlink{structctl__io__hdr_a11531345a6d3a6abb8f22388e1552a2a}{remote\_io}};  \textcolor{comment}{/* I/O counterpart on remote HA side */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00244}\mbox{\hyperlink{structctl__io__hdr_a7db8209aee6b4bd198c9214f11793820}{00244}}         \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}}        *\mbox{\hyperlink{structctl__io__hdr_a7db8209aee6b4bd198c9214f11793820}{blocker}};      \textcolor{comment}{/* I/O blocking this one */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00245}\mbox{\hyperlink{structctl__io__hdr_aeab7f9789581c2522665bd4e66d875cd}{00245}}         \textcolor{keywordtype}{void}              *\mbox{\hyperlink{structctl__io__hdr_aeab7f9789581c2522665bd4e66d875cd}{pool}};    \textcolor{comment}{/* I/O pool */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00246}\mbox{\hyperlink{structctl__io__hdr_ae6f7e42ec6b84691810ea012f12801aa}{00246}}         \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__priv}{ctl\_priv}}    \mbox{\hyperlink{structctl__io__hdr_ae6f7e42ec6b84691810ea012f12801aa}{ctl\_private}}[\mbox{\hyperlink{ctl__io_8h_ac85d8501441f4cdecac1be1856d1f5fa}{CTL\_NUM\_PRIV}}];\textcolor{comment}{/* CTL private area */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00247}\mbox{\hyperlink{structctl__io__hdr_a3c5615ace11a59a0e8987bcadcf213f7}{00247}}         \mbox{\hyperlink{structctl__io__hdr_a3c5615ace11a59a0e8987bcadcf213f7}{TAILQ\_HEAD}}(, \mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}}) blocked\_queue;     \textcolor{comment}{/* I/Os blocked by this one */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00248}\mbox{\hyperlink{structctl__io__hdr_a8852c655a538688ff5430ea9c32bab2f}{00248}}         \mbox{\hyperlink{structctl__io__hdr_a8852c655a538688ff5430ea9c32bab2f}{STAILQ\_ENTRY}}(\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}}) links;   \textcolor{comment}{/* linked list pointer */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00249}\mbox{\hyperlink{structctl__io__hdr_a0220ba386031c0cfd6b07b42e50046be}{00249}}         \mbox{\hyperlink{structctl__io__hdr_a0220ba386031c0cfd6b07b42e50046be}{LIST\_ENTRY}}(\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}}) ooa\_links;   \textcolor{comment}{/* ooa\_queue links */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00250}\mbox{\hyperlink{structctl__io__hdr_a59dfd6627a434d3b4af194dcbd4f27e4}{00250}}         \mbox{\hyperlink{structctl__io__hdr_a59dfd6627a434d3b4af194dcbd4f27e4}{TAILQ\_ENTRY}}(\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}}) blocked\_links;     \textcolor{comment}{/* blocked\_queue links */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00251}00251 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00252}00252 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00253}\mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{00253}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00254}\mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130a93b4bb9a24bf0f0675cd131147f00682}{00254}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130a93b4bb9a24bf0f0675cd131147f00682}{CTL\_TAG\_UNTAGGED}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00255}\mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130aece8792c94febd75a60a4763ae1e0151}{00255}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130aece8792c94febd75a60a4763ae1e0151}{CTL\_TAG\_SIMPLE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00256}\mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130aeee41a79cfc3a7b53aae1773c95770ea}{00256}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130aeee41a79cfc3a7b53aae1773c95770ea}{CTL\_TAG\_ORDERED}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00257}\mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130a21abe1b40019a38ca174cab5cc817368}{00257}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130a21abe1b40019a38ca174cab5cc817368}{CTL\_TAG\_HEAD\_OF\_QUEUE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00258}00258         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130af9ffaa8b6a089d755b3bab1fa1f5b3c6}{CTL\_TAG\_ACA}}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00259}\mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130af9ffaa8b6a089d755b3bab1fa1f5b3c6}{00259}} \} \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00260}00260 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00261}00261 \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00262}00262 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00263}\mbox{\hyperlink{ctl__io_8h_a6054cddb8b27589417dae9c7529faa3f}{00263}} \textcolor{keyword}{typedef} void (*\mbox{\hyperlink{ctl__io_8h_a6054cddb8b27589417dae9c7529faa3f}{ctl\_ref}})(\textcolor{keywordtype}{void} *arg, \textcolor{keywordtype}{int} diff);}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00264}00264 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00265}00265 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00266}00266 \textcolor{comment}{ * SCSI passthrough I/O structure for the CAM Target Layer.  Note}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00267}00267 \textcolor{comment}{ * that some of these fields are here for completeness, but they aren't}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00268}00268 \textcolor{comment}{ * used in the CTL implementation.  e.g., timeout and retries won't be}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00269}00269 \textcolor{comment}{ * used.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00270}00270 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00271}00271 \textcolor{comment}{ * Note:  Make sure the io\_hdr is *always* the first element in this}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00272}00272 \textcolor{comment}{ * structure.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00273}00273 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00274}\mbox{\hyperlink{structctl__scsiio}{00274}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__scsiio}{ctl\_scsiio}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00275}\mbox{\hyperlink{structctl__scsiio_a3ec4852948984dcf048b61573e0e1780}{00275}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}} \mbox{\hyperlink{structctl__scsiio_a3ec4852948984dcf048b61573e0e1780}{io\_hdr}};       \textcolor{comment}{/* common to all I/O types */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00276}00276 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00277}00277         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00278}00278 \textcolor{comment}{         * The ext\_* fields are generally intended for frontend use; CTL itself}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00279}00279 \textcolor{comment}{         * doesn't modify or use them.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00280}00280 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00281}\mbox{\hyperlink{structctl__scsiio_a966763cc8d596bbbf2cedf1fb4199f74}{00281}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a966763cc8d596bbbf2cedf1fb4199f74}{ext\_sg\_entries}};        \textcolor{comment}{/* 0 = no S/G list, > 0 = num entries */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00282}\mbox{\hyperlink{structctl__scsiio_a2329f92850d604cbc1dd0a15e4100065}{00282}}         uint8\_t    *\mbox{\hyperlink{structctl__scsiio_a2329f92850d604cbc1dd0a15e4100065}{ext\_data\_ptr}};   \textcolor{comment}{/* data buffer or S/G list */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00283}\mbox{\hyperlink{structctl__scsiio_a045824dfb1f21e1258317048554933f8}{00283}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a045824dfb1f21e1258317048554933f8}{ext\_data\_len}};    \textcolor{comment}{/* Data transfer length */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00284}\mbox{\hyperlink{structctl__scsiio_a5b7e4c521e3d98250b6316ced45ac556}{00284}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a5b7e4c521e3d98250b6316ced45ac556}{ext\_data\_filled}};      \textcolor{comment}{/* Amount of data filled so far */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00285}00285 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00286}00286         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00287}00287 \textcolor{comment}{         * The number of scatter/gather entries in the list pointed to}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00288}00288 \textcolor{comment}{         * by kern\_data\_ptr.  0 means there is no list, just a data pointer.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00289}00289 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00290}\mbox{\hyperlink{structctl__scsiio_a198cc358715d00114992715b8b4d8a91}{00290}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a198cc358715d00114992715b8b4d8a91}{kern\_sg\_entries}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00291}00291 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00292}\mbox{\hyperlink{structctl__scsiio_a807968755e198fab492b26df1651ed89}{00292}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a807968755e198fab492b26df1651ed89}{rem\_sg\_entries}};        \textcolor{comment}{/* Unused. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00293}00293 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00294}00294         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00295}00295 \textcolor{comment}{         * The data pointer or a pointer to the scatter/gather list.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00296}00296 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00297}\mbox{\hyperlink{structctl__scsiio_ac0387482d69876c20201436631351e44}{00297}}         uint8\_t    *\mbox{\hyperlink{structctl__scsiio_ac0387482d69876c20201436631351e44}{kern\_data\_ptr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00298}00298 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00299}00299         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00300}00300 \textcolor{comment}{         * Length of the data buffer or scatter/gather list.  It's also}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00301}00301 \textcolor{comment}{         * the length of this particular piece of the data transfer,}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00302}00302 \textcolor{comment}{         * ie. number of bytes expected to be transferred by the current}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00303}00303 \textcolor{comment}{         * invocation of frontend's datamove() callback.  It's always}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00304}00304 \textcolor{comment}{         * less than or equal to kern\_total\_len.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00305}00305 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00306}\mbox{\hyperlink{structctl__scsiio_a2aa17a8c5b48525f6b853d2ac9daac4c}{00306}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a2aa17a8c5b48525f6b853d2ac9daac4c}{kern\_data\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00307}00307 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00308}00308         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00309}00309 \textcolor{comment}{         * Total length of data to be transferred during this particular}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00310}00310 \textcolor{comment}{         * SCSI command, as decoded from SCSI CDB.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00311}00311 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00312}\mbox{\hyperlink{structctl__scsiio_a0c48b745eb643d738a0377eacc779020}{00312}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a0c48b745eb643d738a0377eacc779020}{kern\_total\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00313}00313 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00314}00314         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00315}00315 \textcolor{comment}{         * Amount of data left after the current data transfer.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00316}00316 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00317}\mbox{\hyperlink{structctl__scsiio_aa0d2f22b196c94ac3d711114e81f6437}{00317}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_aa0d2f22b196c94ac3d711114e81f6437}{kern\_data\_resid}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00318}00318 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00319}00319         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00320}00320 \textcolor{comment}{         * Byte offset of this transfer, equal to the amount of data}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00321}00321 \textcolor{comment}{         * already transferred for this SCSI command during previous}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00322}00322 \textcolor{comment}{         * datamove() invocations.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00323}00323 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00324}\mbox{\hyperlink{structctl__scsiio_aa54aaad60777d2570add13597fa33b64}{00324}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_aa54aaad60777d2570add13597fa33b64}{kern\_rel\_offset}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00325}00325 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00326}\mbox{\hyperlink{structctl__scsiio_a292cf32dbfbad8a3848044cea599971e}{00326}}         \textcolor{keyword}{struct     }\mbox{\hyperlink{structscsi__sense__data}{scsi\_sense\_data}} \mbox{\hyperlink{structctl__scsiio_a292cf32dbfbad8a3848044cea599971e}{sense\_data}}; \textcolor{comment}{/* sense data */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00327}\mbox{\hyperlink{structctl__scsiio_ae3738b1fb5c045b852ec268967572868}{00327}}         uint8\_t    \mbox{\hyperlink{structctl__scsiio_ae3738b1fb5c045b852ec268967572868}{sense\_len}};          \textcolor{comment}{/* Returned sense length */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00328}\mbox{\hyperlink{structctl__scsiio_a48fadb6e18f4588e096a440fb37629b4}{00328}}         uint8\_t    \mbox{\hyperlink{structctl__scsiio_a48fadb6e18f4588e096a440fb37629b4}{scsi\_status}};              \textcolor{comment}{/* SCSI status byte */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00329}\mbox{\hyperlink{structctl__scsiio_a4e3f1b1bcb13303d30269e5b6548621a}{00329}}         uint8\_t    \mbox{\hyperlink{structctl__scsiio_a4e3f1b1bcb13303d30269e5b6548621a}{seridx}};                \textcolor{comment}{/* Serialization index. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00330}\mbox{\hyperlink{structctl__scsiio_a2c779c689eac46ad214eae29c770be78}{00330}}         uint8\_t    \mbox{\hyperlink{structctl__scsiio_a2c779c689eac46ad214eae29c770be78}{priority}};            \textcolor{comment}{/* Command priority */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00331}\mbox{\hyperlink{structctl__scsiio_ae52d89426b5e836257a0c3dad3397b1b}{00331}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_ae52d89426b5e836257a0c3dad3397b1b}{residual}};            \textcolor{comment}{/* Unused */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00332}\mbox{\hyperlink{structctl__scsiio_a873fb24a6675a4cad237c128eae334f7}{00332}}         uint32\_t   \mbox{\hyperlink{structctl__scsiio_a873fb24a6675a4cad237c128eae334f7}{tag\_num}};              \textcolor{comment}{/* tag number */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00333}\mbox{\hyperlink{structctl__scsiio_a9166c86c6f62339aecaa85bb2fbcf945}{00333}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}} \mbox{\hyperlink{structctl__scsiio_a9166c86c6f62339aecaa85bb2fbcf945}{tag\_type}};              \textcolor{comment}{/* simple, ordered, head of queue,etc.*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00334}\mbox{\hyperlink{structctl__scsiio_a6c465d4ef15471ccbe863e31ee442553}{00334}}         uint8\_t    \mbox{\hyperlink{structctl__scsiio_a6c465d4ef15471ccbe863e31ee442553}{cdb\_len}};              \textcolor{comment}{/* CDB length */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00335}\mbox{\hyperlink{structctl__scsiio_a5d2f7b49af722408745fcbddbe40ff37}{00335}}         uint8\_t    \mbox{\hyperlink{structctl__scsiio_a5d2f7b49af722408745fcbddbe40ff37}{cdb}}[\mbox{\hyperlink{ctl__io_8h_a8e80b184852596ea1c5c7faa0ed2985b}{CTL\_MAX\_CDBLEN}}];        \textcolor{comment}{/* CDB */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00336}\mbox{\hyperlink{structctl__scsiio_a0ad9b76dc2717fd3aeaa8befac0cfa0a}{00336}}         int        (*\mbox{\hyperlink{structctl__scsiio_a0ad9b76dc2717fd3aeaa8befac0cfa0a}{be\_move\_done}})(\textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}} *io, \textcolor{keywordtype}{bool} samethr); \textcolor{comment}{/* called by fe */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00337}\mbox{\hyperlink{structctl__scsiio_a510ea33d9a387f1217553fa886f63da1}{00337}}         int        (*\mbox{\hyperlink{structctl__scsiio_a510ea33d9a387f1217553fa886f63da1}{io\_cont}})(\textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}} *io); \textcolor{comment}{/* to continue processing */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00338}\mbox{\hyperlink{structctl__scsiio_ad2bf21fa56ec0cc667a2a3736effe978}{00338}}         \mbox{\hyperlink{ctl__io_8h_a6054cddb8b27589417dae9c7529faa3f}{ctl\_ref}}      \mbox{\hyperlink{structctl__scsiio_ad2bf21fa56ec0cc667a2a3736effe978}{kern\_data\_ref}}; \textcolor{comment}{/* Method to reference/release data */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00339}\mbox{\hyperlink{structctl__scsiio_a8d5cd5e0a65e18803c96f9cc2d791498}{00339}}         \textcolor{keywordtype}{void}       *\mbox{\hyperlink{structctl__scsiio_a8d5cd5e0a65e18803c96f9cc2d791498}{kern\_data\_arg}}; \textcolor{comment}{/* Opaque argument for kern\_data\_ref() */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00340}00340 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00341}00341 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00342}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9}{00342}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00343}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a98801a48a87e4e7a272e4244e4e1e665}{00343}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a98801a48a87e4e7a272e4244e4e1e665}{CTL\_TASK\_ABORT\_TASK}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00344}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9ad1ba665df0b1a1a8398824bbabbdee9a}{00344}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9ad1ba665df0b1a1a8398824bbabbdee9a}{CTL\_TASK\_ABORT\_TASK\_SET}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00345}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a90f3bf04083553f44006ca9671ae110a}{00345}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a90f3bf04083553f44006ca9671ae110a}{CTL\_TASK\_CLEAR\_ACA}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00346}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9aa04454fb1e64b79b075aee2cde4981bc}{00346}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9aa04454fb1e64b79b075aee2cde4981bc}{CTL\_TASK\_CLEAR\_TASK\_SET}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00347}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9afea32226d821da8ab659884d90403697}{00347}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9afea32226d821da8ab659884d90403697}{CTL\_TASK\_I\_T\_NEXUS\_RESET}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00348}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a0f08e36a2ea2b0086fc5fce560c0a28b}{00348}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a0f08e36a2ea2b0086fc5fce560c0a28b}{CTL\_TASK\_LUN\_RESET}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00349}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9ac2286d7383b49411c0fb9bd8d05010ee}{00349}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9ac2286d7383b49411c0fb9bd8d05010ee}{CTL\_TASK\_TARGET\_RESET}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00350}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a23c4658775c1210502955614fa816e57}{00350}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a23c4658775c1210502955614fa816e57}{CTL\_TASK\_BUS\_RESET}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00351}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a7c39d33cbd981595aac9642a55ab719f}{00351}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a7c39d33cbd981595aac9642a55ab719f}{CTL\_TASK\_PORT\_LOGIN}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00352}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a80934661a0ddee33e540ed071b041fb5}{00352}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a80934661a0ddee33e540ed071b041fb5}{CTL\_TASK\_PORT\_LOGOUT}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00353}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9ad4368c3dc579061438f1c6ece6979ac1}{00353}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9ad4368c3dc579061438f1c6ece6979ac1}{CTL\_TASK\_QUERY\_TASK}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00354}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a5830287a543a1e2a43072e69c2c18610}{00354}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a5830287a543a1e2a43072e69c2c18610}{CTL\_TASK\_QUERY\_TASK\_SET}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00355}00355         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a22fb4d77375e4824e5d3685006acdccb}{CTL\_TASK\_QUERY\_ASYNC\_EVENT}}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00356}\mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9a22fb4d77375e4824e5d3685006acdccb}{00356}} \} \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9}{ctl\_task\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00357}00357 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00358}\mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5}{00358}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00359}\mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5add9a38681479314ca9a83b1f055b1027}{00359}}         \mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5add9a38681479314ca9a83b1f055b1027}{CTL\_TASK\_FUNCTION\_COMPLETE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00360}\mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a6c7032083610fd3bfa4848f80f5b31bf}{00360}}         \mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a6c7032083610fd3bfa4848f80f5b31bf}{CTL\_TASK\_FUNCTION\_SUCCEEDED}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00361}\mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a4733dacce169fd9e9cc022ad7edfafed}{00361}}         \mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a4733dacce169fd9e9cc022ad7edfafed}{CTL\_TASK\_FUNCTION\_REJECTED}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00362}\mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a329c81a0f4d93bfa612bd0eaee6d8ff6}{00362}}         \mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a329c81a0f4d93bfa612bd0eaee6d8ff6}{CTL\_TASK\_LUN\_DOES\_NOT\_EXIST}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00363}00363         \mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a8c5953ac92165779e57c8434bdd82a8c}{CTL\_TASK\_FUNCTION\_NOT\_SUPPORTED}}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00364}\mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5a8c5953ac92165779e57c8434bdd82a8c}{00364}} \} \mbox{\hyperlink{ctl__io_8h_ae6bcda634bc2eee51f1bce660336d1b5}{ctl\_task\_status}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00365}00365 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00366}00366 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00367}00367 \textcolor{comment}{ * Task management I/O structure.  Aborts, bus resets, etc., are sent using}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00368}00368 \textcolor{comment}{ * this structure.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00369}00369 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00370}00370 \textcolor{comment}{ * Note:  Make sure the io\_hdr is *always* the first element in this}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00371}00371 \textcolor{comment}{ * structure.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00372}00372 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00373}\mbox{\hyperlink{structctl__taskio}{00373}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__taskio}{ctl\_taskio}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00374}\mbox{\hyperlink{structctl__taskio_a4edc2b4ac8ed8e8dd6c422c42eaee286}{00374}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}}     \mbox{\hyperlink{structctl__taskio_a4edc2b4ac8ed8e8dd6c422c42eaee286}{io\_hdr}};      \textcolor{comment}{/* common to all I/O types */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00375}\mbox{\hyperlink{structctl__taskio_a03c46090cc1b6344b917b77dcfbae5b3}{00375}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9}{ctl\_task\_type}}              \mbox{\hyperlink{structctl__taskio_a03c46090cc1b6344b917b77dcfbae5b3}{task\_action}}; \textcolor{comment}{/* Target Reset, Abort, etc.  */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00376}\mbox{\hyperlink{structctl__taskio_a927ee86ac9b2bf3d6e58632476f88cb1}{00376}}         uint32\_t                \mbox{\hyperlink{structctl__taskio_a927ee86ac9b2bf3d6e58632476f88cb1}{tag\_num}};     \textcolor{comment}{/* tag number */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00377}\mbox{\hyperlink{structctl__taskio_a402cd79d6ef4086ad075037cdabe522e}{00377}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}}                \mbox{\hyperlink{structctl__taskio_a402cd79d6ef4086ad075037cdabe522e}{tag\_type}};    \textcolor{comment}{/* simple, ordered, etc. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00378}\mbox{\hyperlink{structctl__taskio_a83c9238d24667c2401a168b725644b28}{00378}}         uint8\_t                 \mbox{\hyperlink{structctl__taskio_a83c9238d24667c2401a168b725644b28}{task\_status}}; \textcolor{comment}{/* Complete, Succeeded, etc. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00379}\mbox{\hyperlink{structctl__taskio_ac1cb8ae1ed8b40919a180ccbdf03d1bc}{00379}}         uint8\_t                 \mbox{\hyperlink{structctl__taskio_ac1cb8ae1ed8b40919a180ccbdf03d1bc}{task\_resp}}[3];\textcolor{comment}{/* Response information */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00380}00380 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00381}00381 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00382}00382 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00383}00383 \textcolor{comment}{ * HA link messages.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00384}00384 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00385}\mbox{\hyperlink{ctl__io_8h_ad7d93aebbc7be7eb43be5e40ee176b60}{00385}} \textcolor{preprocessor}{\#define CTL\_HA\_VERSION          3}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00386}00386 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00387}00387 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00388}00388 \textcolor{comment}{ * Used for CTL\_MSG\_LOGIN.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00389}00389 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00390}\mbox{\hyperlink{structctl__ha__msg__login}{00390}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__login}{ctl\_ha\_msg\_login}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00391}\mbox{\hyperlink{structctl__ha__msg__login_a6b16d9b0a432aaff475604bdadac94c6}{00391}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977b}{ctl\_msg\_type}}                \mbox{\hyperlink{structctl__ha__msg__login_a6b16d9b0a432aaff475604bdadac94c6}{msg\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00392}\mbox{\hyperlink{structctl__ha__msg__login_a133392f599326148e0c63519e0a9e7f5}{00392}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__login_a133392f599326148e0c63519e0a9e7f5}{version}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00393}\mbox{\hyperlink{structctl__ha__msg__login_a9227b701694548d048fc6fb9c8727cf8}{00393}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__login_a9227b701694548d048fc6fb9c8727cf8}{ha\_mode}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00394}\mbox{\hyperlink{structctl__ha__msg__login_a1c3368040d5014e7f784387cd52bd8cc}{00394}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__login_a1c3368040d5014e7f784387cd52bd8cc}{ha\_id}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00395}\mbox{\hyperlink{structctl__ha__msg__login_a510fef61b201a8fe3d7dd633426de630}{00395}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__login_a510fef61b201a8fe3d7dd633426de630}{max\_luns}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00396}\mbox{\hyperlink{structctl__ha__msg__login_a578853c69190882d64c1ab0175f15e7f}{00396}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__login_a578853c69190882d64c1ab0175f15e7f}{max\_ports}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00397}\mbox{\hyperlink{structctl__ha__msg__login_a8d2ef9a7c7cdd78970e25f509e37b93c}{00397}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__login_a8d2ef9a7c7cdd78970e25f509e37b93c}{max\_init\_per\_port}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00398}00398 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00399}00399 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00400}\mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86c}{00400}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00401}\mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86caa9ec56bd6f3d89668f4867d2565dc346}{00401}}         \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86caa9ec56bd6f3d89668f4867d2565dc346}{CTL\_PR\_REG\_KEY}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00402}\mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca0014c10d86677db2cef2fd75f519e11b}{00402}}         \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca0014c10d86677db2cef2fd75f519e11b}{CTL\_PR\_UNREG\_KEY}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00403}\mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca309a021b4a149c9046eeaa30cc643171}{00403}}         \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca309a021b4a149c9046eeaa30cc643171}{CTL\_PR\_PREEMPT}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00404}\mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca48c03d71bde8b34a46dfb300bd613efa}{00404}}         \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca48c03d71bde8b34a46dfb300bd613efa}{CTL\_PR\_CLEAR}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00405}\mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca015b2037d76375c7e56b3b00eadba9b3}{00405}}         \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca015b2037d76375c7e56b3b00eadba9b3}{CTL\_PR\_RESERVE}},}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00406}00406         \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca9c4767cbc4a57d9794b0f77abea9b677}{CTL\_PR\_RELEASE}}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00407}\mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86ca9c4767cbc4a57d9794b0f77abea9b677}{00407}} \} \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86c}{ctl\_pr\_action}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00408}00408 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00409}00409 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00410}00410 \textcolor{comment}{ * The PR info is specifically for sending Persistent Reserve actions}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00411}00411 \textcolor{comment}{ * to the other SC which it must also act on.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00412}00412 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00413}00413 \textcolor{comment}{ * Note:  Make sure the io\_hdr is *always* the first element in this}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00414}00414 \textcolor{comment}{ * structure.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00415}00415 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00416}\mbox{\hyperlink{structctl__pr__info}{00416}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__pr__info}{ctl\_pr\_info}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00417}\mbox{\hyperlink{structctl__pr__info_aff8437ad3038735a8c6c66721f5de9e3}{00417}}         \mbox{\hyperlink{ctl__io_8h_a3c8b909d785e39c3333dc8fd49eac86c}{ctl\_pr\_action}}              \mbox{\hyperlink{structctl__pr__info_aff8437ad3038735a8c6c66721f5de9e3}{action}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00418}\mbox{\hyperlink{structctl__pr__info_a96d439a02914ab1d410b208835e195bf}{00418}}         uint8\_t                 \mbox{\hyperlink{structctl__pr__info_a96d439a02914ab1d410b208835e195bf}{sa\_res\_key}}[8];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00419}\mbox{\hyperlink{structctl__pr__info_aaab02ac803d81074763c6a3bd9b2118c}{00419}}         uint8\_t                 \mbox{\hyperlink{structctl__pr__info_aaab02ac803d81074763c6a3bd9b2118c}{res\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00420}\mbox{\hyperlink{structctl__pr__info_aa15296650e7ef1847d91294b60cde4b4}{00420}}         uint32\_t                \mbox{\hyperlink{structctl__pr__info_aa15296650e7ef1847d91294b60cde4b4}{residx}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00421}00421 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00422}00422 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00423}\mbox{\hyperlink{structctl__ha__msg__hdr}{00423}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00424}\mbox{\hyperlink{structctl__ha__msg__hdr_a9d28dd042dc40d6f084a00beac333b10}{00424}}         \mbox{\hyperlink{ctl__io_8h_a9091b4edd5b0acd7a9fe6f9ab4e7977b}{ctl\_msg\_type}}                \mbox{\hyperlink{structctl__ha__msg__hdr_a9d28dd042dc40d6f084a00beac333b10}{msg\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00425}\mbox{\hyperlink{structctl__ha__msg__hdr_aeea3f2476c176aef4bd7975d15561bd0}{00425}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__hdr_aeea3f2476c176aef4bd7975d15561bd0}{status}};        \textcolor{comment}{/* transaction status */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00426}\mbox{\hyperlink{structctl__ha__msg__hdr_a54abf49824fa213637f9ec026e45bf4f}{00426}}         \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}}              *\mbox{\hyperlink{structctl__ha__msg__hdr_a54abf49824fa213637f9ec026e45bf4f}{original\_sc}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00427}\mbox{\hyperlink{structctl__ha__msg__hdr_a97c306701d51b21b68c9a8c1addc07f0}{00427}}         \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}}              *\mbox{\hyperlink{structctl__ha__msg__hdr_a97c306701d51b21b68c9a8c1addc07f0}{serializing\_sc}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00428}\mbox{\hyperlink{structctl__ha__msg__hdr_a86aa011f7f6c7dfbdda4c04e7906de2b}{00428}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__nexus}{ctl\_nexus}}       \mbox{\hyperlink{structctl__ha__msg__hdr_a86aa011f7f6c7dfbdda4c04e7906de2b}{nexus}};          \textcolor{comment}{/* Initiator, port, target, lun */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00429}00429 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00430}00430 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00431}\mbox{\hyperlink{ctl__io_8h_aa2751004b3b18eec9df2d44d21ab2fa4}{00431}} \textcolor{preprocessor}{\#define CTL\_HA\_MAX\_SG\_ENTRIES   16}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00432}\mbox{\hyperlink{ctl__io_8h_ad9d6089a3f767ee1eff758e94de323bf}{00432}} \textcolor{preprocessor}{\#define CTL\_HA\_DATAMOVE\_SEGMENT 131072}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00433}00433 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00434}00434 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00435}00435 \textcolor{comment}{ * Used for CTL\_MSG\_PERS\_ACTION.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00436}00436 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00437}\mbox{\hyperlink{structctl__ha__msg__pr}{00437}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__pr}{ctl\_ha\_msg\_pr}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00438}\mbox{\hyperlink{structctl__ha__msg__pr_aad95a0bddd13dc87cbf72dbc97e4c317}{00438}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__pr_aad95a0bddd13dc87cbf72dbc97e4c317}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00439}\mbox{\hyperlink{structctl__ha__msg__pr_a014bd40675bd87863501c9786a45b551}{00439}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__pr__info}{ctl\_pr\_info}}   \mbox{\hyperlink{structctl__ha__msg__pr_a014bd40675bd87863501c9786a45b551}{pr\_info}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00440}00440 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00441}00441 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00442}00442 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00443}00443 \textcolor{comment}{ * Used for CTL\_MSG\_UA.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00444}00444 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00445}\mbox{\hyperlink{structctl__ha__msg__ua}{00445}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__ua}{ctl\_ha\_msg\_ua}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00446}\mbox{\hyperlink{structctl__ha__msg__ua_a83dc422b9fcc1d1022f59b5664dcee53}{00446}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__ua_a83dc422b9fcc1d1022f59b5664dcee53}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00447}\mbox{\hyperlink{structctl__ha__msg__ua_af177b03aac505bf182361bc2ab3d3c24}{00447}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__ua_af177b03aac505bf182361bc2ab3d3c24}{ua\_all}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00448}\mbox{\hyperlink{structctl__ha__msg__ua_a26aace9123fb1a580c313cc0a8cb16a7}{00448}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__ua_a26aace9123fb1a580c313cc0a8cb16a7}{ua\_set}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00449}\mbox{\hyperlink{structctl__ha__msg__ua_ae7e3471bfce1a71221b50a16c0e8b378}{00449}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__ua_ae7e3471bfce1a71221b50a16c0e8b378}{ua\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00450}\mbox{\hyperlink{structctl__ha__msg__ua_add33c97edebb63571f1104695c21fac6}{00450}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__ua_add33c97edebb63571f1104695c21fac6}{ua\_info}}[8];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00451}00451 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00452}00452 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00453}00453 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00454}00454 \textcolor{comment}{ * The S/G handling here is a little different than the standard ctl\_scsiio}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00455}00455 \textcolor{comment}{ * structure, because we can't pass data by reference in between controllers.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00456}00456 \textcolor{comment}{ * The S/G list in the ctl\_scsiio struct is normally passed in the}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00457}00457 \textcolor{comment}{ * kern\_data\_ptr field.  So kern\_sg\_entries here will always be non-\/zero,}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00458}00458 \textcolor{comment}{ * even if there is only one entry.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00459}00459 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00460}00460 \textcolor{comment}{ * Used for CTL\_MSG\_DATAMOVE.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00461}00461 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00462}\mbox{\hyperlink{structctl__ha__msg__dt}{00462}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__dt}{ctl\_ha\_msg\_dt}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00463}\mbox{\hyperlink{structctl__ha__msg__dt_a33210bd030d6cba9e4f813300da8e146}{00463}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__dt_a33210bd030d6cba9e4f813300da8e146}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00464}\mbox{\hyperlink{structctl__ha__msg__dt_ac56d4cb84b374d2dce90573e87a39dbd}{00464}}         \mbox{\hyperlink{ctl__io_8h_ac919a4e87edc6142399a36f72f0b1a01}{ctl\_io\_flags}}                \mbox{\hyperlink{structctl__ha__msg__dt_ac56d4cb84b374d2dce90573e87a39dbd}{flags}};  \textcolor{comment}{/* Only I/O flags are used here */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00465}\mbox{\hyperlink{structctl__ha__msg__dt_a1cec92522ef33a419979fb1cf97daf3c}{00465}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_a1cec92522ef33a419979fb1cf97daf3c}{sg\_sequence}};     \textcolor{comment}{/* S/G portion number  */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00466}\mbox{\hyperlink{structctl__ha__msg__dt_a6117ef681d8d9bcf58ffc7fe75a82cfe}{00466}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__dt_a6117ef681d8d9bcf58ffc7fe75a82cfe}{sg\_last}};         \textcolor{comment}{/* last S/G batch = 1 */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00467}\mbox{\hyperlink{structctl__ha__msg__dt_a8966f7bfe5819700c21c60515300b4bf}{00467}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_a8966f7bfe5819700c21c60515300b4bf}{sent\_sg\_entries}}; \textcolor{comment}{/* previous S/G count */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00468}\mbox{\hyperlink{structctl__ha__msg__dt_abbb6fbee1e4754f950af337716efc1fe}{00468}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_abbb6fbee1e4754f950af337716efc1fe}{cur\_sg\_entries}};  \textcolor{comment}{/* current S/G entries */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00469}\mbox{\hyperlink{structctl__ha__msg__dt_aec9e7d77b71263c6a380c36475e44e06}{00469}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_aec9e7d77b71263c6a380c36475e44e06}{kern\_sg\_entries}}; \textcolor{comment}{/* total S/G entries */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00470}\mbox{\hyperlink{structctl__ha__msg__dt_a9a3a19ae740a0036ed656e272974a8d1}{00470}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_a9a3a19ae740a0036ed656e272974a8d1}{kern\_data\_len}};   \textcolor{comment}{/* Length of this S/G list */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00471}\mbox{\hyperlink{structctl__ha__msg__dt_a65cbc4b23a13564a6690d263ba6dcaf3}{00471}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_a65cbc4b23a13564a6690d263ba6dcaf3}{kern\_total\_len}};  \textcolor{comment}{/* Total length of this}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00472}00472 \textcolor{comment}{                                                    transaction */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00473}\mbox{\hyperlink{structctl__ha__msg__dt_a1f9421f71248340587d8335894929565}{00473}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_a1f9421f71248340587d8335894929565}{kern\_data\_resid}}; \textcolor{comment}{/* Length left to transfer}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00474}00474 \textcolor{comment}{                                                    after this*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00475}\mbox{\hyperlink{structctl__ha__msg__dt_af5837c4b259c7abae9af713b2273d264}{00475}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__dt_af5837c4b259c7abae9af713b2273d264}{kern\_rel\_offset}}; \textcolor{comment}{/* Byte Offset of this}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00476}00476 \textcolor{comment}{                                                    transfer */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00477}\mbox{\hyperlink{structctl__ha__msg__dt_a5a3a0f4bfdb39178e6a2b85d88a07646}{00477}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__sg__entry}{ctl\_sg\_entry}} \mbox{\hyperlink{structctl__ha__msg__dt_a5a3a0f4bfdb39178e6a2b85d88a07646}{sg\_list}}[\mbox{\hyperlink{ctl__io_8h_aa2751004b3b18eec9df2d44d21ab2fa4}{CTL\_HA\_MAX\_SG\_ENTRIES}}];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00478}00478 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00479}00479 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00480}00480 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00481}00481 \textcolor{comment}{ * Used for CTL\_MSG\_SERIALIZE, CTL\_MSG\_FINISH\_IO, CTL\_MSG\_BAD\_JUJU,}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00482}00482 \textcolor{comment}{ * and CTL\_MSG\_DATAMOVE\_DONE.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00483}00483 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00484}\mbox{\hyperlink{structctl__ha__msg__scsi}{00484}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__scsi}{ctl\_ha\_msg\_scsi}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00485}\mbox{\hyperlink{structctl__ha__msg__scsi_aea75ed0a466b84463be69bb8fca09644}{00485}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__scsi_aea75ed0a466b84463be69bb8fca09644}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00486}\mbox{\hyperlink{structctl__ha__msg__scsi_abee55f33563c4d81ea8b86327af334d4}{00486}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__scsi_abee55f33563c4d81ea8b86327af334d4}{tag\_num}};     \textcolor{comment}{/* tag number */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00487}\mbox{\hyperlink{structctl__ha__msg__scsi_aa6aaf0100d560459ed39b72b8f528664}{00487}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}}                \mbox{\hyperlink{structctl__ha__msg__scsi_aa6aaf0100d560459ed39b72b8f528664}{tag\_type}};    \textcolor{comment}{/* simple, ordered, etc. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00488}\mbox{\hyperlink{structctl__ha__msg__scsi_aeec20e746a8151a1af3be19e854d4467}{00488}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__scsi_aeec20e746a8151a1af3be19e854d4467}{cdb}}[\mbox{\hyperlink{ctl__io_8h_a8e80b184852596ea1c5c7faa0ed2985b}{CTL\_MAX\_CDBLEN}}];   \textcolor{comment}{/* CDB */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00489}\mbox{\hyperlink{structctl__ha__msg__scsi_a42b3d83771b044dcef3ee92f5923bde2}{00489}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__scsi_a42b3d83771b044dcef3ee92f5923bde2}{cdb\_len}}; \textcolor{comment}{/* CDB length */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00490}\mbox{\hyperlink{structctl__ha__msg__scsi_a2c520cea186e7be8b2a3b1d4d0c659b8}{00490}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__scsi_a2c520cea186e7be8b2a3b1d4d0c659b8}{scsi\_status}}; \textcolor{comment}{/* SCSI status byte */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00491}\mbox{\hyperlink{structctl__ha__msg__scsi_a8c14d9a00beca10d8a9b0f32433ac148}{00491}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__scsi_a8c14d9a00beca10d8a9b0f32433ac148}{sense\_len}};   \textcolor{comment}{/* Returned sense length */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00492}\mbox{\hyperlink{structctl__ha__msg__scsi_aa2696b8325ea68e0e1e1f2f8a8fdd13b}{00492}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__scsi_aa2696b8325ea68e0e1e1f2f8a8fdd13b}{priority}};    \textcolor{comment}{/* Command priority */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00493}\mbox{\hyperlink{structctl__ha__msg__scsi_a83d41cd9eeafa9ecf0ea47d1444eaa4a}{00493}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__scsi_a83d41cd9eeafa9ecf0ea47d1444eaa4a}{port\_status}}; \textcolor{comment}{/* trans status, set by FETD,}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00494}00494 \textcolor{comment}{                                                0 = good*/}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00495}\mbox{\hyperlink{structctl__ha__msg__scsi_a277d3befa0114909b9de5aa403544e47}{00495}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__scsi_a277d3befa0114909b9de5aa403544e47}{kern\_data\_resid}}; \textcolor{comment}{/* for DATAMOVE\_DONE */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00496}\mbox{\hyperlink{structctl__ha__msg__scsi_a4e3603274f79f090371861da90dc6234}{00496}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structscsi__sense__data}{scsi\_sense\_data}}   \mbox{\hyperlink{structctl__ha__msg__scsi_a4e3603274f79f090371861da90dc6234}{sense\_data}};  \textcolor{comment}{/* sense data */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00497}00497 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00498}00498 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00499}00499 \textcolor{comment}{/* }}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00500}00500 \textcolor{comment}{ * Used for CTL\_MSG\_MANAGE\_TASKS.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00501}00501 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00502}\mbox{\hyperlink{structctl__ha__msg__task}{00502}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__task}{ctl\_ha\_msg\_task}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00503}\mbox{\hyperlink{structctl__ha__msg__task_a70dc4b6311b74127dcb2f214ccfe774f}{00503}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__task_a70dc4b6311b74127dcb2f214ccfe774f}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00504}\mbox{\hyperlink{structctl__ha__msg__task_af70ab84e792905ed37269e68be8f7e0b}{00504}}         \mbox{\hyperlink{ctl__io_8h_a58e2c245294cf8dc804760f70dcbb1b9}{ctl\_task\_type}}              \mbox{\hyperlink{structctl__ha__msg__task_af70ab84e792905ed37269e68be8f7e0b}{task\_action}}; \textcolor{comment}{/* Target Reset, Abort, etc.  */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00505}\mbox{\hyperlink{structctl__ha__msg__task_a73c4e92041a836fe6fe8cdf29b8a3eb4}{00505}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__task_a73c4e92041a836fe6fe8cdf29b8a3eb4}{tag\_num}};     \textcolor{comment}{/* tag number */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00506}\mbox{\hyperlink{structctl__ha__msg__task_accc571747bd7e1d10e885e52d8ff9510}{00506}}         \mbox{\hyperlink{ctl__io_8h_a319b044c4d180ed7beae7040e762d130}{ctl\_tag\_type}}                \mbox{\hyperlink{structctl__ha__msg__task_accc571747bd7e1d10e885e52d8ff9510}{tag\_type}};    \textcolor{comment}{/* simple, ordered, etc. */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00507}00507 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00508}00508 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00509}00509 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00510}00510 \textcolor{comment}{ * Used for CTL\_MSG\_PORT\_SYNC.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00511}00511 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00512}\mbox{\hyperlink{structctl__ha__msg__port}{00512}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__port}{ctl\_ha\_msg\_port}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00513}\mbox{\hyperlink{structctl__ha__msg__port_aa7be150283d222d3ae31c901e716aeed}{00513}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__port_aa7be150283d222d3ae31c901e716aeed}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00514}\mbox{\hyperlink{structctl__ha__msg__port_ab7c4c022944b6d646af1806907f82042}{00514}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_ab7c4c022944b6d646af1806907f82042}{port\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00515}\mbox{\hyperlink{structctl__ha__msg__port_ae662fb7e5588bc12321311f1b4cb97fd}{00515}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_ae662fb7e5588bc12321311f1b4cb97fd}{physical\_port}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00516}\mbox{\hyperlink{structctl__ha__msg__port_a5eaf2a43deb945f0f69b1cac56c0d3f2}{00516}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_a5eaf2a43deb945f0f69b1cac56c0d3f2}{virtual\_port}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00517}\mbox{\hyperlink{structctl__ha__msg__port_adde05a5bdc69f9246dfb7cb0a23ca928}{00517}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_adde05a5bdc69f9246dfb7cb0a23ca928}{status}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00518}\mbox{\hyperlink{structctl__ha__msg__port_a5edd2997418d902187dd117f8f14dd8f}{00518}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_a5edd2997418d902187dd117f8f14dd8f}{name\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00519}\mbox{\hyperlink{structctl__ha__msg__port_a41e6b47ee3ac520e19edec0317be6cf5}{00519}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_a41e6b47ee3ac520e19edec0317be6cf5}{lun\_map\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00520}\mbox{\hyperlink{structctl__ha__msg__port_aae73f72718fe6e58a024a92f59c3d50b}{00520}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_aae73f72718fe6e58a024a92f59c3d50b}{port\_devid\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00521}\mbox{\hyperlink{structctl__ha__msg__port_a22af879d2162222a832a37ae3397d3d5}{00521}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_a22af879d2162222a832a37ae3397d3d5}{target\_devid\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00522}\mbox{\hyperlink{structctl__ha__msg__port_a9b01b027726be19c0c0a7a48a9224488}{00522}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__port_a9b01b027726be19c0c0a7a48a9224488}{init\_devid\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00523}\mbox{\hyperlink{structctl__ha__msg__port_ad2a6365c33d493b5552bfa956d02fc46}{00523}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__port_ad2a6365c33d493b5552bfa956d02fc46}{data}}[];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00524}00524 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00525}00525 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00526}00526 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00527}00527 \textcolor{comment}{ * Used for CTL\_MSG\_LUN\_SYNC.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00528}00528 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00529}\mbox{\hyperlink{structctl__ha__msg__lun}{00529}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__lun}{ctl\_ha\_msg\_lun}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00530}\mbox{\hyperlink{structctl__ha__msg__lun_a7bfc1b7ad16705a03ed2139cb0c97ba7}{00530}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__lun_a7bfc1b7ad16705a03ed2139cb0c97ba7}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00531}\mbox{\hyperlink{structctl__ha__msg__lun_a53ae279541ad355c0b4bcd644a8db876}{00531}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__lun_a53ae279541ad355c0b4bcd644a8db876}{flags}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00532}\mbox{\hyperlink{structctl__ha__msg__lun_ac19a559bffb52290d9496373dd574db0}{00532}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}            \mbox{\hyperlink{structctl__ha__msg__lun_ac19a559bffb52290d9496373dd574db0}{pr\_generation}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00533}\mbox{\hyperlink{structctl__ha__msg__lun_a5e2bda836f4b7248b08af3ad0e264e62}{00533}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__lun_a5e2bda836f4b7248b08af3ad0e264e62}{pr\_res\_idx}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00534}\mbox{\hyperlink{structctl__ha__msg__lun_a517caa99ffe3aa9071df7400b3c406be}{00534}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__lun_a517caa99ffe3aa9071df7400b3c406be}{pr\_res\_type}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00535}\mbox{\hyperlink{structctl__ha__msg__lun_a5acd8b99c41a111e9a57b15e7273147d}{00535}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__lun_a5acd8b99c41a111e9a57b15e7273147d}{lun\_devid\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00536}\mbox{\hyperlink{structctl__ha__msg__lun_adf29107a985c8fbc20f78f8231e833a7}{00536}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__lun_adf29107a985c8fbc20f78f8231e833a7}{pr\_key\_count}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00537}\mbox{\hyperlink{structctl__ha__msg__lun_af7cc32a12fca7e7ef119b5b6b60d84b3}{00537}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__lun_af7cc32a12fca7e7ef119b5b6b60d84b3}{data}}[];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00538}00538 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00539}00539 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00540}\mbox{\hyperlink{structctl__ha__msg__lun__pr__key}{00540}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__lun__pr__key}{ctl\_ha\_msg\_lun\_pr\_key}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00541}\mbox{\hyperlink{structctl__ha__msg__lun__pr__key_a23aae06251059b2851cc542cd1ba41ed}{00541}}         uint32\_t                \mbox{\hyperlink{structctl__ha__msg__lun__pr__key_a23aae06251059b2851cc542cd1ba41ed}{pr\_iid}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00542}\mbox{\hyperlink{structctl__ha__msg__lun__pr__key_a21a1495a7eda7d0072bb0fc75ee45c36}{00542}}         uint64\_t                \mbox{\hyperlink{structctl__ha__msg__lun__pr__key_a21a1495a7eda7d0072bb0fc75ee45c36}{pr\_key}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00543}00543 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00544}00544 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00545}00545 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00546}00546 \textcolor{comment}{ * Used for CTL\_MSG\_IID\_SYNC.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00547}00547 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00548}\mbox{\hyperlink{structctl__ha__msg__iid}{00548}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__iid}{ctl\_ha\_msg\_iid}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00549}\mbox{\hyperlink{structctl__ha__msg__iid_a1b4622a0f4515723e4509d002d2bb19b}{00549}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__iid_a1b4622a0f4515723e4509d002d2bb19b}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00550}\mbox{\hyperlink{structctl__ha__msg__iid_a5d5f667816b13905ec31804d8cdf7f3c}{00550}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__iid_a5d5f667816b13905ec31804d8cdf7f3c}{in\_use}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00551}\mbox{\hyperlink{structctl__ha__msg__iid_ae3ff5bddbf647032e27a9a32879ecb8b}{00551}}         \textcolor{keywordtype}{int}                     \mbox{\hyperlink{structctl__ha__msg__iid_ae3ff5bddbf647032e27a9a32879ecb8b}{name\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00552}\mbox{\hyperlink{structctl__ha__msg__iid_a0abe012f84d8a5567acea2e1387b5244}{00552}}         uint64\_t                \mbox{\hyperlink{structctl__ha__msg__iid_a0abe012f84d8a5567acea2e1387b5244}{wwpn}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00553}\mbox{\hyperlink{structctl__ha__msg__iid_a369381ba242a25cfe10645ffc6cab8de}{00553}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__iid_a369381ba242a25cfe10645ffc6cab8de}{data}}[];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00554}00554 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00555}00555 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00556}00556 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00557}00557 \textcolor{comment}{ * Used for CTL\_MSG\_MODE\_SYNC.}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00558}00558 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00559}\mbox{\hyperlink{structctl__ha__msg__mode}{00559}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__mode}{ctl\_ha\_msg\_mode}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00560}\mbox{\hyperlink{structctl__ha__msg__mode_a5d43e885f17aca6b28224d9cf85bea92}{00560}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{structctl__ha__msg__mode_a5d43e885f17aca6b28224d9cf85bea92}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00561}\mbox{\hyperlink{structctl__ha__msg__mode_ae1d3633f0f8831a5453f52493cdb3c17}{00561}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__mode_ae1d3633f0f8831a5453f52493cdb3c17}{page\_code}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00562}\mbox{\hyperlink{structctl__ha__msg__mode_a707e2aaae8d7d335f32317014a622fee}{00562}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__mode_a707e2aaae8d7d335f32317014a622fee}{subpage}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00563}\mbox{\hyperlink{structctl__ha__msg__mode_a5b150a572c80d8f12a8bf0a80d190bdb}{00563}}         uint16\_t                \mbox{\hyperlink{structctl__ha__msg__mode_a5b150a572c80d8f12a8bf0a80d190bdb}{page\_len}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00564}\mbox{\hyperlink{structctl__ha__msg__mode_a756da194a14dccffe72bfec633fa3535}{00564}}         uint8\_t                 \mbox{\hyperlink{structctl__ha__msg__mode_a756da194a14dccffe72bfec633fa3535}{data}}[];}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00565}00565 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00566}00566 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00567}\mbox{\hyperlink{unionctl__ha__msg}{00567}} \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__ha__msg}{ctl\_ha\_msg}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00568}\mbox{\hyperlink{unionctl__ha__msg_a9113d9a29e794198e8cef1c78073d459}{00568}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__hdr}{ctl\_ha\_msg\_hdr}}     \mbox{\hyperlink{unionctl__ha__msg_a9113d9a29e794198e8cef1c78073d459}{hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00569}\mbox{\hyperlink{unionctl__ha__msg_aebc79d5b0cdcd96aee92f34a69ce55d9}{00569}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__task}{ctl\_ha\_msg\_task}}   \mbox{\hyperlink{unionctl__ha__msg_aebc79d5b0cdcd96aee92f34a69ce55d9}{task}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00570}\mbox{\hyperlink{unionctl__ha__msg_a905cd8f9355fa3e43acc5a7c0eabaec0}{00570}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__scsi}{ctl\_ha\_msg\_scsi}}   \mbox{\hyperlink{unionctl__ha__msg_a905cd8f9355fa3e43acc5a7c0eabaec0}{scsi}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00571}\mbox{\hyperlink{unionctl__ha__msg_a6a2df6beb5a599ba994841dd87674714}{00571}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__dt}{ctl\_ha\_msg\_dt}}       \mbox{\hyperlink{unionctl__ha__msg_a6a2df6beb5a599ba994841dd87674714}{dt}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00572}\mbox{\hyperlink{unionctl__ha__msg_a7e3e73155eb85ced9ace652345ae6cf9}{00572}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__pr}{ctl\_ha\_msg\_pr}}       \mbox{\hyperlink{unionctl__ha__msg_a7e3e73155eb85ced9ace652345ae6cf9}{pr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00573}\mbox{\hyperlink{unionctl__ha__msg_aca7926424453606b6e11de3c96030d92}{00573}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__ua}{ctl\_ha\_msg\_ua}}       \mbox{\hyperlink{unionctl__ha__msg_aca7926424453606b6e11de3c96030d92}{ua}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00574}\mbox{\hyperlink{unionctl__ha__msg_af917ea645e7cd0ff9d8fabfc6cc4c67d}{00574}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__port}{ctl\_ha\_msg\_port}}   \mbox{\hyperlink{unionctl__ha__msg_af917ea645e7cd0ff9d8fabfc6cc4c67d}{port}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00575}\mbox{\hyperlink{unionctl__ha__msg_a9e334d586575672a514f5b7f79eb6117}{00575}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__lun}{ctl\_ha\_msg\_lun}}     \mbox{\hyperlink{unionctl__ha__msg_a9e334d586575672a514f5b7f79eb6117}{lun}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00576}\mbox{\hyperlink{unionctl__ha__msg_ad42e73df5ecc8333dc85d6b9b9ba00e7}{00576}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__iid}{ctl\_ha\_msg\_iid}}     \mbox{\hyperlink{unionctl__ha__msg_ad42e73df5ecc8333dc85d6b9b9ba00e7}{iid}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00577}\mbox{\hyperlink{unionctl__ha__msg_a92a9bd570e36e118e60d2098349c7b16}{00577}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__login}{ctl\_ha\_msg\_login}} \mbox{\hyperlink{unionctl__ha__msg_a92a9bd570e36e118e60d2098349c7b16}{login}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00578}\mbox{\hyperlink{unionctl__ha__msg_a1228fa63e329cafc64dff77dfea4026a}{00578}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__mode}{ctl\_ha\_msg\_mode}}   \mbox{\hyperlink{unionctl__ha__msg_a1228fa63e329cafc64dff77dfea4026a}{mode}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00579}00579 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00580}00580 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00581}\mbox{\hyperlink{structctl__prio}{00581}} \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__prio}{ctl\_prio}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00582}\mbox{\hyperlink{structctl__prio_a8cc09469306cfc1d3a494aed980667c8}{00582}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}}     \mbox{\hyperlink{structctl__prio_a8cc09469306cfc1d3a494aed980667c8}{io\_hdr}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00583}\mbox{\hyperlink{structctl__prio_ad9a04fe4383d28ed6d054080cece2002}{00583}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__ha__msg__pr}{ctl\_ha\_msg\_pr}}       \mbox{\hyperlink{structctl__prio_ad9a04fe4383d28ed6d054080cece2002}{pr\_msg}};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00584}00584 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00585}00585 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00586}\mbox{\hyperlink{unionctl__io}{00586}} \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}} \{}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00587}\mbox{\hyperlink{unionctl__io_addee83a31e90fca499cdc29f6901836a}{00587}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__io__hdr}{ctl\_io\_hdr}}     \mbox{\hyperlink{unionctl__io_addee83a31e90fca499cdc29f6901836a}{io\_hdr}};   \textcolor{comment}{/* common to all I/O types */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00588}\mbox{\hyperlink{unionctl__io_ac4b5d99dfde9e6a8a06fab498907edd9}{00588}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__scsiio}{ctl\_scsiio}}     \mbox{\hyperlink{unionctl__io_ac4b5d99dfde9e6a8a06fab498907edd9}{scsiio}};   \textcolor{comment}{/* Normal SCSI commands */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00589}\mbox{\hyperlink{unionctl__io_a5af37f48478b398c51d492549bc860a6}{00589}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__taskio}{ctl\_taskio}}     \mbox{\hyperlink{unionctl__io_a5af37f48478b398c51d492549bc860a6}{taskio}};   \textcolor{comment}{/* SCSI task management/reset */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00590}\mbox{\hyperlink{unionctl__io_abffd52e3bfba0b7f8f08c585def5b520}{00590}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structctl__prio}{ctl\_prio}}         \mbox{\hyperlink{unionctl__io_abffd52e3bfba0b7f8f08c585def5b520}{presio}};   \textcolor{comment}{/* update per. res info on other SC */}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00591}00591 \};}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00592}00592 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00593}00593 \textcolor{preprocessor}{\#ifdef \_KERNEL}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00594}00594 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00595}00595 \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}} *\mbox{\hyperlink{ctl__io_8h_ae9340cbc4374d3f94ca6ce0135637bdd}{ctl\_alloc\_io}}(\textcolor{keywordtype}{void} *pool\_ref);}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00596}00596 \textcolor{keyword}{union }\mbox{\hyperlink{unionctl__io}{ctl\_io}} *\mbox{\hyperlink{ctl__io_8h_a33a39452292545a589351e88658d43ed}{ctl\_alloc\_io\_nowait}}(\textcolor{keywordtype}{void} *pool\_ref);}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00597}00597 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__io_8h_a2298ab10c67901ade72b2a0c4a625b7b}{ctl\_free\_io}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io);}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00598}00598 \textcolor{keywordtype}{void} \mbox{\hyperlink{ctl__io_8h_ae8dd411776d083978c8bf9efbd83ad01}{ctl\_zero\_io}}(\textcolor{keyword}{union} \mbox{\hyperlink{unionctl__io}{ctl\_io}} *io);}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00599}00599 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00600}00600 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_KERNEL */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00601}00601 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00602}00602 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_CTL\_IO\_H\_ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00603}00603 }
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00604}00604 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00605}00605 \textcolor{comment}{ * vim: ts=8}}
\DoxyCodeLine{\Hypertarget{ctl__io_8h_source_l00606}00606 \textcolor{comment}{ */}}

\end{DoxyCode}
