Lines Matching defs:bblock
158 read_bootblock_from_file(char *file, ib_bootblock_t *bblock)
166 assert(bblock != NULL);
185 bblock->buf_size = buf_size;
187 bblock->buf_size);
189 bblock->buf = malloc(buf_size);
190 if (bblock->buf == NULL) {
194 bblock->file = bblock->buf;
196 if (read(fd, bblock->file, bblock->buf_size) != bblock->buf_size) {
202 if (find_multiboot(bblock->file, MBOOT_SCAN_SIZE, &mboot_off)
209 bblock->mboot = (multiboot_header_t *)(bblock->file + mboot_off);
210 bblock->mboot_off = mboot_off;
212 bblock->file_size =
213 bblock->mboot->load_end_addr - bblock->mboot->load_addr;
214 BOOT_DEBUG("bootblock file size is %d\n", bblock->file_size);
216 bblock->extra = bblock->buf + P2ROUNDUP(bblock->file_size, 8);
217 bblock->extra_size = bblock->buf_size - P2ROUNDUP(bblock->file_size, 8);
220 "(size=%d)\n", bblock->mboot, bblock->mboot_off, bblock->extra,
221 bblock->extra_size, bblock->buf, bblock->buf_size);
227 (void) free(bblock->buf);
228 bblock->buf = NULL;
236 read_bootblock_from_disk(ib_device_t *device, ib_bootblock_t *bblock,
246 assert(bblock != NULL);
287 bblock->file_size = size;
289 bblock->buf = malloc(buf_size);
290 if (bblock->buf == NULL) {
296 bblock->buf_size = buf_size;
298 if (read_in(dev_fd, bblock->buf, buf_size, offset) != BC_SUCCESS) {
300 (void) free(bblock->buf);
301 bblock->buf = NULL;
306 bblock->file = bblock->buf;
307 bblock->mboot_off = mboot_off;
308 bblock->mboot = (multiboot_header_t *)(bblock->buf + bblock->mboot_off);
309 bblock->extra = bblock->buf + P2ROUNDUP(bblock->file_size, 8);
310 bblock->extra_size = bblock->buf_size - P2ROUNDUP(bblock->file_size, 8);
313 "(size=%d)\n", bblock->mboot, bblock->mboot_off, bblock->extra,
314 bblock->extra_size, bblock->buf, bblock->buf_size);
386 add_bootblock_einfo(ib_bootblock_t *bblock, char *updt_str)
391 assert(bblock != NULL);
400 hs.src_buf = (unsigned char *)bblock->file;
401 hs.src_size = bblock->file_size;
403 avail_space = bblock->buf_size - P2ROUNDUP(bblock->file_size, 8);
405 add_einfo(bblock->extra, updt_str, &hs, avail_space);
460 ib_bootblock_t *bblock;
466 bblock = &data->bootblock;
469 ptr = (uint64_t *)(&bblock->mboot->bss_end_addr);
477 add_bootblock_einfo(bblock, updt_str);
486 ib_bootblock_t *bblock = &data->bootblock;
498 if (bblock->buf_size > BBLK_ZFS_BLK_SIZE) {
513 if (bblock->buf_size >
520 ret = write_out(dev_fd, bblock->buf, bblock->buf_size, offset);
529 (bblock->buf_size / SECTOR_SIZE) + 1, offset / SECTOR_SIZE, abs);
1158 cleanup_bootblock(ib_bootblock_t *bblock)
1160 free(bblock->buf);
1161 bzero(bblock, sizeof (ib_bootblock_t));
1254 ib_bootblock_t *bblock = &install_data.bootblock;
1285 if (read_bootblock_from_file(bootblock, bblock) != BC_SUCCESS) {
1331 ib_bootblock_t bblock;
1351 bzero(&bblock, sizeof (bblock));
1357 ret = read_bootblock_from_file(device_path, &bblock);
1364 ret = read_bootblock_from_disk(&device, &bblock, &path);
1383 einfo = find_einfo(bblock.extra, bblock.extra_size);
1397 print_einfo(flags, einfo, bblock.extra_size);