linux/arch/m32r/include/asm/addrspace.h
<<
>>
Prefs
   1/*
   2 * This file is subject to the terms and conditions of the GNU General Public
   3 * License.  See the file "COPYING" in the main directory of this archive
   4 * for more details.
   5 *
   6 * Copyright (C) 2001 by Hiroyuki Kondo
   7 *
   8 * Defitions for the address spaces of the M32R CPUs.
   9 */
  10#ifndef __ASM_M32R_ADDRSPACE_H
  11#define __ASM_M32R_ADDRSPACE_H
  12
  13/*
  14 * Memory segments (32bit kernel mode addresses)
  15 */
  16#define KUSEG                   0x00000000
  17#define KSEG0                   0x80000000
  18#define KSEG1                   0xa0000000
  19#define KSEG2                   0xc0000000
  20#define KSEG3                   0xe0000000
  21
  22#define K0BASE  KSEG0
  23
  24/*
  25 * Returns the kernel segment base of a given address
  26 */
  27#ifndef __ASSEMBLY__
  28#define KSEGX(a)                (((unsigned long)(a)) & 0xe0000000)
  29#else
  30#define KSEGX(a)                ((a) & 0xe0000000)
  31#endif
  32
  33/*
  34 * Returns the physical address of a KSEG0/KSEG1 address
  35 */
  36#ifndef __ASSEMBLY__
  37#define PHYSADDR(a)             (((unsigned long)(a)) & 0x1fffffff)
  38#else
  39#define PHYSADDR(a)             ((a) & 0x1fffffff)
  40#endif
  41
  42/*
  43 * Map an address to a certain kernel segment
  44 */
  45#ifndef __ASSEMBLY__
  46#define KSEG0ADDR(a)            ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | KSEG0))
  47#define KSEG1ADDR(a)            ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | KSEG1))
  48#define KSEG2ADDR(a)            ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | KSEG2))
  49#define KSEG3ADDR(a)            ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | KSEG3))
  50#else
  51#define KSEG0ADDR(a)            (((a) & 0x1fffffff) | KSEG0)
  52#define KSEG1ADDR(a)            (((a) & 0x1fffffff) | KSEG1)
  53#define KSEG2ADDR(a)            (((a) & 0x1fffffff) | KSEG2)
  54#define KSEG3ADDR(a)            (((a) & 0x1fffffff) | KSEG3)
  55#endif
  56
  57#endif /* __ASM_M32R_ADDRSPACE_H */
  58