... | ... |
@@ -16,8 +16,15 @@ |
16 | 16 |
#define FRAG_OVERHEAD (sizeof(struct fm_frag)) |
17 | 17 |
|
18 | 18 |
|
19 |
-#define ROUNDUP(s) (((s)%ROUNDTO)?((s)+ROUNDTO)/ROUNDTO*ROUNDTO:(s)) |
|
20 |
-#define ROUNDDOWN(s) (((s)%ROUNDTO)?((s)-ROUNDTO)/ROUNDTO*ROUNDTO:(s)) |
|
19 |
+/* ROUNDTO= 2^k so the following works */ |
|
20 |
+#define ROUNDTO_MASK (~((unsigned long)ROUNDTO-1)) |
|
21 |
+#define ROUNDUP(s) (((s)+(ROUNDTO-1))&ROUNDTO_MASK) |
|
22 |
+#define ROUNDDOWN(s) ((s)&ROUNDTO_MASK) |
|
23 |
+ |
|
24 |
+/* |
|
25 |
+ #define ROUNDUP(s) (((s)%ROUNDTO)?((s)+ROUNDTO)/ROUNDTO*ROUNDTO:(s)) |
|
26 |
+ #define ROUNDDOWN(s) (((s)%ROUNDTO)?((s)-ROUNDTO)/ROUNDTO*ROUNDTO:(s)) |
|
27 |
+*/ |
|
21 | 28 |
|
22 | 29 |
|
23 | 30 |
|
... | ... |
@@ -30,8 +30,14 @@ |
30 | 30 |
#define FRAG_OVERHEAD (sizeof(struct qm_frag)+sizeof(struct qm_frag_end)) |
31 | 31 |
|
32 | 32 |
|
33 |
+#define ROUNDTO_MASK (~((unsigned long)ROUNDTO-1)) |
|
34 |
+#define ROUNDUP(s) (((s)+(ROUNDTO-1))&ROUNDTO_MASK) |
|
35 |
+#define ROUNDDOWN(s) ((s)&ROUNDTO_MASK) |
|
36 |
+ |
|
37 |
+/* |
|
33 | 38 |
#define ROUNDUP(s) (((s)%ROUNDTO)?((s)+ROUNDTO)/ROUNDTO*ROUNDTO:(s)) |
34 | 39 |
#define ROUNDDOWN(s) (((s)%ROUNDTO)?((s)-ROUNDTO)/ROUNDTO*ROUNDTO:(s)) |
40 |
+*/ |
|
35 | 41 |
|
36 | 42 |
|
37 | 43 |
|
... | ... |
@@ -11,7 +11,10 @@ |
11 | 11 |
#include "../../ut.h" |
12 | 12 |
|
13 | 13 |
|
14 |
-#define ROUND4(s) (((s)%4)?((s)+4)/4*4:(s)) |
|
14 |
+/*#define ROUND4(s) (((s)%4)?((s)+4)/4*4:(s))*/ |
|
15 |
+ |
|
16 |
+#define ROUND4(s) (((s)+3)&(~(3UL))) |
|
17 |
+ |
|
15 | 18 |
|
16 | 19 |
#define lump_len( _lump) (ROUND4(sizeof(struct lump)) + \ |
17 | 20 |
ROUND4( ((_lump)->op==LUMP_ADD)?(_lump)->len:0 )) |