Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(884)

Side by Side Diff: boot.c

Issue 866005: Describe PMBR in terms of syslinux GPT extension. (Closed)
Patch Set: Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | gpt.h » ('j') | gpt.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /*- 1 /*-
2 * Copyright (c) 2007 Yahoo!, Inc. 2 * Copyright (c) 2007 Yahoo!, Inc.
3 * All rights reserved. 3 * All rights reserved.
4 * Written by: John Baldwin <jhb@FreeBSD.org> 4 * Written by: John Baldwin <jhb@FreeBSD.org>
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 close(bfd); 172 close(bfd);
173 173
174 #ifdef LINUX 174 #ifdef LINUX
175 /* We use the syslinux GPT new protocol. This requires the GUID 175 /* We use the syslinux GPT new protocol. This requires the GUID
176 of the boot partition to be at offset 424 in the mbr. See the 176 of the boot partition to be at offset 424 in the mbr. See the
177 doc in the syslinux source: src/doc/gpt.txt */ 177 doc in the syslinux source: src/doc/gpt.txt */
178 if (gpt_find(boot_entry, &boot_uuid, &gptboot) != 0) { 178 if (gpt_find(boot_entry, &boot_uuid, &gptboot) != 0) {
179 warnx("unable to find partition to make bootable."); 179 warnx("unable to find partition to make bootable.");
180 return; 180 return;
181 } 181 }
182 le_uuid_enc(((unsigned char*)mbr + 424), 182 le_uuid_enc(&mbr->boot_guid,
183 &((struct gpt_ent*)(gptboot->map_data))->ent_uuid); 183 &((struct gpt_ent*)(gptboot->map_data))->ent_uuid);
184 mbr->magic_number = htole16(MBR_MAGIC);
184 #endif 185 #endif
185 gpt_write(fd, pmbr); 186 gpt_write(fd, pmbr);
186 187
187 #ifndef LINUX 188 #ifndef LINUX
188 /* Third step: open gptboot and obtain its size. */ 189 /* Third step: open gptboot and obtain its size. */
189 bfd = open(gptboot_path, O_RDONLY); 190 bfd = open(gptboot_path, O_RDONLY);
190 if (bfd < 0 || fstat(bfd, &sb) < 0) { 191 if (bfd < 0 || fstat(bfd, &sb) < 0) {
191 warn("unable to open GPT boot loader"); 192 warn("unable to open GPT boot loader");
192 return; 193 return;
193 } 194 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 continue; 296 continue;
296 } 297 }
297 298
298 boot(fd); 299 boot(fd);
299 300
300 gpt_close(fd); 301 gpt_close(fd);
301 } 302 }
302 303
303 return (0); 304 return (0);
304 } 305 }
OLDNEW
« no previous file with comments | « no previous file | gpt.h » ('j') | gpt.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698