Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=fwsetup-ng.git;a=commitdiff;h=2dac14c94ae5cc05c2ba263dacc6bc73f262dabf
commit 2dac14c94ae5cc05c2ba263dacc6bc73f262dabf Author: James Buren <[email protected]> Date: Tue Oct 9 06:56:20 2012 -0500 add function for setting a partition's purpose diff --git a/src/block.c b/src/block.c index d231cc8..ed5f4ce 100644 --- a/src/block.c +++ b/src/block.c @@ -492,7 +492,7 @@ extern int disk_create_partition(struct disk *disk,long long size) disk->modified = true; - return part.number; + return disk->size; } extern void disk_delete_partition(struct disk *disk) @@ -513,6 +513,53 @@ extern void disk_delete_partition(struct disk *disk) disk->modified = true; } +extern void disk_partition_set_purpose(struct disk *disk,int n,const char *purpose) +{ + struct partition *part = 0; + + if(disk == 0 || n < 0 || n > disk->size) + { + errno = EINVAL; + fprintf(logfile,"%s: %s\n",__func__,strerror(errno)); + return; + } + + part = &disk->table[n]; + + if(disk->type == DISKTYPE_DOS) + { + if(strcmp(purpose,"data") == 0) + part->dostype = DOS_DATA; + else if(strcmp(purpose,"swap") == 0) + part->dostype = DOS_SWAP; + else if(strcmp(purpose,"raid") == 0) + part->dostype = DOS_RAID; + else if(strcmp(purpose,"lvm") == 0) + part->dostype = DOS_LVM; + else if(strcmp(purpose,"efi") == 0) + part->dostype = DOS_EFI; + else if(strcmp(purpose,"extended") == 0) + part->dostype = DOS_EXTENDED; + } + else if(disk->type == DISKTYPE_GPT) + { + if(strcmp(purpose,"data") == 0) + snprintf(part->gpttype,37,"%s",GPT_DATA); + else if(strcmp(purpose,"swap") == 0) + snprintf(part->gpttype,37,"%s",GPT_SWAP); + else if(strcmp(purpose,"raid") == 0) + snprintf(part->gpttype,37,"%s",GPT_RAID); + else if(strcmp(purpose,"lvm") == 0) + snprintf(part->gpttype,37,"%s",GPT_LVM); + else if(strcmp(purpose,"efi") == 0) + snprintf(part->gpttype,37,"%s",GPT_EFI); + else if(strcmp(purpose,"bios") == 0) + snprintf(part->gpttype,37,"%s",GPT_BIOS); + } + + disk->modified = true; +} + extern const char *disk_partition_get_purpose(struct disk *disk,int n) { struct partition *part = 0; _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
