Commit Graph

816 Commits

Author SHA1 Message Date
Anas Nashif
6e1fbd98d0 doc: move c library section to subsystems
Also reorder subsystems alphabetically.

Change-Id: Ie76588d0b662c634f770530462f7ad77ffcbba62
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-03 17:31:58 +00:00
Anas Nashif
8c43544e1b doc: move ztest to subsystems
Change-Id: Ia8078625d504c17ef63044c2f71067a7c080adf6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-03 17:31:57 +00:00
Flavio Santes
ac7300611c net: Restructure network protocols
This commit restructures the network protocols. Changes applied are:

- Move lib/iot/ to subsys/net/lib
- Move network protocol headers to include/net
- Move lib/iot/zoap/link-format.h to include/net/zoap_link_format.h
  and link-format.c to zoap_link_format.c
- Move tests/iot/ to tests/net/lib/
- Adapt sample code
- Adapt build system
- Modify doxygen paths

Change-Id: I37085fa4cc76a8a8e19a499ecb4e87b451120349
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
2017-01-02 10:03:19 +01:00
Anas Nashif
7297f5db88 shell: move shell to its own subsystem
This moves the shell component into its own subsys and groups all
related files and options into a single place.

Additionally, one Kconfig option will now be required to enable the
shell:

 CONFIG_CONSOLE_SHELL=y

The header files was also moved to include/shell/shell.h and can be now
referenced with

 #include <shell/shell.h>

instead of

 #include <misc/shell.h>

Updated documentation as well.

Change-Id: Iffbba4acfa05408055e9fd28dffa213451351f94
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-25 19:35:11 +00:00
Anas Nashif
46fa5384aa doc: Fix layout of the shell documentation
Change-Id: I51613070cd1e8bc664212f33d985a6ecd217cee6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-25 14:34:43 -05:00
Anas Nashif
fad7e2dd8d logging: move event_logger to subsys/logging
Jira: ZEP-1337
Change-Id: If1690e19a882cf53caaa3418ccabeb49c783f63d
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-25 14:34:43 -05:00
Marcus Shawcroft
4127775bcf random: Introduce random device API.
Introduce random device API analgous to other device driver classes in
Zephyr.  Modify the the KSDK random driver to implement the API.

We retain the sys_rand32_get() interface for now on the assumption it
will eventually relocate to or be otherwise replaced by an entropy
management system.

The existing TEST_RANDOM_GENERATOR related drivers that do not
generate entropy are not modified to expose this driver API since they
cannot generate entropy.

Change-Id: I60b2d5afddf242e802a1d9014c99579870fb7472
Signed-off-by: Marcus Shawcroft <marcus.shawcroft@arm.com>
2016-12-24 16:40:11 +00:00
Anas Nashif
88be4835f0 doc: make output directory overridable
Change-Id: I81b0a2935e3c294908078c7188a9900968b55bb1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 13:13:31 +00:00
Anas Nashif
9f52ee6354 doc: use ReadTheDocs.org theme if available
Instead of including the rtd theme in zephyr use an installed instance,
if nothing is installed, use the default zephyr theme.

Change-Id: Ife4bd878e3f879cf59ecf2bc5d186a531a3bf1b6
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 13:12:59 +00:00
Anas Nashif
762bd85807 doc: read version from Makefile
Change-Id: I6edb5ee53cdff1c687e97663c93ddaa3b09a9288
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:18 +00:00
Anas Nashif
ae6f8785cd doc: group logging features under subsystem/
Change-Id: Ia2d03e64071523086a693cd8627dcea223ff9b90
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:18 +00:00
Anas Nashif
7cb8a16c86 doc: restructure application primer
Merge build system and application primer into one and put
all in one file to make it easier to follow.

Jira: ZEP-686
Change-Id: I64ec7ef7a6aa2ad80496ca0ee3ddc3d7fe09a5d7
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:17 +00:00
Anas Nashif
ebe9771d02 doc: move kernel_v2 to kernel
Change-Id: I6caa94bc1a3d1986966652cd0a24bf22f3697481
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-24 01:53:16 +00:00
Paul Sokolovsky
144316c05c doc/porting/arch.rst: Typo fix.
Change-Id: I2afeaf4cc74bff28cced419de16f9d51d46d6639
Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2016-12-22 13:50:43 +03:00
Anas Nashif
367bf7c175 doc: remove device_sync_call documentation
This is obsolete and not available anymore in the unified kernel.

