This adds the possibility to open an I2C bus with O_NONBLOCK (or set it
later via fcntl) to get non-blocking transmissions. This means that if
the bus is busy, a read, write or transfer ioctl will return with a
EAGAIN errno.
The RTEMS_MILLISECONDS_TO_TICKS() macro doesn't round up. Do not use it
to calculate the program timeout in ticks. Check program done condition
after the timeout check to account for pre-emptions.
Update #3162.
Added a mmap file handler to struct _rtems_filesystem_file_handlers_r.
Updated each file handler object to support the default mmap handler.
Updated mmap() to call the mmap handler for MAP_SHARED.
Added a mmap file handler for shm
Added support for MAP_ANON in mmap().
Updates #2859
This I2C driver framework has some major differences compared to libi2c.
* It is compatible to the Linux I2C user-space API.
* It uses generic IMFS nodes and thus reduces the levels of indirection.
* The drivers don't have to mess around with minor numbers to get their
state information.
* No arbitrary bus controller model is assumed. The main task of an I2C
bus controller driver is to process I2C messages. How this is done is
private to the driver.
* Scatter/gather operations are supported (I2C_M_NOSTART).