\hypertarget{aic79xx__osm_8h_source}{}\doxysection{aic79xx\+\_\+osm.\+h}
\label{aic79xx__osm_8h_source}\index{dev/aic7xxx/aic79xx\_osm.h@{dev/aic7xxx/aic79xx\_osm.h}}
\mbox{\hyperlink{aic79xx__osm_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00002}00002 \textcolor{comment}{ * FreeBSD platform specific driver option settings, data structures,}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00003}00003 \textcolor{comment}{ * function declarations and includes.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00004}00004 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 1994-\/2001 Justin T. Gibbs.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00006}00006 \textcolor{comment}{ * Copyright (c) 2001-\/2002 Adaptec Inc.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00007}00007 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00008}00008 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00009}00009 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00010}00010 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00011}00011 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00012}00012 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions, and the following disclaimer,}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00014}00014 \textcolor{comment}{ *    without modification.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00015}00015 \textcolor{comment}{ * 2. The name of the author may not be used to endorse or promote products}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00016}00016 \textcolor{comment}{ *    derived from this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00017}00017 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00018}00018 \textcolor{comment}{ * Alternatively, this software may be distributed under the terms of the}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00019}00019 \textcolor{comment}{ * GNU Public License ("{}GPL"{}).}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00020}00020 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00021}00021 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00022}00022 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00023}00023 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00024}00024 \textcolor{comment}{ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00025}00025 \textcolor{comment}{ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00026}00026 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00027}00027 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00028}00028 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00029}00029 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00030}00030 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00031}00031 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00032}00032 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00033}00033 \textcolor{comment}{ * \$Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aic79xx\_osm.h\#23 \$}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00034}00034 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00035}00035 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00036}00036 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00037}00037 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00038}00038 \textcolor{preprocessor}{\#ifndef \_AIC79XX\_FREEBSD\_H\_}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00039}00039 \textcolor{preprocessor}{\#define \_AIC79XX\_FREEBSD\_H\_}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00040}00040 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00041}00041 \textcolor{preprocessor}{\#include "{}opt\_aic79xx.h"{}}        \textcolor{comment}{/* for config options */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/bus.h>}            \textcolor{comment}{/* For device\_t */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/endian.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00047}00047 \textcolor{preprocessor}{\#include <sys/eventhandler.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00048}00048 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00049}00049 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00050}00050 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00051}00051 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00052}00052 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00053}00053 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00054}\mbox{\hyperlink{aic79xx__osm_8h_a5b82405c5c7214b1a5e0dac53f67907c}{00054}} \textcolor{preprocessor}{\#define AIC\_PCI\_CONFIG 1}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00055}00055 \textcolor{preprocessor}{\#include <machine/bus.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00056}00056 \textcolor{preprocessor}{\#include <machine/endian.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00057}00057 \textcolor{preprocessor}{\#include <machine/resource.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00058}00058 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00059}00059 \textcolor{preprocessor}{\#include <sys/rman.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00060}00060 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00061}00061 \textcolor{preprocessor}{\#include <dev/pci/pcireg.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00062}00062 \textcolor{preprocessor}{\#include <dev/pci/pcivar.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00063}00063 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00064}00064 \textcolor{preprocessor}{\#include <cam/cam.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00065}00065 \textcolor{preprocessor}{\#include <cam/cam\_ccb.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00066}00066 \textcolor{preprocessor}{\#include <cam/cam\_debug.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00067}00067 \textcolor{preprocessor}{\#include <cam/cam\_sim.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00068}00068 \textcolor{preprocessor}{\#include <cam/cam\_xpt\_sim.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00070}00070 \textcolor{preprocessor}{\#include <cam/scsi/scsi\_all.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00071}00071 \textcolor{preprocessor}{\#include <cam/scsi/scsi\_message.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00072}00072 \textcolor{preprocessor}{\#include <cam/scsi/scsi\_iu.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00073}00073 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00074}00074 \textcolor{comment}{/****************************** Platform Macros *******************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00075}\mbox{\hyperlink{aic79xx__osm_8h_a98f41b9737a9631f3408645b561437ea}{00075}} \textcolor{preprocessor}{\#define SIM\_IS\_SCSIBUS\_B(ahd, sim)      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00076}00076 \textcolor{preprocessor}{        (0)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00077}\mbox{\hyperlink{aic79xx__osm_8h_ab7a6b47a230a885c97f3bfefc9704e51}{00077}} \textcolor{preprocessor}{\#define SIM\_CHANNEL(ahd, sim)   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00078}00078 \textcolor{preprocessor}{        ('A')}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00079}\mbox{\hyperlink{aic79xx__osm_8h_a29bbedf23a3956d7522a6839442ddf99}{00079}} \textcolor{preprocessor}{\#define SIM\_SCSI\_ID(ahd, sim)   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00080}00080 \textcolor{preprocessor}{        (ahd-\/>our\_id)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00081}\mbox{\hyperlink{aic79xx__osm_8h_a16155983da01329fafc617155cfd7a62}{00081}} \textcolor{preprocessor}{\#define SIM\_PATH(ahd, sim)      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00082}00082 \textcolor{preprocessor}{        (ahd-\/>platform\_data-\/>path)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00083}\mbox{\hyperlink{aic79xx__osm_8h_a985d97a7f1f1996baeeb4ba4b01c52be}{00083}} \textcolor{preprocessor}{\#define BUILD\_SCSIID(ahd, sim, target\_id, our\_id) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00084}00084 \textcolor{preprocessor}{        ((((target\_id) << TID\_SHIFT) \& TID) | (our\_id))}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00085}00085         }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00087}\mbox{\hyperlink{aic79xx__osm_8h_ac7a4f8f8c9d6a2e2b2a759bae479332c}{00087}} \textcolor{preprocessor}{\#define SCB\_GET\_SIM(ahd, scb) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00088}00088 \textcolor{preprocessor}{        ((ahd)-\/>platform\_data-\/>sim)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00089}00089 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00090}00090 \textcolor{preprocessor}{\#ifndef offsetof}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00091}\mbox{\hyperlink{aic79xx__osm_8h_afd049f7ad59dbe455f460807475c2841}{00091}} \textcolor{preprocessor}{\#define offsetof(type, member)  ((size\_t)(\&((type *)0)-\/>member))}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00092}00092 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00093}00093 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00094}00094 \textcolor{comment}{/************************ Tunable Driver Parameters  **************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00095}00095 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00096}00096 \textcolor{comment}{ * The number of dma segments supported.  The sequencer can handle any number}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00097}00097 \textcolor{comment}{ * of physically contiguous S/G entrys.  To reduce the driver's memory}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00098}00098 \textcolor{comment}{ * consumption, we limit the number supported to be sufficient to handle}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00099}00099 \textcolor{comment}{ * the largest mapping supported by the legacy kernel MAXPHYS setting of}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00100}00100 \textcolor{comment}{ * 128K.  This can be increased once some testing is done.  Assuming the}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00101}00101 \textcolor{comment}{ * transfer is as fragmented as possible and unaligned, this turns out to}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00102}00102 \textcolor{comment}{ * be the number of paged sized transfers in MAXPHYS plus an extra element}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00103}00103 \textcolor{comment}{ * to handle any unaligned residual.  The sequencer fetches SG elements}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00104}00104 \textcolor{comment}{ * in cacheline sized chucks, so make the number per-\/transaction an even}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00105}00105 \textcolor{comment}{ * multiple of 16 which should align us on even the largest of cacheline}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00106}00106 \textcolor{comment}{ * boundaries. }}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00107}00107 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00108}\mbox{\hyperlink{aic79xx__osm_8h_a6a38efd2adcd07cc9b0a5783d3f78d51}{00108}} \textcolor{preprocessor}{\#define AHD\_MAXPHYS (128 * 1024)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00109}\mbox{\hyperlink{aic79xx__osm_8h_aabd5125109859c51e0cc290d5bd272c8}{00109}} \textcolor{preprocessor}{\#define AHD\_NSEG (roundup(btoc(AHD\_MAXPHYS) + 1, 16))}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00110}00110 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00111}00111 \textcolor{comment}{/* This driver supports target mode */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00112}00112 \textcolor{preprocessor}{\#ifdef NOT\_YET}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00113}00113 \textcolor{preprocessor}{\#define AHD\_TARGET\_MODE 1}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00114}00114 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00115}00115 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00116}00116 \textcolor{comment}{/************************** Softc/SCB Platform Data ***************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00117}\mbox{\hyperlink{structahd__platform__data}{00117}} \textcolor{keyword}{struct }\mbox{\hyperlink{structahd__platform__data}{ahd\_platform\_data}} \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00118}00118         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00119}00119 \textcolor{comment}{         * Hooks into the XPT.}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00120}00120 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00121}\mbox{\hyperlink{structahd__platform__data_aadabd11224a4c1517a74fa7256f48e10}{00121}}         \textcolor{keyword}{struct  }cam\_sim         *\mbox{\hyperlink{structahd__platform__data_aadabd11224a4c1517a74fa7256f48e10}{sim}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00122}\mbox{\hyperlink{structahd__platform__data_a8d53404cf6bc73cee24861b05cd73137}{00122}}         \textcolor{keyword}{struct  }cam\_path        *\mbox{\hyperlink{structahd__platform__data_a8d53404cf6bc73cee24861b05cd73137}{path}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00124}\mbox{\hyperlink{structahd__platform__data_a7e5955476b901511d690e90fffd94bdb}{00124}}         \textcolor{keywordtype}{int}                      \mbox{\hyperlink{structahd__platform__data_a7e5955476b901511d690e90fffd94bdb}{regs\_res\_type}}[2];}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00125}\mbox{\hyperlink{structahd__platform__data_a2b63cb1a194e9272e98ee25edbbd03ff}{00125}}         \textcolor{keywordtype}{int}                      \mbox{\hyperlink{structahd__platform__data_a2b63cb1a194e9272e98ee25edbbd03ff}{regs\_res\_id}}[2];}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00126}\mbox{\hyperlink{structahd__platform__data_a9148f097cc9611eee386cc7db558032f}{00126}}         \textcolor{keywordtype}{int}                      \mbox{\hyperlink{structahd__platform__data_a9148f097cc9611eee386cc7db558032f}{irq\_res\_type}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00127}\mbox{\hyperlink{structahd__platform__data_ad621aa1f2a624a12b9b55271531ea94f}{00127}}         \textcolor{keyword}{struct }resource         *\mbox{\hyperlink{structahd__platform__data_ad621aa1f2a624a12b9b55271531ea94f}{regs}}[2];}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00128}\mbox{\hyperlink{structahd__platform__data_aad81ecdc46dfa6f16139a461454e5457}{00128}}         \textcolor{keyword}{struct }resource         *\mbox{\hyperlink{structahd__platform__data_aad81ecdc46dfa6f16139a461454e5457}{irq}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00129}\mbox{\hyperlink{structahd__platform__data_ac5f83f0b3893df708e8bac6deac579dc}{00129}}         \textcolor{keywordtype}{void}                    *\mbox{\hyperlink{structahd__platform__data_ac5f83f0b3893df708e8bac6deac579dc}{ih}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00130}\mbox{\hyperlink{structahd__platform__data_ad6defbbe2e25625e7d81b847758ce639}{00130}}         eventhandler\_tag         \mbox{\hyperlink{structahd__platform__data_ad6defbbe2e25625e7d81b847758ce639}{eh}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00131}\mbox{\hyperlink{structahd__platform__data_a5655c481ec05ea64a4203323a8804798}{00131}}         \textcolor{keyword}{struct }proc             *\mbox{\hyperlink{structahd__platform__data_a5655c481ec05ea64a4203323a8804798}{recovery\_thread}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00132}\mbox{\hyperlink{structahd__platform__data_a24c8620d31b5a1130f5fda121e03c4a3}{00132}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structahd__platform__data_a24c8620d31b5a1130f5fda121e03c4a3}{mtx}}           \mbox{\hyperlink{structahd__platform__data_a24c8620d31b5a1130f5fda121e03c4a3}{mtx}};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00133}00133 \};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00134}00134 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00135}\mbox{\hyperlink{structscb__platform__data}{00135}} \textcolor{keyword}{struct }\mbox{\hyperlink{structscb__platform__data}{scb\_platform\_data}} \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00136}00136 \};}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00138}00138 \textcolor{comment}{/***************************** Core Includes **********************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00139}00139 \textcolor{preprocessor}{\#ifdef AHD\_REG\_PRETTY\_PRINT}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00140}00140 \textcolor{preprocessor}{\#define AIC\_DEBUG\_REGISTERS 1}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00141}00141 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00142}\mbox{\hyperlink{aic79xx__osm_8h_ab110c9f8e18ba7022b87252984f12a83}{00142}} \textcolor{preprocessor}{\#define AIC\_DEBUG\_REGISTERS 0}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00143}00143 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00144}\mbox{\hyperlink{aic79xx__osm_8h_a31b7fd5b2628babcad202ec461a0c196}{00144}} \textcolor{preprocessor}{\#define AIC\_CORE\_INCLUDE <dev/aic7xxx/aic79xx.h>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00145}\mbox{\hyperlink{aic79xx__osm_8h_a176539c869119812b17824915169c341}{00145}} \textcolor{preprocessor}{\#define AIC\_LIB\_PREFIX ahd}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00146}\mbox{\hyperlink{aic79xx__osm_8h_af7e554e73931c53156399db35f9f0faf}{00146}} \textcolor{preprocessor}{\#define AIC\_CONST\_PREFIX AHD}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00147}00147 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{aic__osm__lib_8h}{dev/aic7xxx/aic\_osm\_lib.h}}>}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00148}00148 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00149}00149 \textcolor{comment}{/*************************** Device Access ************************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00150}\mbox{\hyperlink{aic79xx__osm_8h_a402325136164771d603e5709e765e16b}{00150}} \textcolor{preprocessor}{\#define ahd\_inb(ahd, port)                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00151}00151 \textcolor{preprocessor}{        bus\_space\_read\_1((ahd)-\/>tags[(port) >> 8],              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00152}00152 \textcolor{preprocessor}{                         (ahd)-\/>bshs[(port) >> 8], (port) \& 0xFF)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00153}00153 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00154}\mbox{\hyperlink{aic79xx__osm_8h_ab2f85374043e549ce0b1ae13d7169c4e}{00154}} \textcolor{preprocessor}{\#define ahd\_outb(ahd, port, value)                              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00155}00155 \textcolor{preprocessor}{        bus\_space\_write\_1((ahd)-\/>tags[(port) >> 8],             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00156}00156 \textcolor{preprocessor}{                          (ahd)-\/>bshs[(port) >> 8], (port) \& 0xFF, value)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00157}00157 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00158}\mbox{\hyperlink{aic79xx__osm_8h_a59419d0233c842584fe0c95469008e45}{00158}} \textcolor{preprocessor}{\#define ahd\_inw\_atomic(ahd, port)                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00159}00159 \textcolor{preprocessor}{        aic\_le16toh(bus\_space\_read\_2((ahd)-\/>tags[(port) >> 8],  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00160}00160 \textcolor{preprocessor}{                                     (ahd)-\/>bshs[(port) >> 8], (port) \& 0xFF))}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00161}00161 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00162}\mbox{\hyperlink{aic79xx__osm_8h_a729545641f3d1f228787c1e027a76f5f}{00162}} \textcolor{preprocessor}{\#define ahd\_outw\_atomic(ahd, port, value)                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00163}00163 \textcolor{preprocessor}{        bus\_space\_write\_2((ahd)-\/>tags[(port) >> 8],             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00164}00164 \textcolor{preprocessor}{                          (ahd)-\/>bshs[(port) >> 8],             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00165}00165 \textcolor{preprocessor}{                          (port \& 0xFF), aic\_htole16(value))}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00166}00166 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00167}\mbox{\hyperlink{aic79xx__osm_8h_afff5ce3791fa31e39717fc0fb824d901}{00167}} \textcolor{preprocessor}{\#define ahd\_outsb(ahd, port, valp, count)                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00168}00168 \textcolor{preprocessor}{        bus\_space\_write\_multi\_1((ahd)-\/>tags[(port) >> 8],       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00169}00169 \textcolor{preprocessor}{                                (ahd)-\/>bshs[(port) >> 8],       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00170}00170 \textcolor{preprocessor}{                                (port \& 0xFF), valp, count)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00172}\mbox{\hyperlink{aic79xx__osm_8h_abacf4ef2120332ccf406945a7c3e21d9}{00172}} \textcolor{preprocessor}{\#define ahd\_insb(ahd, port, valp, count)                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00173}00173 \textcolor{preprocessor}{        bus\_space\_read\_multi\_1((ahd)-\/>tags[(port) >> 8],        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00174}00174 \textcolor{preprocessor}{                               (ahd)-\/>bshs[(port) >> 8],        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00175}00175 \textcolor{preprocessor}{                               (port \& 0xFF), valp, count)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00176}00176 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00177}00177 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void} \mbox{\hyperlink{aic79xx__osm_8h_a67871a6705db90b7075be588d35bf536}{ahd\_flush\_device\_writes}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00178}00178 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00179}00179 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00180}\mbox{\hyperlink{aic79xx__osm_8h_a67871a6705db90b7075be588d35bf536}{00180}} \mbox{\hyperlink{aic79xx__osm_8h_a67871a6705db90b7075be588d35bf536}{ahd\_flush\_device\_writes}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00181}00181 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00182}00182         \textcolor{comment}{/* XXX Is this sufficient for all architectures??? */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00183}00183         \mbox{\hyperlink{aic79xx__osm_8h_a402325136164771d603e5709e765e16b}{ahd\_inb}}(ahd, \mbox{\hyperlink{aic79xx__reg_8h_a555136974e2faa49b15189b7c27597c6}{INTSTAT}});}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00184}00184 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00185}00185 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00186}00186 \textcolor{comment}{/**************************** Locking Primitives ******************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00187}00187 \textcolor{comment}{/* Lock protecting internal data structures */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00188}00188 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void} \mbox{\hyperlink{aic79xx__osm_8h_aff37f87a9efc683e27335784baf6a664}{ahd\_lockinit}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00189}00189 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void} \mbox{\hyperlink{aic79xx__osm_8h_a7468d2ca40412b133bb0694dff36b9b1}{ahd\_lock}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00190}00190 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void} \mbox{\hyperlink{aic79xx__osm_8h_acbae8c4dffcdcafb210297b8fd80ae54}{ahd\_unlock}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00191}00191 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00192}00192 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00193}\mbox{\hyperlink{aic79xx__osm_8h_aff37f87a9efc683e27335784baf6a664}{00193}} \mbox{\hyperlink{aic79xx__osm_8h_aff37f87a9efc683e27335784baf6a664}{ahd\_lockinit}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00194}00194 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00195}00195         mtx\_init(\&ahd-\/>\mbox{\hyperlink{structahd__softc_a28444a5819a834ff069f1a7eacc8e409}{platform\_data}}-\/>\mbox{\hyperlink{structahd__platform__data_a24c8620d31b5a1130f5fda121e03c4a3}{mtx}}, \textcolor{stringliteral}{"{}ahd\_lock"{}}, NULL, MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00196}00196 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00197}00197 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00198}00198 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00199}\mbox{\hyperlink{aic79xx__osm_8h_a7468d2ca40412b133bb0694dff36b9b1}{00199}} \mbox{\hyperlink{aic79xx__osm_8h_a7468d2ca40412b133bb0694dff36b9b1}{ahd\_lock}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00200}00200 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00201}00201         mtx\_lock(\&ahd-\/>\mbox{\hyperlink{structahd__softc_a28444a5819a834ff069f1a7eacc8e409}{platform\_data}}-\/>\mbox{\hyperlink{structahd__platform__data_a24c8620d31b5a1130f5fda121e03c4a3}{mtx}});}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00202}00202 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00203}00203 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00204}00204 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00205}\mbox{\hyperlink{aic79xx__osm_8h_acbae8c4dffcdcafb210297b8fd80ae54}{00205}} \mbox{\hyperlink{aic79xx__osm_8h_acbae8c4dffcdcafb210297b8fd80ae54}{ahd\_unlock}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00206}00206 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00207}00207         mtx\_unlock(\&ahd-\/>\mbox{\hyperlink{structahd__softc_a28444a5819a834ff069f1a7eacc8e409}{platform\_data}}-\/>\mbox{\hyperlink{structahd__platform__data_a24c8620d31b5a1130f5fda121e03c4a3}{mtx}});}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00208}00208 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00209}00209 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00210}00210 \textcolor{comment}{/********************************** PCI ***************************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00211}00211 \textcolor{keywordtype}{int} \mbox{\hyperlink{aic79xx__osm_8h_a3f83f835799c31e5d243cc8c5ddbc7bd}{ahd\_pci\_map\_registers}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00212}00212 \textcolor{keywordtype}{int} \mbox{\hyperlink{aic79xx__osm_8h_a15e38dcc0d71eace511496cb210a0e34}{ahd\_pci\_map\_int}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00213}00213 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00214}00214 \textcolor{comment}{/************************** Transaction Operations ****************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00215}00215 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void} \mbox{\hyperlink{aic79xx__osm_8h_a8eb9210b59de87ebcbf35343cfd3719f}{aic\_freeze\_simq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{aic__osm__lib_8h_a8c532229225d7509b48dfeaa075dfaf9}{aic\_softc}}*);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00216}00216 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void} \mbox{\hyperlink{aic79xx__osm_8h_a534db1b42d1542c0d6eea17255b812ce}{aic\_release\_simq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{aic__osm__lib_8h_a8c532229225d7509b48dfeaa075dfaf9}{aic\_softc}}*);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00217}00217 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00218}00218 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00219}\mbox{\hyperlink{aic79xx__osm_8h_a8eb9210b59de87ebcbf35343cfd3719f}{00219}} \mbox{\hyperlink{aic79xx__osm_8h_a8eb9210b59de87ebcbf35343cfd3719f}{aic\_freeze\_simq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{aic__osm__lib_8h_a8c532229225d7509b48dfeaa075dfaf9}{aic\_softc}} *aic)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00220}00220 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00221}00221         xpt\_freeze\_simq(aic-\/>platform\_data-\/>sim, \textcolor{comment}{/*count*/}1);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00222}00222 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00223}00223 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00224}00224 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00225}\mbox{\hyperlink{aic79xx__osm_8h_a534db1b42d1542c0d6eea17255b812ce}{00225}} \mbox{\hyperlink{aic79xx__osm_8h_a534db1b42d1542c0d6eea17255b812ce}{aic\_release\_simq}}(\textcolor{keyword}{struct} \mbox{\hyperlink{aic__osm__lib_8h_a8c532229225d7509b48dfeaa075dfaf9}{aic\_softc}} *aic)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00226}00226 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00227}00227         xpt\_release\_simq(aic-\/>platform\_data-\/>sim, \textcolor{comment}{/*run queue*/}\mbox{\hyperlink{aic79xx_8h_aa8cecfc5c5c054d2875c03e77b7be15d}{TRUE}});}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00228}00228 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00229}00229 \textcolor{comment}{/********************************* Debug **************************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00230}00230 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}    \mbox{\hyperlink{aic79xx__osm_8h_a0605c60595aeb5394a8f76c3cb2fbcab}{ahd\_print\_path}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structscb}{scb}} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00231}00231 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}    \mbox{\hyperlink{aic79xx__osm_8h_a1568cfd31922f0f9bd0bf793d334e3be}{ahd\_platform\_dump\_card\_state}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00232}00232 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00233}00233 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00234}\mbox{\hyperlink{aic79xx__osm_8h_a0605c60595aeb5394a8f76c3cb2fbcab}{00234}} \mbox{\hyperlink{aic79xx__osm_8h_a0605c60595aeb5394a8f76c3cb2fbcab}{ahd\_print\_path}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd, \textcolor{keyword}{struct} \mbox{\hyperlink{structscb}{scb}} *\mbox{\hyperlink{structscb}{scb}})}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00235}00235 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00236}00236         xpt\_print\_path(\mbox{\hyperlink{structscb}{scb}}-\/>\mbox{\hyperlink{structscb_a99f99fe2737984d6ababf6ab2c29a1f8}{io\_ctx}}-\/>ccb\_h.path);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00237}00237 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00238}00238 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00239}00239 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00240}\mbox{\hyperlink{aic79xx__osm_8h_a1568cfd31922f0f9bd0bf793d334e3be}{00240}} \mbox{\hyperlink{aic79xx__osm_8h_a1568cfd31922f0f9bd0bf793d334e3be}{ahd\_platform\_dump\_card\_state}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00241}00241 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00242}00242         \textcolor{comment}{/* Nothing to do here for FreeBSD */}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00243}00243 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00244}00244 \textcolor{comment}{/**************************** Transfer Settings *******************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00245}\mbox{\hyperlink{aic79xx__osm_8h_a6afa3bff4d114d26763f61f51e7b37e8}{00245}} \textcolor{keywordtype}{void}      \mbox{\hyperlink{aic79xx__osm_8h_a6afa3bff4d114d26763f61f51e7b37e8}{ahd\_notify\_xfer\_settings\_change}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *,}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00246}00246                                           \textcolor{keyword}{struct} \mbox{\hyperlink{structahd__devinfo}{ahd\_devinfo}} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00247}00247 \textcolor{keywordtype}{void}      \mbox{\hyperlink{aic79xx__osm_8h_abc2695e22149dbb6d05347368b194840}{ahd\_platform\_set\_tags}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structahd__devinfo}{ahd\_devinfo}} *,}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00248}00248                                 \textcolor{keywordtype}{int} \textcolor{comment}{/*enable*/});}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00249}00249 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00250}00250 \textcolor{comment}{/************************* Initialization/Teardown ****************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00251}00251 \textcolor{keywordtype}{int}       \mbox{\hyperlink{aic79xx__osm_8h_af9eac2b4d646d6c2736c4228384fcb25}{ahd\_platform\_alloc}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd, \textcolor{keywordtype}{void} *platform\_arg);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00252}00252 \textcolor{keywordtype}{void}      \mbox{\hyperlink{aic79xx__osm_8h_a324bfce8b3db741f4444b7f67d8dd176}{ahd\_platform\_free}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00253}00253 \textcolor{keywordtype}{int}       \mbox{\hyperlink{aic79xx__osm_8h_a9e07593f7297932afa068cf1e746aa06}{ahd\_map\_int}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00254}00254 \textcolor{keywordtype}{int}       \mbox{\hyperlink{aic79xx__osm_8h_a66f2a41d09d67f2f98be0358c155e288}{ahd\_attach}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00255}00255 \textcolor{keywordtype}{int}       \mbox{\hyperlink{aic79xx__osm_8h_a6a047fe733d73f5344c14877a55d04de}{ahd\_softc\_comp}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *lahd, \textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *rahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00256}00256 \textcolor{keywordtype}{void}      \mbox{\hyperlink{aic79xx__osm_8h_aff24f437ebb19216a3f9d9e5c176577d}{ahd\_sysctl}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00257}00257 \textcolor{keywordtype}{int}       \mbox{\hyperlink{aic79xx__osm_8h_a662abec94c8d3e42ded7ffe452fb2e19}{ahd\_detach}}(device\_t);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00258}\mbox{\hyperlink{aic79xx__osm_8h_acf3fbd69fd4fbeac5fcb78b5797d6196}{00258}} \textcolor{preprocessor}{\#define ahd\_platform\_init(arg)}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00259}00259 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00260}00260 \textcolor{comment}{/****************************** Interrupts ************************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00261}00261 \textcolor{keywordtype}{void}                    \mbox{\hyperlink{aic79xx__osm_8h_a113edfb05bfc0f764c2262afd3f887c7}{ahd\_platform\_intr}}(\textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00262}00262 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}    \mbox{\hyperlink{aic79xx__osm_8h_aaa064cc6fd54a3ed887d30c986465337}{ahd\_platform\_flushwork}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00263}00263 \textcolor{keyword}{static} \_\_inline \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00264}\mbox{\hyperlink{aic79xx__osm_8h_aaa064cc6fd54a3ed887d30c986465337}{00264}} \mbox{\hyperlink{aic79xx__osm_8h_aaa064cc6fd54a3ed887d30c986465337}{ahd\_platform\_flushwork}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd)}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00265}00265 \{}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00266}00266 \}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00267}00267 }
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00268}00268 \textcolor{comment}{/************************ Misc Function Declarations **************************/}}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00269}00269 \textcolor{keywordtype}{void}      \mbox{\hyperlink{aic79xx__osm_8h_a44e4603e7e22cdccabaa5807f77502ff}{ahd\_done}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *ahd, \textcolor{keyword}{struct} \mbox{\hyperlink{structscb}{scb}} *\mbox{\hyperlink{structscb}{scb}});}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00270}00270 \textcolor{keywordtype}{void}      \mbox{\hyperlink{aic79xx__osm_8h_a378acde0e0241582837a0a07b432585b}{ahd\_send\_async}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structahd__softc}{ahd\_softc}} *, \textcolor{keywordtype}{char} \textcolor{comment}{/*channel*/},}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00271}00271                          u\_int \textcolor{comment}{/*target*/}, u\_int \textcolor{comment}{/*lun*/}, ac\_code, \textcolor{keywordtype}{void} *arg);}
\DoxyCodeLine{\Hypertarget{aic79xx__osm_8h_source_l00272}00272 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_AIC79XX\_FREEBSD\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
