summaryrefslogtreecommitdiff
path: root/lib/misc/lvm-percent.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/misc/lvm-percent.h')
-rw-r--r--lib/misc/lvm-percent.h38
1 files changed, 16 insertions, 22 deletions
diff --git a/lib/misc/lvm-percent.h b/lib/misc/lvm-percent.h
index bf30a7e..2ff7199 100644
--- a/lib/misc/lvm-percent.h
+++ b/lib/misc/lvm-percent.h
@@ -9,36 +9,30 @@
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef _LVM_PERCENT_H
#define _LVM_PERCENT_H
#include <stdint.h>
-/*
- * A fixed-point representation of percent values. One percent equals to
- * PERCENT_1 as defined below. Values that are not multiples of PERCENT_1
- * represent fractions, with precision of 1/1000000 of a percent. See
- * percent_to_float for a conversion to a floating-point representation.
- *
- * You should always use make_percent when building percent_t values. The
- * implementation of make_percent is biased towards the middle: it ensures that
- * the result is PERCENT_0 or PERCENT_100 if and only if this is the actual
- * value -- it never rounds any intermediate value (> 0 or < 100) to either 0
- * or 100.
- */
-typedef int32_t percent_t;
+typedef enum {
+ SIGN_NONE = 0,
+ SIGN_PLUS = 1,
+ SIGN_MINUS = 2
+} sign_t;
typedef enum {
- PERCENT_0 = 0,
- PERCENT_1 = 1000000,
- PERCENT_100 = 100 * PERCENT_1,
- PERCENT_INVALID = -1,
- PERCENT_MERGE_FAILED = -2
-} percent_range_t;
+ PERCENT_NONE = 0,
+ PERCENT_VG,
+ PERCENT_FREE,
+ PERCENT_LV,
+ PERCENT_PVS,
+ PERCENT_ORIGIN
+} percent_type_t;
+
+#define LVM_PERCENT_MERGE_FAILED DM_PERCENT_FAILED
-float percent_to_float(percent_t v);
-percent_t make_percent(uint64_t numerator, uint64_t denominator);
+uint32_t percent_of_extents(uint32_t percents, uint32_t count, int roundup);
#endif