<?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="group__mempool" kind="group"> <compoundname>mempool</compoundname> <title>Memory pools</title> <sectiondef kind="define"> <memberdef kind="define" id="group__mempool_1ga5e2498f6c17746c1fe7153de5f7f275a" prot="public" static="no"> <name>LWIP_MEMPOOL_ALLOC</name> <param><defname>name</defname></param> <initializer><ref refid="memp_8c_1a348c83ee972f1edf7296a1cdf1d75f22" kindref="member">memp_malloc_pool</ref>(&memp_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref>)</initializer> <briefdescription> </briefdescription> <detaileddescription> <para>Allocate from a private memory pool </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/net/memp.h" line="122" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/net/memp.h" bodystart="122" bodyend="-1"/> </memberdef> <memberdef kind="define" id="group__mempool_1ga5b1fb3ce7942432d87cc948b1c5ed6cb" prot="public" static="no"> <name>LWIP_MEMPOOL_DECLARE</name> <param><defname>name</defname></param> <param><defname>num</defname></param> <param><defname>size</defname></param> <param><defname>desc</defname></param> <initializer><ref refid="mem_8c_1aa33f9b7cf221a9cde8fa715a51d3bfc7" kindref="member">LWIP_DECLARE_MEMORY_ALIGNED</ref>(memp_memory_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref> ## _base, ((num) * (<ref refid="memp__priv_8h_1a7f8c378e0581aa2dc491cff52ae4fce2" kindref="member">MEMP_SIZE</ref> + <ref refid="memp__std_8h_1a561ce9de860eb47d034ceeb7eff3b20c" kindref="member">MEMP_ALIGN_SIZE</ref>(size)))); \ \ <ref refid="memp__priv_8h_1a9373cb7cc6e658a60cec6ca57173a72d" kindref="member">LWIP_MEMPOOL_DECLARE_STATS_INSTANCE</ref>(memp_stats_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref>) \ \ static struct <ref refid="structmemp" kindref="compound">memp</ref> *memp_tab_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref>; \ \ <ref refid="cdefs_8h_1a2c212835823e3c54a8ab6d95c652660e" kindref="member">const</ref> struct <ref refid="structmemp__desc" kindref="compound">memp_desc</ref> memp_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref> = { \ <ref refid="memp__priv_8h_1aabec8ab3418486aed704fb8bb933da42" kindref="member">DECLARE_LWIP_MEMPOOL_DESC</ref>(desc) \ <ref refid="memp__priv_8h_1a46723c1d1d900d5f23e5bde91d22d8be" kindref="member">LWIP_MEMPOOL_DECLARE_STATS_REFERENCE</ref>(memp_stats_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref>) \ <ref refid="group__compiler__abstraction_1gaef204be511fd32f681b55abc08e9ae18" kindref="member">LWIP_MEM_ALIGN_SIZE</ref>(size), \ (num), \ memp_memory_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref> ## _base, \ &memp_tab_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref> \ };</initializer> <briefdescription> </briefdescription> <detaileddescription> <para>Declare a private memory pool Private mempools example: .h: only when pool is used in multiple .c files: <ref refid="group__mempool_1ga92fc8c29d0e2654f2a2ecc43b2b7fb13" kindref="member">LWIP_MEMPOOL_PROTOTYPE(my_private_pool)</ref>; .c:<itemizedlist> <listitem><para>in global variables section: LWIP_MEMPOOL_DECLARE(my_private_pool, 10, sizeof(foo), "Some description")</para> </listitem><listitem><para>call ONCE before using pool (e.g. in some init() function): <ref refid="group__mempool_1ga60b51c06d276f525b35d8b7abd4dcb41" kindref="member">LWIP_MEMPOOL_INIT(my_private_pool)</ref>;</para> </listitem><listitem><para>allocate: void* my_new_mem = <ref refid="group__mempool_1ga5e2498f6c17746c1fe7153de5f7f275a" kindref="member">LWIP_MEMPOOL_ALLOC(my_private_pool)</ref>;</para> </listitem><listitem><para>free: <ref refid="group__mempool_1gaa43d114dd702fbd8f1db18474ea93a04" kindref="member">LWIP_MEMPOOL_FREE(my_private_pool, my_new_mem)</ref>;</para> </listitem></itemizedlist> </para> <para>To relocate a pool, declare it as extern in <ref refid="cc_8h" kindref="compound">cc.h</ref>. Example for GCC: extern u8_t <bold>attribute</bold>((section(".onchip_mem"))) memp_memory_my_private_pool[]; </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/net/memp.h" line="95" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/net/memp.h" bodystart="95" bodyend="-1"/> </memberdef> <memberdef kind="define" id="group__mempool_1gaa43d114dd702fbd8f1db18474ea93a04" prot="public" static="no"> <name>LWIP_MEMPOOL_FREE</name> <param><defname>name</defname></param> <param><defname>x</defname></param> <initializer><ref refid="memp_8c_1a62f8c3c907743e34eee3cdac7fa1eaa5" kindref="member">memp_free_pool</ref>(&memp_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref>, (x))</initializer> <briefdescription> </briefdescription> <detaileddescription> <para>Free element from a private memory pool </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/net/memp.h" line="127" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/net/memp.h" bodystart="127" bodyend="-1"/> </memberdef> <memberdef kind="define" id="group__mempool_1ga60b51c06d276f525b35d8b7abd4dcb41" prot="public" static="no"> <name>LWIP_MEMPOOL_INIT</name> <param><defname>name</defname></param> <initializer><ref refid="memp_8c_1a6416303426d05526bed33f241fa6ecd7" kindref="member">memp_init_pool</ref>(&memp_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref>)</initializer> <briefdescription> </briefdescription> <detaileddescription> <para>Initialize a private memory pool </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/net/memp.h" line="117" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/net/memp.h" bodystart="117" bodyend="-1"/> </memberdef> <memberdef kind="define" id="group__mempool_1ga92fc8c29d0e2654f2a2ecc43b2b7fb13" prot="public" static="no"> <name>LWIP_MEMPOOL_PROTOTYPE</name> <param><defname>name</defname></param> <initializer>extern <ref refid="cdefs_8h_1a2c212835823e3c54a8ab6d95c652660e" kindref="member">const</ref> struct <ref refid="structmemp__desc" kindref="compound">memp_desc</ref> memp_ ## <ref refid="pci_8c_1a8f8f80d37794cde9472343e4487ba3eb" kindref="member">name</ref></initializer> <briefdescription> </briefdescription> <detaileddescription> <para>Declare prototype for private memory pool if it is used in multiple files </para> </detaileddescription> <inbodydescription> </inbodydescription> <location file="C:/Dev/git/UbixOS/sys/include/net/memp.h" line="67" column="9" bodyfile="C:/Dev/git/UbixOS/sys/include/net/memp.h" bodystart="67" bodyend="-1"/> </memberdef> </sectiondef> <briefdescription> </briefdescription> <detaileddescription> <para>Custom memory pools </para> </detaileddescription> </compounddef> </doxygen>