Stathis Kamperis (via DragonFly issue tracker) wrote:
Stathis Kamperis <[email protected]> added the comment:
I've added a kprintf in ktrsysret() and here is what printed:
1126 a.out CALL pipe
1126 a.out RET ret=3 error=0 code=42 pipe 3
Question is why `ret' contains the first file descriptor of the pair at all.
(and not zero as ought to)
This is because sys_pipe returns both fds as return value, namely
sysmsg_fds[0] and sysmsg_fds[1]. However ktrsysret is only called with
sysmsg_result, which covers only the first fd.
I guess the pipe libc glue code copies this result into the array.
cheers
simon
--
<3 the future +++ RENT this banner advert +++ ASCII Ribbon /"\
rock the past +++ space for low CHF NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \