Commit Graph

212 Commits

Author SHA1 Message Date
Gregory Nutt
4810499d3a Squashed commit of the following:
Replace all calls to sigqueue() in the OS proper with calls to nxsig_queue() to avoid accessing the errno variable.

    sched/signal:  Add nxsig_queue() which is functionally equivalent to sigqueue() except that it does not modify the errno variable.
2017-10-07 10:57:09 -06:00
Gregory Nutt
936df1bcb5 Adds new OS internal functions nxsig_sleep() and nxsig_usleep. These differ from the standard sleep() and usleep() in that (1) they don't cause cancellation points, and (2) don't set the errno variable (if applicable). All calls to sleep() and usleep() changed to calls to nxsig_sleep() and nxsig_usleep().
Squashed commit of the following:

    Change all calls to usleep() in the OS proper to calls to nxsig_usleep()

    sched/signal:  Add a new OS internal function nxsig_usleep() that is functionally equivalent to usleep() but does not cause a cancellaption point and does not modify the errno variable.

    sched/signal:  Add a new OS internal function nxsig_sleep() that is functionally equivalent to sleep() but does not cause a cancellaption point.
2017-10-06 10:15:01 -06:00
Jussi Kivilinna
7fc7cc9f8f drivers/input/cypress_mbr3108: Add missing variable for nxsem_wait return value 2017-10-06 07:30:04 -06:00
Gregory Nutt
9568600ab1 Squashed commit of the following:
This commit backs out most of commit b4747286b1.  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.
2017-10-04 15:22:27 -06:00
Gregory Nutt
42a0796615 Squashed commit of the following:
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
2017-10-03 15:35:24 -06:00
Gregory Nutt
83cdb0c552 Squashed commit of the following:
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.
2017-10-03 12:52:31 -06:00
Juha Niskanen
0113b0db95 drivers: handle I2C_TRANSFER return value consistently. Some I2C peripherals transfers return zero on success, others number of completed transfers. Make drivers robust against this. 2017-08-04 07:31:36 -06:00
Jan Pobrislo
7999822189 I've found that the interrupts aren't enabled since nothing updates them after btn_poll() marks the file descriptor structure as being polling. I've managed to make it work with this change. 2017-07-04 14:43:19 -06:00
Juha Niskanen
80cc19d6b0 drivers/input: add Cypress MBR3108 CapSense touch button driver 2017-05-31 06:31:53 -06:00
Jussi Kivilinna
7ae8173449 button_upper: fix interrupt enabling for poll-events 2017-05-24 08:06:13 -06:00
Juha Niskanen
b9a769d65d drivers: fix some bad NULL checks 2017-05-15 07:20:32 -06:00
Gregory Nutt
0de294a586 Fix lots of occurrences of 'the the', 'the there', 'the these', 'the then', 'the they. 2017-05-11 13:35:56 -06:00
Gregory Nutt
e9a5477506 Add an instance argument to the SPIDEV definitions. 2017-04-29 12:26:52 -06:00
Gregory Nutt
d5207efb5a Be consistent... Use Name: consistent in function headers vs Function: 2017-04-21 16:33:14 -06:00
Gregory Nutt
cb70ce7d3c 6loWPAN: Correct some IPv6 addresses and operations on IPv6 addresses. 2017-04-05 12:11:09 -06:00
Jussi Kivilinna
dffb8a67e3 Add entropy pool and strong random number generator
Entropy pool gathers environmental noise from device drivers, user-space, etc., and returns good random numbers, suitable for cryptographic use. Based on entropy pool design from *BSDs and uses BLAKE2Xs algorithm for CSPRNG output.

Patch also adds /dev/urandom support for using entropy pool RNG and new 'getrandom' system call for getting randomness without file-descriptor usage (thus avoiding file-descriptor exhaustion attacks). The 'getrandom' interface is similar as 'getentropy' and 'getrandom' available on OpenBSD and Linux respectively.
2017-03-30 07:38:37 -06:00
Gregory Nutt
3872055daa drivers/audio/wm8904: WM8904 has same problem as that fixed by Juha Niskanen in the MaxTouch driver. 2017-03-21 07:20:45 -06:00
Juha Niskanen
c3d9b86662 input/mxt: prevent overriding i2c transfer return value
put_reg/get_reg function was overriding i2c transfer error code with i2creset return value, that lead to OK status although actual transfer failed.

