Commit graph

69 commits

Author SHA1 Message Date
fangyibo
975ab1d9aa audio: limit the buffer count guard to shared ring requests
The upper->periods >= upper->nbuffers check sat at the top of
audio_allocbuffer(), but upper->periods is only incremented for shared
ring requests (u.pbuffer == NULL), so for private buffer callers the
check degenerated into "nbuffers == 0" and rejected every allocation
when the lower half does not implement AUDIOIOC_GETBUFFERINFO, which is
the only place nbuffers is ever assigned.

Move the guard inside the shared ring branch so private buffers, which
never enter upper->apbs[] and are unrelated to the ring depth, stay
allocatable. The zero return value is kept as-is because a second
application attaching to the same device relies on it to skip
allocation and go straight to AUDIOIOC_ENQUEUEBUFFER.

Signed-off-by: fangyibo <fangyibo@xiaomi.com>
2026-08-05 07:58:53 +02:00
Catalin Visinescu
8d2b71d127 drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1)
Description:

In kernel builds, any unprivileged process running on the NuttX device
can open /dev/efuse and attempt to read/write fuse content. Reading the
fuses may provide valuable information to an attacker controlling the user
process. The write operation, in extreme cases where the fuse blocks are
not locked, may brick the device.

This is part of https://github.com/apache/nuttx/issues/19410

Compiles ok.

Signed-off-by: Catalin Visinescu <catalin_visinescu@yahoo.com>
2026-07-13 12:08:01 +02:00
Piyush Patle
0dccc8ba21 include/debug.h: Move to include/nuttx/debug.h
debug.h is a NuttX-specific, non-POSIX header. Placing it in the
top-level include/ directory creates naming conflicts with external
projects that define their own debug.h.
This commit moves the canonical header to include/nuttx/debug.h,
following the NuttX convention for non-POSIX/non-standard headers,
and updates all in-tree references.

A backward-compatibility shim is left at include/debug.h that
emits a deprecation #warning and re-includes <nuttx/debug.h>,
allowing out-of-tree code to continue building while migrating.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
2026-04-07 07:50:06 -03:00
yangyalei
854cd0ca21 nuttx/audio: clear apb buffer when playback dequeue
memset apb buffer to zero when dequeue

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
fangyibo
b13defe9e4 nuttx/audio: ALLOCATE_BUFFER & BUFFERINFO support multiple calling
support multiple applications simultaneously calling ALLOCATE_BUFFER

Signed-off-by: fangyibo <fangyibo@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
904f391982 nuttx/audio: Add audio_try_enqueue
support upper driver check whether enqueue apb buffer to the lower
driver

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
928b9368b4 nuttx/audio: Add compress audio macros
add compress audio macors and some subfmt

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
8db9865a03 nuttx/audio: Add AUDIOIOC_RESETSTATUS ioctl
use AUDIOIOC_RESETSTATUS to reset application pointer

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
f8ab192285 nuttx/audio: Update app write head in enqueuebuffer
update aplication pointer in enqueuebuffer

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
374a102af7 nuttx/audio: support multiplexing and state machine management
support multiple applications using upper at the same time

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
7d55e26421 nuttx/audio: Direct return non-format configure operation
protect configure lower only once

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
d15f69cdb6 nuttx/audio: Add audio_stop/pause/resume
relayout the code for easy modification

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
bc718c605d nuttx/audio: Add audio_poll
support poll notify read/write enable

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
9c35b01cd8 nuttx/audio: Add audio_mmap
1. mmap hw_ptr_s,
2. mmap apb buffers;

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
06e233079f nuttx/audio: support record/release apb buffer in upper driver
support maintain apb buffer in upper half driver

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
d85c4db932 nuttx/audio: Add Hardware pointer
Add Hw pointer recored apb buffer read/write position

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
2cc624a4c4 nuttx/audio: add AUDIOIOC_GETSTATE ioctl
support get lower driver state

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
yangyalei
0af7c985b4 nuttx/audio: add AUDIOIOC_GETAUDIOINFO ioctl
use AUDIOIOC_GETAUDIOINFO get current audio format

Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2026-02-05 08:22:18 -03:00
dongjiuzhu1
a12d21e830 fs/file: unify prefix about file_xxx api, like file_open, file_ioctl
old:
fs_getfilep, fs_putfilep, fs_reffilep
new:
file_get, file_put, file_ref

Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2025-06-12 18:12:42 +08:00
raiden00pl
213ddea6a9 audio: unify Private Types banners
unify Private Types banners according to NuttX coding standard

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-05-28 10:17:15 +08:00
Lars Kruse
3ce85ca54e style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
qiaohaijiao1
c59c6b08f3 audio: remove started from audio_complete
dependson:3767214

Signed-off-by: qiaohaijiao1 <qiaohaijiao1@xiaomi.com>
2024-10-16 20:27:45 +08:00
hanqiyuan
c7455e7e8e audio: add offload underflow msg state
Signed-off-by: hanqiyuan <hanqiyuan@xiaomi.com>
2024-10-16 08:11:04 +08:00
yangyalei
3e6ba4c17c audio: add AUDIO_MSG_IOERR msg to meida service
Signed-off-by: yangyalei <yangyalei@xiaomi.com>
2024-09-30 08:43:22 +08:00
Shoukui Zhang
43223124ec vfs/file: add reference counting to prevent accidental close during reading writing...
Signed-off-by: Shoukui Zhang <zhangshoukui@xiaomi.com>
2024-09-17 12:01:53 +08:00
Alin Jerpelea
95ef3b77c2 audio: migrate to SPDX identifier
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-09-10 11:33:26 +08:00
chao an
664927c86e mm/alloc: remove all unnecessary cast for alloc
Fix the minor style issue and remove unnecessary cast

