24 lines
683 B
C
24 lines
683 B
C
typedef struct { unsigned long bits[((((1 << 0))+32 -1)/32)]; } nodemask_t;
|
|
static inline __attribute__((always_inline))
|
|
int bitmap_empty(const unsigned long *src, int nbits)
|
|
{
|
|
return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
|
|
}
|
|
static inline __attribute__((always_inline))
|
|
int __nodes_empty(const nodemask_t *srcp, int nbits)
|
|
{
|
|
return bitmap_empty(srcp->bits, nbits);
|
|
}
|
|
extern nodemask_t node_online_map;
|
|
void drain_array(void);
|
|
void drain_cpu_caches(void)
|
|
{
|
|
int node;
|
|
if (!__nodes_empty(&(node_online_map), (1 << 0)))
|
|
for (((node)) = 0; ((node)) < 1; ((node))++)
|
|
{
|
|
}
|
|
if (!__nodes_empty(&(node_online_map), (1 << 0)))
|
|
drain_array();
|
|
}
|