Go to file
Andrew Boie 38129ce1a6 kernel: fix CONFIG_THREAD_NAME from user mode.
This mechanism had multiple problems:

- Missing parameter documentation strings.
- Multiple calls to k_thread_name_set() from user
  mode would leak memory, since the copied string was never
  freed
- k_thread_name_get() returns memory to user mode
  with no guarantees on whether user mode can actually
  read it; in the case where the string was in thread
  resource pool memory (which happens when k_thread_name_set()
  is called from user mode) it would never be readable.
- There was no test case coverage for these functions
  from user mode.

To properly fix this, thread objects now have a buffer region
reserved specifically for the thread name. Setting the thread
name copies the string into the buffer. Getting the thread name
with k_thread_name_get() still returns a pointer, but the
system call has been removed. A new API k_thread_name_copy()
is introduced to copy the thread name into a destination buffer,
and a system call has been provided for that instead.

We now have full test case coverge for these APIs in both user
and supervisor mode.

Some of the code has been cleaned up to place system call
handler functions in proximity with their implementations.

Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2019-07-01 16:29:45 -07:00
.github/ISSUE_TEMPLATE
.known-issues
arch arc: use different load instruction 2019-07-01 16:29:45 -07:00
boards boards: mimxrt10xx: Add counter to supported list 2019-07-01 11:53:07 -05:00
cmake cmake: use sdk-ng built toolchain for x86_64 2019-06-27 16:08:32 -04:00
doc dts: Rename SW._GPIO_* -> DT_ALIAS_SW._GPIOS_* 2019-07-01 07:14:36 -05:00
drivers drivers: counter: Add NXP MCUX GPT counter driver 2019-07-01 11:53:07 -05:00
dts dts: arm: nxp_rt: Add GPT nodes 2019-07-01 11:53:07 -05:00
ext drivers: counter: Add NXP MCUX GPT counter driver 2019-07-01 11:53:07 -05:00
include kernel: fix CONFIG_THREAD_NAME from user mode. 2019-07-01 16:29:45 -07:00
kernel kernel: fix CONFIG_THREAD_NAME from user mode. 2019-07-01 16:29:45 -07:00
lib lib: os: exclude z_arch_printk_char_out() 2019-06-28 20:04:29 -07:00
misc
modules modules/hal_st: Add stmemsc HAL library 2019-06-26 15:41:40 -04:00
samples samples: net: sock: mgmt: Print IP addresses for each event 2019-07-01 13:50:08 -07:00
scripts scripts: dts: Add extraction of clock frequency for fixed clock 2019-06-28 09:45:35 -05:00
soc soc: nxp: rt: Enable mcux gpt when counter is enabled 2019-07-01 11:53:07 -05:00
subsys net: socket: mgmt: Add setsockopt() and getsockopt() support 2019-07-01 13:50:08 -07:00
tests kernel: fix CONFIG_THREAD_NAME from user mode. 2019-07-01 16:29:45 -07:00
.checkpatch.conf scripts/checkpatch.pl: fix root dir detection and enable it 2019-05-22 12:40:20 -04:00
.clang-format
.codecov.yml
.editorconfig
.gitattributes
.gitignore gitignore: ignore Emacs TAGS file 2019-06-27 07:18:35 -04:00
.gitlint gitlint: match max title length restriction with checkpatch 2019-05-29 14:43:16 -04:00
.mailmap mailmap: Fix entry needing both name and email replace 2019-06-26 13:54:03 -04:00
.shippable.yml ci: move to new docker with new SDK 2019-06-14 09:26:40 -04:00
.uncrustify.cfg
CMakeLists.txt stdint.h: streamline type definitions 2019-06-25 23:29:22 -04:00
CODE_OF_CONDUCT.md
CODEOWNERS CODEOWNERS: update file with new locations 2019-06-27 22:55:49 -04:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr include/: cleanup: add Kconfig for suppressing warnings 2019-06-27 22:55:49 -04:00
LICENSE
Makefile
README.rst
VERSION
version.h.in
west.yml west.yml: Update hal_stm32 to fix I2C_SPEED_FAST redefinition 2019-07-01 19:28:30 -04:00
zephyr-env.cmd
zephyr-env.sh

.. 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
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

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

Community support is provided via mailing lists and Slack; see the Resources
below for details.

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://zephyrproject.org/developers/#downloads
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI
  (shippable) nightly build results.
* **Chat**: Zephyr's Slack workspace is https://zephyrproject.slack.com.  Use
  this `Slack Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Slack Invite: https://tinyurl.com/yarkuemx
.. _supported boards: http://docs.zephyrproject.org/latest/boards
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.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/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/guides/getting-help.html