|
|
| File: [Development] / linux-2.6-xfs / mm / mmzone.c (download)
Revision 1.3, Fri Jan 12 15:41:10 2007 UTC (10 years, 9 months ago) by donaldd.longdrop.melbourne.sgi.com
Merge up to 2.6.20-rc4 Merge of 2.6.x-xfs-melb:linux:27915c by kenmcd. |
/*
* linux/mm/mmzone.c
*
* management codes for pgdats and zones.
*/
#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);
}
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);
}
/*
* 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;
}