Change-Id: I39f6afd5285a2286fe954bd8dc501f888d0d9003
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-21 13:53:12 +00:00
Evan Couzens
371e435cae doc: Add environment variables to getting_started.rst
Add GCCARMEMB_TOOLCHAIN_PATH and ZEPHYR_GCC_VARIANT to
getting_started.rst per ZEP-1027

Change-Id: Ia73697c66562e02a6d93afdac6cc92e327189abe
Signed-off-by: Evan Couzens <evanx.couzens@intel.com>
2016-12-20 21:42:17 +00:00
Anas Nashif
175f63e0f9 doc: add note about order of SDK installation
Jira: ZEP-1479
Change-Id: Ie3f7eb1e7ce8f245f1e54193a30a52cf552315cd
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-20 13:31:38 -05:00
Anas Nashif
40b7183326 kernel: fixed description of THREAD_CUSTOM_DATA
Change-Id: I63ebfc6b7cf869d7a00ccbe4f20eca8060edaf43
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-19 19:58:42 +00:00
Anas Nashif
a9e879e273 logging: move sys_log to subsys/logging
Move logging out of misc/ to its own subsystem. Anything related to
logging and any new logging features or backends could be added here
instead of the generic location in misc/ which is overcrowded with
options that are not related to eachother.

Jira: ZEP-1467
Change-Id: If6a3ea625c3a3562a7a61a0ba5fd7e6ca75518ba
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-19 19:58:39 +00:00
Anas Nashif
affd58a50c doc: rename shell section to simply: Shell
Change-Id: I5152f6ddc1bfd96939fb89efcf96686c44c0d626
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-19 19:58:39 +00:00
Benjamin Walsh
8053024752 doc: update architecture porting guide to unified kernel
Change-Id: I065cc6f92e13275d993ab6ebf9dabd855b9356c9
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-12-17 22:44:46 +00:00
Benjamin Walsh
c3a2bbba16 kernel: add k_cpu_idle/k_cpu_atomic_idle()
nano_cpu_idle/nano_cpu_atomic_idle were not ported to the unified
kernel, and only the old APIs were available. There was no real impact
since, in the unified kernel, only the idle thread should really be
doing power management. However, with a single-threaded kernel, these
functions can be useful again.

The kernel internals now make use of these APIs instead of the legacy
ones.

Change-Id: Ie8a6396ba378d3ddda27b8dd32fa4711bf53eb36
Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
2016-12-15 16:17:38 -05:00
Johan Hedberg
692771fbe9 net: buf: Switch from k_fifo to k_lifo for free buffers
Using a LIFO instead of a FIFO has the potential benefit that more
recently in-use buffers may be "cache-hot" and therefore accessed
faster than least recently used (which is what we get with a FIFO).

Change-Id: I59bb083ca2e00d0d404406540f7db216742a27cf
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-12-15 12:06:22 +02:00
Johan Hedberg
71c7c01819 net: buf: Remove the need for net_buf_pool_init()
In order to keep the initialization process light-weight, remove
net_buf_pool_init() and instead perform the initialization of the pool
and buffers in a "lazy" manner. This means storing more information
in the pool, and removing any 'const' members from net_buf. Since
there are no more const members in net_buf the buffer array can be
declared with __noinit, which further reduces initialization overhead.

Change-Id: Ia126af101c2727c130651b697dcba99d159a1c76
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-12-15 09:58:02 +02:00
Johan Hedberg
c3e08c8fea net: buf: Redesigned pool & buffer allocation API
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>
2016-12-13 21:41:53 +00:00
Johan Hedberg
fc21a76db6 net: Fix incorrect logging format specifiers
Fix compilation issues that show up if SYS_LOG is mapped to printk
instead of printf. Unlike printf, printk is annotated so that the
compiler catches incorrect format specifiers passed to it.

