blob: a5b47421059dc34153f7450a1cc7d2baf21200b5 [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;
Catalin Marinasbdae73c2013-07-23 16:15:36 +01009#else
10 int switch_pending;
Linus Torvalds1da177e2005-04-16 15:20:36 -070011#endif
Will Deacon8a4e3a92013-02-28 17:47:36 +010012 unsigned int vmalloc_seq;
Russell King48be69a2013-07-24 00:29:18 +010013 unsigned long sigpage;
Nathan Lynch1713ce72015-03-25 19:13:16 +010014#ifdef CONFIG_VDSO
15 unsigned long vdso;
16#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070017} mm_context_t;
18
Russell King516793c2007-05-17 10:19:23 +010019#ifdef CONFIG_CPU_HAS_ASID
Will Deaconb5466f82012-06-15 14:47:31 +010020#define ASID_BITS 8
21#define ASID_MASK ((~0ULL) << ASID_BITS)
Victor Kamenskya1af3472013-10-07 08:48:23 -070022#define ASID(mm) ((unsigned int)((mm)->context.id.counter & ~ASID_MASK))
Linus Torvalds1da177e2005-04-16 15:20:36 -070023#else
24#define ASID(mm) (0)
25#endif
26
Russell King002547b2006-06-20 20:46:52 +010027#else
28
29/*
30 * From nommu.h:
31 * Copyright (C) 2002, David McCullough <davidm@snapgear.com>
32 * modified for 2.6 by Hyok S. Choi <hyok.choi@samsung.com>
33 */
34typedef struct {
Will Deacon8a4e3a92013-02-28 17:47:36 +010035 unsigned long end_brk;
Russell King002547b2006-06-20 20:46:52 +010036} mm_context_t;
37
38#endif
39
Linus Torvalds1da177e2005-04-16 15:20:36 -070040#endif