Module Name: src
Committed By: joerg
Date: Mon Mar 1 00:13:48 UTC 2010
Modified Files:
src/usr.sbin/altq/libaltq: qop_hfsc.c
Log Message:
Use HUGE_VAL instead of INFINITY as positive infinity (or maximum value)
is good enough and the side effects of ISO C99 7.12 (4) are not desired.
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/usr.sbin/altq/libaltq/qop_hfsc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/altq/libaltq/qop_hfsc.c
diff -u src/usr.sbin/altq/libaltq/qop_hfsc.c:1.8 src/usr.sbin/altq/libaltq/qop_hfsc.c:1.9
--- src/usr.sbin/altq/libaltq/qop_hfsc.c:1.8 Thu Oct 12 19:59:13 2006
+++ src/usr.sbin/altq/libaltq/qop_hfsc.c Mon Mar 1 00:13:47 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: qop_hfsc.c,v 1.8 2006/10/12 19:59:13 peter Exp $ */
+/* $NetBSD: qop_hfsc.c,v 1.9 2010/03/01 00:13:47 joerg Exp $ */
/* $KAME: qop_hfsc.c,v 1.12 2005/01/05 04:53:47 itojun Exp $ */
/*
* Copyright (C) 1999-2000
@@ -753,9 +753,6 @@
/*
* admission control using generalized service curve
*/
-#ifndef INFINITY
-#define INFINITY HUGE_VAL /* positive infinity defined in <math.h> */
-#endif
/* add a new service curve to a generilized service curve */
static void
@@ -765,7 +762,7 @@
return;
if (sc->d != 0)
gsc_add_seg(gsc, 0, 0, (double)sc->d, (double)sc->m1);
- gsc_add_seg(gsc, (double)sc->d, 0, INFINITY, (double)sc->m2);
+ gsc_add_seg(gsc, (double)sc->d, 0, HUGE_VAL, (double)sc->m2);
}
/* subtract a service curve from a generilized service curve */
@@ -776,7 +773,7 @@
return;
if (sc->d != 0)
gsc_sub_seg(gsc, 0, 0, (double)sc->d, (double)sc->m1);
- gsc_sub_seg(gsc, (double)sc->d, 0, INFINITY, (double)sc->m2);
+ gsc_sub_seg(gsc, (double)sc->d, 0, HUGE_VAL, (double)sc->m2);
}
/*
@@ -800,10 +797,10 @@
return (1);
}
/*
- * gsc has a dummy entry at the end with x = INFINITY.
+ * gsc has a dummy entry at the end with x = HUGE_VAL.
* loop through up to this dummy entry.
*/
- end = gsc_getentry(gsc, INFINITY);
+ end = gsc_getentry(gsc, HUGE_VAL);
if (end == NULL)
return (1);
last = NULL;
@@ -860,10 +857,10 @@
return (NULL);
new->x = x;
- if (x == INFINITY || s == NULL)
+ if (x == HUGE_VAL || s == NULL)
new->d = 0;
- else if (s->x == INFINITY)
- new->d = INFINITY;
+ else if (s->x == HUGE_VAL)
+ new->d = HUGE_VAL;
else
new->d = s->x - x;
if (prev == NULL) {
@@ -876,12 +873,12 @@
* the start point intersects with the segment pointed by
* prev. divide prev into 2 segments
*/
- if (x == INFINITY) {
- prev->d = INFINITY;
+ if (x == HUGE_VAL) {
+ prev->d = HUGE_VAL;
if (prev->m == 0)
new->y = prev->y;
else
- new->y = INFINITY;
+ new->y = HUGE_VAL;
} else {
prev->d = x - prev->x;
new->y = prev->d * prev->m + prev->y;
@@ -899,8 +896,8 @@
struct segment *start, *end, *s;
double x2;
- if (d == INFINITY)
- x2 = INFINITY;
+ if (d == HUGE_VAL)
+ x2 = HUGE_VAL;
else
x2 = x + d;
start = gsc_getentry(gsc, x);
@@ -913,7 +910,7 @@
s->y += y + (s->x - x) * m;
}
- end = gsc_getentry(gsc, INFINITY);
+ end = gsc_getentry(gsc, HUGE_VAL);
for (; s != end; s = LIST_NEXT(s, _next)) {
s->y += m * d;
}
@@ -962,7 +959,7 @@
goto again;
} else if (s->m == next->m) {
/* join the two entries */
- if (s->d != INFINITY && next->d != INFINITY)
+ if (s->d != HUGE_VAL && next->d != HUGE_VAL)
s->d += next->d;
LIST_REMOVE(next, _next);
free(next);