/Zephyr-latest/modules/littlefs/ |
D | zephyr_lfs_config.h | 5 * SPDX-License-Identifier: BSD-3-Clause 78 /* toolchain-specific implementations. LFS_NO_INTRINSICS falls back to a more */ 81 /* Min/max functions for unsigned 32-bit numbers */ 82 static inline uint32_t lfs_max(uint32_t a, uint32_t b) in lfs_max() argument 84 return (a > b) ? a : b; in lfs_max() 87 static inline uint32_t lfs_min(uint32_t a, uint32_t b) in lfs_min() argument 89 return (a < b) ? a : b; in lfs_min() 92 /* Align to nearest multiple of a size */ 93 static inline uint32_t lfs_aligndown(uint32_t a, uint32_t alignment) in lfs_aligndown() argument 95 return a - (a % alignment); in lfs_aligndown() [all …]
|
/Zephyr-latest/tests/bluetooth/addr/src/ |
D | test_bt_addr_from_str.c | 2 * SPDX-License-Identifier: Apache-2.0 13 bt_addr_t a; in ZTEST() local 15 zassert_equal(bt_addr_from_str(addr_str, &a), -EINVAL); in ZTEST() 21 bt_addr_t a; in ZTEST() local 23 zassert_equal(bt_addr_from_str(addr_str, &a), -EINVAL); in ZTEST() 29 bt_addr_t a; in ZTEST() local 31 zassert_equal(bt_addr_from_str(addr_str, &a), -EINVAL); in ZTEST() 37 bt_addr_t a; in ZTEST() local 39 zassert_equal(bt_addr_from_str(addr_str, &a), -EINVAL); in ZTEST() 45 bt_addr_t a; in ZTEST() local [all …]
|
D | test_bt_addr_le_eq.c | 2 * SPDX-License-Identifier: Apache-2.0 12 bt_addr_le_t a = {.type = 0, .a = {{0, 0, 0, 0, 0, 0}}}; in ZTEST() local 13 bt_addr_le_t b = a; in ZTEST() 15 zassert_true(bt_addr_le_eq(&a, &b)); in ZTEST() 20 bt_addr_le_t a = {.type = 1, .a = {{1, 2, 3, 4, 5, 6}}}; in ZTEST() local 21 bt_addr_le_t b = a; in ZTEST() 23 zassert_true(bt_addr_le_eq(&a, &b)); in ZTEST() 28 bt_addr_le_t a = {.type = 0, .a = {{1, 2, 3, 4, 5, 6}}}; in ZTEST() local 29 bt_addr_le_t b = a; in ZTEST() 31 zassume_true(bt_addr_le_eq(&a, &b)); in ZTEST() [all …]
|
/Zephyr-latest/doc/kernel/data_structures/ |
D | rbtree.rst | 7 a list becomes problematic due to algorithmic costs of searching it. 8 For these situations, Zephyr provides a balanced tree implementation 10 O(log2(N)) for a tree of size N. This is implemented using a 13 The :c:struct:`rbtree` tracking struct for a rbtree may be initialized 18 Unlike a list, where position is explicit, the ordering of nodes 19 within an rbtree must be provided as a predicate function by the user. 20 A function of type :c:func:`rb_lessthan_t` should be assigned to the 23 return a boolean True value if the first node argument is "less than" 25 not allowed, nodes within a tree must have a single fixed order for 29 represented as a :c:struct:`rbnode` structure which exists in [all …]
|
D | dlist.rst | 3 Double-linked List 6 Similar to the single-linked list in many respects, Zephyr includes a 7 double-linked implementation. This provides the same algorithmic 9 constant-time removal and insertion (at all points: before or after 14 A :c:type:`sys_dlist_t` struct may be instantiated by the user in any 22 Primitive operations may retrieve the head/tail of a list and the 23 next/prev pointers of a node with :c:func:`sys_dlist_peek_head`, 29 A dlist can be modified in constant time by removing a node with 30 :c:func:`sys_dlist_remove`, by adding a node to the head or tail of a list 32 inserting a node before an existing node with :c:func:`sys_dlist_insert`. [all …]
|
D | slist.rst | 3 Single-linked List 6 Zephyr provides a :c:type:`sys_slist_t` type for storing simple 7 singly-linked list data (i.e. data where each list element stores a 9 constant-time access to the first (head) and last (tail) elements of 21 The end nodes of a list may be retrieved with 23 return NULL if the list is empty, otherwise a pointer to a 28 usually embedded within a struct which is to be added to the list. 29 The container struct pointer may be retrieved from a list node using 32 :c:type:`sys_snode_t` struct contains only a next pointer, which may be 35 Lists may be modified by adding a single node at the head or tail with [all …]
|
/Zephyr-latest/tests/posix/c_lib_ext/src/ |
D | fnmatch.c | 4 * SPDX-License-Identifier: Apache-2.0 12 * https://git.musl-libc.org/cgit/libc-testsuite/tree/fnmatch.c 20 zassert_equal(fnmatch("*.a", "foo.c", 0), FNM_NOMATCH); in ZTEST() 24 zassert_equal(fnmatch("a\\*.c", "a*.c", FNM_NOESCAPE), FNM_NOMATCH); in ZTEST() 25 zassert_equal(fnmatch("a\\*.c", "ax.c", 0), FNM_NOMATCH); in ZTEST() 26 zassert_ok(fnmatch("a[xy].c", "ax.c", 0)); in ZTEST() 27 zassert_ok(fnmatch("a[!y].c", "ax.c", 0)); in ZTEST() 28 zassert_equal(fnmatch("a[a/z]*.c", "a/x.c", FNM_PATHNAME), FNM_NOMATCH); in ZTEST() 29 zassert_ok(fnmatch("a/*.c", "a/x.c", FNM_PATHNAME)); in ZTEST() 30 zassert_equal(fnmatch("a*.c", "a/x.c", FNM_PATHNAME), FNM_NOMATCH); in ZTEST() [all …]
|
/Zephyr-latest/doc/ |
D | glossary.rst | 12 (Application Program Interface) A defined set of routines and protocols for 16 The set of user-supplied files that the Zephyr build system uses 17 to build an application image for a specified board configuration. 18 It can contain application-specific code, kernel configuration settings, 21 to create a custom kernel that makes efficient use of the board's 25 if it does not require any board-specific capabilities. 28 A binary file that is loaded and executed by the board for which 31 Zephyr kernel code needed to support it. They are compiled as a single, 32 fully-linked binary. 33 Once an application image is loaded onto a board, the image takes control [all …]
|
/Zephyr-latest/doc/kernel/services/data_passing/ |
D | mailboxes.rst | 6 A :dfn:`mailbox` is a kernel object that provides enhanced message queue 7 capabilities that go beyond the capabilities of a message queue object. 8 A mailbox allows threads to send and receive messages of any size 21 A mailbox has the following key properties: 23 * A **send queue** of messages that have been sent but not yet received. 25 * A **receive queue** of threads that are waiting to receive a message. 27 A mailbox must be initialized before it can be used. This sets both of its 30 A mailbox allows threads, but not ISRs, to exchange messages. 31 A thread that sends a message is known as the **sending thread**, 32 while a thread that receives the message is known as the **receiving thread**. [all …]
|
D | fifos.rst | 6 A :dfn:`FIFO` is a kernel object that implements a traditional 20 A FIFO has the following key properties: 22 * A **queue** of data items that have been added but not yet removed. 23 The queue is implemented as a simple linked list. 25 A FIFO must be initialized before it can be used. This sets its queue to empty. 27 FIFO data items must be aligned on a word boundary, as the kernel reserves 28 the first word of an item for use as a pointer to the next data item in 29 the queue. Consequently, a data item that holds N bytes of application 37 data queues. Any attempt to re-add a FIFO data item to a queue before 41 A data item may be **added** to a FIFO by a thread or an ISR. [all …]
|
D | stacks.rst | 6 A :dfn:`stack` is a kernel object that implements a traditional 8 to add and remove a limited number of integer data values. 20 A stack has the following key properties: 22 * A **queue** of integer data values that have been added but not yet removed. 24 and must be aligned on a native word boundary. 28 * A **maximum quantity** of data values that can be queued in the array. 30 A stack must be initialized before it can be used. This sets its queue to empty. 32 A data value can be **added** to a stack by a thread or an ISR. 33 The value is given directly to a waiting thread, if one exists; 38 and prevent attempts to add a data value to a stack that has already reached [all …]
|
/Zephyr-latest/doc/project/ |
D | proposals.rst | 1 .. _feature-tracking: 10 Changes to existing features that are not considered a bug and would not 11 block a release. This is an incremental enhancement to a feature that already 15 A request for the implementation or inclusion of a new unit of functionality 20 A committed and planned unit of functionality with a detailed design and 22 and must be vetted and discussed in the TSC before a target milestone is set. 25 A request or plan to port an existing feature or enhancement to a particular 26 hardware platform. This ranges from porting Zephyr itself to a new 27 architecture, SoC or board to adding an implementation of a peripheral driver 31 A label to group other GitHub issues that are part of a single feature or unit [all …]
|
/Zephyr-latest/include/zephyr/bluetooth/ |
D | addr.h | 8 * SPDX-License-Identifier: Apache-2.0 40 /** Length in bytes of a standard Bluetooth address */ 55 bt_addr_t a; member 64 /** Bluetooth device "any" address, not a valid address */ 66 /** Bluetooth device "none" address, not a valid address */ 68 /** Bluetooth LE device "any" address, not a valid address */ 70 /** Bluetooth LE device "none" address, not a valid address */ 75 * @param a First Bluetooth device address to compare 78 * @return negative value if @a a < @a b, 0 if @a a == @a b, else positive 80 static inline int bt_addr_cmp(const bt_addr_t *a, const bt_addr_t *b) in bt_addr_cmp() argument [all …]
|
/Zephyr-latest/include/zephyr/dt-bindings/gpio/ |
D | digilent-pmod.h | 3 * SPDX-License-Identifier: Apache-2.0 17 * cs-gpios = <&pmod0 PMOD_SPI_CS GPIO_ACTIVE_LOW>; 19 * example_device: example-dev@0 { 20 * compatible = "vnd,spi-device"; 32 * https://digilent.com/reference/_media/reference/pmod/pmod-interface-specification-1_2_0.pdf 38 * @brief IO[n] signal on a Pmod GPIO nexus node following 39 * Pmod Interface Type 1 or 1A (GPIO or expanded GPIO) 43 #define PMOD_IO(n) ((n) - 1) 48 * @brief SPI CS signal index on a Pmod GPIO nexus node. 54 * @brief SPI MOSI signal index on a Pmod GPIO nexus node. [all …]
|
/Zephyr-latest/doc/kernel/services/timing/ |
D | timers.rst | 6 A :dfn:`timer` is a kernel object that measures the passage of time 7 using the kernel's system clock. When a timer's specified time limit 8 is reached it can perform an application-defined action, 22 A timer has the following key properties: 24 * A **duration** specifying the time interval before the timer 25 expires for the first time. This is a :c:type:`k_timeout_t` value that 28 * A **period** specifying the time interval between all timer 29 expirations after the first one, also a :c:type:`k_timeout_t`. It must be 30 non-negative. A period of ``K_NO_WAIT`` (i.e. zero) or 31 ``K_FOREVER`` means that the timer is a one-shot timer that stops [all …]
|
D | clocks.rst | 6 Zephyr provides a robust and scalable timing framework to enable 22 The kernel presents a "cycle" count via the :c:func:`k_cycle_get_32` 25 to present to the user (for example, a CPU cycle counter) and that the 27 application code might use this in a polling manner to achieve maximal 31 platforms is a runtime constant that evaluates to 34 For asynchronous timekeeping, the kernel defines a "ticks" concept. A 42 emulation platforms and legacy drivers using a more traditional 100 Hz 46 ---------- 56 For example: :c:func:`k_ms_to_ticks_ceil32` will convert a 58 a result truncated to 32 bits of precision; and [all …]
|
/Zephyr-latest/include/zephyr/sys/ |
D | slist.h | 4 * SPDX-License-Identifier: Apache-2.0 9 * @defgroup single-linked-list_apis Single-linked list 12 * @brief Single-linked list implementation. 14 * Single-linked list implementation using inline macros/functions. 15 * This API is not thread safe, and thus if a list is used across threads, 38 /** Single-linked list node structure. */ 48 /** Single-linked list structure. */ 52 * @brief Provide the primitive to iterate on a list 63 * @param __sl A pointer on a sys_slist_t to iterate on 64 * @param __sn A sys_snode_t pointer to peek each node of the list [all …]
|
D | atomic.h | 2 * Copyright (c) 1997-2015, Wind River Systems, Inc. 6 * SPDX-License-Identifier: Apache-2.0 24 /* Low-level primitives come in several styles: */ 27 /* Generic-but-slow implementation based on kernel locking and syscalls */ 32 /* Not all Xtensa toolchains support GCC-style atomic intrinsics */ 43 /* Portable higher-level utilities: */ 77 #define ATOMIC_MASK(bit) BIT((unsigned long)(bit) & (ATOMIC_BITS - 1U)) 86 * represent a bitmap with @a num_bits. 96 * @a num_bits bits. 100 * if used from within a function, the bits are left uninitialized. [all …]
|
D | sflist.h | 4 * SPDX-License-Identifier: Apache-2.0 9 * @defgroup flagged-single-linked-list_apis Flagged Single-linked list 12 * @brief Flagged single-linked list implementation. 14 * Similar to @ref single-linked-list_apis with the added ability to define 18 * Flagged single-linked list implementation using inline macros/functions. 19 * This API is not thread safe, and thus if a list is used across threads, 43 /** Flagged single-linked list node structure. */ 53 /** Flagged single-linked list structure. */ 57 * @brief Provide the primitive to iterate on a list 68 * @param __sl A pointer on a sys_sflist_t to iterate on [all …]
|
/Zephyr-latest/doc/kernel/services/threads/ |
D | workqueue.rst | 10 A :dfn:`workqueue` is a kernel object that uses a dedicated thread to process 11 work items in a first in, first out manner. Each work item is processed by 12 calling the function specified by the work item. A workqueue is typically 13 used by an ISR or a high-priority thread to offload non-urgent processing 14 to a lower-priority thread so it does not impact time-sensitive processing. 19 A workqueue has the following key properties: 21 * A **queue** of work items that have been added, but not yet processed. 23 * A **thread** that processes the work items in the queue. The priority of the 28 between each submitted work item, to prevent a cooperative workqueue from 31 A workqueue must be initialized before it can be used. This sets its queue to [all …]
|
D | index.rst | 16 A :dfn:`thread` is a kernel object that is used for application processing 20 available RAM). Each thread is referenced by a :dfn:`thread id` that is assigned 23 A thread has the following key properties: 25 * A **stack area**, which is a region of memory used for the thread's stack. 30 * A **thread control block** for private kernel bookkeeping of the thread's 36 * A **scheduling priority**, which instructs the kernel's scheduler how to 39 * A set of **thread options**, which allow the thread to receive special 43 * A **start delay**, which specifies how long the kernel should wait before 49 peripherals. User mode threads have a reduced set of privileges. 62 A thread must be created before it can be used. The kernel initializes [all …]
|
/Zephyr-latest/doc/kernel/memory_management/ |
D | slabs.rst | 6 A :dfn:`memory slab` is a kernel object that allows memory blocks 7 to be dynamically allocated from a designated memory region. 8 All memory blocks in a memory slab have a single fixed size, 22 A memory slab has the following key properties: 30 * A **buffer** that provides the memory for the memory slab's blocks. 33 The memory slab's buffer must be aligned to an N-byte boundary, where 34 N is a power of 2 larger than 2 (i.e. 4, 8, 16, ...). To ensure that 36 the block size must also be a multiple of N. 38 A memory slab must be initialized before it can be used. This marks all of 41 A thread that needs to use a memory block simply allocates it from a memory [all …]
|
/Zephyr-latest/drivers/tee/optee/ |
D | optee_rpc_cmd.h | 1 /* SPDX-License-Identifier: BSD-2-Clause */ 3 * Copyright (c) 2016-2021, Linaro Limited 10 * All RPC is done with a struct optee_msg_arg as bearer of information, 14 * RPC communication with tee-supplicant is reversed compared to normal 23 * 1970-01-01 00:00:00 +0000 (UTC). 25 * [out] value[0].a Number of seconds 33 * If secure world needs to wait for something, for instance a mutex, it 34 * does a notification wait request instead of spinning in secure world. 35 * Conversely can a synchronous notification can be sent when a secure 36 * world mutex with a thread waiting thread is unlocked. [all …]
|
/Zephyr-latest/tests/kernel/timer/timepoints/src/ |
D | main.c | 4 * SPDX-License-Identifier: Apache-2.0 40 k_timepoint_t a, b; in ZTEST() local 42 a = sys_timepoint_calc(K_NO_WAIT); in ZTEST() 43 b = a; in ZTEST() 44 zassert_true(sys_timepoint_cmp(a, b) == 0); in ZTEST() 45 zassert_true(sys_timepoint_cmp(b, a) == 0); in ZTEST() 47 a = sys_timepoint_calc(K_FOREVER); in ZTEST() 48 b = a; in ZTEST() 49 zassert_true(sys_timepoint_cmp(a, b) == 0); in ZTEST() 50 zassert_true(sys_timepoint_cmp(b, a) == 0); in ZTEST() [all …]
|
/Zephyr-latest/subsys/fs/ |
D | Kconfig.littlefs | 4 # SPDX-License-Identifier: Apache-2.0 22 This is a global maximum across all mounted littlefs filesystems. 28 This is a global maximum across all mounted littlefs filesystems. 31 int "Minimum size of a block read" 34 All read operations will be a multiple of this value. 37 int "Minimum size of a block program" 40 All program operations will be a multiple of this value. 46 Each cache buffers a portion of a block in RAM. The littlefs 47 needs a read cache, a program cache, and one additional cache 49 more data and reducing the number of disk accesses. Must be a [all …]
|