* pipe.cc (fhandler_pipe::create): Use debug_printf to print debugging info

since this isn't a "syscall".
(pipe_worker): New function created from _pipe().
(_pipe): Use pipe_worker to create a pipe.  Use standard syscall strace
reporting on exit.
(pipe): Ditto.
(pipe2): Ditto.
This commit is contained in:
Christopher Faylor 2011-12-12 01:22:29 +00:00
parent fc25f200f4
commit b11797ad17
2 changed files with 51 additions and 6 deletions

View File

@ -1,3 +1,13 @@
2011-12-11 Christopher Faylor <me.cygwin2011@cgf.cx>
* pipe.cc (fhandler_pipe::create): Use debug_printf to print debugging
info since this isn't a "syscall".
(pipe_worker): New function created from _pipe().
(_pipe): Use pipe_worker to create a pipe. Use standard syscall strace
reporting on exit.
(pipe): Ditto.
(pipe2): Ditto.
2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx> 2011-12-10 Christopher Faylor <me.cygwin2011@cgf.cx>
* select.cc (select_stuff::wait): Very minor formatting fix. * select.cc (select_stuff::wait): Very minor formatting fix.

View File

@ -348,7 +348,7 @@ fhandler_pipe::create (fhandler_pipe *fhs[2], unsigned psize, int mode)
res = 0; res = 0;
} }
syscall_printf ("%R = pipe([%p, %p], %d, %p)", res, fhs[0], fhs[1], psize, mode); debug_printf ("%R = pipe([%p, %p], %d, %p)", res, fhs[0], fhs[1], psize, mode);
return res; return res;
} }
@ -386,8 +386,8 @@ fhandler_pipe::fstatvfs (struct statvfs *sfs)
return -1; return -1;
} }
extern "C" int static int __attribute__ ((regparm (3)))
_pipe (int filedes[2], unsigned int psize, int mode) pipe_worker (int filedes[2], unsigned int psize, int mode)
{ {
fhandler_pipe *fhs[2]; fhandler_pipe *fhs[2];
int res = fhandler_pipe::create (fhs, psize, mode); int res = fhandler_pipe::create (fhs, psize, mode);
@ -404,19 +404,54 @@ _pipe (int filedes[2], unsigned int psize, int mode)
fdout = fhs[1]; fdout = fhs[1];
filedes[0] = fdin; filedes[0] = fdin;
filedes[1] = fdout; filedes[1] = fdout;
debug_printf ("%d, %d", (int) fdin, (int) fdout);
} }
return res; return res;
} }
extern "C" int
_pipe (int filedes[2], unsigned int psize, int mode)
{
int res = pipe_worker (filedes, psize, mode);
int read, write;
if (res != 0)
read = write = -1;
else
{
read = filedes[0];
write = filedes[1];
}
syscall_printf ("%R = _pipe([%d, %d], %u, %p)", res, read, write, psize, mode);
return res;
}
extern "C" int extern "C" int
pipe (int filedes[2]) pipe (int filedes[2])
{ {
return _pipe (filedes, DEFAULT_PIPEBUFSIZE, O_BINARY); int res = pipe_worker (filedes, DEFAULT_PIPEBUFSIZE, O_BINARY);
int read, write;
if (res != 0)
read = write = -1;
else
{
read = filedes[0];
write = filedes[1];
}
syscall_printf ("%R = pipe([%d, %d])", res, read, write);
return res;
} }
extern "C" int extern "C" int
pipe2 (int filedes[2], int mode) pipe2 (int filedes[2], int mode)
{ {
return _pipe (filedes, DEFAULT_PIPEBUFSIZE, mode); int res = pipe_worker (filedes, DEFAULT_PIPEBUFSIZE, mode);
int read, write;
if (res != 0)
read = write = -1;
else
{
read = filedes[0];
write = filedes[1];
}
syscall_printf ("%R = pipe2([%d, %d], %p)", res, read, write, mode);
return res;
} }