From 3523a0f8a2e470ddbcd793e5f85b8634e82ad631 Mon Sep 17 00:00:00 2001 From: jake Date: Thu, 31 Oct 2002 04:25:17 +0000 Subject: [PATCH] Actually save the bootblock in the disk structure. Write the bootblock to the right place on the disk instead of srewn all over it. --- lib/libdisk/disk.c | 7 +++++++ lib/libdisk/write_sparc64_disk.c | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/libdisk/disk.c b/lib/libdisk/disk.c index bc4ce3d7d5b..1c67115d124 100644 --- a/lib/libdisk/disk.c +++ b/lib/libdisk/disk.c @@ -425,6 +425,13 @@ Set_Boot_Blocks(struct disk *d, const u_char *b1, const u_char *b2) d->boot1 = malloc(15 * 512); if(!d->boot1) return -1; memcpy(d->boot1, b1, 15 * 512); +#elif defined(__sparc64__) + if (d->boot1 != NULL) + free(d->boot1); + d->boot1 = malloc(16 * 512); + if (d->boot1 == NULL) + return (-1); + memcpy(d->boot1, b1, 16 * 512); #elif defined(__ia64__) /* nothing */ #else diff --git a/lib/libdisk/write_sparc64_disk.c b/lib/libdisk/write_sparc64_disk.c index 87b67a53d5b..657b9479231 100644 --- a/lib/libdisk/write_sparc64_disk.c +++ b/lib/libdisk/write_sparc64_disk.c @@ -90,8 +90,8 @@ Write_Disk(const struct disk *d1) write_block(fd, 0, sl, sizeof *sl); - for(i = 1; i < 16; i++) - write_block(fd, i * 512, d1->boot1 + 512 * (i - 1), 512); + for (i = 1; i < 16; i++) + write_block(fd, i, d1->boot1 + (i * 512), 512); close(fd); return 0; -- 2.45.0