Commit graph

703 commits

Author SHA1 Message Date
Xiang Xiao
1c5b37a1f5 libc: Remove the duplication lib_xxx macro
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I73c876ed40811c013dad83b8b2aeb7bdc3041913
2021-07-01 18:08:54 +08:00
Xiang Xiao
3dd31cba2c Move aligned_alloc, posix_memalign and valloc from mm/umm to libs/libc/stdlib
since the similar functions(e.g. strdup/strndup) put into libs/libc/string

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ifb2c0c51298b09014748e5ee8275db51213d6911
2021-07-01 18:08:54 +08:00
Xiang Xiao
6c9e7a1b21 libc/debug: Rename CONFIG_EABI_UNWINDER to CONFIG_UNWINDER
since the unwinder not only work with arm but also other arch(e.g. riscv)

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I56cc54f2c99560c858362ab2dfba524097385716
2021-06-30 22:14:18 +08:00
Xiang Xiao
811bcd413d net: Add if_nameindex and if_freenameindex API
Specified here:
https://man7.org/linux/man-pages/man3/if_nameindex.3.html

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia5daed775bd11fa5978d54860632554da8f7b416
2021-06-26 19:45:21 -07:00
Xiang Xiao
52b7656205 libc/time: Initialize tm_zone field correctly
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ief32aedc72ec062d428f8538a25ddfe4f81d7e29
2021-06-25 23:40:19 +08:00
Xiang Xiao
7f23b68038 libc/time: Fix nxstyle issue in lib_localtime.c
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I2e98d92e62b47ade375bda3f043175841d9fa1b7
2021-06-25 23:40:19 +08:00
Xiang Xiao
b0493deda7 libc/time: Rename lclptr/gmtptr to g_lcl_ptr/g_gmt_ptr
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I380f28c15ffe3d98734016bfedb1618b20a5f400
2021-06-25 23:40:19 +08:00
Xiang Xiao
b7a8ad8318 libc/time: Update g_lcl_tzname only after the success
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I0117c5b43bee3affb36d118e0b97f6dd7137080b
2021-06-25 23:40:19 +08:00
Xiang Xiao
73285ea7f4 libc/time: Avoid modify the global variables concurrently in tzset
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I7fb6439c3a669ef07c1756ccc294cd487805a510
2021-06-25 23:40:19 +08:00
Xiang Xiao
266db9067e libc/time: Change the type of ls_corr to int_fast32_t
since the leap correction is always four bytes in timezone file

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I2d72f5eaf37f0c86d95eaf7504a1b8b1469bf06a
2021-06-25 23:40:19 +08:00
Xiang Xiao
2241f12282 libc/time: Update TZDEFRULESTRING to ",M3.2.0,M11.1.0"
which is the current DST plan used by US

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I50001e69ec1cb9cbf6a0b84fc87f4ad8ff41c0f0
2021-06-25 23:40:19 +08:00
Xiang Xiao
212025c2ba libc/time: Update timezone by tzset in localtime_r
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I54d6aed8f6bc35c1a1d8156702ff71471c3f8066
2021-06-25 23:40:19 +08:00
Xiang Xiao
c9c9d84ca4 libc/zoneinfo: Correct the path in comment
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I4bc0490d12f8b469a1f250cd410290a51ef9640f
2021-06-25 23:40:19 +08:00
Huang Qi
5c0a079aea libc: Implement fesetround & fegetround for arm
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
2021-06-25 12:24:24 +08:00
Xiang Xiao
aa2aa503b8 libc/dirname: Handle the consecutive '/' correctly
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I8387aca067e91724fb4656cd7af59bbd626ceffa
2021-06-24 20:57:00 +08:00
Xiang Xiao
bf9d8457bd lic/libgen: Remove g_retchar from basename/dirname
to avoid the race condtion

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: If55fba8eca7b98d6a8f0fb44393cf4858b9e9ae4
2021-06-24 20:56:48 +08:00
Xiang Xiao
fea4cfe91c 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 20:56:02 +08:00
Xiang Xiao
30ee11470c 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 20:55:53 +08:00
Xiang Xiao
fed064f45e libc/time: Implement timegm function
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Id988ae077cf54597b2522546c4309b66416b8b0e
2021-06-24 20:53:17 +08:00
anchao
d24b879e63 Revert "net/socketpair: move socketpair implement into socket internal"
This reverts commit a66e18bc53.

