Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(356)

Side by Side Diff: fusl/src/stdio/__stdio_write.c

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #include "stdio_impl.h" 1 #include "stdio_impl.h"
2 #include <sys/uio.h> 2 #include <sys/uio.h>
3 3
4 size_t __stdio_write(FILE *f, const unsigned char *buf, size_t len) 4 size_t __stdio_write(FILE* f, const unsigned char* buf, size_t len) {
5 { 5 struct iovec iovs[2] = {{.iov_base = f->wbase, .iov_len = f->wpos - f->wbase},
6 » struct iovec iovs[2] = { 6 {.iov_base = (void*)buf, .iov_len = len}};
7 » » { .iov_base = f->wbase, .iov_len = f->wpos-f->wbase }, 7 struct iovec* iov = iovs;
8 » » { .iov_base = (void *)buf, .iov_len = len } 8 size_t rem = iov[0].iov_len + iov[1].iov_len;
9 » }; 9 int iovcnt = 2;
10 » struct iovec *iov = iovs; 10 ssize_t cnt;
11 » size_t rem = iov[0].iov_len + iov[1].iov_len; 11 for (;;) {
12 » int iovcnt = 2; 12 cnt = syscall(SYS_writev, f->fd, iov, iovcnt);
13 » ssize_t cnt; 13 if (cnt == rem) {
14 » for (;;) { 14 f->wend = f->buf + f->buf_size;
15 » » cnt = syscall(SYS_writev, f->fd, iov, iovcnt); 15 f->wpos = f->wbase = f->buf;
16 » » if (cnt == rem) { 16 return len;
17 » » » f->wend = f->buf + f->buf_size; 17 }
18 » » » f->wpos = f->wbase = f->buf; 18 if (cnt < 0) {
19 » » » return len; 19 f->wpos = f->wbase = f->wend = 0;
20 » » } 20 f->flags |= F_ERR;
21 » » if (cnt < 0) { 21 return iovcnt == 2 ? 0 : len - iov[0].iov_len;
22 » » » f->wpos = f->wbase = f->wend = 0; 22 }
23 » » » f->flags |= F_ERR; 23 rem -= cnt;
24 » » » return iovcnt == 2 ? 0 : len-iov[0].iov_len; 24 if (cnt > iov[0].iov_len) {
25 » » } 25 cnt -= iov[0].iov_len;
26 » » rem -= cnt; 26 iov++;
27 » » if (cnt > iov[0].iov_len) { 27 iovcnt--;
28 » » » cnt -= iov[0].iov_len; 28 }
29 » » » iov++; iovcnt--; 29 iov[0].iov_base = (char*)iov[0].iov_base + cnt;
30 » » } 30 iov[0].iov_len -= cnt;
31 » » iov[0].iov_base = (char *)iov[0].iov_base + cnt; 31 }
32 » » iov[0].iov_len -= cnt;
33 » }
34 } 32 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698