Home
last modified time | relevance | path

Searched full:atomic (Results 1 – 25 of 317) sorted by relevance

12345678910>>...13

/Zephyr-latest/doc/kernel/services/other/
Datomic.rst3 Atomic Services
6 An :dfn:`atomic variable` is one that can be read and modified
17 Any number of atomic variables can be defined (limited only by available RAM).
19 Using the kernel's atomic APIs to manipulate an atomic variable
23 The kernel also supports the atomic manipulation of a single bit
24 in an array of atomic variables.
29 Defining an Atomic Variable
32 An atomic variable is defined using a variable of type :c:type:`atomic_t`.
34 By default an atomic variable is initialized to zero. However, it can be given
41 Manipulating an Atomic Variable
[all …]
/Zephyr-latest/include/zephyr/sys/
Datomic.h32 /* Not all Xtensa toolchains support GCC-style atomic intrinsics */
46 * @defgroup atomic_apis Atomic Services APIs
52 * @brief Initialize an atomic variable.
54 * This macro can be used to initialize an atomic variable. For example,
57 * @param i Value to assign to atomic variable.
62 * @brief Initialize an atomic pointer variable.
64 * This macro can be used to initialize an atomic pointer variable. For
68 * @param p Pointer value to assign to atomic pointer variable.
85 * @brief This macro computes the number of atomic variables necessary to
93 * @brief Define an array of atomic variables.
[all …]
Datomic_builtin.h1 /* atomic operations */
21 /* Included from <atomic.h> */
72 * test-and-set operation, but rather an atomic exchange operation. It in atomic_set()
Datomic_arch.h14 /* Included from <atomic.h> */
16 /* Arch specific atomic primitives */
Datomic_c.h10 /* Included from <atomic.h> */
16 /* Simple and correct (but very slow) implementation of atomic
Dmutex.h15 * with simple atomic ops instead of syscalls, similar to Linux's
24 #include <zephyr/sys/atomic.h>
30 * that can be locked/unlocked with atomic ops if there is no
/Zephyr-latest/kernel/
Datomic_c.c9 * @file Atomic ops in pure C
11 * This module provides the atomic operators for processors
12 * which do not support native atomic operations.
14 * The atomic operations are guaranteed to be atomic with respect
18 * (originally from x86's atomic.c)
24 #include <zephyr/sys/atomic.h>
27 /* Single global spinlock for atomic operations. This is fallback
34 /* For those rare CPUs which support user mode, but not native atomic
35 * operations, the best we can do for them is implement the atomic
63 * @brief Atomic compare-and-set primitive
[all …]
/Zephyr-latest/modules/hal_nordic/nrfx/
Dnrfx_glue.h18 #include <zephyr/sys/atomic.h>
155 /** @brief Atomic 32-bit unsigned type. */
159 * @brief Macro for storing a value to an atomic object and returning its previous value.
161 * @param[in] p_data Atomic memory pointer.
164 * @return Previous value of the atomic object.
169 …* @brief Macro for running a bitwise OR operation on an atomic object and returning its previous v…
171 * @param[in] p_data Atomic memory pointer.
174 * @return Previous value of the atomic object.
179 * @brief Macro for running a bitwise AND operation on an atomic object
182 * @param[in] p_data Atomic memory pointer.
[all …]
/Zephyr-latest/tests/kernel/common/src/
Datomic.c8 #include <zephyr/sys/atomic.h>
14 /* an example of the number of atomic bit in an array */
36 * @brief Verify atomic functionalities
39 * - Test the function of the atomic operation API is correct.
53 * -# Call the API interface of the following atomic operations in turn,
97 ZTEST_USER(atomic, test_atomic) in ZTEST_USER() argument
284 "Failed to set a single bit in an array of atomic variables"); in ZTEST_USER()
287 "Failed to clear a single bit in an array of atomic variables"); in ZTEST_USER()
306 * @brief Verify atomic operation with threads
309 * atomically access the same atomic value. Because these preempt
[all …]
/Zephyr-latest/tests/arch/riscv/atomic/src/
Dmain.c7 #include <zephyr/sys/atomic.h>
8 #include <zephyr/arch/riscv/atomic.h>
11 * @brief Verify RISC-V specific atomic functionalities
14 * - Test if the RISC-V atomic instructions API is correct.
17 * - Call the API interface of the following atomic operations in turn,
/Zephyr-latest/include/zephyr/arch/xtensa/
Datomic_xtensa.h9 /* Included from <zephyr/sys/atomic.h> */
26 * atomic write ops have exchange semantics. in atomic_get()
34 * @brief Xtensa specific atomic compare-and-set (CAS).
36 * @param addr Address of atomic variable.
41 * perform compare-and-set atomic operation. This will
42 * unconditionally read from the atomic variable at @p addr
76 /* Generates an atomic exchange sequence that swaps the value at
/Zephyr-latest/soc/common/riscv-privileged/
Dsoc_common_irq.c65 * CSR mie register is updated using atomic instruction csrrs in arch_irq_enable()
66 * (atomic read and set bits in CSR register) in arch_irq_enable()
85 * Use atomic instruction csrrc to disable device interrupt in mie CSR. in arch_irq_disable()
86 * (atomic read and clear bits in CSR register) in arch_irq_disable()
/Zephyr-latest/drivers/disk/nvme/
Dnvme_namespace.h54 /** Namespace Atomic Write Unit Normal */
57 /** Namespace Atomic Write Unit Power Fail */
60 /** Namespace Atomic Compare & Write Unit */
63 /** Namespace Atomic Boundary Size Normal */
66 /** Namespace Atomic Boundary Offset */
69 /** Namespace Atomic Boundary Size Power Fail */
/Zephyr-latest/include/zephyr/sip_svc/
Dsip_svc_controller.h16 #include <zephyr/sys/atomic.h>
25 * @brief Open lock states in sip_svc atomic variable
86 /* Atomic variable to restrict one client access */
/Zephyr-latest/tests/arch/riscv/atomic/
Dtestcase.yaml2 arch.riscv.atomic:
/Zephyr-latest/drivers/interrupt_controller/
Dintc_swerv_pic.c202 * CSR mie register is updated using atomic instruction csrrs in arch_irq_enable()
203 * (atomic read and set bits in CSR register) in arch_irq_enable()
220 * Use atomic instruction csrrc to disable device interrupt in mie CSR. in arch_irq_disable()
221 * (atomic read and clear bits in CSR register) in arch_irq_disable()
/Zephyr-latest/doc/kernel/data_structures/
Dspsc_lockfree.rst7 atomic ring buffer based queue.
Dmpsc_lockfree.rst7 intrusive queue based on atomic pointer swaps as described by Dmitry Vyukov
/Zephyr-latest/tests/kernel/common/
DCMakeLists.txt13 src/atomic.c
/Zephyr-latest/soc/neorv32/
DKconfig.soc16 - A (Atomic Instructions)
/Zephyr-latest/kernel/include/
Dipi.h12 #include <zephyr/sys/atomic.h>
/Zephyr-latest/drivers/ipm/
Dipm_sedi.h14 #include <zephyr/sys/atomic.h>
/Zephyr-latest/include/zephyr/modem/backend/
Dtty.h11 #include <zephyr/sys/atomic.h>
/Zephyr-latest/arch/sparc/
DKconfig38 Use CASA atomic instructions. Defined by SPARC V9 and available
/Zephyr-latest/include/zephyr/arch/riscv/
Datomic.h13 /* The standard RISC-V atomic-instruction extension, "A", specifies
17 * atomic-instructions not present in atomic_builtin.h file.

12345678910>>...13