Commit Graph

2826 Commits

Author SHA1 Message Date
Gregory Nutt e3fe320e08 SMP: Add support for linking spinlocks into a special, non-cached memory region. 2016-11-26 08:47:03 -06:00
Gregory Nutt 7f636f2280 SMP: Add spin_trylock(). Use this in conditions where other CPUs need to stopped but we cannot call enter_critical_section. 2016-11-24 13:33:43 -06:00
Gregory Nutt bac7153609 SMP: Add logic to avoid a deadlock condition when CPU1 is hung waiting for g_cpu_irqlock and CPU0 is waitin for g_cpu_paused 2016-11-22 11:34:16 -06:00
Gregory Nutt 8eec4ab0e8 Eliminate a warning 2016-11-22 06:58:34 -06:00
Gregory Nutt 558784d06f Spinlocks: Added capability to provide architecture-specific memory barriers. This was for i.MX6 but does not help with the SMP problems. It is still a good feature. 2016-11-21 11:55:59 -06:00
Gregory Nutt 337d0f1050 Fix a typo in a spinlock macro 2016-11-21 08:27:51 -06:00
Gregory Nutt e24f281401 This commit adds a new internal interfaces and fixes a problem with three APIs in the SMP configuration. The new internal interface is sched_cpu_pause(tcb). This function will pause a CPU if the task associated with 'tcb' is running on that CPU. This allows a different CPU to modify that OS data stuctures associated with the CPU. When the other CPU is resumed, those modifications can safely take place.
The three fixes are to handle cases in the SMP configuration where one CPU does need to make modifications to TCB and data structures on a task that could be running running on another CPU.  Those three cases are task_delete(), task_restart(), and execution of signal handles.  In all three cases the solutions is basically the same:  (1) Call sched_cpu_pause(tcb) to pause the CPU on which the task is running, (2) perform the necessary operations, then (3) call up_cpu_resume() to restart the paused CPU.
2016-11-20 07:57:18 -06:00
Gregory Nutt 6a7619b6f0 Update TODO list 2016-11-19 13:23:15 -06:00
Gregory Nutt a2aba90252 Update some comments 2016-11-19 11:48:08 -06:00
Gregory Nutt f40fbaa4b9 sched/task: task_restart() test not supported on SMP systems. This is not fully implemented. 2016-11-19 11:41:05 -06:00
Sebastien Lorquet 5363d0619a Fix warnings 2016-11-18 15:26:08 +01:00
Sebastien Lorquet 197cec58d2 timer driver: Use signal to notify of timer expiration. Add generic argument so that there can be additional usage. 2016-11-17 14:38:21 -06:00
Gregory Nutt d4a048c0c6 Timer driver: Add hooks to support signal notification of timer expiration. Commented out because invasive interface changes would also be required to complete the implementation. 2016-11-17 12:41:11 -06:00
Gregory Nutt ecb2d4cbc1 drivers/timer: Remove the TIOC_SETHANDLER IOCTL call. This calls directly from the timer driver into application code. That is non-standard, non-portable, and cannot be supported 2016-11-17 11:52:42 -06:00
Alan Carvalho de Assis a6b7730f8c Add Vishay VEML6070 driver and support for STM32F103-Minimum board 2016-11-13 11:44:28 -06:00
Gregory Nutt 796969f6b6 Update TODO. Provide do-nothing stubs for mutex attribute interfaces if features not enabled. pthread_cond includes a signaling semaphore and should call sem_setprotocol. 2016-11-05 11:06:52 -06:00
Gregory Nutt b0dffdc2ca Fix a number of header files with mismatched 'extern C {' and '}' 2016-11-05 07:25:05 -06:00
Gregory Nutt 4c8ec0d2ca include/nuttx/semaphore.h: Fix broken macros 2016-11-03 12:49:44 -06:00
Gregory Nutt 1da3a5fa61 sched: Disable priority inheritance on all semaphores used for signaling 2016-11-03 12:42:02 -06:00
Gregory Nutt de30c2e5dd Back out the rest of commit 1e754402b8. Newlib support will not be accepted into the NuttX repository. 2016-11-03 09:41:38 -06:00
Alan Carvalho de Assis 1e754402b8 Add C++ support linking with GNU toolchain newlib/stdlibc++ 2016-11-03 08:50:58 -06:00
Gregory Nutt 97bf82ee05 Semaphores: Provide macros for sem_setprotobol() and sem_getprotocol() if priority inheritance is not enabled. More SEM_PRIO_* definitions to include/nuttx/semaphore.h 2016-11-02 18:21:46 -06:00
Gregory Nutt d5b4d848d3 Move protoypes for the non-standard include/semaphore.h file to the non-standard include/nuttx/semaphore.h with the other non-standard semaphore interfaces. 2016-11-02 14:43:03 -06:00
Gregory Nutt 6c51544e56 Update some comments 2016-11-02 14:24:16 -06:00
Gregory Nutt b738a646ad sem_getprotocol() can be in C library 2016-11-02 09:29:16 -06:00
Gregory Nutt 92d3022411 Add pthread_mutexattr_get/set_protocol and non-standard sem_get/set_protocol. These may use to enable or disable priority inheritance on a single semaphore. 2016-11-02 09:05:18 -06:00
Paul A. Patience 912fe06a86 Add architecture-specific inttypes.h 2016-10-27 16:01:38 -04:00
Gregory Nutt 1dabbd8489 Costmetic changes 2016-10-24 16:18:30 -06:00
Gregory Nutt 41137b82fa Add strtold() 2016-10-22 13:02:55 -06:00
Gregory Nutt aac8634de2 ctype.h: Correct some dangling garbage from the last change 2016-10-22 10:12:10 -06:00
Gregory Nutt c08cb7ddea Implement ctype.h functions as inline if possible. cctype can then properly select namespace. 2016-10-22 08:18:00 -06:00
Gregory Nutt 30ab01b1d8 strtof: Add strtof() as simply a compy of strtod with types and limits changed 2016-10-20 12:07:12 -06:00
Gregory Nutt 2dbcdd781c Correct STM32 Butterfly2 URL. Correct some comments. 2016-10-20 07:18:23 -06:00
Alan Carvalho de Assis 1cb05d007d Add some less-than-perfect macros to provide some implementation of strtof() and strtold() 2016-10-19 14:26:48 -06:00
Gregory Nutt 8039173c9e Merged in david_s5/nuttx/upstream_local_fix_to_greg (pull request #153)
DO NOT MERGE Until Alan Verifies this -
2016-10-19 17:44:52 +00:00
David Sidrane b1ed7910f0 Allows c++ code to compile with or without CONFIG_LIBC_LOCALE
and will generate a link error if CONFIG_LIBC_LOCALE is not defined
and setlocale is referneced. With CONFIG_LIBC_LOCALE defined
setlocale will act as if MB string is not supported and return
"C" for POSIX. C and ""
2016-10-19 06:49:19 -10:00
Gregory Nutt 48fb97e7b5 More of the same cloned typo 2016-10-19 10:11:45 -06:00
Gregory Nutt 841e1aa77f Fix a cloned typo 2016-10-19 09:14:21 -06:00
Gregory Nutt 54fd0f0a04 Fix a few more compile issues with the new wide character support 2016-10-19 08:18:46 -06:00
Alan Carvalho de Assis b852bb3403 Add iswctype, towlower, towupper and wcsftime functions 2016-10-19 07:49:33 -06:00
Alan Carvalho de Assis 53700fc71f Add isblank() macro to ctype.h 2016-10-19 07:22:13 -06:00
Gregory Nutt c73d3e9c5f Remove comments that no longer apply. clocale should not do anyting if CONFIG_LIBC_LOCALE is not defined. 2016-10-19 07:06:43 -06:00
Gregory Nutt bbf1627024 sys/time.h: timersub macro modified per recommendations of phreakuencies 2016-10-18 19:47:42 -06:00
Gregory Nutt 890a9eb45d Fix a few wide character build issues 2016-10-18 19:11:09 -06:00
Alan Carvalho de Assis b37c94bc68 Modify locale.h to add localeconv() and lconv structure 2016-10-18 18:28:17 -06:00
Alan Carvalho de Assis dfdde741e3 C library: Add wctype.h; Move lib_wctype.c to libc/wctype 2016-10-18 18:24:58 -06:00
Alan Carvalho de Assis 4d39b513b5 Add functions wcrtomb, wcslcpy, wcsxfrm, wctob, wctomb, wctype, localeconv, strcoll, strxfrm 2016-10-18 18:15:54 -06:00
Gregory Nutt 626408bc29 C Library: Add clocale header file 2016-10-18 07:52:22 -06:00
Gregory Nutt 84049a19ba C library: Add a dummy setlocale() function to avoid drawing the function from newlib 2016-10-17 09:45:12 -06:00
Alan Carvalho de Assis df313581db Correct typo in comments 2016-10-11 14:13:28 -06:00