Lines Matching refs:st

189  *   st		- a pointer to an uninitialized gfs_readdir_state_t structure
225 gfs_readdir_init(gfs_readdir_state_t *st, int name_max, int ureclen,
234 st->grd_ureclen = ureclen;
235 st->grd_oresid = uiop->uio_resid;
236 st->grd_namlen = name_max;
238 dirent_size = EDIRENT_RECLEN(st->grd_namlen);
240 dirent_size = DIRENT64_RECLEN(st->grd_namlen);
241 st->grd_dirent = kmem_zalloc(dirent_size, KM_SLEEP);
242 st->grd_parent = parent;
243 st->grd_self = self;
244 st->grd_flags = flags;
252 * st - the current readdir state, which must have d_ino/ed_ino
258 gfs_readdir_emit_int(gfs_readdir_state_t *st, uio_t *uiop, offset_t next)
264 if (st->grd_flags & V_RDDIR_ENTFLAGS) {
265 edp = st->grd_dirent;
268 dp = st->grd_dirent;
276 if (uiop->uio_resid == st->grd_oresid)
281 if (st->grd_flags & V_RDDIR_ENTFLAGS) {
289 if (uiomove((caddr_t)st->grd_dirent, reclen, UIO_READ, uiop))
310 gfs_readdir_emit(gfs_readdir_state_t *st, uio_t *uiop, offset_t voff,
313 offset_t off = (voff + 2) * st->grd_ureclen;
315 if (st->grd_flags & V_RDDIR_ENTFLAGS) {
316 edirent_t *edp = st->grd_dirent;
319 (void) strncpy(edp->ed_name, name, st->grd_namlen);
322 dirent64_t *dp = st->grd_dirent;
325 (void) strncpy(dp->d_name, name, st->grd_namlen);
332 return (gfs_readdir_emit_int(st, uiop, off + st->grd_ureclen));
340 gfs_readdir_emitn(gfs_readdir_state_t *st, uio_t *uiop, offset_t voff,
346 return (gfs_readdir_emit(st, uiop, voff, ino, buf, 0));
359 gfs_readdir_pred(gfs_readdir_state_t *st, uio_t *uiop, offset_t *voffp)
368 off = uiop->uio_loffset / st->grd_ureclen;
371 if ((error = gfs_readdir_emit(st, uiop, voff, st->grd_self,
375 if ((error = gfs_readdir_emit(st, uiop, voff, st->grd_parent,
396 gfs_readdir_fini(gfs_readdir_state_t *st, int error, int *eofp, int eof)
400 if (st->grd_flags & V_RDDIR_ENTFLAGS)
401 dirent_size = EDIRENT_RECLEN(st->grd_namlen);
403 dirent_size = DIRENT64_RECLEN(st->grd_namlen);
404 kmem_free(st->grd_dirent, dirent_size);