<?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.9.1" xml:lang="en-US">
  <compounddef id="kmalloc_8h" kind="file" language="C++">
    <compoundname>kmalloc.h</compoundname>
    <includes local="no">stddef.h</includes>
    <includedby refid="kernel_8h" local="yes">kernel.h</includedby>
    <incdepgraph>
      <node id="2">
        <label>stddef.h</label>
      </node>
      <node id="1">
        <label>kmalloc.h</label>
        <link refid="kmalloc_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="28">
        <label>ramdisk.h</label>
        <link refid="ramdisk_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="3">
        <label>acpi.h</label>
        <link refid="acpi_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="5">
        <label>arp.h</label>
        <link refid="arp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="10">
        <label>dns.h</label>
        <link refid="dns_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="14">
        <label>fat32.h</label>
        <link refid="fat32_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="32">
        <label>udp.h</label>
        <link refid="udp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="31">
        <label>tcp.h</label>
        <link refid="tcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="8">
        <label>devicename.h</label>
        <link refid="devicename_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="18">
        <label>idt.h</label>
        <link refid="idt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="11">
        <label>drawing.h</label>
        <link refid="drawing_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="6">
        <label>basic_tokenizer.h</label>
        <link refid="basic__tokenizer_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="30">
        <label>rtl8139.h</label>
        <link refid="rtl8139_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="27">
        <label>printf.h</label>
        <link refid="printf_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="12">
        <label>e1000.h</label>
        <link refid="e1000_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="19">
        <label>initialisation-functions.h</label>
        <link refid="initialisation-functions_8h"/>
      </node>
      <node id="15">
        <label>fpu.h</label>
        <link refid="fpu_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="17">
        <label>icmp.h</label>
        <link refid="icmp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="21">
        <label>ip.h</label>
        <link refid="ip_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="22">
        <label>maths.h</label>
        <link refid="maths_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="13">
        <label>ethernet.h</label>
        <link refid="ethernet_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>kernel.h</label>
        <link refid="kernel_8h"/>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
        <childnode refid="14" relation="include">
        </childnode>
        <childnode refid="15" relation="include">
        </childnode>
        <childnode refid="16" relation="include">
        </childnode>
        <childnode refid="17" relation="include">
        </childnode>
        <childnode refid="18" relation="include">
        </childnode>
        <childnode refid="19" relation="include">
        </childnode>
        <childnode refid="20" relation="include">
        </childnode>
        <childnode refid="21" relation="include">
        </childnode>
        <childnode refid="22" relation="include">
        </childnode>
        <childnode refid="23" relation="include">
        </childnode>
        <childnode refid="24" relation="include">
        </childnode>
        <childnode refid="25" relation="include">
        </childnode>
        <childnode refid="26" relation="include">
        </childnode>
        <childnode refid="27" relation="include">
        </childnode>
        <childnode refid="28" relation="include">
        </childnode>
        <childnode refid="29" relation="include">
        </childnode>
        <childnode refid="30" relation="include">
        </childnode>
        <childnode refid="31" relation="include">
        </childnode>
        <childnode refid="32" relation="include">
        </childnode>
      </node>
      <node id="23">
        <label>memcpy.h</label>
        <link refid="memcpy_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="25">
        <label>partition.h</label>
        <link refid="partition_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="29">
        <label>random.h</label>
        <link refid="random_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="16">
        <label>hashmap.h</label>
        <link refid="hashmap_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="24">
        <label>net.h</label>
        <link refid="net_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="20">
        <label>interrupt.h</label>
        <link refid="interrupt_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="1">
        <label>kmalloc.h</label>
        <link refid="kmalloc_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="26">
        <label>pci.h</label>
        <link refid="pci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="4">
        <label>ahci.h</label>
        <link refid="ahci_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="9">
        <label>dhcp.h</label>
        <link refid="dhcp_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
      <node id="7">
        <label>clock.h</label>
        <link refid="clock_8h"/>
        <childnode refid="2" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
    <innerclass refid="structheader__t" prot="public">header_t</innerclass>
    <innerclass refid="structfooter__t" prot="public">footer_t</innerclass>
    <innerclass refid="structheap__t" prot="public">heap_t</innerclass>
      <sectiondef kind="define">
      <memberdef kind="define" id="kmalloc_8h_1a604474f5c0892ea2c6c16b5e45c59f59" prot="public" static="no">
        <name>HEAP_MAGIC</name>
        <initializer>0xDEADDEADDEADDEADull</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="14" column="9" bodyfile="include/kmalloc.h" bodystart="14" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="kmalloc_8h_1aa6bcd5af56ca7ffbc761b010cbd70e39" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* kmalloc</definition>
        <argsstring>(uint64_t size)</argsstring>
        <name>kmalloc</name>
        <param>
          <type>uint64_t</type>
          <declname>size</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="53" column="6" declfile="include/kmalloc.h" declline="53" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1adc6f21bbda2c71015c428920cf785abd" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* kmalloc_ext</definition>
        <argsstring>(uint64_t size, uint8_t align, uint64_t *phys)</argsstring>
        <name>kmalloc_ext</name>
        <param>
          <type>uint64_t</type>
          <declname>size</declname>
        </param>
        <param>
          <type>uint8_t</type>
          <declname>align</declname>
        </param>
        <param>
          <type>uint64_t *</type>
          <declname>phys</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="54" column="6" declfile="include/kmalloc.h" declline="54" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1ab78be9148ec4aacde543a359c126cba0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void kfree</definition>
        <argsstring>(const void *addr)</argsstring>
        <name>kfree</name>
        <param>
          <type>const void *</type>
          <declname>addr</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="55" column="6" declfile="include/kmalloc.h" declline="55" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1aba7ce08189c188afd939c2228c320421" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="structheap__t" kindref="compound">heap_t</ref> *</type>
        <definition>heap_t* create_heap</definition>
        <argsstring>(uint64_t addr, uint64_t end, uint64_t max, uint64_t min, uint8_t user, uint8_t rw)</argsstring>
        <name>create_heap</name>
        <param>
          <type>uint64_t</type>
          <declname>addr</declname>
        </param>
        <param>
          <type>uint64_t</type>
          <declname>end</declname>
        </param>
        <param>
          <type>uint64_t</type>
          <declname>max</declname>
        </param>
        <param>
          <type>uint64_t</type>
          <declname>min</declname>
        </param>
        <param>
          <type>uint8_t</type>
          <declname>user</declname>
        </param>
        <param>
          <type>uint8_t</type>
          <declname>rw</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="56" column="7" declfile="include/kmalloc.h" declline="56" declcolumn="7"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1a632fb5550678e7d65db823fb1adc2dd9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void init_heap</definition>
        <argsstring>()</argsstring>
        <name>init_heap</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="57" column="6" declfile="include/kmalloc.h" declline="57" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1a56ae8e632dd1a93d76e4a9b9f265f3a2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void print_heapinfo</definition>
        <argsstring>()</argsstring>
        <name>print_heapinfo</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="58" column="6" declfile="include/kmalloc.h" declline="58" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1a48ed44cd60d7dd25dc396e20739a3a84" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void preboot_fail</definition>
        <argsstring>(const char *msg)</argsstring>
        <name>preboot_fail</name>
        <param>
          <type>const char *</type>
          <declname>msg</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="59" column="6" declfile="include/kmalloc.h" declline="59" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1a4af91afe377146f47af63dac6fb93fb9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* kcalloc</definition>
        <argsstring>(size_t num, size_t size)</argsstring>
        <name>kcalloc</name>
        <param>
          <type>size_t</type>
          <declname>num</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>size</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="60" column="6" declfile="include/kmalloc.h" declline="60" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1aece282b3071af855886669942d53537a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void *</type>
        <definition>void* krealloc</definition>
        <argsstring>(void *ptr, size_t new_size)</argsstring>
        <name>krealloc</name>
        <param>
          <type>void *</type>
          <declname>ptr</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>new_size</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="61" column="6" declfile="include/kmalloc.h" declline="61" declcolumn="6"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1a2ae41a466ab6ea275ca1ebae81b56945" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>uint32_t</type>
        <definition>uint32_t kmalloc_low</definition>
        <argsstring>(uint32_t size)</argsstring>
        <name>kmalloc_low</name>
        <param>
          <type>uint32_t</type>
          <declname>size</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="62" column="10" declfile="include/kmalloc.h" declline="62" declcolumn="10"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1ab1204bd1ce4097b381452452445b75f4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>uint64_t</type>
        <definition>uint64_t get_free_memory</definition>
        <argsstring>()</argsstring>
        <name>get_free_memory</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="63" column="10" declfile="include/kmalloc.h" declline="63" declcolumn="10"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1a3637eb65ed827e7cba29a4dc57273a37" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>uint64_t</type>
        <definition>uint64_t get_used_memory</definition>
        <argsstring>()</argsstring>
        <name>get_used_memory</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="64" column="10" declfile="include/kmalloc.h" declline="64" declcolumn="10"/>
      </memberdef>
      <memberdef kind="function" id="kmalloc_8h_1a9227ee8bcad10a2503376915463f28b5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>uint64_t</type>
        <definition>uint64_t get_total_memory</definition>
        <argsstring>()</argsstring>
        <name>get_total_memory</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/kmalloc.h" line="65" column="10" declfile="include/kmalloc.h" declline="65" declcolumn="10"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para><simplesect kind="author"><para>Craig Edwards (<ulink url="mailto:craigedwards@brainbox.cc">craigedwards@brainbox.cc</ulink>) </para>
</simplesect>
<simplesect kind="copyright"><para>Copyright (c) 2012-2023 </para>
</simplesect>
</para>
    </detaileddescription>
    <location file="include/kmalloc.h"/>
  </compounddef>
</doxygen>
