#34 closed defect (fixed)
Adjust RTPipe API
| Reported by: | dmik | Owned by: | Valery V. Sedletski |
|---|---|---|---|
| Priority: | blocker | Milestone: | VBox driver |
| Component: | Runtime | Keywords: | |
| Cc: |
Description
The current OS/2 implementation of the RTPipe api uses DosCreateNPipe and friends, i.e. OS/2 native named pipes. This imposes a problem though: some cross-platform code (e.g. DrvNAT.cpp, DrvTAP.cpp) uses LIBC poll() to work with pipes created by RTPipeCreate, but OS/2 native pipes are incompatible with LIBC select() which is used there by the poll() implementation.
There are several ways to deal with that:
- Replace RPIPE with RTSOCKET and use
RTSocketinstead (sockets are compatible withselect()). Seems to work but creates a lot of OS/2-specific #ifdefs in the sources, not very good. - Change the
RTPlpeimplementation to use the posix code path (the one Linux uses). This implies usingsocketpairinstead ofpipe(as the latter also creates handles incompatible withselect). Looks attractive as doesn't require any changes in the using code. - Change the using code (
DrvNAT.cppand others) to useRTPollinstead ofpollas the former knows how to deal with OS/2 native pipes created withRTPipeCreate.
Change History (6)
comment:1 by , 10 years ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:3 by , 10 years ago
| Owner: | changed from to |
|---|
comment:4 by , 10 years ago
The ways 1) and 2) result in the same, poll() / select() is working on sockets only, but NAT/Network/DHCP is still not working. No error like in #18, though, and VM is working (except for the Network -- packets are sent, but no packets are received). So, it seems, the problem is elsewhere.
The approach 3) is also tried, but unfinished.
comment:5 by , 10 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
So the issue we are still seeing is unrelated to this ticket. As I also understand, this issue is different from #18 as well. So, Valerius, please create a new ticket for it.
We finally decided to stick with approach 2 for this ticket's original problem (see comment:2) and the respective changes are committed in r63. Closing this ticket.
comment:6 by , 10 years ago
| Milestone: | VBox SDL Interface → VBox driver |
|---|

Valerius is currently working on approach 2 to see if it works (as it requires less changes in other sources once implemented).