Lines Matching refs:mp

48 append_line(grub_menu_t *mp, grub_line_t *lp)  in append_line()  argument
50 if (mp->gm_start == NULL) { in append_line()
51 mp->gm_start = lp; in append_line()
53 mp->gm_end->gl_next = lp; in append_line()
54 lp->gl_prev = mp->gm_end; in append_line()
56 mp->gm_end = lp; in append_line()
57 lp->gl_line_num = ++mp->gm_line_num; in append_line()
62 process_line(grub_menu_t *mp) in process_line() argument
67 lp = mp->gm_end; in process_line()
107 add_entry(grub_menu_t *mp, grub_line_t *start, grub_line_t *end) in add_entry() argument
117 if (mp->gm_ent_end == NULL) { in add_entry()
118 mp->gm_ent_start = ent; in add_entry()
120 mp->gm_ent_end->ge_next = ent; in add_entry()
121 ent->ge_prev = mp->gm_ent_end; in add_entry()
123 mp->gm_ent_end = ent; in add_entry()
124 ent->ge_entry_num = mp->gm_entry_num++; in add_entry()
125 ent->ge_menu = mp; in add_entry()
130 default_entry(grub_menu_t *mp) in default_entry() argument
137 lp = mp->gm_curdefault; in default_entry()
142 if (defent >= mp->gm_entry_num) in default_entry()
146 for (ent = mp->gm_ent_start; ent != NULL && defent != ent->ge_entry_num; in default_entry()
150 mp->gm_ent_default = ent; in default_entry()
182 free_entries(grub_menu_t *mp) in free_entries() argument
186 if (mp == NULL) in free_entries()
189 for (ent = mp->gm_ent_start; (tmp = ent) != NULL; in free_entries()
193 mp->gm_ent_start = NULL; in free_entries()
194 mp->gm_ent_end = NULL; in free_entries()
198 grub_menu_append_line(grub_menu_t *mp, const char *line) in grub_menu_append_line() argument
255 append_line(mp, lp); in grub_menu_append_line()
256 process_line(mp); in grub_menu_append_line()
261 grub_menu_process(grub_menu_t *mp) in grub_menu_process() argument
268 free_entries(mp); in grub_menu_process()
274 for (line = mp->gm_start; line != NULL; line = line->gl_next) { in grub_menu_process()
277 mp->gm_curdefault = line; in grub_menu_process()
289 (ret = add_entry(mp, start, line->gl_prev)) != 0) in grub_menu_process()
296 if (start != NULL && (ret = add_entry(mp, start, mp->gm_end)) != 0) in grub_menu_process()
299 for (ent = mp->gm_ent_start; NULL != ent; ent = ent->ge_next) in grub_menu_process()
302 default_entry(mp); in grub_menu_process()
349 grub_menu_t *mp; in grub_menu_init() local
359 if ((mp = calloc(1, sizeof (*mp))) == NULL) { in grub_menu_init()
360 *menup = mp; in grub_menu_init()
364 if ((ret = grub_fs_init(&mp->gm_fs)) != 0 || in grub_menu_init()
365 (ret = grub_current_root(&mp->gm_fs, &mp->gm_root)) != 0) in grub_menu_init()
373 if (mp->gm_root.gr_fs[GRBM_FS_TOP].gfs_mountp[0] == 0) { in grub_menu_init()
374 if ((ret = grub_fsd_mount_tmp(mp->gm_root.gr_fs + in grub_menu_init()
375 GRBM_FS_TOP, mp->gm_root.gr_fstyp)) != 0) in grub_menu_init()
378 (void) snprintf(mp->gm_path, sizeof (mp->gm_path), in grub_menu_init()
379 "%s/%s", mp->gm_root.gr_fs[GRBM_FS_TOP].gfs_mountp, in grub_menu_init()
382 (void) strlcpy(mp->gm_path, path, sizeof (mp->gm_path)); in grub_menu_init()
385 if ((fp = fopen(mp->gm_path, "r")) == NULL) { in grub_menu_init()
411 if ((ret = grub_menu_append_line(mp, buf)) != 0) in grub_menu_init()
421 ret = grub_menu_process(mp); in grub_menu_init()
424 grub_fsd_umount_tmp(mp->gm_root.gr_fs + GRBM_FS_TOP); in grub_menu_init()
426 grub_menu_fini(mp); in grub_menu_init()
427 mp = NULL; in grub_menu_init()
429 *menup = mp; in grub_menu_init()
434 grub_menu_fini(grub_menu_t *mp) in grub_menu_fini() argument
436 if (mp == NULL) in grub_menu_fini()
439 grub_fs_fini(&mp->gm_fs); in grub_menu_fini()
440 free_entries(mp); in grub_menu_fini()
441 free_linelist(mp->gm_start); in grub_menu_fini()
442 free(mp); in grub_menu_fini()
446 grub_menu_next_line(const grub_menu_t *mp, const grub_line_t *lp) in grub_menu_next_line() argument
448 assert(mp); in grub_menu_next_line()
450 return (mp->gm_start); in grub_menu_next_line()
456 grub_menu_prev_line(const grub_menu_t *mp, const grub_line_t *lp) in grub_menu_prev_line() argument
458 assert(mp); in grub_menu_prev_line()
460 return (mp->gm_end); in grub_menu_prev_line()
466 grub_menu_get_line(const grub_menu_t *mp, int num) in grub_menu_get_line() argument
470 assert(mp); in grub_menu_get_line()
471 if (num > mp->gm_line_num) in grub_menu_get_line()
473 for (lp = mp->gm_start; lp != NULL && num != lp->gl_line_num; in grub_menu_get_line()
480 grub_menu_get_cmdline(const grub_menu_t *mp, int num, char *cmdl, size_t size) in grub_menu_get_cmdline() argument
484 assert(mp); in grub_menu_get_cmdline()
485 if ((ent = grub_menu_get_entry(mp, num)) == NULL) in grub_menu_get_cmdline()
492 grub_menu_next_entry(const grub_menu_t *mp, const grub_entry_t *ent) in grub_menu_next_entry() argument
494 assert(mp); in grub_menu_next_entry()
496 return (mp->gm_ent_start); in grub_menu_next_entry()
498 assert(mp == ent->ge_menu); in grub_menu_next_entry()
504 grub_menu_prev_entry(const grub_menu_t *mp, const grub_entry_t *ent) in grub_menu_prev_entry() argument
506 assert(mp); in grub_menu_prev_entry()
508 return (mp->gm_ent_end); in grub_menu_prev_entry()
510 assert(mp == ent->ge_menu); in grub_menu_prev_entry()
516 grub_menu_get_entry(const grub_menu_t *mp, int num) in grub_menu_get_entry() argument
520 assert(mp); in grub_menu_get_entry()
522 ent = mp->gm_ent_default; in grub_menu_get_entry()
523 } else if (num >= mp->gm_entry_num) { in grub_menu_get_entry()
526 for (ent = mp->gm_ent_start; in grub_menu_get_entry()