linux/mm/mmzone.c
<<
>>
Prefs
   1/*
   2 * linux/mm/mmzone.c
   3 *
   4 * management codes for pgdats and zones.
   5 */
   6
   7
   8#include <linux/stddef.h>
   9#include <linux/mmzone.h>
  10#include <linux/module.h>
  11
  12struct pglist_data *first_online_pgdat(void)
  13{
  14        return NODE_DATA(first_online_node);
  15}
  16
  17struct pglist_data *next_online_pgdat(struct pglist_data *pgdat)
  18{
  19        int nid = next_online_node(pgdat->node_id);
  20
  21        if (nid == MAX_NUMNODES)
  22                return NULL;
  23        return NODE_DATA(nid);
  24}
  25
  26/*
  27 * next_zone - helper magic for for_each_zone()
  28 */
  29struct zone *next_zone(struct zone *zone)
  30{
  31        pg_data_t *pgdat = zone->zone_pgdat;
  32
  33        if (zone < pgdat->node_zones + MAX_NR_ZONES - 1)
  34                zone++;
  35        else {
  36                pgdat = next_online_pgdat(pgdat);
  37                if (pgdat)
  38                        zone = pgdat->node_zones;
  39                else
  40                        zone = NULL;
  41        }
  42        return zone;
  43}
  44
  45
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.