nest-open-source / nest-learning-thermostat / 5.1 / parted / 4a4e41b0884a59ea1b5f123bb4c3ed74ac65d277 / . / parted-1.8.7 / include / parted / constraint.h

/* | |

libparted - a library for manipulating disk partitions | |

Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. | |

This program is free software; you can redistribute it and/or modify | |

it under the terms of the GNU General Public License as published by | |

the Free Software Foundation; either version 2 of the License, or | |

(at your option) any later version. | |

This program is distributed in the hope that it will be useful, | |

but WITHOUT ANY WARRANTY; without even the implied warranty of | |

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |

GNU General Public License for more details. | |

You should have received a copy of the GNU General Public License | |

along with this program; if not, write to the Free Software | |

Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |

*/ | |

#ifndef PED_CONSTRAINT_H_INCLUDED | |

#define PED_CONSTRAINT_H_INCLUDED | |

typedef struct _PedConstraint PedConstraint; | |

#include <parted/device.h> | |

#include <parted/natmath.h> | |

struct _PedConstraint { | |

PedAlignment* start_align; | |

PedAlignment* end_align; | |

PedGeometry* start_range; | |

PedGeometry* end_range; | |

PedSector min_size; | |

PedSector max_size; | |

}; | |

extern int | |

ped_constraint_init ( | |

PedConstraint* constraint, | |

const PedAlignment* start_align, | |

const PedAlignment* end_align, | |

const PedGeometry* start_range, | |

const PedGeometry* end_range, | |

PedSector min_size, | |

PedSector max_size); | |

extern PedConstraint* | |

ped_constraint_new ( | |

const PedAlignment* start_align, | |

const PedAlignment* end_align, | |

const PedGeometry* start_range, | |

const PedGeometry* end_range, | |

PedSector min_size, | |

PedSector max_size); | |

extern PedConstraint* | |

ped_constraint_new_from_min_max ( | |

const PedGeometry* min, | |

const PedGeometry* max); | |

extern PedConstraint* | |

ped_constraint_new_from_min (const PedGeometry* min); | |

extern PedConstraint* | |

ped_constraint_new_from_max (const PedGeometry* max); | |

extern PedConstraint* | |

ped_constraint_duplicate (const PedConstraint* constraint); | |

extern void | |

ped_constraint_done (PedConstraint* constraint); | |

extern void | |

ped_constraint_destroy (PedConstraint* constraint); | |

extern PedConstraint* | |

ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b); | |

extern PedGeometry* | |

ped_constraint_solve_max (const PedConstraint* constraint); | |

extern PedGeometry* | |

ped_constraint_solve_nearest ( | |

const PedConstraint* constraint, const PedGeometry* geom); | |

extern int | |

ped_constraint_is_solution (const PedConstraint* constraint, | |

const PedGeometry* geom); | |

extern PedConstraint* | |

ped_constraint_any (const PedDevice* dev); | |

extern PedConstraint* | |

ped_constraint_exact (const PedGeometry* geom); | |

#endif /* PED_CONSTRAINT_H_INCLUDED */ | |