No description
Find a file
Bjarki Arge Andreasen 5c24c79a90 modem: pipe: simplify synchronization
The design of the pipe is overly complicated compared to the
in-tree and planned future use of the pipe module.

The pipe is currently designed to protect against multiple
threads calling any API simultaineously. This is not neccesary
as only one thread ever calls open/close/transmit/receive at
once, while the notification APIs are potentially called by a
different thread.

This commit removes the synchronization of calls to the open/
close/receive/transmit APIs. It also uses a k_event for thread
safe event and state handling instead of a k_mutex and k_condvar.

The callback is proteced by a k_sem as it modified using the
attach/release APIs, which can be called simultaneously to a
thread invoking the callback.

Signed-off-by: Bjarki Arge Andreasen <bjarki@arge-andreasen.me>
2024-06-13 16:43:49 -04:00
.github ci: bsim tests: Move CI steps to separate scripts 2024-06-13 17:52:03 +02:00
arch tests: arm64: exercize MMU page table allocation and recycling 2024-06-13 05:47:24 -04:00
boards boards: nxp: mimxrt1064: Remove display chosen node 2024-06-13 11:11:59 -05:00
cmake cmake: llvm: arm64: Set arm64 flags when building with clang 2024-06-13 17:58:04 +02:00
doc doc: kernel: fix braces in code example 2024-06-13 16:42:04 -04:00
drivers drivers: crypto: make driver API and conf structs const 2024-06-13 16:42:35 -04:00
dts dts: arm: nxp: enable udc DT on lpc55s69, rt1060 and rt685 2024-06-13 17:59:31 +02:00
include/zephyr modem: pipe: simplify synchronization 2024-06-13 16:43:49 -04:00
kernel kernel: mmu: make k_mem_unmap() work with demand paging 2024-06-13 09:22:39 +02:00
lib posix: streams: add stub for missing putpmsg() function 2024-06-13 05:35:31 -04:00
misc
modules drivers: udc: implement udc_mcux_ehci and udc_mcux_ip3511 2024-06-13 17:59:31 +02:00
samples samples: usb: enable next usb device stack samples on NXP platforms 2024-06-13 17:59:31 +02:00
scripts scripts: west: flash: Fix issue with loading outdated domain file 2024-06-13 17:53:00 +02:00
share sysbuild: clear local scope EXTRA_CONF_FILE variable 2024-06-13 17:51:14 +02:00
snippets snippets: add ram-console snippet support 2024-06-12 17:09:24 -05:00
soc soc: silabs: Fix CMake test for soc family 2024-06-13 16:42:50 -04:00
submanifests manifest: optional: Update revision for arch_sched_ipi() 2024-06-04 22:35:54 -04:00
subsys modem: pipe: simplify synchronization 2024-06-13 16:43:49 -04:00
tests llext: tests: fix "mps2/an385/*_mpu" OOM 2024-06-13 16:43:26 -04:00
.checkpatch.conf checkpatch: ignore EXPORT_SYMBOL 2024-04-05 12:19:36 +02:00
.clang-format clang-format: add array-for-each to correct formatting issues 2024-05-28 18:56:24 +02:00
.codecov.yml
.editorconfig
.gitattributes
.gitignore .gitignore: do not ignore .\#* files 2024-06-11 19:44:54 -04:00
.gitlint gitlint: do not allow treewide as an area in commit messages 2024-04-10 09:22:24 +02:00
.mailmap
.yamllint
CMakeLists.txt cmake: Remove dead code from EDK generation 2024-06-11 19:46:42 -04:00
CODE_OF_CONDUCT.md
CODEOWNERS CODEOWNERS: Clean up for STM32 2024-06-12 14:27:48 +03:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr build: namespace the generated headers with zephyr/ 2024-05-28 22:03:55 +02:00
LICENSE
MAINTAINERS.yml MAINTAINERS: Add BT CAP samples to LE audio group 2024-06-13 17:56:58 +02:00
README.rst
SDK_VERSION SDK_VERSION: Use Zephyr SDK 0.16.8 2024-06-04 22:59:31 -04:00
VERSION release: Zephyr v3.6.99 2024-02-23 22:28:57 -06:00
version.h.in version.h.in: Do not use @template@ 2024-05-24 18:05:41 -04:00
west.yml manifest: hal_espressif update 2024-06-13 16:43:07 -04:00
zephyr-env.cmd
zephyr-env.sh

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


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-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

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


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.

.. start_include_here

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

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

.. _project-resources:

Resources
*********

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

Getting Started
---------------

  | 📖 `Zephyr Documentation`_
  | 🚀 `Getting Started Guide`_
  | 🙋🏽 `Tips when asking for help`_
  | 💻 `Code samples`_

Code and Development
--------------------

  | 🌐 `Source Code Repository`_
  | 📦 `Releases`_
  | 🤝 `Contribution Guide`_

Community and Support
---------------------

  | 💬 `Discord Server`_ for real-time community discussions
  | 📧 `User mailing list (users@lists.zephyrproject.org)`_
  | 📧 `Developer mailing list (devel@lists.zephyrproject.org)`_
  | 📬 `Other project mailing lists`_
  | 📚 `Project Wiki`_

Issue Tracking and Security
---------------------------

  | 🐛 `GitHub Issues`_
  | 🔒 `Security documentation`_
  | 🛡️ `Security Advisories Repository`_
  | ⚠️ Report security vulnerabilities at vulnerabilities@zephyrproject.org

Additional Resources
--------------------
  | 🌐 `Zephyr Project Website`_
  | 📺 `Zephyr Tech Talks`_

.. _Zephyr Project Website: https://www.zephyrproject.org
.. _Discord Server: https://chat.zephyrproject.org
.. _supported boards: https://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: https://docs.zephyrproject.org
.. _Introduction to Zephyr: https://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: https://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: https://docs.zephyrproject.org/latest/contribute/index.html
.. _Source Code Repository: https://github.com/zephyrproject-rtos/zephyr
.. _GitHub Issues: https://github.com/zephyrproject-rtos/zephyr/issues
.. _Releases: https://github.com/zephyrproject-rtos/zephyr/releases
.. _Project Wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _User mailing list (users@lists.zephyrproject.org): https://lists.zephyrproject.org/g/users
.. _Developer mailing list (devel@lists.zephyrproject.org): https://lists.zephyrproject.org/g/devel
.. _Other project mailing lists: https://lists.zephyrproject.org/g/main/subgroups
.. _Code samples: https://docs.zephyrproject.org/latest/samples/index.html
.. _Security documentation: https://docs.zephyrproject.org/latest/security/index.html
.. _Security Advisories Repository: https://github.com/zephyrproject-rtos/zephyr/security
.. _Tips when asking for help: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help
.. _Zephyr Tech Talks: https://www.zephyrproject.org/tech-talks