Reason for revert: <N/A>

Change-Id: I3b707a2f6f52fb4a9eb2ab649b686b955b879d65
2021-06-17 20:23:59 +08:00
chao.an
a66e18bc53 net/socketpair: move socketpair implement into socket internal
Change-Id: I1c6d7178e2631e43d9fcc99918456eec36f730ce
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-06-16 15:19:44 +08:00
Xiang Xiao
c997bf0f52 sched/task: Simplify the syscall handling of task_spawn
It's better to save one argument by returning pid directly.
This change also follow the convention of task_create.
BTW, it is reasonable to adjust the function prototype a
little bit from both implementation and consistency since
task_spawn is NuttX specific API.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Id74f4dd1ef26dfd8f7c473684cf1a45fbeee13cf
2021-06-13 00:30:57 -07:00
Xiang Xiao
4d66266a8e 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>
Change-Id: I6fe673364be9eb1259381e6575d4c1a9fea58097
2021-06-13 00:25:26 -07:00
Xiang Xiao
5db8fc1f3a sched/spawn: Support the stack address argument
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-06-13 00:04:59 -07:00
panran
4525cfde3d nuttx:Correct code comment errors
N/A

Signed-off-by: panran <panran@xiaomi.com>
Change-Id: I9c9fa0855ae7851b7268a7ace6b5a86d5562a6b1
2021-05-31 20:01:46 +08:00
Xiang Xiao
6bb3366fe2 libc: Implement openpty function
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I36e02af0145cd6e740766e7484cc9d5ce410e5e4
2021-05-17 19:58:06 +08:00
zhanghu
cfcef34ad6 nuttx net warning:add initialization of pointer *aiocbp in lio_listio
nuttx net warning:cancel the conflict between weak and inline in unwind_arch_adjustment

Change-Id: I0ac7571ca27191b69acdc31f5bc07943c4d87e58
2021-05-11 15:21:43 +08:00
Byron Ellacott
70ab250c5d Add experimental support for an eZ80 toolchain using llvm and GNU binutils.
An additional fix for the RTC driver to lock the RTC after setting values instead of unlocking it is included.
2021-05-10 19:23:33 +08:00
Xiang Xiao
88ea42d3b1 libc/termios: Implement TCSADRAIN and TCSAFLUSH for tcsetattr
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: If87a4931cd5a55e064f58c19a22c7ce13f538000
2021-05-08 20:49:31 +08:00
Xiang Xiao
71c942ea51 libc/pty: Make ptsname[_r] support PSEUDOTERM_BSD config too
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I82a60ded48ea3437bd5f2b4fe328294d7077b040
2021-05-08 20:49:11 +08:00
chao.an
dcc2db8d40 make/archive: replace the dependency to preprequisite list
Change-Id: Id63f3cd32906461a54cb016ef8078d4d922845e2
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-05-07 21:34:45 +08:00
liuhaitao
dc639b2b59 Merge remote-tracking branch 'mirtos/master' into dev-upmerge-nuttx-10.1-0507
Change-Id: I4bb3a61356be2b4a77ccfe45390b15e68a376dd6
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-05-07 20:46:07 +08:00
liuhaitao
e3166ecac0 Revert "make/archive: replace the dependency to preprequisite list"
This reverts commit 9c946e2af6.

Change-Id: Ia8b7726d036c861d5eda51765d330e894e0d214a
2021-05-07 16:38:39 +08:00
YAMAMOTO Takashi
418e11b8b3 modlib: Always use separate allocation for text and data
Pros:

