bug-parted
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH parted 1/5] libparted: add ped_device_get_xxx_aligment() func


From: Hans de Goede
Subject: Re: [PATCH parted 1/5] libparted: add ped_device_get_xxx_aligment() functions
Date: Wed, 28 Oct 2009 22:23:34 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4pre) Gecko/20090922 Fedora/3.0-3.9.b4.fc12 Thunderbird/3.0b4

Hi,

Note, these patches may apply to master with a couple of lines offset
left and right, as I also have some patches in my local tree to update
parted to keep working with upcoming lvm2 (libdevmapper) changes, I'm still
waiting on testing feedback for these (the libdevmapper) patches before
submitting them.

Regards,

Hans

p.s.

I also plan to backport this set of 5 to libparted-1.9 and add them to the
Fedora packages for F-13.

On 10/28/2009 10:20 PM, Hans de Goede wrote:
Add ped_device_get_minimal_aligment() and ped_device_get_optimal_aligment()
functions to libparted.
---
  include/parted/device.h  |    8 ++++++++
  include/parted/natmath.h |    1 +
  libparted/device.c       |   18 ++++++++++++++++++
  3 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/include/parted/device.h b/include/parted/device.h
index 151305f..31aec86 100644
--- a/include/parted/device.h
+++ b/include/parted/device.h
@@ -92,6 +92,8 @@ struct _PedDevice {
          void*           arch_specific;
  };

+#include<parted/natmath.h>
+
  /**
   * List of functions implementing architecture-specific operations.
   */
@@ -112,6 +114,9 @@ struct _PedDeviceArchOps {
          PedSector (*check) (PedDevice* dev, void* buffer,
                              PedSector start, PedSector count);
          void (*probe_all) ();
+        /* These functions are optional */
+        PedAlignment* (*get_minimal_aligment)(PedDevice* dev);
+        PedAlignment* (*get_optimal_aligment)(PedDevice* dev);
  };

  #include<parted/constraint.h>
@@ -141,6 +146,9 @@ extern PedSector ped_device_check (PedDevice* dev, void* 
buffer,
                                     PedSector start, PedSector count);
  extern PedConstraint* ped_device_get_constraint (PedDevice* dev);

+extern PedAlignment* ped_device_get_minimal_aligment(PedDevice* dev);
+extern PedAlignment* ped_device_get_optimal_aligment(PedDevice* dev);
+
  /* private stuff ;-) */

  extern void _ped_device_probe (const char* path);
diff --git a/include/parted/natmath.h b/include/parted/natmath.h
index cd7679d..eaa84d1 100644
--- a/include/parted/natmath.h
+++ b/include/parted/natmath.h
@@ -31,6 +31,7 @@ typedef struct _PedAlignment  PedAlignment;

  #include<parted/disk.h>
  #include<parted/device.h>
+#include<parted/geom.h>

  #define PED_MIN(a, b) ( ((a)<(b)) ? (a) : (b) )
  #define PED_MAX(a, b) ( ((a)>(b)) ? (a) : (b) )
diff --git a/libparted/device.c b/libparted/device.c
index 294fec4..6a41512 100644
--- a/libparted/device.c
+++ b/libparted/device.c
@@ -444,5 +444,23 @@ ped_device_get_constraint (PedDevice* dev)
          return c;
  }

+PedAlignment*
+ped_device_get_minimal_aligment(PedDevice* dev)
+{
+        if (ped_architecture->dev_ops->get_minimal_aligment)
+                return ped_architecture->dev_ops->get_minimal_aligment(dev);
+
+        return NULL; /* ped_alignment_none */
+}
+
+PedAlignment*
+ped_device_get_optimal_aligment(PedDevice* dev)
+{
+        if (ped_architecture->dev_ops->get_optimal_aligment)
+                return ped_architecture->dev_ops->get_optimal_aligment(dev);
+
+        return NULL; /* ped_alignment_none */
+}
+
  /** @} */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]