Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=fwsetup-ng.git;a=commitdiff;h=a5f4b0087c6cb9f38fb8050126a34e1617df26c5

commit a5f4b0087c6cb9f38fb8050126a34e1617df26c5
Author: James Buren <[email protected]>
Date:   Tue Oct 9 06:40:59 2012 -0500

add functions for retrieiving partition number and size

diff --git a/src/block.c b/src/block.c
index f66b753..d231cc8 100644
--- a/src/block.c
+++ b/src/block.c
@@ -518,7 +518,7 @@ extern const char *disk_partition_get_purpose(struct disk 
*disk,int n)
struct partition *part = 0;
const char *purpose = "unknown";

-  if(disk == 0 || n <= 0 || n > disk->size)
+  if(disk == 0 || n < 0 || n > disk->size)
{
errno = EINVAL;
fprintf(logfile,"%s: %s\n",__func__,strerror(errno));
@@ -566,7 +566,7 @@ extern bool disk_partition_get_active(struct disk *disk,int 
n)
struct partition *part = 0;
bool active = false;

-  if(disk == 0 || n <= 0 || n > disk->size)
+  if(disk == 0 || n < 0 || n > disk->size)
{
errno = EINVAL;
fprintf(logfile,"%s: %s\n",__func__,strerror(errno));
@@ -583,6 +583,38 @@ extern bool disk_partition_get_active(struct disk 
*disk,int n)
return active;
}

+extern int disk_partition_get_number(struct disk *disk,int n)
+{
+  struct partition *part = 0;
+
+  if(disk == 0 || n < 0 || n > disk->size)
+  {
+    errno = EINVAL;
+    fprintf(logfile,"%s: %s\n",__func__,strerror(errno));
+    return 0;
+  }
+
+  part = &disk->table[n];
+
+  return part->number;
+}
+
+extern long long disk_partition_get_size(struct disk *disk,int n)
+{
+  struct partition *part = 0;
+
+  if(disk == 0 || n < 0 || n > disk->size)
+  {
+    errno = EINVAL;
+    fprintf(logfile,"%s: %s\n",__func__,strerror(errno));
+    return 0;
+  }
+
+  part = &disk->table[n];
+
+  return part->size * disk->device->sectorsize;
+}
+
extern void disk_close(struct disk *disk)
{
if(disk == 0)
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to