mirror of
https://github.com/xemu-project/xemu.git
synced 2024-12-18 01:08:51 +00:00
Support for unidirectional pipes, by Ed Swierk.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2267 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
c032e2a98c
commit
c26c1c4b3d
21
vl.c
21
vl.c
@ -1297,12 +1297,23 @@ CharDriverState *qemu_chr_open_file_out(const char *file_out)
|
|||||||
|
|
||||||
CharDriverState *qemu_chr_open_pipe(const char *filename)
|
CharDriverState *qemu_chr_open_pipe(const char *filename)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd_in, fd_out;
|
||||||
|
char filename_in[256], filename_out[256];
|
||||||
|
|
||||||
fd = open(filename, O_RDWR | O_BINARY);
|
snprintf(filename_in, 256, "%s.in", filename);
|
||||||
if (fd < 0)
|
snprintf(filename_out, 256, "%s.out", filename);
|
||||||
return NULL;
|
fd_in = open(filename_in, O_RDWR | O_BINARY);
|
||||||
return qemu_chr_open_fd(fd, fd);
|
fd_out = open(filename_out, O_RDWR | O_BINARY);
|
||||||
|
if (fd_in < 0 || fd_out < 0) {
|
||||||
|
if (fd_in >= 0)
|
||||||
|
close(fd_in);
|
||||||
|
if (fd_out >= 0)
|
||||||
|
close(fd_out);
|
||||||
|
fd_in = fd_out = open(filename, O_RDWR | O_BINARY);
|
||||||
|
if (fd_in < 0)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return qemu_chr_open_fd(fd_in, fd_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user