Squashed commit of the following:
fs/cromfs: Now depends on EXPERIMENTAL because it is not yet verified.
fs/cromfs: This commit brings the CROMFS file system to code complete. Still completely untested. Next steps: Need a tool to generate CROMFS file system images and a test case under apps/
fs/cromfs: Add logic to traverse the in-memory file system nodes.
fs/cromfs: Add initial support for an in-memory, compressed, read-only file system.
net/tcp: Add logic to send probes when SO_KEEPALIVE is enabled.
net/tcp: TCP socket should not have to be connected to configure KeepAlive.
net/: Add a separate configuration to enable/disable KEEPALIVE socket options.
net/tcp: Arguments to TCP keep-alive timing functions probably should be struct timeval as are the times for other time-related socket options.
net/tcp: Fix a backward conditional
net/tcp: Add some more checks and debug output to TCP-protocol socket options.
net/tcp: Cosmetic changes to some alignment.
net/: Adds socket options needed to manage TCP-keepalive and TCP state machine logic to detect if that the remote peer is alive. Still missing the timer poll logic to send the keep-alive probes and the state machine logic to respond to probes.
drivers/lcd/ft80x: ACTIVE host command appears to be formatted differently than other host commands; Fix ROM CHIPID. Appears to be big-ending, BCD.
drivers/lcd/ft80x: Fix some compile issues when debug features are enabled.
Feature pca9540bdp i2cmultiplexer
* Implement common i2c multiplexer abstraction to be reused by i2c multiplexer devices. Provide common interface with transfer and reset calls to set up virtual i2c busses.
* Remove i2cmux_lower_half.c and headers, will be implemented by each mux driver
* Implement PCA9540BDP I2C multiplexer lower half which uses the common i2c mux abstraction
* Remove application interface and implement common i2c functions
* Remove application interface from pca driver and implement common i2c functions directly in the pca driver
* Use i2cerr
Approved-by: Gregory Nutt <gnutt@nuttx.org>
cc1101: Changes from review of last PR.
remove gpio
remove cc1101 frame len
remove FLAGS_RXONLY flags
add cc1101 function
remove some waring
add cc1101 poll function
add cc1101 register
add cc1101 isr read data
add cc1101 spi deviceId
add cc1101 init2
add wait cc1101 chip ready
raw init cc1101
drivers/lcd and include/nuttx/lcd: Add FT80x support for writing to graphics memory. Also add some definitions needed by apps/examples/ft80x for bitmap manipulation.
drivers/lcd: Review/update FT80x initializatin logic
drivers/lcd: Rename ft80x_base.c to just ft80x.c. Add logic to notify FT80X clients of events via signals.
drivers/lcd: Trivial updates to naming. Add some new definitions.
Squashed commit of the following:
drivers/lcd: Finishes off basic FT80X. Still missing some niceties.
drivers/lcd: Rethink FT80X display list interface.
drivers/lcd: More FT800x display list logic. Still not complete.
drivers/lcd: Add some basic FT80x initialization logic.
drivers/lcd: Add ft80x display list IOCTL framework. Still missing low level display list operations.
drivers/lcd: FT80x driver cannot be a standard LCD driver but must, instead, be a custom character driver.
drivers/lcd: Add FT800 co-processor commands and display list helpers.
drivers/lcd: Add SPI interface and framework for the initialization and the basic LCD driver.
drivers/lcd: Add beginnings of some FT80x implementation.
drivers/lcd: Add definitions for the FTDI FT801 part
include/nuttx/lcd/ft800.h: Add initial FT800 interface definition.
drivers/lcd: Add ft800 header file.
Added support for LIS3DH accelerometer sensor.
* Added support for LIS3DH accelerometer sensor.
* Fix line length
* Fix more line lengthts
Approved-by: Gregory Nutt <gnutt@nuttx.org>
sched/: Convert legitimate uses of task_create() to nxtask_create(). Review handling of returned values from all uses of kthread_create() (as well as nxtask_create()).
graphics/: Review return values for all calls to kthread_start() because it no longer returns an errno.
drivers/: threads started by drivers should be kernel threads, not user tasks. Review return values for all calls to kthread_start() because it no longer returns an errno.
configs/: threads started by board bringup logic should be kernel threads, not user tasksi (part 2 of 2).
sched/task: Add nxtask_create(). Kthread_create() and nxtask_create() are internal OS functions and should not modify the errno variable. configs/: threads started by board bringup logic should be kernel threads, not user tasks.
The previous implementation of clearing global IRQ in sched_addreadytorun()
and sched_removereadytorun() was done too early. As a result, nxsem_post()
would have a chance to enter the critical section even nxsem_wait() is
still not in blocked state. This patch moves clearing global IRQ controls
from sched_addreadytorun() and sched_removereadytorun() to sched_resumescheduler()
to ensure that nxsem_post() can enter the critical section correctly.
For this change, sched_resumescheduler.c is always necessary for SMP configuration.
In addition, by this change, task_exit() had to be modified so that it calls
sched_resumescheduler() because it calls sched_removescheduler() inside the
function, otherwise it will cause a deadlock.
However, I encountered another DEBUGASSERT() in sched_cpu_select() during
HTTP streaming aging test on lc823450-xgevk. Actually sched_cpu_select()
accesses the g_assignedtasks which might be changed by another CPU. Similarly,
other tasklists might be modified simultaneously if both CPUs are executing
scheduling logic. To avoid this, I introduced tasklist protetion APIs.
With these changes, SMP kernel stability has been much improved.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
sched/sched: Correct some build issues introduced by last set of changes.
sched/sched: Add new internal OS function nxsched_setaffinity() that is identical to sched_isetaffinity() except that it does not modify the errno value. All usage of sched_setaffinity() within the OS is replaced with nxsched_setaffinity().
sched/sched: Internal functions sched_reprioritize() and sched_setpriority() no longer movidify the errno value. Also renamed to nxsched_reprioritize() and sched_setpriority().
sched/sched: Add new internal OS function nxsched_getscheduler() that is identical to sched_getscheduler() except that it does not modify the errno value. All usage of sched_getscheduler() within the OS is replaced with nxsched_getscheduler().
sched/sched: Add new internal OS function nxsched_setparam() that is identical to sched_setparam() except that it does not modify the errno value. All usage of sched_setparam() within the OS is replaced with nxsched_setparam().
sched/sched: Add new internal OS function nxsched_getparam() that is identical to sched_getparam() except that it does not modify the errno value (actually, the previous value erroneously neglected to set the errno value to begin with, but this fixes both issues). All usage of sched_getparam() within the OS is replaced with nxsched_getparam().
Squashed commit of the following:
net/udp: Address most of the issues with UDP write buffering. There is a remaining issue with handling one network going down in a multi-network environment. None of this has been test but it is certainly ready for test. Hence, the feature is marked EXPERIMENTAL.
net/udp: Some baby steps toward a corrected write buffering design.
net/udp: Remove pesky write buffer macros.
Eliminate trailing space at the end of lines.
net/udp: A little more UDP write buffering logic. Still at least on big gaping hole in the design.
net/udp: Undefined CONFIG_NET_SENDTO_TIMEOUT.
net/udp: Crude, naive port of the TCP write buffering logic into UDP. This commit is certainly non-functional and is simply a starting point for the implementatin of UDP write buffering.
net/udp: Rename udp/udp_psock_sendto.c udp/udp_psock_sendto_unbuffered.c.
Squashed commit of the following:
configs: Each board now initializes the touchscreen controller as a normal part of its board bring-up. board_tsc_setup() is gone; the touchscreen controller is now treated like any other on-board device.
Remove all support for BOARDIOC_TSCTEST_SETUP
Move prototype for board_tsc_setup() from include/nuttx/board.h to individual board header files.
These APIs are used in sched_note.c to protect instumentation data.
The deffrence between these APIs to exsiting spin_lock() and spin_unlock()
is that they do not perform insturumentation to avoid recursive call
when SCHED_INSTRUMENTATION_SPINLOCKS=y.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
fs: Add truncate() support for userfs
fs/unionfs: Add truncate() support to the unionfs
fs/tmpfs: Add ftruncate() support to tmpfs
syscall/: Add system call support for ftruncate()
net/route: Adding ftruncate() support eliminates an issue in file-based routing table management.
fs: Add basic framework to support truncate() and ftruncate(). The infrastructure is complete. Now, however, the actual implementation of ftruncate() will have to be done for each file system.
SMP: Introduce spin_lock_irqsave() and spin_unlock_irqrestore()
These APIs are simplified version of enter_critical_section() and
leave_critical_section() to protect data (e.g. registers) in SMP mode.
By using these APIs inside drivers, performace will be improved.
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
Approved-by: Gregory Nutt <gnutt@nuttx.org>
Pass header-payload offset to application for use when the MAC layer is in promiscuous mode
* mac802154_device: When in promiscuous mode, the char driver sends the entire frame, including the MAC header. This change adds an offset field indicating the header-payload boundary. It is set to 0 when not in promiscuous mode as the header is not passed to the application
* mac802154: Adds support for getting promiscuous mode state
Approved-by: Gregory Nutt <gnutt@nuttx.org>