Changeset View
Changeset View
Standalone View
Standalone View
lib/libstand/write.c
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | write(fd, dest, bcount) | ||||
if ((unsigned)fd >= SOPEN_MAX || !(f->f_flags & F_WRITE)) { | if ((unsigned)fd >= SOPEN_MAX || !(f->f_flags & F_WRITE)) { | ||||
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_WRITE, | errno = (f->f_dev->dv_strategy)(f->f_devdata, F_WRITE, | ||||
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); | ||||
} | } | ||||
resid = bcount; | resid = bcount; | ||||
if ((errno = (f->f_ops->fo_write)(f, dest, bcount, &resid))) | if ((errno = (f->f_ops->fo_write)(f, dest, bcount, &resid))) | ||||
return (-1); | return (-1); | ||||
return (bcount - resid); | return (bcount - resid); | ||||
} | } |