Change-Id: Iab7cc6da110e9c98720211a6f773dcf055a3a411
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-12-07 13:15:58 +00:00
Anas Nashif
d7f8b3e239 doc: adapt source tree for new structure
Change-Id: I5d0ccb0582399faaf7550c1c49308058cd2220f1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-07 13:03:51 +00:00
Anas Nashif
70f9244db7 Merge "Merge net branch into master" 2016-12-05 15:56:26 +00:00
Anas Nashif
93279c0515 doc: add link to 1.6 documentation
Change-Id: I124cc64176b1cc5e115e29721066b463cd5df0fd
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-12-03 22:01:47 +00:00
Jukka Rissanen
5ad60c8ee6 doc: net: Fix the path and description of the IP stack
As the Contiki uIP stack is no more there remove any reference
to it. The path to IP stack is also set correctly.

Change-Id: Ia2e10514f173cf8083d6dd258111a901987bd038
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:41:20 +02:00
Tomasz Bursztyka
66caf36a96 doc: Add a Network Management API usage document
This doc goes through how to request something, or listen to a network
event. As well as it describes how to create a request handler and how
to throw a network event.

Change-Id: I07cc6d22a14e7f1a0f239f97982c984fd13379d6
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2016-12-02 12:40:57 +02:00
Jukka Rissanen
5f3f331d48 net: Adapt to new behavior of net_buf_frag_add v2
This change is related to patch called
"net: Adapt to new behavior of net_buf_frag_add"

This version removes extra net_nbuf_unref() from
the code. The unref was done because net_buf_frag_del()
did not remove the double ref from the list element.

Because of the other patch, the list does not have
double ref any more, so we need to remove the extra
unref in couple of extra places.

Change-Id: If90e01c24b9b4e68afbfa283850d2a1ecb3065ed
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:54 +02:00
Jukka Rissanen
985ea03bf0 net: User connectivity API documentation
Explain how to use net_context connectivity API.

Change-Id: Ifa57af3e05ca424dfbd30a17608a1dd59646caf9
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:27 +02:00
Jukka Rissanen
f5a04ec642 net: Initial architecture documentation
This document describes the network stack architecture of the
new IP stack.

Change-Id: I19f7c77c66115e6453bcde0d41bb7cada3efc5e1
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2016-12-02 12:40:26 +02:00
Ramesh Thomas
fc5475fc46 doc: power_mgmt: Update PM doc with latest changes
Revise the document to reflect the latest changes including
the updated concept of SOC interface instead of PMA. Simplified
and enhanced areas that were known to cause confusion. Added
descriptions of new APIs and usages.

Jira: ZEP-1386
Change-Id: I5fa74d85245924f512c22d9d977dd0c9ea62b6ce
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
2016-11-30 23:54:42 +00:00
Mahavir Jain
02036c85fb doc: fix ring_buffer code snippet
Change-Id: I5c1b08aea675ae9a9f636a1e8f0de5684dc403de
Signed-off-by: Mahavir Jain <mjain@marvell.com>
2016-11-22 21:09:13 +05:30
Anas Nashif
9f884155ab Merge "Merge bluetooth branch into master" 2016-11-19 01:52:15 +00:00
Allan Stephens
d7b355b865 doc: Revise kernel event logger documentation
Makes the purpose and capabilities of the kernel event logger
clearer, and leaves much of the low-level detail relating to
use of the configuration options and APIs to the configuration
option guide and API guide, respectively. Also corrects some
bugs in the example code for retrieving event information.

Also updates the API guide to make a clear distinction between
the general purpose event logger framework and the kernel event
logger (which is a specific instance of this framework).

Change-Id: I924f65092b2b0e5050af13376b5da85a6cdc1a65
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 23:17:51 +00:00
Johan Hedberg
7d3a6a1ae5 Bluetooth: doc: Fix reference to documentation location
The Bluetooth documentation is found in doc/subsystems/bluetooth and
not in doc/bluetooth.

Change-Id: I7e7010b5ae4a26ea552d75f1a095baec18d02630
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-11-18 07:47:50 +02:00
Allan Stephens
c2f15a4525 doc: Add descriptions for clock-related helper macros
Also fixes up Kernel Primer examples to use these macros.

