dongjiuzhu1
14f8a6c2dd
fs: support openat/fchmodat/mkfifoat/fstatat/...at api
...
Refs to:
https://linux.die.net/man/2/openat
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-02-07 03:45:38 +08:00
chao an
4c8d244fae
sched/getpid: replace syscall getpid/tid/ppid() to kernel version
...
NuttX kernel should not use the syscall functions, especially after
enabling CONFIG_SCHED_INSTRUMENTATION_SYSCALL, all system functions
will be traced to backend, which will impact system performance.
Signed-off-by: chao an <anchao@xiaomi.com>
2023-02-02 10:33:01 +08:00
Gustavo Henrique Nihei
e6b204f438
nuttx: Use MIN/MAX definitions from "sys/param.h"
...
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2023-02-01 23:47:44 +08:00
Xiang Xiao
ee9787a254
libc: Let _SC_PAGESIZE return 4096 when CONFIG_MM_PGSIZE isn't defined
...
since most application doesn't expect the page size equals one
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-15 08:39:19 +02:00
qinwei1
8021dfece6
sched/task/task_getpid: getpid should return process id not thread id
...
Summary:
implement the right semantics:
1. getpid should return the main thread id
2. gettid should return the current thread id
Refer to:
https://github.com/apache/incubator-nuttx/issues/2499
https://github.com/apache/incubator-nuttx/pull/2518
Signed-off-by: qinwei1 <qinwei1@xiaomi.com>
2022-11-17 17:58:08 +08:00
Xiang Xiao
28947517ca
sched/spawn: Rename task_spawnattr_[get|set]stack[size|addr] to posix_spawnattr_[get|set]stack[size|addr]
...
since they can be not only used in task_spawn but also in posix_spawn
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-11-01 09:51:18 +09:00
Xiang Xiao
19bded4738
fs: Remove the unused nx_pipe to prefer file_pipe for kernel
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-27 23:14:25 +02:00
Huang Qi
e4e3208180
Replace all strncpy with strlcpy for safety
...
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2022-08-25 13:38:36 +08:00
Jiuzhu Dong
4dbf4555eb
fs/dir: support fchdir and dirfd
...
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
2022-08-09 23:30:01 +08:00
Nathan Hartman
1867bc2210
Fix compiler warnings (-Wunused-parameter) in various functions
...
Fixes the -Wunused-parameter warning in:
* group/group_signal.c: group_signal()
* irq/irq_unexpectedisr.c: irq_unexpected_isr()
* task/task_spawn.c: nxtask_spawn_proxy()
* timer/timer_getoverrun.c: timer_getoverrun()
* misc/dev_null.c: devnull_read(), devnull_write(), devnull_poll()
* misc/dev_zero.c: devzero_read(), devzero_write(), devzero_poll()
* syslog/syslog_channel.c: syslog_default_write()
* syslog/syslog_device.c: syslog_dev_flush()
* grp/lib_initgroups.c: initgroups()
* misc/lib_mknod.c: mknod()
* misc/lib_glob.c: ignore_err()
* pthread/pthread_barrierinit.c: pthread_barrier_init()
* pthread/pthread_atfork.c: pthread_atfork()
* semaphore/sem_init.c: nxsem_init()
* stream/lib_nullinstream.c: nullinstream_getc()
* stream/lib_nulloutstream.c: nulloutstream_putc()
* stream/lib_libnoflush.c: lib_noflush()
* stream/lib_libsnoflush.c: lib_snoflush()
* string/lib_strerror.c: strerror()
* time/lib_gettimeofday.c: gettimeofday()
* time/lib_settimeofday.c: settimeofday()
* unistd/lib_pathconf.c: fpathconf(), pathconf()
* unistd/lib_getrusage.c: getrusage()
* unistd/lib_setrlimit.c: setrlimit()
* unistd/lib_getrlimit.c: getrlimit()
* unistd/lib_setpriority.c: setpriority()
2022-07-12 11:42:34 +08:00
Nathan Hartman
849f760b77
Fix various typos
2022-07-08 02:15:54 +08:00
Xiang Xiao
11c8f3125d
sched/tls: Wrap up_info_size into tls_info_size
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-06-08 19:07:33 +09:00
Ville Juven
622677d4a1
libc: Implement exit, atexit, on_exit and cxa_exit on the user side
...
For CONFIG_BUILD_KERNEL using the sched/task/task_exithook implementation
will just not work. It calls user code with kernel privileges which is
a bit of a security issue.
2022-05-25 15:28:43 +08:00
Xiang Xiao
69b5799b74
libc: Fix typo error in execle
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-04-22 12:23:09 +03:00
Xiang Xiao
55b5561fdb
sched/task: Implement execle and execve
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-04-22 10:40:31 +03:00
Xiang Xiao
96ff41d5b2
libc: Don't duplicate string in chdir and lib_restoredir
...
since the new layout doesn't reallocate the unchanged environ variable anymore
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-04-18 10:36:36 +03:00
anjiahao
2d499ac86d
lib_chdir:use change ret judgment method
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2022-04-01 19:39:33 +03:00
田昕
24bd80eb84
unistd:rename CONFIG_OPEN_MAX to CONFIG_LIBC_OPEN_MAX
...
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2022-04-01 22:10:51 +08:00
田昕
463a437733
fs and unistd: increase OPEN_MAX by claiming a Kconfig.
...
Signed-off-by: 田昕 <tianxin7@xiaomi.com>
2022-04-01 12:17:47 +03:00
Xiang Xiao
de0dd2f569
libc: implement getentropy function
...
specify here:
https://man7.org/linux/man-pages/man3/getentropy.3.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-03-25 13:48:33 +02:00
Xiang Xiao
eea014efb7
Fix error: conflicting types for built-in function 'execl'; expected 'int(const char *, const char *, ...)
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-03-18 16:38:01 +02:00
Xiang Xiao
f1ed349dd9
sched/clock: Remove CLOCK_MONOTONIC option from Kconfig
...
here is the reason:
1.clock_systime_timespec(core function) always exist regardless the setting
2.CLOCK_MONOTONIC is a foundamental clock type required by many places
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-02-23 01:21:26 +08:00
anjiahao
ce3c604f48
libc/chdir:"PWD" should save absolute path
...
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2022-02-11 13:05:20 +01:00
Xiang Xiao
77792a1598
sched: Define CONFIG_SMP_NCPUS to 1 in no SMP case
...
to simplify the SMP related code logic
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-01-20 23:21:21 +08:00
Petro Karashchenko
8d3bf05fd2
include: fix double include pre-processor guards
...
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-16 11:11:14 -03:00
Norman Rasmussen
df956b08f2
Ensure that sethostname null terminates the hostname correctly
...
commit e1c306f2dd
added sethostname using
strncpy. This replaces it with strlcpy and uses sizeof() instead of
re-calculating the buffer size.
Rename size argument for get/sethostname to match the implementation
2021-12-30 01:13:22 +08:00
chao.an
e0f7bab13c
libc/symtab: optimize the find speed by bisection
...
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-12-21 20:40:12 -06:00
Takumi Ando
d0dd2684ce
libc/unistd: getopt: Use argc to end parsing
...
It should end parsing with argc even the argv are remaining
or it may access to invalid address.
Signed-off-by: Takumi Ando <t-ando@advaly.co.jp>
2021-12-15 12:02:59 -06:00
Xiang Xiao
a6eb6df688
libc/getopt: Move struct getopt_s to include/nuttx/tls.h
...
and remove include/nuttx/lib/getopt.h
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-12-06 06:30:16 -08:00
Juha Niskanen
17bfa18679
libc/unistd: getopt: add some NULL pointer checks
...
Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
2021-09-13 22:44:00 +08:00
Xiang Xiao
6c61d032db
fs: Add utimens and lutimens
...
https://pubs.opengroup.org/onlinepubs/9699919799/functions/futimens.html
https://www.daemon-systems.org/man/utimens.2.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-09 17:55:44 -03:00
Xiang Xiao
5025fbef8d
Rename LIB_ to LIBC_ for all libc Kconfig
...
follow other libc component naming convention
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-05 19:45:24 +02:00
Xiang Xiao
307cc61893
fs: Add fchstat and chstat callback into mountpt_operations
...
and implement all status related change function. the individual
file system change will provide in other upcoming patchset.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I8fde9db8eba9586e9c8da078b67e020c26623cf4
2021-07-29 06:33:49 -03:00
Xiang Xiao
af1dceb3e3
libc: Implement times function
...
https://pubs.opengroup.org/onlinepubs/009604599/functions/times.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: If2cccfedd532a77f86035d16d36d94ae38d8f09c
2021-07-21 13:11:54 -03:00
Xiang Xiao
df0e2a65b2
libc/sysconf: Implement the query of _SC_CLK_TCK
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I36a62d97b14ea06bbc2054ee96fd2319b2f6897c
2021-07-21 13:11:54 -03:00
Nathan Hartman
609ee6b54b
Fix typos in comments and identifiers
2021-07-19 22:55:30 -03:00
Peter Bee
695935217b
libc/sysconf: Add MONOTONIC_CLOCK for consistency
...
MIRTOS-107
Add _SC_MONOTONIC_CLOCK to sysconf when CONFIG_CLOCK_MONOTONIC is set
Change-Id: I0ae57798ebe89247a10ccb517e128866d1f907de
Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
2021-07-12 16:07:25 -03:00
Xiang Xiao
76cd9c89bb
libc: Implement futimes on top of futimens
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ie54de66ca1bc26a68f2922861e1edd1fdabb8f33
2021-07-09 15:51:28 -03:00
Xiang Xiao
800acff10e
libc: Implement utime on top of utimes
...
https://man7.org/linux/man-pages/man2/utime.2.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia10574fdd0d07eabbc93aceeea5a0b953e30339a
2021-07-09 15:51:28 -03:00
Xiang Xiao
bae265274a
libc: Move the declaration of futimens from sys/time.h to sys/stat.h
...
to follow the spec here:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/futimens.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Id8e418794bd43827c01af772ce704a8d3e7681c5
2021-07-09 15:51:28 -03:00
Xiang Xiao
9cc41f44f0
libc/sched: Implement nice API
...
Specified here:
https://pubs.opengroup.org/onlinepubs/007904875/functions/nice.html
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ib25be28c8dc1c9288e8c78ad756c91ec6ef325a7
2021-06-24 08:50:48 -03:00
Xiang Xiao
3d0320f891
libc/sched: Map the nice value more correctly
...
from https://pubs.opengroup.org/onlinepubs/007904875/functions/setpriority.html :
1.The nice value shall in the range [-{NZERO},{NZERO} -1]
2.Lower nice value shall cause more favorable scheduling
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I5ad60d92abc3b69fbaa406da68cec2e40ca3fa6d
2021-06-24 08:50:48 -03:00
Xiang Xiao
001e7c3e76
sched: Don't include nuttx/sched.h inside sched.h
...
But let nuttx/sched.h include sched.h instead to
avoid expose nuttx kernel API to userspace.
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-05-24 12:11:53 +09:00
Xiang Xiao
60c1b64747
libc/getopt: Remove GETOPT_INIITIALIZER macro
...
since nobody reference it
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-05-11 16:40:44 +01:00
Xiang Xiao
2335b69120
arch: Allocate the space from the beginning in up_stack_frame
...
arch: Allocate the space from the beginning in up_stack_frame
and modify the affected portion:
1.Correct the stack dump and check
2.Allocate tls_info_s by up_stack_frame too
3.Move the stack fork allocation from arch to sched
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-04-16 12:41:41 +09:00
Gregory Nutt
a0f9da20a2
getopt(): Update comments about missing functionality
...
Per the Linux man page, "By default, getopt() permutes the contents of argv as it scans, so that eventually all the nonoptions are at the end." This behavior, however, is not implemented in the NuttX getopt() logic.
2021-04-04 22:31:47 +01:00
Gregory Nutt
7de43596da
getopt_long(): Add support for required argument format
...
The Linux man page requires that the getopt_long() and getopt_long_only() functions accept arguments to options in a form like:
--option=argument
This PR adds that missing functionality.
This change effects only getopt_long() and getopt_long_only()
Tested on a simulator NSH configuration with a modified version of the getopt() test in apps/testing/ostest.
2021-04-04 14:13:42 -05:00
Gregory Nutt
1b4af6e90d
getopt_commont(): Add some comments
...
Add a trivial comment about handling in certain corner cases where I am not certain what the correct behavior should be.
2021-04-04 10:55:00 -05:00
Gregory Nutt
7e1ae24c3c
getopt_common(): Correct handling of unsupported long options.
...
If an unrecognized long option is encountered, we must skip over that argv[] entry or getopt_long() will seriously misbehave.
Affects getopt_long() and getopt_long_only()
Problem found and fix verified with an updated version of the OS test.
2021-04-04 07:15:10 -05:00
Gregory Nutt
6c507730bd
Fix Use of Variable before NULL check
...
Found a place in getopt_common() where the option string is used before it is checked if it is NULL. This can happen because the short option string is optional for getopt_long() and getopt_long_only()
If optstring is NULL, that would be an ERROR for getopt(), but not for the getopt_long() versions.
Should effect only the getopt() APIs
Tested on the simulator using apps/testing/ostest.
2021-04-03 18:23:35 +01:00