Yesterday, we (as in JS, MS and me) briefly touched some existing issues with using the serial port driver for both reading and writing at the same time. Martin, I thought this topic deserves some more attention, so I wanted to state what problems I know about so that you can check your own findings and add to the list, if you know of some other issues:
- #508 Parallel sessions don't mix well with call forwarding This problem is making it impossible to have a parallel session opened to a serial service using `loc_service_connect()' on the respective _service_ path. However, due to the way this bug works, it is possible to establish the parallel session using `devman_device_connect()` on the respective _device_ path. Note that the parallel sessions are one of the two possible ways to access the device for both reading and writing at the same time. The fibrils executing the char_dev_read() call can block inside the ns8250 driver, while fibrils executing the char_dev_write() can proceed without being blocked by the readers. The other way is establishing two separate serialized sessions to the serial service. One sessions will be used for reading and the other for writing to the device. - The ns8250 does not support more than one connected clients. I allowed more clients to be connected to ns8250 in: http://bazaar.launchpad.net/~jakub/helenos/slip/revision/1818 - There appears to be a bug in QEMU, which shows when you want to redirect the serial port to a pipe on the host using something like: $ mkfifo /tmp/serialpipe $ qemu ... -seril pipe:/tmp/serialpipe https://bugs.launchpad.net/qemu/+bug/1181796 Now, do you know of more issues that would prevent parallel readers and writers? Jakub _______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/listinfo/helenos-devel
