| 284 | } |
| 285 | |
| 286 | ssize_t read_in_full(int fd, void *buf, size_t count) |
| 287 | { |
| 288 | char *p = buf; |
| 289 | ssize_t total = 0; |
| 290 | |
| 291 | while (count > 0) { |
| 292 | ssize_t loaded = xread(fd, p, count); |
| 293 | if (loaded < 0) |
| 294 | return -1; |
| 295 | if (loaded == 0) |
| 296 | return total; |
| 297 | count -= loaded; |
| 298 | p += loaded; |
| 299 | total += loaded; |
| 300 | } |
| 301 | |
| 302 | return total; |
| 303 | } |
| 304 | |
| 305 | ssize_t write_in_full(int fd, const void *buf, size_t count) |
| 306 | { |
no test coverage detected