- Oct 05, 2017
-
-
Gregory Nutt authored
sched/semaphore: sem_trywait() modifies the errno value and, hence, should not be used within the OS. Use nxsem_trywait() instead.
-
Gregory Nutt authored
sched/semaphore: sem_timedwait() is a cancellation point and, hence, cannot be called from within the OS. Created nxsem_timedwait() that is equivalent but does not modify the errno and does not cause cancellation. All calls to sem_timedwait() change to calls to nxsem_timedwait() in the OS.
-
- Oct 04, 2017
-
-
Gregory Nutt authored
This commit backs out most of commit b4747286. 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.
-
- Oct 03, 2017
-
-
Gregory Nutt authored
sched/semaphore: Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable. Changed all references to sem_post in the OS to nxsem_post(). sched/semaphore: Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable. Changed all references to sem_destroy() in the OS to nxsem_destroy(). libc/semaphore and sched/semaphore: Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable. Changed all references to sem_setprotocol in the OS to nxsem_setprotocol(). sem_getprotocol() was not used in the OS
-
Gregory Nutt authored
libc/semaphore: Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable. Changed all references to sem_getvalue in the OS to nxsem_getvalue(). sched/semaphore: Rename all internal private functions from sem_xyz to nxsem_xyz. The sem_ prefix is (will be) reserved only for the application semaphore interfaces. libc/semaphore: Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable. Changed all references to sem_init in the OS to nxsem_init(). sched/semaphore: Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function. sched/semaphoate: Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
-
Juha Niskanen authored
STM32L4 RTC, PM: small fixes to subseconds handling, ADC power-management hooks * STM32L4 ADC: add PM hooks from Motorola MDK * STM32L4 RTC: add up_rtc_getdatetime_with_subseconds * STM32 RTC: workaround for potential subseconds race condition In all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to lock the values in the higher-order calendar shadow registers until RTC_DR is read. However many old chips have in their errata this silicon bug (at least F401xB/C, F42xx, F43xx, L15xxE, L15xVD and likely others): "When reading the calendar registers with BYPSHAD=0, the RTC_TR and RTC_DR registers may not be locked after reading the RTC_SSR register. This happens if the read operation is initiated one APB clock period before the shadow registers are updated. This can result in a non-consistency of the three registers. Similarly, RTC_DR register can be updated after reading the RTC_TR register instead of being locked." * STM32L4 RTC: correct RTC_SSR and RTC_TR read ordering In all recent STM32 chips reading either RTC_SSR or RTC_TR is supposed to lock the values in the higher-order calendar shadow registers until RTC_DR is read. Change the register read ordering to match this and don't keep a workaround for a hypothetical race condition (not in any L4 errata, lets for once assume ST's silicon works as it is documented...) * STM32L4 PM: remove useless #ifdefs and old non-L4 STM32 code Approved-by: Gregory Nutt <gnutt@nuttx.org>
-
Gregory Nutt authored
-
Gregory Nutt authored
syscall/: The non-standard interface exec() is now enshrined as a official NuttX API. I really dislike doing this but I think that this is probably the only want to load programs in the protected mode. It is currently used by some example code under apps/ that generate their own symbol tables for linking. Other file execution APIs relay on a symbol table provided by the OS. In the protected mode, the OS cannot provide any meaning symbol table for execution of code in the user-space blob so that is they exec() is really needed in that build case. And, finally, the interface is completely useless and will not be supported in the KERNEL build mode where the contrary is true: An application process cannot provide any meaning symbolic information for use in linking a different process.
-
- Oct 02, 2017
-
-
Alan Carvalho de Assis authored
-
Gregory Nutt authored
binfmt: Fix some compilation issues introduced in previous changes. Verfied with the STM32F4-Discovery ELF configuration. binfmt: schedule_unload() is an internal OS function and must not alter the errno variable. binfmt: unload_module() is an internal OS function and must not alter the errno variable. binfmt: load_module() is an internal OS function and must not alter the errno variable. binfmt: exec_module() is an internal OS function and must not alter the errno variable.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Sebastien Lorquet authored
Add support for Micron MT25Q series MT25Q128 Approved-by: Gregory Nutt <gnutt@nuttx.org>
-
Gregory Nutt authored
-
Sebastien Lorquet authored
commit b2ea300b broke the STM32L4 port for people not using the L496xx or L4A6xx. That was because stm32l4_sdmmc.h is included from the stm32l4.h global header, and this header fires an #error for other chips. I see that ALL stm32l4 have the same SDMMC except the stm32l4x2, which has none.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
- Oct 01, 2017
-
-
Gregory Nutt authored
tools/: configure.sh and configure.c should redirect stdout to /dev/null but should not suppress stderr output.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
tools/configure.sh: Another fix for the script. The last change only worked for Windows Cygwin; for Linux, it needed to remove some additional things from the defconfig file.
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Mateusz Szafoni authored
stm32_hrtim: add support for capture, chopper, deadtime and dump registers Approved-by: Gregory Nutt <gnutt@nuttx.org>
-
Gregory Nutt authored
tools/configure.sh: Add special support so that you can start with a a windows native configuration and install on a different host (and vice versa).
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
compiler.h, limits.h, types.h: Update SDCC/z80 files to include support for long long, inline, __FILE__, and __func__.
-
Gregory Nutt authored
-
- Sep 30, 2017
-
-
Gregory Nutt authored
-
Gregory Nutt authored
-
Gregory Nutt authored
configs/z80sim and xtrs: Serial driver lower halfs ioctl methods should return a negated errno value, not set the errno variable. drivers/wireless: CC1101 driver not permitted to set errno. drivers/sensors: LIS331DL driver not permitted to set errno. drivers/lcd: ILI9341 initialize method not permitted to set errno, drivers/serial: 16550 UART driver IOCTL method must not set errno; it must return a negated errno value.
-
Gregory Nutt authored
STM32, STM32 F7: LTDC and DMA2D drivers are not permitted to set the errno. SIM LPC31xx: Serial and console drivers are not permitted to set the errno. SAMv7, STM32, STM32 L4: DAC and ADC drivers are not permitted to set the errno.
-
Gregory Nutt authored
psock_close() and net_close() are internal OS functions and should not set the errno variable. psock_ioctl() and netdev_ioctl() are internal OS functions and should not set the errno variable. net_dupsd() and net_dupsd2() are internal OS functions and should not set the errno variable. net/ and fs/: net_vfcntl(), file_fcntl(), file_dup(), and file_dup2() are all internal OS interfaces and should not modify the errno value.
-
Gregory Nutt authored
net/: psock_recvfrom() is an internal interface and should not set the errno nor should it be a cancellation point. net/: psock_accept() is not a cancellation point. net/: psock_getsockopt() and psock_socket*9 are an internal interfaces and should not set the errno. net/: psock_getsockopt() is an internal interface and should not set the errno. net/: psock_listen() is an internal interface and should not set the errno. net/: psock_connect(( is an internal interface and should not set the errno nor should it be a cancellation point. net/: psock_bind() is an internal interface and should not set the errno. net/: psock_accept() is an internal interface and should not set the errno.
-
Gregory Nutt authored
net/: Versions of psock_send() and pock_sendto() should not set errno. That is taken care of at a higher level in the send()/sendto() implementation as appropriate.
-