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