Signed-off-by: chao an <anchao@xiaomi.com>
2023-08-30 14:34:20 +08:00
lilei19
38f64f559d change strcpy to strlcpy
Signed-off-by: lilei19 <lilei19@xiaomi.com>
2023-02-24 12:15:40 +08:00
Xiang Xiao
779a610ca3 Remove the unnecessary NULL fields in global instance definition of file_operations
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 00:32:13 +02:00
anjiahao
d1d46335df Replace nxsem API when used as a lock with nxmutex API
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-17 15:59:46 +09:00
chao an
fc626543fd audio/audio: remove invalid assign of errno
Signed-off-by: chao an <anchao@xiaomi.com>
2022-09-08 09:02:15 +08:00
Petro Karashchenko
a743fed63d file_operations: get back C89 compatible initializer
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-11 02:14:00 +08:00
Alin Jerpelea
231b8518b7 NuttX: Ken Pettit: update licenses to Apache
Ken Pettit has submitted the ICLA and we can migrate the licenses
 to Apache.

Sebastien Lorquet has submitted the ICLA and we can migrate the licenses
 to Apache.

Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-04-10 06:42:19 -05:00
ligd
f63db66382 mqueue: add file_mq_xx for kernel use
Change-Id: Ida12f5938388cca2f233a4cde90277a218033645
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-05 02:40:43 -06:00
danguanghua
7a3f2bf7ab audio: uninitialize usermq to NULL when the device has not
N/A

be opened anymore. There is no need to update usermq to NULL
in audio_open.

Change-Id: I0c20bfa40a4fcd5c8cae0cf09bb55e113435ea62
Signed-off-by: danguanghua <danguanghua@xiaomi.com>
2020-12-19 07:58:04 -06:00
danguanghua
796217917a fix build break with CONFIG_AUDIO_MULTI_SESSION enabled
N/A

Change-Id: Idfa87031e09f26bd4ca57b5c220ce0ca849f80c4
Signed-off-by: danguanghua <danguanghua@xiaomi.com>
2020-12-11 08:04:30 -06:00
YAMAMOTO Takashi
8ca0732de5 audio/audio.c: Fix a syslog format 2020-11-27 05:18:57 -06:00
Alin Jerpelea
d9d720b296 audio: nxstyle fixes for core and drivers
nxstyle fixes for the audio core and drivers

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-04-21 17:19:52 -06:00
Alin Jerpelea
76c47f6b21 libc: audio: nxstyle fixes
This change is needed to be able to fix the warnings on the audio core
and includes the propagation of the fix in the audio.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-04-21 17:19:52 -06:00
Xiang Xiao
5c80b94820 Replace #include <semaphore.h> to #include <nuttx/semaphore.h>
Since the kernel side should call nxsem_xxx instead and remove the unused inclusion
2020-02-01 08:27:30 -06:00
Xiang Xiao
80277d1630
Refine the preprocessor conditional guard style (#190) 2020-01-31 19:07:39 +01:00
Xiang Xiao
6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
anchao
9e3bafc7c6 audio/audio.c: Add message type to support audio trigger. 2019-11-03 19:52:18 -06:00
Gregory Nutt
dfd2701f97 audio/audio.c: Yet another missing comma from big CONFIG_DISABLE_POLL removal. 2019-05-22 08:23:59 -06:00
Gregory Nutt
b49be4bb20 Squashed commit of the following:
arch/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    sched/ audio/ crypto/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    Documentation/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    fs/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    graphics/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    net/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    drivers/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    include/, syscall/, wireless/:  Removed all references to CONFIG_DISABLE_POLL.  The standard POSIX poll() can not longer be disabled.
    configs/:  Remove all references to CONFIG_DISABLE_POLL.  Standard POSIX poll can no longer be disabled.
2019-05-21 18:57:54 -06:00
Gregory Nutt
2722fd8192 tools/nxstyle.c: Add capability to detect multiple blank lines. Single spacing required by the coding standard. Also coding standard fixes to server .c files for problems found during testing nxstyle. 2018-08-24 05:51:44 -06:00
Alan Carvalho de Assis
97937d3d47 configs/stm32f103-minimum: Add support to BMP180 on BluePill (stm32f103-minimum) board. 2018-02-04 07:34:31 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Gregory Nutt
fca07be1df Squashed commit of the following:
Change all calls to mq_send() and mq_timedsend() in the OS to calls to nxmq_send() and nxmq_timedsend(), making appropriate changes for differences in return values.

    sched/mqueue:  Add internal function nxmq_send() and nxmq_timedsend() that are equivalent to mq_send() and mq_timedsend() except that they do not create cancellation points and do to not modify the errno variable.
2017-10-10 08:44:12 -06:00
Gregory Nutt
9568600ab1 Squashed commit of the following:
This commit backs out most of commit b4747286b1.  That change was added because sem_wait() would sometimes cause cancellation points inappropriated.  But with these recent changes, nxsem_wait() is used instead and it is not a cancellation point.

    In the OS, all calls to sem_wait() changed to nxsem_wait().  nxsem_wait() does not return errors via errno so each place where nxsem_wait() is now called must not examine the errno variable.

    In all OS functions (not libraries), change sem_wait() to nxsem_wait().  This will prevent the OS from creating bogus cancellation points and from modifying the per-task errno variable.

    sched/semaphore:  Add the function nxsem_wait().  This is a new internal OS interface.  It is functionally equivalent to sem_wait() except that (1) it is not a cancellation point, and (2) it does not set the per-thread errno value on return.
2017-10-04 15:22:27 -06:00