Lines Matching defs:bd

127 	benv_des_t *bd;
129 bd = (benv_des_t *)malloc(sizeof (benv_des_t));
130 (void) memset(bd, 0, sizeof (benv_des_t));
132 bd->elist = new_list();
134 return (bd);
293 init_benv(benv_des_t *bd, char *file)
303 bd->name = file;
305 bd->name = strcats(boottree, "/solaris/bootenv.rc", NULL);
309 map_benv(benv_des_t *bd)
311 if ((bd->fd = open(bd->name, O_RDONLY)) == -1)
315 exit(_error(PERROR, "cannot open %s", bd->name));
317 if ((bd->len = (size_t)lseek(bd->fd, 0, SEEK_END)) == 0) {
318 if (close(bd->fd) == -1)
319 exit(_error(PERROR, "close error on %s", bd->name));
323 (void) lseek(bd->fd, 0, SEEK_SET);
325 if ((bd->adr = mmap((caddr_t)0, bd->len, (PROT_READ | PROT_WRITE),
326 MAP_PRIVATE, bd->fd, 0)) == MAP_FAILED)
327 exit(_error(PERROR, "cannot map %s", bd->name));
331 unmap_benv(benv_des_t *bd)
333 if (munmap(bd->adr, bd->len) == -1)
334 exit(_error(PERROR, "unmap error on %s", bd->name));
336 if (close(bd->fd) == -1)
337 exit(_error(PERROR, "close error on %s", bd->name));
347 add_comm(benv_des_t *bd, char *base, char *last, char **next, int *line)
364 add_bent(bd->elist, base, NULL, NULL, NULL);
373 parse_cmd(benv_des_t *bd, char **next, int *line)
412 exit(_error(NO_PERROR, badeof, bd->name, *line));
422 exit(_error(NO_PERROR, syntax, bd->name, *line));
432 parse_name(benv_des_t *bd, char **next, int *line)
444 exit(_error(NO_PERROR, syntax, bd->name, *line));
455 exit(_error(NO_PERROR, badeof, bd->name, *line));
490 parse_value(benv_des_t *bd, char **next, int *line)
550 exit(_error(NO_PERROR, badeof, bd->name, *line));
578 add_cmd(benv_des_t *bd, char *last, char **next, int *line)
583 if ((cmd = parse_cmd(bd, next, line)) == NULL)
585 name = parse_name(bd, next, line);
586 val = parse_value(bd, next, line);
587 add_bent(bd->elist, NULL, cmd, name, val);
598 parse_benv(benv_des_t *bd)
605 pbase = (char *)bd->adr;
606 pend = pbase + bd->len;
610 add_comm(bd, tok, pend, &tnext, &line);
612 add_cmd(bd, pend, &tnext, &line);
616 write_benv(benv_des_t *bd)
623 list = bd->elist;
628 if ((fp = fopen(bd->name, "w")) == NULL)
629 exit(_error(PERROR, "cannot open %s", bd->name));
682 benv_des_t *bd;
703 bd = new_bd();
704 init_benv(bd, file);
706 map_benv(bd);
707 if (bd->len) {
708 parse_benv(bd);
709 unmap_benv(bd);
712 elist = bd->elist;
741 write_benv(bd);