blob: 0bdec9385a80843e85263186b9f0e7405729927d [file] [log] [blame]
Sam Ravnborgc00db322012-07-26 11:02:18 +00001/* Highmem related constants */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002
3#ifndef _ASM_FIXMAP_H
4#define _ASM_FIXMAP_H
5
Linus Torvalds1da177e2005-04-16 15:20:36 -07006#include <asm/kmap_types.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07007
Linus Torvalds1da177e2005-04-16 15:20:36 -07008enum fixed_addresses {
9 FIX_HOLE,
10#ifdef CONFIG_HIGHMEM
11 FIX_KMAP_BEGIN,
Sam Ravnborgc00db322012-07-26 11:02:18 +000012 FIX_KMAP_END = (KM_TYPE_NR * NR_CPUS),
Linus Torvalds1da177e2005-04-16 15:20:36 -070013#endif
14 __end_of_fixed_addresses
15};
16
Sam Ravnborgc00db322012-07-26 11:02:18 +000017/* Leave one empty page between IO pages at 0xfd000000 and
18 * the top of the fixmap.
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 */
20#define FIXADDR_TOP (0xfcfff000UL)
Sam Ravnborgc00db322012-07-26 11:02:18 +000021#define FIXADDR_SIZE ((FIX_KMAP_END + 1) << PAGE_SHIFT)
Linus Torvalds1da177e2005-04-16 15:20:36 -070022#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
23
24#define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT))
Linus Torvalds1da177e2005-04-16 15:20:36 -070025
26#endif