Lines Matching refs:barg
244 grub_barg_t *barg; in zfs_bootsign() local
249 barg = (grub_barg_t *)data; in zfs_bootsign()
250 menu = barg->gb_entry->ge_menu; in zfs_bootsign()
253 if (get_zfs_root(zfh, &menu->gm_fs, &barg->gb_root) != 0 || in zfs_bootsign()
254 get_one_physpath(barg->gb_root.gr_physpath, barg->gb_prtnum, in zfs_bootsign()
255 barg->gb_slcnum) != 0) in zfs_bootsign()
261 if (barg->gb_root.gr_fs[GRBM_ZFS_TOPFS].gfs_mountp[0] == 0) { in zfs_bootsign()
262 if (grub_fsd_mount_tmp(barg->gb_root.gr_fs + in zfs_bootsign()
269 barg->gb_root.gr_fs[GRBM_ZFS_TOPFS].gfs_mountp, in zfs_bootsign()
270 barg->gb_bootsign); in zfs_bootsign()
276 (void) strlcpy(barg->gb_root.gr_fstyp, MNTTYPE_ZFS, in zfs_bootsign()
277 sizeof (barg->gb_root.gr_fstyp)); in zfs_bootsign()
278 barg->gb_walkret = 0; in zfs_bootsign()
282 grub_fsd_umount_tmp(barg->gb_root.gr_fs + GRBM_ZFS_TOPFS); in zfs_bootsign()
286 return (barg->gb_walkret == 0); in zfs_bootsign()
293 grub_barg_t *barg; in get_devlink() local
295 barg = (grub_barg_t *)arg; in get_devlink()
297 (void) strlcpy(barg->gb_root.gr_fs[GRBM_UFS].gfs_dev, path, in get_devlink()
298 sizeof (barg->gb_root.gr_fs[GRBM_UFS].gfs_dev)); in get_devlink()
303 ufs_bootsign_check(grub_barg_t *barg) in ufs_bootsign_check() argument
310 mp = barg->gb_entry->ge_menu; in ufs_bootsign_check()
314 barg->gb_root.gr_physpath, DI_PRIMARY_LINK, barg, get_devlink) != 0) in ufs_bootsign_check()
319 if (grub_fsd_get_mountp(barg->gb_root.gr_fs + GRBM_UFS, in ufs_bootsign_check()
322 slice_ufs(barg->gb_root.gr_fs[GRBM_UFS].gfs_dev)) != 0 || in ufs_bootsign_check()
323 (ret = grub_fsd_mount_tmp(barg->gb_root.gr_fs + GRBM_UFS, in ufs_bootsign_check()
329 barg->gb_root.gr_fs[GRBM_UFS].gfs_mountp, barg->gb_bootsign); in ufs_bootsign_check()
333 barg->gb_walkret = 0; in ufs_bootsign_check()
334 (void) strlcpy(barg->gb_root.gr_fstyp, MNTTYPE_UFS, in ufs_bootsign_check()
335 sizeof (barg->gb_root.gr_fstyp)); in ufs_bootsign_check()
338 grub_fsd_umount_tmp(barg->gb_root.gr_fs + GRBM_UFS); in ufs_bootsign_check()
339 return (barg->gb_walkret); in ufs_bootsign_check()
347 grub_barg_t *barg; in ufs_bootsign() local
349 barg = (grub_barg_t *)arg; in ufs_bootsign()
355 if (name[0] != barg->gb_slcnum || name[1] != 0) in ufs_bootsign()
359 (void) snprintf(barg->gb_root.gr_physpath, in ufs_bootsign()
360 sizeof (barg->gb_root.gr_physpath), "%s:%c", path, barg->gb_slcnum); in ufs_bootsign()
363 prtnum = get_sol_prtnum(barg->gb_root.gr_physpath); in ufs_bootsign()
371 if (IS_PRTNUM_VALID(barg->gb_prtnum)) { in ufs_bootsign()
372 if (prtnum != barg->gb_prtnum || ufs_bootsign_check(barg) != 0) in ufs_bootsign()
381 barg->gb_prtnum = prtnum; in ufs_bootsign()
393 barg->gb_slcnum = name[0]; in ufs_bootsign()
394 path = strrchr(barg->gb_root.gr_physpath, ':'); in ufs_bootsign()
395 path[1] = barg->gb_slcnum; in ufs_bootsign()
397 if (ufs_bootsign_check(barg) == 0) in ufs_bootsign()
401 barg->gb_prtnum = (uint_t)PRTNUM_INVALID; in ufs_bootsign()
402 barg->gb_slcnum = (uint_t)SLCNUM_WHOLE_DISK; in ufs_bootsign()
416 grub_find_bootsign(grub_barg_t *barg) in grub_find_bootsign() argument
419 mp = barg->gb_entry->ge_menu; in grub_find_bootsign()
422 barg->gb_walkret = EG_BOOTSIGN; in grub_find_bootsign()
423 (void) zfs_iter_root(mp->gm_fs.gf_lzfh, zfs_bootsign, barg); in grub_find_bootsign()
426 if (barg->gb_walkret != 0 && di_walk_minor(mp->gm_fs.gf_diroot, in grub_find_bootsign()
427 DDI_NT_BLOCK, 0, barg, ufs_bootsign) != 0) in grub_find_bootsign()
430 return (barg->gb_walkret); in grub_find_bootsign()