c3e08c8fea
Until now it has been necessary to separately define a k_fifo and an array of buffers when creating net_buf pools. This has been a bit of an inconvenience as well as blurred the line of what exactly constitutes the "pool". This patch removes the NET_BUF_POOL() macro and replaces it with a NET_BUF_POOL_DEFINE() macro that internally expands into the buffer array and new net_buf_pool struct with a given name: NET_BUF_POOL_DEFINE(pool_name, ...); Having a dedicated context struct for the pool has the added benefit that we can start moving there net_buf members that have the same value for all buffers from the same pool. The first such member that gets moved is the destroy callback, thus shrinking net_buf by four bytes. Another potential candidate is the user_data_size, however right not that's left out since it would just leave 2 bytes of padding in net_buf (i.e. not influence its size). Another common value is buf->size, however that one is also used by net_buf_simple and can therefore not be moved. This patch also splits getting buffers from a FIFO and allocating a new buffer from a pool into two separate APIs: net_buf_get and net_buf_alloc, thus simplifying the APIs and their usage. There is no separate 'reserve_head' parameter anymore when allocating, rather the user is expected to call net_buf_reserve() afterwards if something else than 0 headroom is desired. Change-Id: Id91b1e5c2be2deb1274dde47f5edebfe29af383a Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> |
||
---|---|---|
.. | ||
api | ||
application | ||
board | ||
contribute | ||
crypto | ||
drivers | ||
getting_started | ||
introduction | ||
kernel_v2 | ||
porting | ||
reference | ||
scripts/genrest | ||
subsystems | ||
themes/zephyr | ||
LICENSING.rst | ||
Makefile | ||
README.rst | ||
conf.py | ||
doxygen.config | ||
index.rst |
README.rst
:orphan: Welcome to Zephyr Kernel ######################## .. This document is in Restructured Text Format. Find more information regarding the ReST markup in the `ReST documentation`_. This is a comment that won't show up in formatted output Welcome to the Zephyr Project. Thank you for your interest in the Zephyr Project. These instructions are designed to walk you through generating the Zephyr Project's documentation. Documentation Notes ******************* The project's documentation currently comprises the following items: * An Installation Guide for Linux host systems * A set of Collaboration Guidelines for the project. * Doxygen output from the code base for all APIs. Installing the documentation processors *************************************** Install the current version of ``Sphinx``, type: .. code-block:: bash $ git clone https://github.com/sphinx-doc/sphinx.git sphinx $ cd sphinx $ sudo -E python setup.py install $ cd .. $ git clone https://github.com/michaeljones/breathe.git breathe $ cd breathe $ sudo -E python setup.py install .. note:: Make sure that ``Doxygen`` is installed in your system. The installation of Doxygen is beyond the scope of this document. Running the Documentation Generators ************************************ Assuming that the Zephyr Project tree with the doc directory is in ``DIRECTORY``, type: .. code-block:: bash $ cd DIRECTORY/doc $ make doxy html Find the output in ``DIRECTORY/doc/_build/html/index.html`` Review the available formats with: .. code-block:: bash $ make -C DIRECTORY/doc doxy html If you want the LaTeX PDF output, you need to install all the Latex packages first. That installation is beyond the scope of this document. .. _ReST documentation: http://sphinx-doc.org/rest.html