Changeset View
Changeset View
Standalone View
Standalone View
head/lib/libstand/read.c
Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | read(int fd, void *dest, size_t bcount) | ||||
if ((unsigned)fd >= SOPEN_MAX || !(f->f_flags & F_READ)) { | if ((unsigned)fd >= SOPEN_MAX || !(f->f_flags & F_READ)) { | ||||
errno = EBADF; | errno = EBADF; | ||||
return (-1); | return (-1); | ||||
} | } | ||||
if (f->f_flags & F_RAW) { | if (f->f_flags & F_RAW) { | ||||
twiddle(4); | twiddle(4); | ||||
errno = (f->f_dev->dv_strategy)(f->f_devdata, F_READ, | errno = (f->f_dev->dv_strategy)(f->f_devdata, F_READ, | ||||
btodb(f->f_offset), bcount, dest, &resid); | btodb(f->f_offset), 0, bcount, dest, &resid); | ||||
if (errno) | if (errno) | ||||
return (-1); | return (-1); | ||||
f->f_offset += resid; | f->f_offset += resid; | ||||
return (resid); | return (resid); | ||||
} | } | ||||
/* | /* | ||||
* Optimise reads from regular files using a readahead buffer. | * Optimise reads from regular files using a readahead buffer. | ||||
Show All 37 Lines |