SHF_RD
shf = shf_reopen(fd, SHF_RD | SHF_INTERRUPT | can_seek(fd), shl_spare);
shf = shf_fdopen(pv[0], SHF_RD, (struct shf *) 0);
s->u.shf = shf_fdopen(0, SHF_RD | can_seek(0),
if (!(sflags & (SHF_RD | SHF_WR)))
int bsize = sflags & SHF_UNBUF ? (sflags & SHF_RD ? 1 : 0) : SHF_BSIZE;
case O_RDONLY: sflags |= SHF_RD; break;
if (!(sflags & (SHF_RD | SHF_WR)))
if (!(sflags & (SHF_RD | SHF_WR))
|| (sflags & (SHF_RD | SHF_WR)) == (SHF_RD | SHF_WR))
int bsize = sflags & SHF_UNBUF ? (sflags & SHF_RD ? 1 : 0) : SHF_BSIZE;
if (!(shf->flags & SHF_RD))
if (!(shf->flags & SHF_RD))
if (!(shf->flags & SHF_RD))
if (!(shf->flags & SHF_RD))
sflags |= (oflags & O_ACCMODE) == O_RDONLY ? SHF_RD
int bsize = sflags & SHF_UNBUF ? (sflags & SHF_RD ? 1 : 0) : SHF_BSIZE;
case O_RDONLY: sflags |= SHF_RD; break;
#define SHF_RDWR (SHF_RD|SHF_WR)