linux/arch/mips/include/asm/mach-loongson64/mmzone.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2010 Loongson Inc. & Lemote Inc. &
   3 *                    Institute of Computing Technology
   4 * Author:  Xiang Gao, gaoxiang@ict.ac.cn
   5 *          Huacai Chen, chenhc@lemote.com
   6 *          Xiaofu Meng, Shuangshuang Zhang
   7 *
   8 * This program is free software; you can redistribute  it and/or modify it
   9 * under  the terms of  the GNU General  Public License as published by the
  10 * Free Software Foundation;  either version 2 of the  License, or (at your
  11 * option) any later version.
  12 */
  13#ifndef _ASM_MACH_MMZONE_H
  14#define _ASM_MACH_MMZONE_H
  15
  16#include <boot_param.h>
  17#define NODE_ADDRSPACE_SHIFT 44
  18#define NODE0_ADDRSPACE_OFFSET 0x000000000000UL
  19#define NODE1_ADDRSPACE_OFFSET 0x100000000000UL
  20#define NODE2_ADDRSPACE_OFFSET 0x200000000000UL
  21#define NODE3_ADDRSPACE_OFFSET 0x300000000000UL
  22
  23#define pa_to_nid(addr)  (((addr) & 0xf00000000000) >> NODE_ADDRSPACE_SHIFT)
  24
  25#define LEVELS_PER_SLICE 128
  26
  27struct slice_data {
  28        unsigned long irq_enable_mask[2];
  29        int level_to_irq[LEVELS_PER_SLICE];
  30};
  31
  32struct hub_data {
  33        cpumask_t       h_cpus;
  34        unsigned long slice_map;
  35        unsigned long irq_alloc_mask[2];
  36        struct slice_data slice[2];
  37};
  38
  39struct node_data {
  40        struct pglist_data pglist;
  41        struct hub_data hub;
  42        cpumask_t cpumask;
  43};
  44
  45extern struct node_data *__node_data[];
  46
  47#define NODE_DATA(n)            (&__node_data[(n)]->pglist)
  48#define hub_data(n)             (&__node_data[(n)]->hub)
  49
  50extern void setup_zero_pages(void);
  51extern void __init prom_init_numa_memory(void);
  52
  53#endif /* _ASM_MACH_MMZONE_H */
  54