Signed-off-by: Juha Niskanen <juha.niskanen@haltian.com>
Reported-by: Harri Luhtala <harri.luhtala@haltian.com>
2017-03-21 07:12:07 -06:00
Gregory Nutt
02b1e1ec1a Fixes for coding standard: '*' needs to 'snuggle' with following variable name 2017-02-28 18:22:57 -06:00
Gregory Nutt
704df7bd39 IRQ arguments: Fix errors discovered in build testing 2017-02-27 19:28:24 -06:00
Gregory Nutt
67de2e5f66 Add argument to STM32 EXTI interrupt handlers. 2017-02-27 14:21:30 -06:00
Gregory Nutt
a773f9412a STMPE811 driver needs argument in interrupt handler 2017-02-27 11:41:48 -06:00
Gregory Nutt
f15b566254 Button interrupt handler needs argument parameter. 2017-02-27 07:35:34 -06:00
Mark Schulte
b3222bbc8a irq_dispatch: Add argument pointer to irq_dispatch
Provide a user defined callback context for irq's, such that when
registering a callback users can provide a pointer that will get
passed back when the isr is called.
2017-02-27 06:27:56 -06:00
Gregory Nutt
4fcbe8e410 drivers: Disable priority inheritance on all semaphores used for signaling 2016-11-03 11:00:47 -06:00
Gregory Nutt
2a751068e6 Without lowsyslog() *llerr() is not useful. Eliminate and replace with *err(). 2016-06-20 12:44:38 -06:00
Gregory Nutt
43eb04bb8f Without lowsyslog() *llinfo() is not useful. Eliminate and replace with *info(). 2016-06-20 11:59:15 -06:00
Gregory Nutt
3fa41c0f18 Kconfig files: Fix some dependencies that have CONFIG_ in the variable name 2016-06-17 19:30:19 -06:00
Gregory Nutt
0c8c7fecf0 Add _ to the beginning of all debug macros to avoid name collisions 2016-06-16 12:33:32 -06:00
Gregory Nutt
eac916c907 Fix some warnings 2016-06-13 11:48:20 -06:00
Gregory Nutt
0665c7e06c drivers/: Change some nerr() ERRORS to ninfo() and nwarn() WARNINGS. 2016-06-12 09:26:12 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
e99301d7c2 Rename *lldbg to *llerr 2016-06-11 14:55:27 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt
3a74a438d9 Rename CONFIG_DEBUG_VERBOSE to CONFIG_DEBUG_INFO 2016-06-11 11:50:18 -06:00
Gregory Nutt
9c4b604074 Button upper half driver: Add definitions needed for compilation with the poll() interface is not disabled. 2016-06-11 07:22:31 -06:00
Gregory Nutt
2244ed46bc nuttx/drivers: Replace irqsave() with enter_critical_section(); replace irqrestore() with leave_critical_section() 2016-02-14 07:32:58 -06:00
Gregory Nutt
9ce58ad5b7 I2C: up_i2creset should not be a global function; Now it is an I2C interface method 2016-02-02 11:21:48 -06:00
Gregory Nutt
69ce24c70c I2C: Remove the setfrequency method from the interface 2016-02-01 16:31:13 -06:00
Gregory Nutt
6ad641888b Add I2C frequency to the i2c_msg_s structure 2016-02-01 14:17:20 -06:00
Gregory Nutt
f9053182d3 I2C: Remove setaddress method 2016-02-01 12:14:31 -06:00
Gregory Nutt
3a781a2d3f Remove I2C slave methods from I2C master interface; rename i2c_dev_s to i2c_master_s. 2016-01-30 08:36:47 -06:00
Gregory Nutt
ceb415204e Move include/nuttx/i2c.h to include/nuttx/i2c/i2c_master.h 2016-01-30 08:00:16 -06:00
Gregory Nutt
7edf921c5e Remove CONFIG_SPI_OWNBUS: Now it is not just a good idea, it is the law 2016-01-23 18:54:36 -06:00
Gregory Nutt
f6e49caba8 All SPI-based device drivers needs to call SPI_HWFEATURES() with zero in order to co-exist with drivers that use H/W features 2016-01-23 16:18:13 -06:00
Gregory Nutt
fc91ded815 Add support for a general user LED lower-half driver 2015-11-01 14:57:22 -06:00
Gregory Nutt
0dea00177e Add a generic user LED upper half discrete driver 2015-11-01 14:41:40 -06:00
Gregory Nutt
a5f44cd9fc Buttons lower half: Undefine __KERNEL__ before including board.h to suppress bad included; fix some configuratin issues 2015-10-13 09:29:23 -06:00
Gregory Nutt
f0b40ba96a Add a a generic lower half button driver 2015-10-13 07:08:11 -06:00
Gregory Nutt
75fcf4e8a1 Trivial fixes to spacing 2015-10-12 14:53:47 -06:00
Gregory Nutt
613798027e Add a button upper/lower half driver 2015-10-12 14:29:43 -06:00
Gregory Nutt
cf14f8d1b5 drivers/: Fixes to spacing and alignement 2015-10-10 10:41:00 -06:00
Sebastien Lorquet
c9649b5f04 STMPE811: I found that, in stmpe811_instanciate(), when CONFIG_STMPE811_MULTIPLE is enabled, and the call to stmpe811_checkid() fails, then the linked device list is not restored to its previous state. From Sebastien Lorquet. 2015-07-02 08:19:29 -06:00
Gregory Nutt
342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt
a0866c0753 drivers/input/max11802.c: Fix possible unmatched IRQ restore. Noted by Juha Niskanen 2015-04-14 07:22:02 -06:00
Gregory Nutt
e4d2822af8 Make some file section headers more consistent with standard 2015-04-08 07:15:32 -06:00
Gregory Nutt
3cc6bee189 Nucleo-f4x1re: Fix some joystick pin definitions 2014-12-04 12:04:21 -06:00
Gregory Nutt
1f2447502f SAMA5D3 Xplained: Add support for the Itead Joystick shield 2014-12-03 12:24:23 -06:00
Gregory Nutt
19d31412f7 Update/correct some comments 2014-11-29 07:08:30 -06:00
Gregory Nutt
2b8fe6709b Add an analog joystick driver. Initial checkin is only a little more of a clone of the discrete joystick driver and is as-of-yet untested 2014-11-28 19:59:27 -06:00
Gregory Nutt
24d4253e1f Fixes to get the discrete joystick driver and test working 2014-11-28 15:56:18 -06:00
Gregory Nutt
544322edb9 DJoystick: Add a new ioctl to get the support joystick discrete signals 2014-11-28 15:39:57 -06:00
Gregory Nutt
0d04a4e9ba Fix missing quote in Kconfig 2014-11-28 10:16:58 -06:00
Gregory Nutt
2d9bd07525 Some additional, minor improvements to djoystick interrupt controls 2014-11-27 20:20:10 -06:00
Gregory Nutt
0ec5043a4e Add an interface definition and upper half driver for a discrete joystick device 2014-11-27 17:42:16 -06:00
Gregory Nutt
2994448d85 More fixes to problems noted by cppcheck. Some are kind of risky; some are real bugs. 2014-11-25 13:15:09 -06:00
Gregory Nutt
1a27a4d4c0 Eliminate warnings 2014-10-11 17:02:35 -06:00
Gregory Nutt
c38b81431f Cosmetic updates to comments 2014-10-11 15:20:21 -06:00
Gregory Nutt
205260d5e2 Reanem kzalloc to kmm_zalloc for consistency 2014-08-31 17:34:44 -06:00
Gregory Nutt
1780810d3d Rename kmalloc to kmm_malloc for consistency 2014-08-31 17:26:36 -06:00
Gregory Nutt
54fa3b0b59 Rename kfree to kmm_free for consistency with other naming conventions 2014-08-31 17:04:02 -06:00
Gregory Nutt
ad9b3f8ab8 wdog.h does not contain any application interface, only internal OS interface. Further, it is non-standard. Move wdog.h from include/ to include/nuttx. For the same reason, move the description of the watchdog timer interfaces from the Users Guide to the Porting Guide. 2014-08-21 11:16:55 -06:00
Gregory Nutt
c9661ad5a7 Change all time conversions. Yech. New timer units in microseconds breaks all existing logic that used milliseconds in the conversions. Something likely got broken doing this, probably because I confused a MSEC2TICK conversion with a TICK2MSEC conversion. Also, the tickless OS no appears fully functional and passes the OS test on the simulator with no errors 2014-08-07 18:00:38 -06:00
Gregory Nutt
05e82d4f01 Add missing configuration option to select the MAX11802 touchscreen controller 2014-07-22 07:09:48 -06:00
Gregory Nutt
cc09d75180 MXT driver: Fix error in thread test... backward logic 2014-07-16 22:13:41 -06:00
Gregory Nutt
44e6516213 maXTouch: Add thresholding so that MOVE reports are not generated unless there is a significant change in the reported position 2014-07-12 14:00:33 -06:00
Gregory Nutt
4548ea731e maXTouch: Fix error in state machine 2014-07-12 11:23:07 -06:00
Gregory Nutt
f97113c5ef SAMA5D4-EK: The maXTouch controller and test is now enabled by default in the NSH configuration 2014-07-10 08:42:25 -06:00
Gregory Nutt
3b0a797216 MXT driver works 2014-07-10 07:16:38 -06:00
Gregory Nutt
22fbcbb852 MXT driver is now at least partially functional 2014-07-09 18:56:53 -06:00
Gregory Nutt
e9362128bd SAMA5 TWI: Add support for up_i2creset 2014-07-09 09:51:28 -06:00
Gregory Nutt
25f419d487 MXT Driver: Make sure that all return values are checked: Fix worker thread -- it must hold the MXT device semaphore to access I2C 2014-07-08 08:55:43 -06:00
Gregory Nutt
ab8506163a maXTouch: Fix some issues with interrupt handling 2014-07-07 13:25:20 -06:00
Gregory Nutt
5bbc0a0dd9 maXTouch: Check for successful memory allocation was backward 2014-07-07 09:55:39 -06:00
Gregory Nutt
09d0e2bdd2 maXTouch: Be consistent. Failure return values are not just non-zero, but negative 2014-07-06 09:08:38 -06:00
Gregory Nutt
4afc23d16d maXTouch: Fix test of I2C_TRANSFER return value 2014-07-06 08:51:38 -06:00
Gregory Nutt
b4d3cebc2f maXTouch: Fix I2C address, errors when debug enable, reorganize some data 2014-07-06 08:03:34 -06:00
Gregory Nutt
c2fc299332 Forgot to add a file in the last commit 2014-07-05 11:57:03 -06:00
Gregory Nutt
3e9f29ba07 Add very basic support for the Atmel maXTouch touchscreen controller 2014-07-05 11:47:54 -06:00
Gregory Nutt
b732388fcb TSC2007: Cosmetic updates 2014-07-04 15:03:41 -06:00
Gregory Nutt
3a1324741a More trailing whilespace removal 2014-04-13 14:32:20 -06:00
Gregory Nutt
91b002a043 Many changes to reduce complaints from CppCheck. Several latent bugs fixes, but probably some new typos introduced 2014-02-10 18:08:49 -06:00
Gregory Nutt
0070815e87 HID mouse can now support some while mice. Problems with Microsoft mice 2014-02-10 11:53:37 -06:00
Gregory Nutt
c95cd438ef Minor typo fixes 2014-02-09 13:43:43 -06:00
Gregory Nutt
bc46b447dc Fix all occurrences of "the the" in documentation and comments 2013-08-27 09:40:19 -06:00
Gregory Nutt
8b68ea2f94 Add a general bit-bang SPI upper-half driver 2013-07-01 12:23:26 -06:00
Gregory Nutt
09faaccc02 Created new directories to hold SPI-related files 2013-07-01 08:11:54 -06:00
Gregory Nutt
c9f1d1857c SAM3U-EK: Correct polarity of the PENIRQ signal 2013-06-16 14:31:18 -06:00
Gregory Nutt
c7fd7a4e27 Re-architected SAM3/4 SPI interface; Change BUSY bit handling in the ADS7843E driver 2013-06-16 10:09:21 -06:00