Lines Matching refs:state
68 static int aix_magic_present(struct parsed_partitions *state, unsigned char *p) in aix_magic_present() argument
89 d = read_part_sector(state, 7, §); in aix_magic_present()
98 static void set_info(struct parsed_partitions *state, int slot, in set_info() argument
101 struct partition_meta_info *info = &state->parts[slot].info; in set_info()
106 state->parts[slot].has_info = true; in set_info()
120 static void parse_extended(struct parsed_partitions *state, in parse_extended() argument
128 sector_t sector_size = bdev_logical_block_size(state->bdev) / 512; in parse_extended()
139 if (state->next == state->limit) in parse_extended()
141 data = read_part_sector(state, this_sector, §); in parse_extended()
182 put_partition(state, state->next, next, size); in parse_extended()
183 set_info(state, state->next, disksig); in parse_extended()
185 state->parts[state->next].flags = ADDPART_FLAG_RAID; in parse_extended()
187 if (++state->next == state->limit) in parse_extended()
215 static void parse_solaris_x86(struct parsed_partitions *state, in parse_solaris_x86() argument
224 v = read_part_sector(state, offset + 1, §); in parse_solaris_x86()
234 snprintf(tmp, sizeof(tmp), " %s%d: <solaris:", state->name, origin); in parse_solaris_x86()
235 strlcat(state->pp_buf, tmp, PAGE_SIZE); in parse_solaris_x86()
242 strlcat(state->pp_buf, tmp, PAGE_SIZE); in parse_solaris_x86()
248 for (i = 0; i < max_nparts && state->next < state->limit; i++) { in parse_solaris_x86()
255 strlcat(state->pp_buf, tmp, PAGE_SIZE); in parse_solaris_x86()
258 put_partition(state, state->next++, in parse_solaris_x86()
263 strlcat(state->pp_buf, " >\n", PAGE_SIZE); in parse_solaris_x86()
272 static void parse_bsd(struct parsed_partitions *state, in parse_bsd() argument
281 l = read_part_sector(state, offset + 1, §); in parse_bsd()
289 snprintf(tmp, sizeof(tmp), " %s%d: <%s:", state->name, origin, flavour); in parse_bsd()
290 strlcat(state->pp_buf, tmp, PAGE_SIZE); in parse_bsd()
297 if (state->next == state->limit) in parse_bsd()
307 strlcat(state->pp_buf, "bad subpartition - ignored\n", PAGE_SIZE); in parse_bsd()
310 put_partition(state, state->next++, bsd_start, bsd_size); in parse_bsd()
316 strlcat(state->pp_buf, tmp, PAGE_SIZE); in parse_bsd()
318 strlcat(state->pp_buf, " >\n", PAGE_SIZE); in parse_bsd()
322 static void parse_freebsd(struct parsed_partitions *state, in parse_freebsd() argument
326 parse_bsd(state, offset, size, origin, "bsd", BSD_MAXPARTITIONS); in parse_freebsd()
330 static void parse_netbsd(struct parsed_partitions *state, in parse_netbsd() argument
334 parse_bsd(state, offset, size, origin, "netbsd", BSD_MAXPARTITIONS); in parse_netbsd()
338 static void parse_openbsd(struct parsed_partitions *state, in parse_openbsd() argument
342 parse_bsd(state, offset, size, origin, "openbsd", in parse_openbsd()
351 static void parse_unixware(struct parsed_partitions *state, in parse_unixware() argument
359 l = read_part_sector(state, offset + 29, §); in parse_unixware()
370 snprintf(tmp, sizeof(tmp), " %s%d: <unixware:", state->name, origin); in parse_unixware()
371 strlcat(state->pp_buf, tmp, PAGE_SIZE); in parse_unixware()
376 if (state->next == state->limit) in parse_unixware()
380 put_partition(state, state->next++, in parse_unixware()
386 strlcat(state->pp_buf, " >\n", PAGE_SIZE); in parse_unixware()
395 static void parse_minix(struct parsed_partitions *state, in parse_minix() argument
404 data = read_part_sector(state, offset, §); in parse_minix()
417 snprintf(tmp, sizeof(tmp), " %s%d: <minix:", state->name, origin); in parse_minix()
418 strlcat(state->pp_buf, tmp, PAGE_SIZE); in parse_minix()
420 if (state->next == state->limit) in parse_minix()
424 put_partition(state, state->next++, in parse_minix()
427 strlcat(state->pp_buf, " >\n", PAGE_SIZE); in parse_minix()
447 int msdos_partition(struct parsed_partitions *state) in msdos_partition() argument
449 sector_t sector_size = bdev_logical_block_size(state->bdev) / 512; in msdos_partition()
457 data = read_part_sector(state, 0, §); in msdos_partition()
465 if (aix_magic_present(state, data)) { in msdos_partition()
468 return aix_partition(state); in msdos_partition()
470 strlcat(state->pp_buf, " [AIX]", PAGE_SIZE); in msdos_partition()
497 strlcat(state->pp_buf, "\n", PAGE_SIZE); in msdos_partition()
527 state->next = 5; in msdos_partition()
544 put_partition(state, slot, start, n); in msdos_partition()
546 strlcat(state->pp_buf, " <", PAGE_SIZE); in msdos_partition()
547 parse_extended(state, start, size, disksig); in msdos_partition()
548 strlcat(state->pp_buf, " >", PAGE_SIZE); in msdos_partition()
551 put_partition(state, slot, start, size); in msdos_partition()
552 set_info(state, slot, disksig); in msdos_partition()
554 state->parts[slot].flags = ADDPART_FLAG_RAID; in msdos_partition()
556 strlcat(state->pp_buf, "[DM]", PAGE_SIZE); in msdos_partition()
558 strlcat(state->pp_buf, "[EZD]", PAGE_SIZE); in msdos_partition()
561 strlcat(state->pp_buf, "\n", PAGE_SIZE); in msdos_partition()
577 subtypes[n].parse(state, start_sect(p) * sector_size, in msdos_partition()