* Reduce code differences
* Smaller allocations for !CONFIG_ARCH_USE_MODULE_TEXT

Cons:

* Likely to use more memory for !CONFIG_ARCH_USE_MODULE_TEXT in total

Tested with:

* sim:module on macOS
* esp32-devkit:nsh + CONFIG_MODULE on qemu
* lm3s6965-ek:qemu-protected + CONFIG_EXAMPLES_SOTEST on qemu
2021-04-19 22:20:20 -05:00
chao.an
b2016e85f5 libc/execinfo/dumpstack: correct the line size to avoid LF overwrite
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-19 04:45:04 -07:00
chao.an
137eb594cb libc/execinfo: add dump_stack support
Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-19 04:45:04 -07:00
chao.an
27dd771336 libc/execinfo: add backtrace support based on EABI Unwinder
1. Flags < -funwind-tables > is required
2. Keep the section ".exidx" in linker script

Signed-off-by: chao.an <anchao@xiaomi.com>
2021-04-19 04:45:04 -07:00
chao.an
32a2b4a7d3 libc/execinfo/dumpstack: correct the line size to avoid LF overwrite
Change-Id: I6550df87ffd7da19119dedddc22d093fcf1c623a
Signed-off-by: chao.an <anchao@xiaomi.com>
(cherry picked from commit 288268e41ea07786c438bb068b840d7c7dbe2d0b)
2021-04-19 14:34:02 +08: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
YAMAMOTO Takashi
51490bad55 modlib: Implement sh_addralign handling
I've seen a module with 16 bytes .rodata alignment for xmm operations.
It was getting SEGV on sim/Linux because of the alignment issue.
The same module binary seems working fine after applying this patch.

Also, tested on sim/macOS and esp32 on qemu,
using a module with an artificially large alignment. (64 bytes)
2021-04-14 21:17:07 -05:00
mage1
2a08dc1685 add #undef for some stdlibc api.
Change-Id: I6253a9231af8809e8362f4bc5a1bd67fb094c3b0
2021-04-14 15:46:28 +08:00
Xiang Xiao
3f9908f7d1 Remove the unnecessary math.h inclusion
or move from header file to source file since math.h doesn't always exist

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-04-12 22:58:23 -04:00
Gregory Nutt
2882551299 Correct a comment
Fix comment in libs/libc/tls/tls_getinfo.c:  The TLS data must lie at the beginning of the allocated stack memory for both push-up and push-down stacks.
2021-04-11 12:32:41 -05:00
Abdelatif Guettouche
3ac2bde85b pthread_mutexattr_setprotocol.c: Return EINVAL instead of ENOSYS.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-04-10 22:55:03 -05: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
liuhaitao
97240b494d libc/time: add strptime porting support
lib_strptime.c copies from android bionic/libc/tzcode.

Change-Id: Ia4fadacd8e92e97ef3606ee2017d3bdd83370180
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-04-09 18:27:08 +08:00
Peter Bee
487101234b libc/sendfile: fix lib_sendfile() partial send
MIRTOS-482

Fixing the behavior of sending only a few bytes of a file

Signed-off-by: Peter Bee <bijunda1@xiaomi.com>
Change-Id: Ieae600028b79794ede3ac576c2cd015d8df58b05
2021-04-08 14:53:11 +08:00
Alexander Vasiljev
74230c5371 lib_fgets: don't check for printability, as it doesn't allow to work with extended ASCII 2021-04-07 08:29:46 -03:00
liuhaitao
bcaf5d75e5 libc: update stream getoffset to handle write case
Change-Id: I80b01b446446d5a631d40822f220a0177a95e7e6
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-04-07 00:59:36 -05:00
liuhaitao
a21d6b884e libc: correct zoneinfo genromfs source directory
Or genromfs failed to generate the right romfs.img

Change-Id: Icbcc2e89da1ede644b994d33e70f1a48662c412b
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2021-04-06 08:12:00 -03:00