Change-Id: Ib1bc9e3f85ab75f81986bc3930fb287266a886b5
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 02:31:35 +00:00
Allan Stephens
56daa20345 doc: Revise timer example to use workqueue instead of alert
Rewrites the example of a timer's expiry routine offloading
processing that can't be done at interrupt level. The example
now submits work to the system workqueue directly, rather than
using an alert. This saves footprint by eliminating the need
for alert-related API support that isn't needed. (This is a
true savings, since the alert code just called the same
workqueue APIs the example now calls directly.)

Change-Id: I378e40aef33014f2c75c4f57531f75247d50e479
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 02:31:34 +00:00
Allan Stephens
3acb1c97a3 doc: Enable Kernel Primer links to macro-type APIs
Also adds a link to function-type API that was missing.

Change-Id: Ie671ad2f239cdca3ac1a2eb33248dfecfa251c79
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-18 02:31:31 +00:00
Allan Stephens
ac4a351ba9 kernel: Enhance naming of memory pool configuration options
Replaces confusing (and excessively long) configuration option
names with more intuitive names. Also enhances the description
of each option to clarify its use.

Change-Id: If4d4541407627482b1e90302cfc9df3bc8130d44
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-16 21:43:17 +00:00
Allan Stephens
436094023e doc: Incorporate kernel APIs into API documentation guide
Change-Id: Ib5e5aa14534af4789d8247e6096913e09731f5bb
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-16 21:43:17 +00:00
Allan Stephens
d423cd3c0f doc: Various corrections to Kernel Primer
* Ensures all references to kernel functions are correctly
  tagged so they will auto-link to the API guide.

* Adds references to a few functions and macros that were
  omitted.

Change-Id: I26ccd9c29ea123db2807f2df4d05d574932c6849
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-16 21:43:16 +00:00
Daniel Thompson
560afde9c3 build: Document outputexports
In addition to providing documentaton, we also modify the static_lib
example to use outputexports instead of the double-include
Makefile.toolchain trick. For this to work well we need to fix a tiny
bug in the dependency handling in Makefile.inc.

Change-Id: I6571bc681bc34155f37cff1eccc2ea12ed52ef07
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
2016-11-12 02:08:08 +00:00
Allan Stephens
da82722534 doc: Minor corrections to kernel API documentation
Addresses a range of issues affecting the Kernel Primer or
the API Guide generated from doxygen tags.

* Ensures mailbox examples use kernel APIs correctly.
  (Fix for ZEP-1262, as well as other errors).

* Ensures memory alignment limitations for memory slabs
  are correctly described. (Fix for ZEP-1265.)

* Ensures memory alignment limitations for memory pools
  are more clearly described. Also fixes a typo in a
  memory pool example.

* Ensures memory alignment limitations for message
  queues are more clearly described.

* Fixes references to a number of kernel configuration
  options that were omitted or incorrectly formatted.

* Fixes a typo in an example of thread spawning.

Change-Id: I395186f333490b1e0c4223b87c0fe7136548770f
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-11 22:13:32 +00:00
Allan Stephens
add6e00ac7 doc: Add workqueue information to Kernel Primer
Change-Id: I1e694dafc11f55ea4f944571ec960eee8189c703
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
2016-11-11 22:13:31 +00:00
Johan Hedberg
c73aee2cfe Bluetooth: doc: Remove mentions of legacy kernel concepts
Remove mentions of task & fiber from the description of using the
bt_enable() API.

Change-Id: Ia86a2396e5ce286cc7f9a1c183b4c98abf09d394
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-11-11 11:24:35 +02:00
Inaky Perez-Gonzalez
dbe30711fd LICENSING: clarify licenses of imported / reused code
The Zephyr kernel tree has imported or reuses packages, scripts that
are not covered by the Apache LICENSE.

As in some places it is not clear (there is no LICENSE file or way to
put it there), here we list them to ensure there is proper license
acknowledgement.

This is an initial proposal--I welcome feedback on everything,
especially where to link the documentation (kind of kludgy now) and
more missed components from this initial list.

v5: Added David Kinder's feedback

v4: Fixed more typos in Makefile

v3: fixed some more typos, but still holding on to feedback on how it
can be done with SPDX files, as it is not yet all clear to me.

Jira: ZEP-1079
Change-Id: Ie1bf545e26b0d304cd3ea0d70cdfc13d520197fe
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-11-11 01:36:14 +00:00