1*9663SMark.Logan@Sun.COM /* 2*9663SMark.Logan@Sun.COM libparted - a library for manipulating disk partitions 3*9663SMark.Logan@Sun.COM Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc. 4*9663SMark.Logan@Sun.COM 5*9663SMark.Logan@Sun.COM This program is free software; you can redistribute it and/or modify 6*9663SMark.Logan@Sun.COM it under the terms of the GNU General Public License as published by 7*9663SMark.Logan@Sun.COM the Free Software Foundation; either version 3 of the License, or 8*9663SMark.Logan@Sun.COM (at your option) any later version. 9*9663SMark.Logan@Sun.COM 10*9663SMark.Logan@Sun.COM This program is distributed in the hope that it will be useful, 11*9663SMark.Logan@Sun.COM but WITHOUT ANY WARRANTY; without even the implied warranty of 12*9663SMark.Logan@Sun.COM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13*9663SMark.Logan@Sun.COM GNU General Public License for more details. 14*9663SMark.Logan@Sun.COM 15*9663SMark.Logan@Sun.COM You should have received a copy of the GNU General Public License 16*9663SMark.Logan@Sun.COM along with this program. If not, see <http://www.gnu.org/licenses/>. 17*9663SMark.Logan@Sun.COM */ 18*9663SMark.Logan@Sun.COM 19*9663SMark.Logan@Sun.COM #ifndef PED_CONSTRAINT_H_INCLUDED 20*9663SMark.Logan@Sun.COM #define PED_CONSTRAINT_H_INCLUDED 21*9663SMark.Logan@Sun.COM 22*9663SMark.Logan@Sun.COM typedef struct _PedConstraint PedConstraint; 23*9663SMark.Logan@Sun.COM 24*9663SMark.Logan@Sun.COM #include <parted/device.h> 25*9663SMark.Logan@Sun.COM #include <parted/natmath.h> 26*9663SMark.Logan@Sun.COM 27*9663SMark.Logan@Sun.COM struct _PedConstraint { 28*9663SMark.Logan@Sun.COM PedAlignment* start_align; 29*9663SMark.Logan@Sun.COM PedAlignment* end_align; 30*9663SMark.Logan@Sun.COM PedGeometry* start_range; 31*9663SMark.Logan@Sun.COM PedGeometry* end_range; 32*9663SMark.Logan@Sun.COM PedSector min_size; 33*9663SMark.Logan@Sun.COM PedSector max_size; 34*9663SMark.Logan@Sun.COM }; 35*9663SMark.Logan@Sun.COM 36*9663SMark.Logan@Sun.COM extern int 37*9663SMark.Logan@Sun.COM ped_constraint_init ( 38*9663SMark.Logan@Sun.COM PedConstraint* constraint, 39*9663SMark.Logan@Sun.COM const PedAlignment* start_align, 40*9663SMark.Logan@Sun.COM const PedAlignment* end_align, 41*9663SMark.Logan@Sun.COM const PedGeometry* start_range, 42*9663SMark.Logan@Sun.COM const PedGeometry* end_range, 43*9663SMark.Logan@Sun.COM PedSector min_size, 44*9663SMark.Logan@Sun.COM PedSector max_size); 45*9663SMark.Logan@Sun.COM 46*9663SMark.Logan@Sun.COM extern PedConstraint* 47*9663SMark.Logan@Sun.COM ped_constraint_new ( 48*9663SMark.Logan@Sun.COM const PedAlignment* start_align, 49*9663SMark.Logan@Sun.COM const PedAlignment* end_align, 50*9663SMark.Logan@Sun.COM const PedGeometry* start_range, 51*9663SMark.Logan@Sun.COM const PedGeometry* end_range, 52*9663SMark.Logan@Sun.COM PedSector min_size, 53*9663SMark.Logan@Sun.COM PedSector max_size); 54*9663SMark.Logan@Sun.COM 55*9663SMark.Logan@Sun.COM extern PedConstraint* 56*9663SMark.Logan@Sun.COM ped_constraint_new_from_min_max ( 57*9663SMark.Logan@Sun.COM const PedGeometry* min, 58*9663SMark.Logan@Sun.COM const PedGeometry* max); 59*9663SMark.Logan@Sun.COM 60*9663SMark.Logan@Sun.COM extern PedConstraint* 61*9663SMark.Logan@Sun.COM ped_constraint_new_from_min (const PedGeometry* min); 62*9663SMark.Logan@Sun.COM 63*9663SMark.Logan@Sun.COM extern PedConstraint* 64*9663SMark.Logan@Sun.COM ped_constraint_new_from_max (const PedGeometry* max); 65*9663SMark.Logan@Sun.COM 66*9663SMark.Logan@Sun.COM extern PedConstraint* 67*9663SMark.Logan@Sun.COM ped_constraint_duplicate (const PedConstraint* constraint); 68*9663SMark.Logan@Sun.COM 69*9663SMark.Logan@Sun.COM extern void 70*9663SMark.Logan@Sun.COM ped_constraint_done (PedConstraint* constraint); 71*9663SMark.Logan@Sun.COM 72*9663SMark.Logan@Sun.COM extern void 73*9663SMark.Logan@Sun.COM ped_constraint_destroy (PedConstraint* constraint); 74*9663SMark.Logan@Sun.COM 75*9663SMark.Logan@Sun.COM extern PedConstraint* 76*9663SMark.Logan@Sun.COM ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b); 77*9663SMark.Logan@Sun.COM 78*9663SMark.Logan@Sun.COM extern PedGeometry* 79*9663SMark.Logan@Sun.COM ped_constraint_solve_max (const PedConstraint* constraint); 80*9663SMark.Logan@Sun.COM 81*9663SMark.Logan@Sun.COM extern PedGeometry* 82*9663SMark.Logan@Sun.COM ped_constraint_solve_nearest ( 83*9663SMark.Logan@Sun.COM const PedConstraint* constraint, const PedGeometry* geom); 84*9663SMark.Logan@Sun.COM 85*9663SMark.Logan@Sun.COM extern int 86*9663SMark.Logan@Sun.COM ped_constraint_is_solution (const PedConstraint* constraint, 87*9663SMark.Logan@Sun.COM const PedGeometry* geom); 88*9663SMark.Logan@Sun.COM 89*9663SMark.Logan@Sun.COM extern PedConstraint* 90*9663SMark.Logan@Sun.COM ped_constraint_any (const PedDevice* dev); 91*9663SMark.Logan@Sun.COM 92*9663SMark.Logan@Sun.COM extern PedConstraint* 93*9663SMark.Logan@Sun.COM ped_constraint_exact (const PedGeometry* geom); 94*9663SMark.Logan@Sun.COM 95*9663SMark.Logan@Sun.COM #endif /* PED_CONSTRAINT_H_INCLUDED */ 96*9663SMark.Logan@Sun.COM 97