Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Go to file
Michael Scott db577f00b1 net: buf: add linearize, append_bytes and skip APIs to net_buf
This change moves the logic for linearize and append_bytes from
the net_pkt sources into the net_buf sources where it can be
made available to layers which to not depend on net_pkt.  It also,
adds a new net_buf_skip() function which can be used to iterated
through a list of net_buf (freeing the buffers as it goes).

For the append_bytes function to be generic in nature, a net_buf
allocator callback was created.  Callers of append_bytes pass in
the callback which determines where the resulting net_buf is
allocated from.

Also, the dst buffer in linearize is now cleared prior to copy
(this was an addition from the code moved from net_pkt).

In order to preserve existing callers, the original functions are
left in the net_pkt layer, but now merely act as wrappers.

Signed-off-by: Michael Scott <mike@foundries.io>
2018-08-06 10:43:46 +03:00
.known-issues doc: known issues: Fix regexes for Windows 2018-07-12 23:11:46 -04:00
arch arm: _FaultShow: fix typo MMFSR -> UFSR 2018-08-03 08:41:22 -05:00
boards native_posix: Add missing headers and function prototypes 2018-08-02 19:14:19 +02:00
cmake cmake: kconfig: Fix broken menuconfig due to misspelling 2018-08-03 18:41:43 +02:00
doc logging: fix runtime filtering initialization 2018-08-02 19:18:05 +02:00
drivers drivers: eth: gmac: Finish 802.1Qav support 2018-08-06 10:37:09 +03:00
dts dts: bindings: add generic yaml description for uart-devices 2018-08-06 10:43:46 +03:00
ext ext: tinycrypt: Update revision 2018-08-02 19:18:58 +02:00
include net: buf: add linearize, append_bytes and skip APIs to net_buf 2018-08-06 10:43:46 +03:00
kernel coverage: kernel: poll: Cleanup redundant code to improve coverage 2018-07-31 20:39:19 -04:00
lib libc: minimal: fix calloc() 2018-08-01 19:40:57 -07:00
misc Kconfig: Clean up some symbol definitions 2018-08-01 12:47:17 -04:00
samples Bluetooth: att: Add option to disable GATT writable name 2018-08-03 10:41:01 +02:00
scripts cmake: kconfig: Fix rerunning cmake after Kconfig warnings 2018-08-02 19:15:26 +02:00
subsys net: buf: add linearize, append_bytes and skip APIs to net_buf 2018-08-06 10:43:46 +03:00
tests tests: net: ethernet_mgmt: Improve and finish Qav testing 2018-08-06 10:37:09 +03:00
.checkpatch.conf
.codecov.yml
.gitattributes
.gitignore doc: update .gitignore file list 2018-06-14 18:01:36 -04:00
.gitlint gitlint: use custom rule for line length violations 2018-02-07 15:28:36 -05:00
.mailmap mailmap: add entry for ruuddw 2018-07-05 09:57:23 -04:00
.shippable.yml ci: handle documentation errors in ci 2018-07-24 19:26:52 -04:00
.uncrustify.cfg scripts: cleanup scripts directory 2018-04-03 09:28:09 -04:00
CMakeLists.txt gen_syscalls.py: do not output data to stdout 2018-07-26 00:53:45 -04:00
CODEOWNERS codeowners: Assign tests/boards/native_posix to aescolar 2018-08-01 12:43:29 -04:00
CONTRIBUTING.rst doc: simplify CONTRIBUTING, merge non-apache 2018-07-26 22:15:49 -04:00
Kconfig
Kconfig.zephyr kconfig: Get rid of 'option env' bounce symbols 2018-05-17 23:55:07 +03:00
LICENSE
Makefile doc: Makefile: Switch to Ninja as a generator 2018-07-19 08:44:41 -04:00
README.rst doc: Correct arch spellings in README.rst 2018-08-02 18:56:08 +02:00
VERSION release: Post-release patch level update 2018-06-11 12:34:01 -05:00
version.h.in
zephyr-env.cmd scripts: create meta-tool package, "west" 2018-05-19 07:01:39 +03:00
zephyr-env.sh

