1typedef struct { unsigned long bits[((((1 << 0))+32 -1)/32)]; } nodemask_t;
2static inline __attribute__((always_inline))
3int bitmap_empty(const unsigned long *src, int nbits)
4{
5  return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
6}
7static inline __attribute__((always_inline))
8int __nodes_empty(const nodemask_t *srcp, int nbits)
9{
10 return bitmap_empty(srcp->bits, nbits);
11}
12extern nodemask_t node_online_map;
13void drain_array(void);
14void drain_cpu_caches(void)
15{
16 int node;
17 if (!__nodes_empty(&(node_online_map), (1 << 0)))
18     for (((node)) = 0; ((node)) < 1; ((node))++)
19     {
20     }
21 if (!__nodes_empty(&(node_online_map), (1 << 0)))
22     drain_array();
23}
24