blob: 7345e37155d55a91ec9113b72fd1dfed8773a1cf [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 Deacon8a4e3a92013-02-28 17:47:36 +01008 atomic64_t id;
Linus Torvalds1da177e2005-04-16 15:20:36 -07009#endif
Will Deacon8a4e3a92013-02-28 17:47:36 +010010 unsigned int vmalloc_seq;
Russell Kinga5510da2013-07-24 00:29:18 +010011 unsigned long sigpage;
Linus Torvalds1da177e2005-04-16 15:20:36 -070012} mm_context_t;
13
Russell King516793c2007-05-17 10:19:23 +010014#ifdef CONFIG_CPU_HAS_ASID
Will Deaconb5466f82012-06-15 14:47:31 +010015#define ASID_BITS 8
16#define ASID_MASK ((~0ULL) << ASID_BITS)
Will Deacon8a4e3a92013-02-28 17:47:36 +010017#define ASID(mm) ((mm)->context.id.counter & ~ASID_MASK)
Linus Torvalds1da177e2005-04-16 15:20:36 -070018#else
19#define ASID(mm) (0)
20#endif
21
Russell King002547b2006-06-20 20:46:52 +010022#else
23
24/*
25 * From nommu.h:
26 * Copyright (C) 2002, David McCullough <davidm@snapgear.com>
27 * modified for 2.6 by Hyok S. Choi <hyok.choi@samsung.com>
28 */
29typedef struct {
Will Deacon8a4e3a92013-02-28 17:47:36 +010030 unsigned long end_brk;
Russell King002547b2006-06-20 20:46:52 +010031} mm_context_t;
32
33#endif
34
Linus Torvalds1da177e2005-04-16 15:20:36 -070035#endif