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   / \

Reply via email to