Lines Matching defs:barg
52 #define RESET_MODULE(barg) ((barg)->gb_module[0] = 0)
107 barg_bootfs_var(const grub_barg_t *barg, char *var, int sz)
111 assert(barg);
112 if (strcmp(barg->gb_root.gr_fstyp, MNTTYPE_ZFS) == 0) {
115 barg->gb_root.gr_fs[GRBM_ZFS_BOOTFS].gfs_dev,
116 barg->gb_root.gr_physpath);
264 grub_barg_t *barg = (grub_barg_t *)data;
268 strcmp(barg->gb_root.gr_fs[GRBM_ZFS_BOOTFS].gfs_dev, zfn) == 0);
271 barg->gb_walkret = 0;
273 (void) zfs_iter_filesystems(zfh, match_bootfs, barg);
276 return (barg->gb_walkret == 0);
280 reset_root(grub_barg_t *barg)
282 (void) memset(&barg->gb_root, 0, sizeof (barg->gb_root));
283 barg->gb_bootsign[0] = 0;
284 barg->gb_kernel[0] = 0;
285 RESET_MODULE(barg);
290 skip_line(const grub_line_t *lp, grub_barg_t *barg)
297 error_line(const grub_line_t *lp, grub_barg_t *barg)
305 kernel(const grub_line_t *lp, grub_barg_t *barg)
307 RESET_MODULE(barg);
308 if (strlcpy(barg->gb_kernel, lp->gl_arg, sizeof (barg->gb_kernel)) >=
309 sizeof (barg->gb_kernel))
316 module(const grub_line_t *lp, grub_barg_t *barg)
318 if (strlcpy(barg->gb_module, lp->gl_arg, sizeof (barg->gb_module)) >=
319 sizeof (barg->gb_module))
326 dollar_kernel(const grub_line_t *lp, grub_barg_t *barg)
333 RESET_MODULE(barg);
334 if (strlcpy(barg->gb_kernel, lp->gl_arg, sizeof (barg->gb_kernel)) >=
335 sizeof (barg->gb_kernel))
338 bfslen = barg_bootfs_var(barg, bootfs, sizeof (bootfs));
344 if ((ret = expand_var(barg->gb_kernel, sizeof (barg->gb_kernel),
348 if ((ret = expand_var(barg->gb_kernel, sizeof (barg->gb_kernel),
352 if (strcmp(barg->gb_root.gr_fstyp, MNTTYPE_ZFS) == 0)
353 ret = update_bootpath(barg->gb_kernel, sizeof (barg->gb_kernel),
354 barg->gb_root.gr_physpath);
360 dollar_module(const grub_line_t *lp, grub_barg_t *barg)
366 if (strlcpy(barg->gb_module, lp->gl_arg, sizeof (barg->gb_module)) >=
367 sizeof (barg->gb_module))
374 ret = expand_var(barg->gb_module, sizeof (barg->gb_module),
382 findroot(const grub_line_t *lp, grub_barg_t *barg)
387 reset_root(barg);
390 barg->gb_prtnum = (uint_t)PRTNUM_INVALID;
391 barg->gb_slcnum = (uint_t)SLCNUM_WHOLE_DISK;
401 if (!IS_PRTNUM_VALID(barg->gb_prtnum = pos[0] - '0'))
410 !IS_SLCNUM_VALID(barg->gb_slcnum = pos[1]) ||
419 if (bsz + sz + 1 > sizeof (barg->gb_bootsign))
422 bcopy(BOOTSIGN_DIR "/", barg->gb_bootsign, bsz);
423 bcopy(sign, barg->gb_bootsign + bsz, sz);
424 barg->gb_bootsign [bsz + sz] = 0;
426 return (grub_find_bootsign(barg));
430 bootfs(const grub_line_t *lp, grub_barg_t *barg)
433 grub_menu_t *mp = barg->gb_entry->ge_menu;
438 if (strcmp(barg->gb_root.gr_fstyp, MNTTYPE_ZFS) != 0)
441 gfs_devp = barg->gb_root.gr_fs[GRBM_ZFS_BOOTFS].gfs_dev;
442 gfs_dev_len = sizeof (barg->gb_root.gr_fs[GRBM_ZFS_BOOTFS].gfs_dev);
456 barg->gb_root.gr_fs[GRBM_ZFS_TOPFS].gfs_dev,
460 barg->gb_walkret = EG_UNKBOOTFS;
461 (void) zfs_iter_filesystems(zfh, match_bootfs, barg);
464 if (barg->gb_walkret == 0)
465 (void) grub_fsd_get_mountp(barg->gb_root.gr_fs +
468 return (barg->gb_walkret);