void do_update_dpme(partition_map *entry) { int slice = 0; if (!entry) return; dpme_init_flags(entry->data); entry->HFS_name = get_HFS_name(entry, &entry->HFS_kind); if (istrncmp(entry->data->dpme_type, kUnixType, DPISTRLEN) == 0) { printf("Available partition slices for %s:\n",entry->data->dpme_type); printf(" a root partition\n"); printf(" b swap partition\n"); printf(" c do not set any bzb bits\n"); printf(" g user partition\n"); printf("Other lettered values will create user partitions\n"); get_command("Select a slice for default bzb values: ",0,&slice); } bzb_init_slice((BZB *)entry->data->dpme_bzb,slice); entry->the_map->changed = 1; }
DPME * create_data(const char *name, const char *dptype, u32 base, u32 length) { DPME *data; data = (DPME *) calloc(1, PBLOCK_SIZE); if (data == NULL) { error(errno, "can't allocate memory for disk buffers"); } else { // set data into entry data->dpme_signature = DPME_SIGNATURE; data->dpme_map_entries = 1; data->dpme_pblock_start = base; data->dpme_pblocks = length; strncpy(data->dpme_name, name, DPISTRLEN); strncpy(data->dpme_type, dptype, DPISTRLEN); data->dpme_lblock_start = 0; data->dpme_lblocks = data->dpme_pblocks; dpme_init_flags(data); } return data; }