blob: 9f77e7804f3b66e7c08e7ece91780b2df178c9ca [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef __ARM_MMU_H
2#define __ARM_MMU_H
3
Russell King002547b2006-06-20 20:46:52 +01004#ifdef CONFIG_MMU
5
Linus Torvalds1da177e2005-04-16 15:20:36 -07006typedef struct {
Russell King516793c2007-05-17 10:19:23 +01007#ifdef CONFIG_CPU_HAS_ASID
Will Deaconb5466f82012-06-15 14:47:31 +01008 u64 id;
Linus Torvalds1da177e2005-04-16 15:20:36 -07009#endif
Nicolas Pitre3e996752012-11-25 03:24:32 +010010 unsigned int vmalloc_seq;
Linus Torvalds1da177e2005-04-16 15:20:36 -070011} mm_context_t;
12
Russell King516793c2007-05-17 10:19:23 +010013#ifdef CONFIG_CPU_HAS_ASID
Will Deaconb5466f82012-06-15 14:47:31 +010014#define ASID_BITS 8
15#define ASID_MASK ((~0ULL) << ASID_BITS)
16#define ASID(mm) ((mm)->context.id & ~ASID_MASK)
Linus Torvalds1da177e2005-04-16 15:20:36 -070017#else
18#define ASID(mm) (0)
19#endif
20
Russell King002547b2006-06-20 20:46:52 +010021#else
22
23/*
24 * From nommu.h:
25 * Copyright (C) 2002, David McCullough <davidm@snapgear.com>
26 * modified for 2.6 by Hyok S. Choi <hyok.choi@samsung.com>
27 */
28typedef struct {
Russell King002547b2006-06-20 20:46:52 +010029 unsigned long end_brk;
30} mm_context_t;
31
32#endif
33
Linus Torvalds1da177e2005-04-16 15:20:36 -070034#endif