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 */ +} + /** @} */
_______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list