URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 297 |
Rev 338 |
typedef struct { unsigned long bits[((((1 << 0))+32 -1)/32)]; } nodemask_t;
|
typedef struct { unsigned long bits[((((1 << 0))+32 -1)/32)]; } nodemask_t;
|
static inline __attribute__((always_inline))
|
static inline __attribute__((always_inline))
|
int bitmap_empty(const unsigned long *src, int nbits)
|
int bitmap_empty(const unsigned long *src, int nbits)
|
{
|
{
|
return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
|
return ! (*src & ( ((nbits) % 32) ? (1UL<<((nbits) % 32))-1 : ~0UL ));
|
}
|
}
|
static inline __attribute__((always_inline))
|
static inline __attribute__((always_inline))
|
int __nodes_empty(const nodemask_t *srcp, int nbits)
|
int __nodes_empty(const nodemask_t *srcp, int nbits)
|
{
|
{
|
return bitmap_empty(srcp->bits, nbits);
|
return bitmap_empty(srcp->bits, nbits);
|
}
|
}
|
extern nodemask_t node_online_map;
|
extern nodemask_t node_online_map;
|
void drain_array(void);
|
void drain_array(void);
|
void drain_cpu_caches(void)
|
void drain_cpu_caches(void)
|
{
|
{
|
int node;
|
int node;
|
if (!__nodes_empty(&(node_online_map), (1 << 0)))
|
if (!__nodes_empty(&(node_online_map), (1 << 0)))
|
for (((node)) = 0; ((node)) < 1; ((node))++)
|
for (((node)) = 0; ((node)) < 1; ((node))++)
|
{
|
{
|
}
|
}
|
if (!__nodes_empty(&(node_online_map), (1 << 0)))
|
if (!__nodes_empty(&(node_online_map), (1 << 0)))
|
drain_array();
|
drain_array();
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.