#define INVALIDATE_CACHED_RANGE(map, from, size) \
        do { if (map->inval_cache) map->inval_cache(map, from, size); } while (0)
 
-
-static inline int map_word_equal(struct map_info *map, map_word val1, map_word val2)
-{
-       int i;
-
-       for (i = 0; i < map_words(map); i++) {
-               if (val1.x[i] != val2.x[i])
-                       return 0;
-       }
-
-       return 1;
-}
-
-static inline map_word map_word_and(struct map_info *map, map_word val1, map_word val2)
-{
-       map_word r;
-       int i;
-
-       for (i = 0; i < map_words(map); i++)
-               r.x[i] = val1.x[i] & val2.x[i];
-
-       return r;
-}
-
-static inline map_word map_word_clr(struct map_info *map, map_word val1, map_word val2)
-{
-       map_word r;
-       int i;
-
-       for (i = 0; i < map_words(map); i++)
-               r.x[i] = val1.x[i] & ~val2.x[i];
-
-       return r;
-}
-
-static inline map_word map_word_or(struct map_info *map, map_word val1, map_word val2)
-{
-       map_word r;
-       int i;
-
-       for (i = 0; i < map_words(map); i++)
-               r.x[i] = val1.x[i] | val2.x[i];
-
-       return r;
-}
-
-static inline int map_word_andequal(struct map_info *map, map_word val1, map_word val2, map_word val3)
-{
-       int i;
-
-       for (i = 0; i < map_words(map); i++) {
-               if ((val1.x[i] & val2.x[i]) != val3.x[i])
-                       return 0;
-       }
-
-       return 1;
-}
-
-static inline int map_word_bitsset(struct map_info *map, map_word val1, map_word val2)
-{
-       int i;
-
-       for (i = 0; i < map_words(map); i++) {
-               if (val1.x[i] & val2.x[i])
-                       return 1;
-       }
-
-       return 0;
-}
+#define map_word_equal(map, val1, val2)                                        \
+({                                                                     \
+       int i, ret = 1;                                                 \
+       for (i = 0; i < map_words(map); i++)                            \
+               if ((val1).x[i] != (val2).x[i]) {                       \
+                       ret = 0;                                        \
+                       break;                                          \
+               }                                                       \
+       ret;                                                            \
+})
+
+#define map_word_and(map, val1, val2)                                  \
+({                                                                     \
+       map_word r;                                                     \
+       int i;                                                          \
+       for (i = 0; i < map_words(map); i++)                            \
+               r.x[i] = (val1).x[i] & (val2).x[i];                     \
+       r;                                                              \
+})
+
+#define map_word_clr(map, val1, val2)                                  \
+({                                                                     \
+       map_word r;                                                     \
+       int i;                                                          \
+       for (i = 0; i < map_words(map); i++)                            \
+               r.x[i] = (val1).x[i] & ~(val2).x[i];                    \
+       r;                                                              \
+})
+
+#define map_word_or(map, val1, val2)                                   \
+({                                                                     \
+       map_word r;                                                     \
+       int i;                                                          \
+       for (i = 0; i < map_words(map); i++)                            \
+               r.x[i] = (val1).x[i] | (val2).x[i];                     \
+       r;                                                              \
+})
+
+#define map_word_andequal(map, val1, val2, val3)                       \
+({                                                                     \
+       int i, ret = 1;                                                 \
+       for (i = 0; i < map_words(map); i++) {                          \
+               if (((val1).x[i] & (val2).x[i]) != (val2).x[i]) {       \
+                       ret = 0;                                        \
+                       break;                                          \
+               }                                                       \
+       }                                                               \
+       ret;                                                            \
+})
+
+#define map_word_bitsset(map, val1, val2)                              \
+({                                                                     \
+       int i, ret = 0;                                                 \
+       for (i = 0; i < map_words(map); i++) {                          \
+               if ((val1).x[i] & (val2).x[i]) {                        \
+                       ret = 1;                                        \
+                       break;                                          \
+               }                                                       \
+       }                                                               \
+       ret;                                                            \
+})
 
 static inline map_word map_word_load(struct map_info *map, const void *ptr)
 {