Newer
Older
UbixOS / doc / xml / pci_8h.xml
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.16">
  <compounddef id="pci_8h" kind="file" language="C++">
    <compoundname>pci.h</compoundname>
    <includes refid="include_2sys_2types_8h" local="no">sys/types.h</includes>
    <includedby refid="ubixos_2init_8h" local="no">C:/Dev/git/UbixOS/sys/include/ubixos/init.h</includedby>
    <includedby refid="pci_8c" local="no">C:/Dev/git/UbixOS/sys/pci/pci.c</includedby>
    <incdepgraph>
      <node id="4">
        <label>sys/select.h</label>
        <link refid="select_8h"/>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
      </node>
      <node id="8">
        <label>sys/_sigset.h</label>
        <link refid="__sigset_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>sys/types.h</label>
        <link refid="include_2sys_2types_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
      </node>
      <node id="1">
        <label>C:/Dev/git/UbixOS/sys/include/pci/pci.h</label>
        <link refid="pci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="5">
        <label>sys/cdefs.h</label>
        <link refid="cdefs_8h"/>
      </node>
      <node id="3">
        <label>sys/_types.h</label>
        <link refid="__types_8h"/>
      </node>
      <node id="6">
        <label>sys/_timespec.h</label>
        <link refid="__timespec_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="7">
        <label>sys/_timeval.h</label>
        <link refid="__timeval_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="3">
        <label>C:/Dev/git/UbixOS/sys/init/main.c</label>
        <link refid="main_8c"/>
      </node>
      <node id="1">
        <label>C:/Dev/git/UbixOS/sys/include/pci/pci.h</label>
        <link refid="pci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
      </node>
      <node id="4">
        <label>C:/Dev/git/UbixOS/sys/pci/pci.c</label>
        <link refid="pci_8c"/>
      </node>
      <node id="2">
        <label>C:/Dev/git/UbixOS/sys/include/ubixos/init.h</label>
        <link refid="ubixos_2init_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
    <innerclass refid="structconfadd" prot="public">confadd</innerclass>
    <innerclass refid="structpciConfig" prot="public">pciConfig</innerclass>
      <sectiondef kind="define">
      <memberdef kind="define" id="pci_8h_1a3c5cd622462bb50b6dab4c189e219eb9" prot="public" static="no">
        <name>countof</name>
        <param><defname>a</defname></param>
        <initializer>(sizeof(a) / sizeof(a[0]))</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Dev/git/UbixOS/sys/include/pci/pci.h" line="98" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/pci/pci.h" bodystart="98" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="pci_8h_1a5c450b9e2534226b162a16de0ef6b434" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int pci_init</definition>
        <argsstring>()</argsstring>
        <name>pci_init</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Dev/git/UbixOS/sys/include/pci/pci.h" line="100" column="5" bodyfile="C:/Dev/git/UbixOS/sys/pci/pci.c" bodystart="244" bodyend="269" declfile="C:/Dev/git/UbixOS/sys/include/pci/pci.h" declline="100" declcolumn="5"/>
        <references refid="structpciConfig_1a6ad529c48f62a51cc647c8ce9cc9c609" compoundref="pci_8h" startline="83">pciConfig::bus</references>
        <references refid="structpciConfig_1a8e9f55ac27f0e6d5869a3a2bd9ffe6bb" compoundref="pci_8h" startline="44">pciConfig::classCode</references>
        <references refid="pci_8h_1a3c5cd622462bb50b6dab4c189e219eb9" compoundref="pci_8h" startline="98">countof</references>
        <references refid="structpciConfig_1aa73b7917021ebcf2ec28084faecaf35d" compoundref="pci_8h" startline="84">pciConfig::dev</references>
        <references refid="structpciConfig_1a175cb9658f47e8b518172f0de510b96c" compoundref="pci_8h" startline="85">pciConfig::func</references>
        <references refid="structpciConfig_1a9bbbff5574626b54e3a678dc38012a93" compoundref="pci_8h" startline="65">pciConfig::intLine</references>
        <references refid="structpciConfig_1ab857d16aeaeacd9fa6bf825e296a7d11" compoundref="pci_8h" startline="66">pciConfig::intPin</references>
        <references refid="kprintf_8h_1a20b56810edb62a6fe59917015c30848f" compoundref="kprintf_8c" startline="259" endline="276">kprintf</references>
        <references refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" compoundref="pci_8c" startline="37">name</references>
        <references refid="pci_8c_1a06d7d37b951914590189751cececa69f">pciClasses</references>
        <references refid="pci_8c_1a9a16d3ca1d4538415b752ab0c58e72ba" compoundref="pci_8c" startline="139" endline="242">pciProbe</references>
        <references refid="structpciConfig_1afe5a1cf42dff529b250c7ee548ea812d" compoundref="pci_8h" startline="42">pciConfig::progIf</references>
        <references refid="structpciConfig_1a83a72a5cba21bffe8359bee95d82ac58" compoundref="pci_8h" startline="43">pciConfig::subClass</references>
        <references refid="structpciConfig_1aa9675635761800feb7a5827c100ef9ae" compoundref="pci_8h" startline="35">pciConfig::vendorID</references>
      </memberdef>
      <memberdef kind="function" id="pci_8h_1a9a16d3ca1d4538415b752ab0c58e72ba" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref></type>
        <definition>uint32_t pciProbe</definition>
        <argsstring>(int bus, int dev, int func)</argsstring>
        <name>pciProbe</name>
        <param>
          <type>int</type>
          <declname>bus</declname>
        </param>
        <param>
          <type>int</type>
          <declname>dev</declname>
        </param>
        <param>
          <type>int</type>
          <declname>func</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Dev/git/UbixOS/sys/include/pci/pci.h" line="102" column="10" bodyfile="C:/Dev/git/UbixOS/sys/pci/pci.c" bodystart="139" bodyend="242" declfile="C:/Dev/git/UbixOS/sys/include/pci/pci.h" declline="102" declcolumn="10"/>
        <references refid="structpciConfig_1a1daad32be860e62df484b3f1f3b72b5e" compoundref="pci_8h" startline="51">pciConfig::bar</references>
        <references refid="structpciConfig_1a2add335aa360526ac46154e7777f80e6" compoundref="pci_8h" startline="49">pciConfig::bist</references>
        <references refid="structpciConfig_1a6ad529c48f62a51cc647c8ce9cc9c609" compoundref="pci_8h" startline="83">pciConfig::bus</references>
        <references refid="structpciConfig_1ab63a65ccdbc9fce15acb5edc3950daeb" compoundref="pci_8h" startline="46">pciConfig::cacheLineSize</references>
        <references refid="structpciConfig_1a8e9f55ac27f0e6d5869a3a2bd9ffe6bb" compoundref="pci_8h" startline="44">pciConfig::classCode</references>
        <references refid="structpciConfig_1aec8c642edd27bddd4671e2fbe61df627" compoundref="pci_8h" startline="38">pciConfig::command</references>
        <references refid="structpciConfig_1aa73b7917021ebcf2ec28084faecaf35d" compoundref="pci_8h" startline="84">pciConfig::dev</references>
        <references refid="structpciConfig_1a58628534204bc4e05e5f9020ac8350d8" compoundref="pci_8h" startline="36">pciConfig::deviceID</references>
        <references refid="structpciConfig_1a175cb9658f47e8b518172f0de510b96c" compoundref="pci_8h" startline="85">pciConfig::func</references>
        <references refid="structpciConfig_1a38752dcd81e2a6d67781100afa24bdf8" compoundref="pci_8h" startline="48">pciConfig::headerType</references>
        <references refid="structpciConfig_1a9bbbff5574626b54e3a678dc38012a93" compoundref="pci_8h" startline="65">pciConfig::intLine</references>
        <references refid="structpciConfig_1ab857d16aeaeacd9fa6bf825e296a7d11" compoundref="pci_8h" startline="66">pciConfig::intPin</references>
        <references refid="kmalloc_8h_1aaa9ed6886459604cf73ccdbf6410e487" compoundref="kmalloc_8c" startline="342" endline="382">kfree</references>
        <references refid="kmalloc_8h_1a150eab2ac4ce4553e21ca10e7f441762" compoundref="kmalloc_8c" startline="241" endline="331">kmalloc</references>
        <references refid="kprintf_8h_1a20b56810edb62a6fe59917015c30848f" compoundref="kprintf_8c" startline="259" endline="276">kprintf</references>
        <references refid="structpciConfig_1a4d9b9cdea220f31faddd3be8e4284a40" compoundref="pci_8h" startline="47">pciConfig::latencyTimer</references>
        <references refid="string_8h_1ace4b911463887af5e748326323e99a23">memset</references>
        <references refid="pci_8c_1a09d5fac523ec602b928a2eeb2dc3eee6" compoundref="pci_8c" startline="76" endline="106">pciRead</references>
        <references refid="pci_8c_1a562e38dfaaab5bd65c08f7ee9769235d" compoundref="pci_8c" startline="108" endline="137">pciWrite</references>
        <references refid="structpciConfig_1afe5a1cf42dff529b250c7ee548ea812d" compoundref="pci_8h" startline="42">pciConfig::progIf</references>
        <references refid="structpciConfig_1a96580a28f37b495264305b791c7e2620" compoundref="pci_8h" startline="39">pciConfig::status</references>
        <references refid="structpciConfig_1a83a72a5cba21bffe8359bee95d82ac58" compoundref="pci_8h" startline="43">pciConfig::subClass</references>
        <references refid="structpciConfig_1aa9675635761800feb7a5827c100ef9ae" compoundref="pci_8h" startline="35">pciConfig::vendorID</references>
        <referencedby refid="pci_8c_1a5c450b9e2534226b162a16de0ef6b434" compoundref="pci_8c" startline="244" endline="269">pci_init</referencedby>
      </memberdef>
      <memberdef kind="function" id="pci_8h_1a09d5fac523ec602b928a2eeb2dc3eee6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="objgfx30_8h_1ada085051a6d9a8e00a2cb256d1af14ba" kindref="member">uInt32</ref></type>
        <definition>uInt32 pciRead</definition>
        <argsstring>(int bus, int dev, int func, int reg, int bytes)</argsstring>
        <name>pciRead</name>
        <param>
          <type>int</type>
          <declname>bus</declname>
        </param>
        <param>
          <type>int</type>
          <declname>dev</declname>
        </param>
        <param>
          <type>int</type>
          <declname>func</declname>
        </param>
        <param>
          <type>int</type>
          <declname>reg</declname>
        </param>
        <param>
          <type>int</type>
          <declname>bytes</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Dev/git/UbixOS/sys/include/pci/pci.h" line="103" column="8" bodyfile="C:/Dev/git/UbixOS/sys/pci/pci.c" bodystart="76" bodyend="106" declfile="C:/Dev/git/UbixOS/sys/include/pci/pci.h" declline="103" declcolumn="8"/>
        <references refid="structconfadd_1a183f0168efe559d9bd93c0333c633e87" compoundref="pci_8h" startline="93">confadd::bus</references>
        <references refid="structconfadd_1a25302013455d0f821a642ca36088082d" compoundref="pci_8h" startline="92">confadd::dev</references>
        <references refid="structconfadd_1a7e9ccb6d9b97c39e102cbedf58c22919" compoundref="pci_8h" startline="95">confadd::enable</references>
        <references refid="structconfadd_1a29f775cd426e1c998042e0ddf3b747ce" compoundref="pci_8h" startline="91">confadd::func</references>
        <references refid="io_8h_1a77b934268de1b3ecdcf3f275413b3108" compoundref="io_8c" startline="38" endline="46">inportByte</references>
        <references refid="io_8h_1a8d6617406b264c7f9e143adab8406791" compoundref="io_8c" startline="133" endline="141">inportDWord</references>
        <references refid="io_8h_1afb703b187feb4b92444454df6c3dd9e6" compoundref="io_8c" startline="55" endline="63">inportWord</references>
        <references refid="io_8h_1a2e2ad8d744ae4b35ea37d39dcfea1296" compoundref="io_8c" startline="118" endline="124">outportDWord</references>
        <references refid="structconfadd_1a0a9c3960a73c47086fcccb9c955638c7" compoundref="pci_8h" startline="90">confadd::reg</references>
        <referencedby refid="pci_8c_1a9a16d3ca1d4538415b752ab0c58e72ba" compoundref="pci_8c" startline="139" endline="242">pciProbe</referencedby>
      </memberdef>
      <memberdef kind="function" id="pci_8h_1a562e38dfaaab5bd65c08f7ee9769235d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void pciWrite</definition>
        <argsstring>(int bus, int dev, int func, int reg, uInt32 v, int bytes)</argsstring>
        <name>pciWrite</name>
        <param>
          <type>int</type>
          <declname>bus</declname>
        </param>
        <param>
          <type>int</type>
          <declname>dev</declname>
        </param>
        <param>
          <type>int</type>
          <declname>func</declname>
        </param>
        <param>
          <type>int</type>
          <declname>reg</declname>
        </param>
        <param>
          <type><ref refid="objgfx30_8h_1ada085051a6d9a8e00a2cb256d1af14ba" kindref="member">uInt32</ref></type>
          <declname>v</declname>
        </param>
        <param>
          <type>int</type>
          <declname>bytes</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="C:/Dev/git/UbixOS/sys/include/pci/pci.h" line="104" column="6" bodyfile="C:/Dev/git/UbixOS/sys/pci/pci.c" bodystart="108" bodyend="137" declfile="C:/Dev/git/UbixOS/sys/include/pci/pci.h" declline="104" declcolumn="6"/>
        <references refid="structconfadd_1a183f0168efe559d9bd93c0333c633e87" compoundref="pci_8h" startline="93">confadd::bus</references>
        <references refid="structconfadd_1a25302013455d0f821a642ca36088082d" compoundref="pci_8h" startline="92">confadd::dev</references>
        <references refid="structconfadd_1a7e9ccb6d9b97c39e102cbedf58c22919" compoundref="pci_8h" startline="95">confadd::enable</references>
        <references refid="structconfadd_1a29f775cd426e1c998042e0ddf3b747ce" compoundref="pci_8h" startline="91">confadd::func</references>
        <references refid="io_8h_1a8acc1a06073db2e7b92ffbd00fbd0cf1" compoundref="io_8c" startline="72" endline="78">outportByte</references>
        <references refid="io_8h_1a2e2ad8d744ae4b35ea37d39dcfea1296" compoundref="io_8c" startline="118" endline="124">outportDWord</references>
        <references refid="io_8h_1a243f6b6d22cc5948908b764d58efc2b0" compoundref="io_8c" startline="103" endline="109">outportWord</references>
        <references refid="structconfadd_1a0a9c3960a73c47086fcccb9c955638c7" compoundref="pci_8h" startline="90">confadd::reg</references>
        <referencedby refid="pci_8c_1a9a16d3ca1d4538415b752ab0c58e72ba" compoundref="pci_8c" startline="139" endline="242">pciProbe</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="comment">/*-</highlight></codeline>
<codeline lineno="2"><highlight class="comment"><sp/>*<sp/>Copyright<sp/>(c)<sp/>2002-2018<sp/>The<sp/>UbixOS<sp/>Project.</highlight></codeline>
<codeline lineno="3"><highlight class="comment"><sp/>*<sp/>All<sp/>rights<sp/>reserved.</highlight></codeline>
<codeline lineno="4"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="5"><highlight class="comment"><sp/>*<sp/>This<sp/>was<sp/>developed<sp/>by<sp/>Christopher<sp/>W.<sp/>Olsen<sp/>for<sp/>the<sp/>UbixOS<sp/>Project.</highlight></codeline>
<codeline lineno="6"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="7"><highlight class="comment"><sp/>*<sp/>Redistribution<sp/>and<sp/>use<sp/>in<sp/>source<sp/>and<sp/>binary<sp/>forms,<sp/>with<sp/>or<sp/>without<sp/>modification,<sp/>are<sp/>permitted</highlight></codeline>
<codeline lineno="8"><highlight class="comment"><sp/>*<sp/>provided<sp/>that<sp/>the<sp/>following<sp/>conditions<sp/>are<sp/>met:</highlight></codeline>
<codeline lineno="9"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="10"><highlight class="comment"><sp/>*<sp/>1)<sp/>Redistributions<sp/>of<sp/>source<sp/>code<sp/>must<sp/>retain<sp/>the<sp/>above<sp/>copyright<sp/>notice,<sp/>this<sp/>list<sp/>of</highlight></codeline>
<codeline lineno="11"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>conditions,<sp/>the<sp/>following<sp/>disclaimer<sp/>and<sp/>the<sp/>list<sp/>of<sp/>authors.</highlight></codeline>
<codeline lineno="12"><highlight class="comment"><sp/>*<sp/>2)<sp/>Redistributions<sp/>in<sp/>binary<sp/>form<sp/>must<sp/>reproduce<sp/>the<sp/>above<sp/>copyright<sp/>notice,<sp/>this<sp/>list<sp/>of</highlight></codeline>
<codeline lineno="13"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>conditions,<sp/>the<sp/>following<sp/>disclaimer<sp/>and<sp/>the<sp/>list<sp/>of<sp/>authors<sp/>in<sp/>the<sp/>documentation<sp/>and/or</highlight></codeline>
<codeline lineno="14"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>other<sp/>materials<sp/>provided<sp/>with<sp/>the<sp/>distribution.</highlight></codeline>
<codeline lineno="15"><highlight class="comment"><sp/>*<sp/>3)<sp/>Neither<sp/>the<sp/>name<sp/>of<sp/>the<sp/>UbixOS<sp/>Project<sp/>nor<sp/>the<sp/>names<sp/>of<sp/>its<sp/>contributors<sp/>may<sp/>be<sp/>used<sp/>to</highlight></codeline>
<codeline lineno="16"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>endorse<sp/>or<sp/>promote<sp/>products<sp/>derived<sp/>from<sp/>this<sp/>software<sp/>without<sp/>specific<sp/>prior<sp/>written</highlight></codeline>
<codeline lineno="17"><highlight class="comment"><sp/>*<sp/><sp/><sp/><sp/>permission.</highlight></codeline>
<codeline lineno="18"><highlight class="comment"><sp/>*</highlight></codeline>
<codeline lineno="19"><highlight class="comment"><sp/>*<sp/>THIS<sp/>SOFTWARE<sp/>IS<sp/>PROVIDED<sp/>BY<sp/>THE<sp/>AUTHOR<sp/>AND<sp/>CONTRIBUTORS<sp/>&quot;AS<sp/>IS&quot;<sp/>AND<sp/>ANY<sp/>EXPRESS<sp/>OR<sp/>IMPLIED</highlight></codeline>
<codeline lineno="20"><highlight class="comment"><sp/>*<sp/>WARRANTIES,<sp/>INCLUDING,<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO,<sp/>THE<sp/>IMPLIED<sp/>WARRANTIES<sp/>OF<sp/>MERCHANTABILITY<sp/>AND<sp/>FITNESS</highlight></codeline>
<codeline lineno="21"><highlight class="comment"><sp/>*<sp/>FOR<sp/>A<sp/>PARTICULAR<sp/>PURPOSE<sp/>ARE<sp/>DISCLAIMED.<sp/>IN<sp/>NO<sp/>EVENT<sp/>SHALL<sp/>THE<sp/>COPYRIGHT<sp/>OWNER<sp/>OR<sp/>CONTRIBUTORS</highlight></codeline>
<codeline lineno="22"><highlight class="comment"><sp/>*<sp/>BE<sp/>LIABLE<sp/>FOR<sp/>ANY<sp/>DIRECT,<sp/>INDIRECT,<sp/>INCIDENTAL,<sp/>SPECIAL,<sp/>EXEMPLARY,<sp/>OR<sp/>CONSEQUENTIAL<sp/>DAMAGES</highlight></codeline>
<codeline lineno="23"><highlight class="comment"><sp/>*<sp/>(INCLUDING,<sp/>BUT<sp/>NOT<sp/>LIMITED<sp/>TO,<sp/>PROCUREMENT<sp/>OF<sp/>SUBSTITUTE<sp/>GOODS<sp/>OR<sp/>SERVICES;<sp/>LOSS<sp/>OF<sp/>USE,<sp/>DATA,</highlight></codeline>
<codeline lineno="24"><highlight class="comment"><sp/>*<sp/>OR<sp/>PROFITS;<sp/>OR<sp/>BUSINESS<sp/>INTERRUPTION)<sp/>HOWEVER<sp/>CAUSED<sp/>AND<sp/>ON<sp/>ANY<sp/>THEORY<sp/>OF<sp/>LIABILITY,<sp/>WHETHER<sp/>IN</highlight></codeline>
<codeline lineno="25"><highlight class="comment"><sp/>*<sp/>CONTRACT,<sp/>STRICT<sp/>LIABILITY,<sp/>OR<sp/>TORT<sp/>(INCLUDING<sp/>NEGLIGENCE<sp/>OR<sp/>OTHERWISE)<sp/>ARISING<sp/>IN<sp/>ANY<sp/>WAY<sp/>OUT</highlight></codeline>
<codeline lineno="26"><highlight class="comment"><sp/>*<sp/>OF<sp/>THE<sp/>USE<sp/>OF<sp/>THIS<sp/>SOFTWARE,<sp/>EVEN<sp/>IF<sp/>ADVISED<sp/>OF<sp/>THE<sp/>POSSIBILITY<sp/>OF<sp/>SUCH<sp/>DAMAGE.</highlight></codeline>
<codeline lineno="27"><highlight class="comment"><sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="28"><highlight class="normal"></highlight></codeline>
<codeline lineno="29"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>_PCI_H</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>_PCI_H</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="31"><highlight class="normal"></highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;<ref refid="include_2sys_2types_8h" kindref="compound">sys/types.h</ref>&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"></highlight></codeline>
<codeline lineno="34" refid="structpciConfig" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpciConfig" kindref="compound">pciConfig</ref><sp/>{</highlight></codeline>
<codeline lineno="35" refid="structpciConfig_1aa9675635761800feb7a5827c100ef9ae" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1aa9675635761800feb7a5827c100ef9ae" kindref="member">vendorID</ref>;</highlight></codeline>
<codeline lineno="36" refid="structpciConfig_1a58628534204bc4e05e5f9020ac8350d8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1a58628534204bc4e05e5f9020ac8350d8" kindref="member">deviceID</ref>;</highlight></codeline>
<codeline lineno="37"><highlight class="normal"></highlight></codeline>
<codeline lineno="38" refid="structpciConfig_1aec8c642edd27bddd4671e2fbe61df627" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1aec8c642edd27bddd4671e2fbe61df627" kindref="member">command</ref>;</highlight></codeline>
<codeline lineno="39" refid="structpciConfig_1a96580a28f37b495264305b791c7e2620" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1a96580a28f37b495264305b791c7e2620" kindref="member">status</ref>;</highlight></codeline>
<codeline lineno="40"><highlight class="normal"></highlight></codeline>
<codeline lineno="41" refid="structpciConfig_1acd2f2d9e82ed627f9fc4c0f077764ac4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1acd2f2d9e82ed627f9fc4c0f077764ac4" kindref="member">revisionID</ref>;</highlight></codeline>
<codeline lineno="42" refid="structpciConfig_1afe5a1cf42dff529b250c7ee548ea812d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1afe5a1cf42dff529b250c7ee548ea812d" kindref="member">progIf</ref>;</highlight></codeline>
<codeline lineno="43" refid="structpciConfig_1a83a72a5cba21bffe8359bee95d82ac58" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a83a72a5cba21bffe8359bee95d82ac58" kindref="member">subClass</ref>;</highlight></codeline>
<codeline lineno="44" refid="structpciConfig_1a8e9f55ac27f0e6d5869a3a2bd9ffe6bb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a8e9f55ac27f0e6d5869a3a2bd9ffe6bb" kindref="member">classCode</ref>;</highlight></codeline>
<codeline lineno="45"><highlight class="normal"></highlight></codeline>
<codeline lineno="46" refid="structpciConfig_1ab63a65ccdbc9fce15acb5edc3950daeb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1ab63a65ccdbc9fce15acb5edc3950daeb" kindref="member">cacheLineSize</ref>;</highlight></codeline>
<codeline lineno="47" refid="structpciConfig_1a4d9b9cdea220f31faddd3be8e4284a40" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a4d9b9cdea220f31faddd3be8e4284a40" kindref="member">latencyTimer</ref>;</highlight></codeline>
<codeline lineno="48" refid="structpciConfig_1a38752dcd81e2a6d67781100afa24bdf8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a38752dcd81e2a6d67781100afa24bdf8" kindref="member">headerType</ref>;</highlight></codeline>
<codeline lineno="49" refid="structpciConfig_1a2add335aa360526ac46154e7777f80e6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a2add335aa360526ac46154e7777f80e6" kindref="member">bist</ref>;</highlight></codeline>
<codeline lineno="50"><highlight class="normal"></highlight></codeline>
<codeline lineno="51" refid="structpciConfig_1a1daad32be860e62df484b3f1f3b72b5e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><ref refid="structpciConfig_1a1daad32be860e62df484b3f1f3b72b5e" kindref="member">bar</ref>[6];</highlight></codeline>
<codeline lineno="52"><highlight class="normal"></highlight></codeline>
<codeline lineno="53" refid="structpciConfig_1add2d8420e97686ad79b140e53c28a09e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><ref refid="structpciConfig_1add2d8420e97686ad79b140e53c28a09e" kindref="member">cbPointer</ref>;</highlight></codeline>
<codeline lineno="54"><highlight class="normal"></highlight></codeline>
<codeline lineno="55" refid="structpciConfig_1a0df9b94d789adf4d6520522e500cdc9a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1a0df9b94d789adf4d6520522e500cdc9a" kindref="member">subsysVendorID</ref>;</highlight></codeline>
<codeline lineno="56" refid="structpciConfig_1a27c53bcef0585b298dbc1de72dbd0e35" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1a27c53bcef0585b298dbc1de72dbd0e35" kindref="member">subsysID</ref>;</highlight></codeline>
<codeline lineno="57"><highlight class="normal"></highlight></codeline>
<codeline lineno="58" refid="structpciConfig_1a645de37814e9c632d94c04b2f94516b6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><ref refid="structpciConfig_1a645de37814e9c632d94c04b2f94516b6" kindref="member">epromAddr</ref>;</highlight></codeline>
<codeline lineno="59"><highlight class="normal"></highlight></codeline>
<codeline lineno="60" refid="structpciConfig_1a7b266768c61d834fefb13c9e9e1c8843" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1a7b266768c61d834fefb13c9e9e1c8843" kindref="member">capabilites</ref>;</highlight></codeline>
<codeline lineno="61" refid="structpciConfig_1a9b07b9a18acbece2ba940db0f94dafe9" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a281b4b5562236420969a830503b0ba19" kindref="member">uint16_t</ref><sp/><ref refid="structpciConfig_1a9b07b9a18acbece2ba940db0f94dafe9" kindref="member">res1</ref>;</highlight></codeline>
<codeline lineno="62"><highlight class="normal"></highlight></codeline>
<codeline lineno="63" refid="structpciConfig_1a1bf30873715c7de1e913784409c3c155" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><ref refid="structpciConfig_1a1bf30873715c7de1e913784409c3c155" kindref="member">res2</ref>;</highlight></codeline>
<codeline lineno="64"><highlight class="normal"></highlight></codeline>
<codeline lineno="65" refid="structpciConfig_1a9bbbff5574626b54e3a678dc38012a93" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a9bbbff5574626b54e3a678dc38012a93" kindref="member">intLine</ref>;</highlight></codeline>
<codeline lineno="66" refid="structpciConfig_1ab857d16aeaeacd9fa6bf825e296a7d11" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1ab857d16aeaeacd9fa6bf825e296a7d11" kindref="member">intPin</ref>;</highlight></codeline>
<codeline lineno="67" refid="structpciConfig_1a2767786af8800e041a384f84104a6d80" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a2767786af8800e041a384f84104a6d80" kindref="member">minGrant</ref>;</highlight></codeline>
<codeline lineno="68" refid="structpciConfig_1a05a8bb4e013e7f7ab2054501bb712c06" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a05a8bb4e013e7f7ab2054501bb712c06" kindref="member">maxLatency</ref>;</highlight></codeline>
<codeline lineno="69"><highlight class="normal"></highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>device<sp/>info<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="71"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint8_t<sp/><sp/>bus;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint8_t<sp/><sp/>dev;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint8_t<sp/><sp/>func;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="74"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint8_t<sp/><sp/>irq;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint8_t<sp/>irqLine;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>base<sp/>registers<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="77"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uInt32<sp/>base[6];</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uInt32<sp/>size[6];</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint16_t<sp/>subsysVendor;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="80"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//uint16_t<sp/>subsys;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">/*<sp/>Device<sp/>Info<sp/>*/</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//Move<sp/>this<sp/>to<sp/>anotther<sp/>struct<sp/>eventually</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="83" refid="structpciConfig_1a6ad529c48f62a51cc647c8ce9cc9c609" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a6ad529c48f62a51cc647c8ce9cc9c609" kindref="member">bus</ref>;</highlight></codeline>
<codeline lineno="84" refid="structpciConfig_1aa73b7917021ebcf2ec28084faecaf35d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1aa73b7917021ebcf2ec28084faecaf35d" kindref="member">dev</ref>;</highlight></codeline>
<codeline lineno="85" refid="structpciConfig_1a175cb9658f47e8b518172f0de510b96c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structpciConfig_1a175cb9658f47e8b518172f0de510b96c" kindref="member">func</ref>;</highlight></codeline>
<codeline lineno="86"><highlight class="normal"></highlight></codeline>
<codeline lineno="87"><highlight class="normal">};</highlight></codeline>
<codeline lineno="88"><highlight class="normal"></highlight></codeline>
<codeline lineno="89" refid="structconfadd" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structconfadd" kindref="compound">confadd</ref><sp/>{</highlight></codeline>
<codeline lineno="90" refid="structconfadd_1a0a9c3960a73c47086fcccb9c955638c7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structconfadd_1a0a9c3960a73c47086fcccb9c955638c7" kindref="member">reg</ref><sp/>:8;</highlight></codeline>
<codeline lineno="91" refid="structconfadd_1a29f775cd426e1c998042e0ddf3b747ce" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structconfadd_1a29f775cd426e1c998042e0ddf3b747ce" kindref="member">func</ref><sp/>:3;</highlight></codeline>
<codeline lineno="92" refid="structconfadd_1a25302013455d0f821a642ca36088082d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structconfadd_1a25302013455d0f821a642ca36088082d" kindref="member">dev</ref><sp/>:5;</highlight></codeline>
<codeline lineno="93" refid="structconfadd_1a183f0168efe559d9bd93c0333c633e87" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structconfadd_1a183f0168efe559d9bd93c0333c633e87" kindref="member">bus</ref><sp/>:8;</highlight></codeline>
<codeline lineno="94" refid="structconfadd_1a595d0f91c5459eb66c3777fd30861bca" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structconfadd_1a595d0f91c5459eb66c3777fd30861bca" kindref="member">rsvd</ref><sp/>:7;</highlight></codeline>
<codeline lineno="95" refid="structconfadd_1a7e9ccb6d9b97c39e102cbedf58c22919" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="include_2sys_2types_8h_1a2aff71146ab4942b2b38860c749c4074" kindref="member">uint8_t</ref><sp/><ref refid="structconfadd_1a7e9ccb6d9b97c39e102cbedf58c22919" kindref="member">enable</ref><sp/>:1;</highlight></codeline>
<codeline lineno="96"><highlight class="normal">};</highlight></codeline>
<codeline lineno="97"><highlight class="normal"></highlight></codeline>
<codeline lineno="98" refid="pci_8h_1a3c5cd622462bb50b6dab4c189e219eb9" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>countof(a)<sp/><sp/><sp/><sp/><sp/>(sizeof(a)<sp/>/<sp/>sizeof(a[0]))</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="99"><highlight class="normal"></highlight></codeline>
<codeline lineno="100"><highlight class="normal"></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="pci_8h_1a5c450b9e2534226b162a16de0ef6b434" kindref="member">pci_init</ref>();</highlight></codeline>
<codeline lineno="101"><highlight class="normal"></highlight></codeline>
<codeline lineno="102"><highlight class="normal"><ref refid="include_2sys_2types_8h_1a0238af00180b6d9278fa1c6aa790fdf4" kindref="member">uint32_t</ref><sp/><ref refid="pci_8h_1a9a16d3ca1d4538415b752ab0c58e72ba" kindref="member">pciProbe</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>bus,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>dev,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>func);</highlight></codeline>
<codeline lineno="103"><highlight class="normal"><ref refid="objgfx30_8h_1ada085051a6d9a8e00a2cb256d1af14ba" kindref="member">uInt32</ref><sp/><ref refid="pci_8h_1a09d5fac523ec602b928a2eeb2dc3eee6" kindref="member">pciRead</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>bus,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>dev,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>func,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>reg,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>bytes);</highlight></codeline>
<codeline lineno="104"><highlight class="normal"></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="pci_8h_1a562e38dfaaab5bd65c08f7ee9769235d" kindref="member">pciWrite</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>bus,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>dev,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>func,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>reg,<sp/><ref refid="objgfx30_8h_1ada085051a6d9a8e00a2cb256d1af14ba" kindref="member">uInt32</ref><sp/>v,<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>bytes);</highlight></codeline>
<codeline lineno="105"><highlight class="normal"></highlight></codeline>
<codeline lineno="106"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
    </programlisting>
    <location file="C:/Dev/git/UbixOS/sys/include/pci/pci.h"/>
  </compounddef>
</doxygen>