11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef __ARM_MMU_H
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define __ARM_MMU_H
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
4002547b4f86c27bfac5bae344b723d250857be6bRussell King#ifdef CONFIG_MMU
5002547b4f86c27bfac5bae344b723d250857be6bRussell King
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct {
7516793c61b3db1f60e0b0d0e3c382bcca9ae84fdRussell King#ifdef CONFIG_CPU_HAS_ASID
88a4e3a9ead7e37ce1505602b564c15da09ac039fWill Deacon	atomic64_t	id;
9bdae73cd374e28db544fdd9b77de689a36e3c129Catalin Marinas#else
10bdae73cd374e28db544fdd9b77de689a36e3c129Catalin Marinas	int		switch_pending;
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
128a4e3a9ead7e37ce1505602b564c15da09ac039fWill Deacon	unsigned int	vmalloc_seq;
1348be69a026b2c17350a5ef18a1959a919f60be7dRussell King	unsigned long	sigpage;
141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} mm_context_t;
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
16516793c61b3db1f60e0b0d0e3c382bcca9ae84fdRussell King#ifdef CONFIG_CPU_HAS_ASID
17b5466f8728527a05a493cc4abe9e6f034a1bbaabWill Deacon#define ASID_BITS	8
18b5466f8728527a05a493cc4abe9e6f034a1bbaabWill Deacon#define ASID_MASK	((~0ULL) << ASID_BITS)
19a1af3474487cc3b8731b990dceac6b6aad7f3ed8Victor Kamensky#define ASID(mm)	((unsigned int)((mm)->context.id.counter & ~ASID_MASK))
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#else
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define ASID(mm)	(0)
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
24002547b4f86c27bfac5bae344b723d250857be6bRussell King#else
25002547b4f86c27bfac5bae344b723d250857be6bRussell King
26002547b4f86c27bfac5bae344b723d250857be6bRussell King/*
27002547b4f86c27bfac5bae344b723d250857be6bRussell King * From nommu.h:
28002547b4f86c27bfac5bae344b723d250857be6bRussell King *  Copyright (C) 2002, David McCullough <davidm@snapgear.com>
29002547b4f86c27bfac5bae344b723d250857be6bRussell King *  modified for 2.6 by Hyok S. Choi <hyok.choi@samsung.com>
30002547b4f86c27bfac5bae344b723d250857be6bRussell King */
31002547b4f86c27bfac5bae344b723d250857be6bRussell Kingtypedef struct {
328a4e3a9ead7e37ce1505602b564c15da09ac039fWill Deacon	unsigned long	end_brk;
33002547b4f86c27bfac5bae344b723d250857be6bRussell King} mm_context_t;
34002547b4f86c27bfac5bae344b723d250857be6bRussell King
35002547b4f86c27bfac5bae344b723d250857be6bRussell King#endif
36002547b4f86c27bfac5bae344b723d250857be6bRussell King
371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif
38