185 |
|
if (Sys_read(info->fh, map, i * 512, 512) != 512) |
186 |
|
break; |
187 |
|
|
188 |
< |
// Skip driver descriptor |
189 |
< |
uint16 sig = ntohs(((uint16 *)map)[0]); |
190 |
< |
if (sig == 0x4552) |
191 |
< |
continue; |
192 |
< |
|
193 |
< |
// No partition map? Then look at next block |
188 |
> |
// Not a partition map block? Then look at next block |
189 |
> |
uint16 sig = (map[0] << 8) | map[1]; |
190 |
|
if (sig != 0x504d) |
191 |
|
continue; |
192 |
|
|
193 |
< |
// Partition map found, Apple HFS partition? |
193 |
> |
// Partition map block found, Apple HFS partition? |
194 |
|
if (strcmp((char *)(map + 48), "Apple_HFS") == 0) { |
195 |
|
info->start_byte = ntohl(((uint32 *)map)[2]) << 9; |
196 |
|
D(bug(" HFS partition found at %d, %d blocks\n", info->start_byte, ntohl(((uint32 *)map)[3]))); |