Commit 1d96905d authored by bellard's avatar bellard
Browse files

fixed stdio write


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1072 c046a42c-6fe2-441c-8c8c-71466251a162
parent 99679ece
...@@ -1030,10 +1030,30 @@ typedef struct { ...@@ -1030,10 +1030,30 @@ typedef struct {
static int stdio_nb_clients; static int stdio_nb_clients;
static CharDriverState *stdio_clients[STDIO_MAX_CLIENTS]; static CharDriverState *stdio_clients[STDIO_MAX_CLIENTS];
static int unix_write(int fd, const uint8_t *buf, int len1)
{
int ret, len;
len = len1;
while (len > 0) {
ret = write(fd, buf, len);
if (ret < 0) {
if (errno != EINTR && errno != EAGAIN)
return -1;
} else if (ret == 0) {
break;
} else {
buf += ret;
len -= ret;
}
}
return len1 - len;
}
static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len) static int fd_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
{ {
FDCharDriver *s = chr->opaque; FDCharDriver *s = chr->opaque;
return write(s->fd_out, buf, len); return unix_write(s->fd_out, buf, len);
} }
static void fd_chr_add_read_handler(CharDriverState *chr, static void fd_chr_add_read_handler(CharDriverState *chr,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment