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

Reply via email to