|
|
| File: [Development] / linux-2.6-xfs / mm / mmzone.c (download)
Revision 1.1, Mon May 29 16:35:25 2006 UTC (11 years, 4 months ago) by nathans.longdrop.melbourne.sgi.com
Merge up to 2.6.17-rc5. Merge of 2.6.x-xfs-melb:linux:26065a by kenmcd. |
/*
* linux/mm/mmzone.c
*
* management codes for pgdats and zones.
*/
#include <linux/config.h>
#include <linux/stddef.h>
#include <linux/mmzone.h>
#include <linux/module.h>
struct pglist_data *first_online_pgdat(void)
{
return NODE_DATA(first_online_node);
}
EXPORT_SYMBOL(first_online_pgdat);
struct pglist_data *next_online_pgdat(struct pglist_data *pgdat)
{
int nid = next_online_node(pgdat->node_id);
if (nid == MAX_NUMNODES)
return NULL;
return NODE_DATA(nid);
}
EXPORT_SYMBOL(next_online_pgdat);
/*
* next_zone - helper magic for for_each_zone()
*/
struct zone *next_zone(struct zone *zone)
{
pg_data_t *pgdat = zone->zone_pgdat;
if (zone < pgdat->node_zones + MAX_NR_ZONES - 1)
zone++;
else {
pgdat = next_online_pgdat(pgdat);
if (pgdat)
zone = pgdat->node_zones;
else
zone = NULL;
}
return zone;
}
EXPORT_SYMBOL(next_zone);