yangjiao
59fd10000e
sched/mqueue/mq_send: fix the wrong return value in mq_send function. And add the condition if message priority equal to MQ_PRIO_MAX.
...
Standard POSIX specification in URL “https://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_send.html” requires that "EBADF" be returned when mqdes is not open for writing. And message priorities range from 0 to {MQ_PRIO_MAX}-1. In this change, i update them to follow POSIX spec.
Signed-off-by: yangjiao <yangjiao@xiaomi.com>
2023-08-03 03:10:56 -07:00
zhangyuan21
c239d19df0
nuttx: add more dependent header file
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-04-11 09:13:32 +03:00
ligd
a4b378a583
mqueue: use to DEBUGASSERT to cover some param check
...
for the speed improve
Signed-off-by: ligd <liguiding1@xiaomi.com>
2022-11-10 22:36:21 +08:00
Xiang Xiao
abc72ad128
net: Ensure sendmsg and sendfile return -EAGAIN in case of timeout
...
instead of -ETIMEOUT, as specify here:
https://pubs.opengroup.org/onlinepubs/009604599/functions/sendmsg.html
https://man7.org/linux/man-pages/man2/sendfile.2.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-06-28 06:19:13 +03:00
chao.an
d09dc08eab
sched/mqueue: do sanity check if DEBUG_FEATURES is enabled
...
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-11 12:42:47 -03:00
chao.an
be33d66c05
sched/mqueue: minor code tuning of message queue
...
1. remove unnecessary temporary variables
2. adjust the protection scope of the critical section
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-11 14:51:46 +08:00
chao.an
f5d4571abc
sched/mqueue: remove sched_lock to improve performance
...
remove the sched_lock/unlock to improve the performance by 18%
mq_send Flow Cycle Count
mq_send Origin Optimized
|
->nxmq_send 24 24
|
->file_mq_send 209 209
|
|->sched_lock 243 N/A <-
|->nxmq_do_send 391 348
| |
| |->sched_lock 434 N/A <-
| |->up_unblock_task 545 459
| ->sched_unlock 675 N/A <-
|
->sched_unlock 684 N/A <-
|
->up_release_pending 701 N/A
|
->arm_switchcontext 856 610
mq_receive
|
->arm_fullcontextrestore 1375 1133
|
->up_block_task 1375 1133
|
->nxmq_wait_receive 1530 1288
|
->file_mq_receive 1606 1310
|
->nxmq_receive 1616 1320
|
->mq_receive 1628 1332 - 18%
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-06-10 07:23:42 +09:00
Gustavo Henrique Nihei
330eff36d7
sourcefiles: Fix relative path in file header
2021-03-09 23:18:28 +08:00
Masayuki Ishikawa
6f5793eefc
sched: mqueue: Remove an unnecessary comment in mq_send.c
...
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-01-27 18:27:34 -08: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
ligd
3bc33572e3
mqueue: simplify the mqueue reailize
...
1. remove descript management in mqueue, save code size
2. use i_ops instead of i_mqueue to remove the dup logic
Change-Id: Ie88960e50ddcae9c87977c9ad65a45297c663291
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-05 02:40:43 -06:00
Gregory Nutt
d43cb2fa80
sched/mqueue: Correct/update license headers.
...
PR #488 introduced an error in a file license header in file sched/mqueue/mqueue.h. This commit fixe that error and in the course of doing that, changing the license header to the standard Apache 2.0 header. I am the author and copyright hold of all modified files.
2020-03-10 11:45:42 -05: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
Gregory Nutt
bff30ff9bc
Fix minor typo / copy-paste. 'cancellaction point'->'cancellation point'
2019-08-23 11:57:35 -06:00
Gregory Nutt
f914ec6e2b
tools/nxstyle.c: Fix logic that detects if an operator is correctly delimited with spaces. sched/: Various changes because sched/ C files were used as Guinea Pigs to test nstyle.c.
2019-03-01 10:50:02 -06:00
Michał Łyszczek
626afb015b
nuttx/sched/mqueue: Change 'int prio' to 'unsigned int prio'. According to open group specification, priority field in mq_* functions should have unsigned type: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html
2019-02-15 19:18:55 -06:00
Gregory Nutt
9546481054
Fix some typographical errors.
2018-09-14 06:55:45 -06:00
Gregory Nutt
eb79a575f6
Fix a few places where there was a semicolon following the 'if' condition, makeing the following logic unconditional.
2017-10-10 14:24:13 -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
e7c52bac60
Squashed commit of the following:
...
sched/mqueue: Rename all private static functions for use the nxmq_ vs. mq_ naming.
sched/mqueue: Rename all OS internal functions declared in sched/mqueue/mqueue.h to begin with nxmq_ vs. mq_. The mq_ prefix is reserved for standard application interfaces.
2017-10-09 09:06:46 -06:00
Gregory Nutt
b52e4e5ecd
Move cancellation point definitions to their own header file.
2016-12-10 09:08:26 -06:00
Gregory Nutt
bc3ca25cc7
Cancellation points: Close up some logic to eliminte some race conditions.
2016-12-10 08:36:58 -06:00
Gregory Nutt
7fce8022c6
Finishes all cancellation point logic
2016-12-09 16:50:34 -06:00
Gregory Nutt
e3bbfa2d85
mq_send() was not setting the errno value on certain failures to allocate a message
2016-09-15 12:42:24 -06:00
Gregory Nutt
368f241637
Correct some comments
2016-09-15 08:46:41 -06:00
Gregory Nutt
6e3107650d
nuttx/sched: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section()
2016-02-14 08:17:46 -06:00
Gregory Nutt
cb9e27c3b0
Standardize naming used for public data and function groupings
2015-10-02 16:30:35 -06:00
Gregory Nutt
7d46801f46
Reorder some operations to minimize a race condition
2015-03-10 10:41:21 -06:00
Gregory Nutt
4c6057eca1
mq_timedsend(): Do check for time errors if the message queue is not full. Noted by Freddie Chopin
2015-03-10 09:42:35 -06:00
Gregory Nutt
ad05793c0f
msg type should be char * not void * in mq_send, mq_timedsend, mq_receive, and mq_timedreceive. Noted by Pierre-Noel Bouteville
2014-12-05 19:16:14 -06:00
Gregory Nutt
fcfe877e96
Cosmetic update to comments
2014-09-29 16:22:21 -06:00
Gregory Nutt
b0f80cc8db
Move mq_open.c, mq_close.c, and mq_unlink.c from sched/mqueue to fs/mqueue
2014-09-29 13:35:32 -06:00
Gregory Nutt
e3fa34681b
Convert mqueue structure for use in VFS as inode data; rename mqueue_inode_s; remove links, reference counts and name from mqueue structure. These will be replaced by VFS data. Remove g_msgqueues and mq_findnamed.c; these will be replace with VFS logic
2014-09-29 13:19:11 -06:00
Gregory Nutt
e1769b22f1
Remove os_internal.h it has been replace by several new header files under sched/. There have been some sneak inclusion paths via os_internal.h, so expect a few compilation errors for some architectures
2014-08-08 18:39:28 -06:00
Gregory Nutt
08879ca34c
Move POSIX message queue files from sched/ to sched/mqueue
2014-08-08 12:31:23 -06:00