README.rst

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/images/Zephyr-Project.png">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <img
   src="https://api.shippable.com/projects/58ffb2b8baa5e307002e1d79/badge?branch=master">


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM Cortex-M,
Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and a large number of
`supported boards`_.

.. below included in doc/introduction/introduction.rst

.. start_include_here

Getting Started
***************

To start developing Zephyr applications refer to the `Getting Started Guide`_
in the `Zephyr Documentation`_ pages.
A brief introduction to Zephyr can be found in the  `Zephyr Introduction`_
page.

Community Support
*****************

The Zephyr Project Developer Community includes developers from member
organizations and the general community all joining in the development of
software within the Zephyr Project. Members contribute and discuss ideas,
submit bugs and bug fixes, and provide training. They also help those in need
through the community's forums such as mailing lists and IRC channels. Anyone
can join the developer community and the community is always willing to help
its members and the User Community to get the most out of the Zephyr Project.

Welcome to the Zephyr community!

Resources
*********

Here's a quick summary of resources to find your way around the Zephyr Project
support systems:

* **Zephyr Project Website**: The https://zephyrproject.org website is the
  central source of information about the Zephyr Project. On this site, you'll
  find background and current information about the project as well as all the
  relevant links to project material.

* **Releases**: Source code for Zephyr kernel releases are available at
  https://zephyrproject.org/developers/#downloads. On this page,
  you'll find release information, and links to download or clone source
  code from our GitHub repository.  You'll also find links for the Zephyr
  SDK, a moderated collection of tools and libraries used to develop your
  applications.

* **Source Code in GitHub**: Zephyr Project source code is maintained on a
  public GitHub repository at https://github.com/zephyrproject-rtos/zephyr.
  You'll find information about getting access to the repository and how to
  contribute to the project in this `Contribution Guide`_ document.

* **Samples Code**: In addition to the kernel source code, there are also
  many documented `Sample and Demo Code Examples`_ that can help show you
  how to use Zephyr services and subsystems.

* **Documentation**: Extensive Project technical documentation is developed
  along with the Zephyr kernel itself, and can be found at
  http://docs.zephyrproject.org.  Additional documentation is maintained in
  the `Zephyr GitHub wiki`_.

* **Cross-reference**: Source code cross-reference for the Zephyr
  kernel and samples code is available at
  https://elixir.bootlin.com/zephyr/latest/source.

* **Issue Reporting and Tracking**: Requirements and Issue tracking is done in
  the Github issues system: https://github.com/zephyrproject-rtos/zephyr/issues.
  You can browse through the reported issues and submit issues of your own.

* **Security-related Issue Reporting and Tracking**: For security-related
  inquiries or reporting suspected security-related bugs in the Zephyr OS,
  please send email to vulnerabilities@zephyrproject.org.  We will assess and
  fix flaws according to our security policy outlined in the Zephyr Project
  `Security Overview`_.

  Security related issue tracking is done in JIRA.  The location of this JIRA
  is https://zephyrprojectsec.atlassian.net.

* **Mailing List**: The `Zephyr Development mailing list`_ is perhaps the most convenient
  way to track developer discussions and to ask your own support questions to
  the Zephyr project community.  There are also specific `Zephyr mailing list
  subgroups`_ for announcements, builds, marketing, and Technical
  Steering Committee notes, for example.
  You can read through the message archives to follow
  past posts and discussions, a good thing to do to discover more about the
  Zephyr project.

* **IRC Chatting**: You can chat online with the Zephyr project developer
  community and other users in our IRC channel #zephyrproject on the
  freenode.net IRC server. You can use the http://webchat.freenode.net web
  client or use a client-side application such as pidgin.


.. _supported boards: http://docs.zephyrproject.org/boards/boards.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Zephyr Introduction: http://docs.zephyrproject.org/introduction/introducing_zephyr.html
.. _Getting Started Guide: http://docs.zephyrproject.org/getting_started/getting_started.html
.. _Contribution Guide: http://docs.zephyrproject.org/contribute/contribute_guidelines.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/samples/samples.html
.. _Security Overview: http://docs.zephyrproject.org/security/security-overview.html