Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef __MMU_H |
| 2 | #define __MMU_H |
| 3 | |
Martin Schwidefsky | 146e4b3 | 2008-02-09 18:24:35 +0100 | [diff] [blame] | 4 | typedef struct { |
Martin Schwidefsky | 050eef3 | 2010-08-24 09:26:21 +0200 | [diff] [blame] | 5 | atomic_t attach_count; |
| 6 | unsigned int flush_mm; |
Martin Schwidefsky | 50aa98b | 2009-09-11 10:28:57 +0200 | [diff] [blame] | 7 | spinlock_t list_lock; |
Martin Schwidefsky | 146e4b3 | 2008-02-09 18:24:35 +0100 | [diff] [blame] | 8 | struct list_head pgtable_list; |
| 9 | unsigned long asce_bits; |
Martin Schwidefsky | 6252d70 | 2008-02-09 18:24:37 +0100 | [diff] [blame] | 10 | unsigned long asce_limit; |
Martin Schwidefsky | b020632 | 2008-12-25 13:38:36 +0100 | [diff] [blame] | 11 | unsigned long vdso_base; |
Martin Schwidefsky | b2fa47e | 2011-05-23 10:24:40 +0200 | [diff] [blame] | 12 | /* Cloned contexts will be created with extended page tables. */ |
| 13 | unsigned int alloc_pgste:1; |
| 14 | /* The mmu context has extended page tables. */ |
| 15 | unsigned int has_pgste:1; |
Martin Schwidefsky | 146e4b3 | 2008-02-09 18:24:35 +0100 | [diff] [blame] | 16 | } mm_context_t; |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 17 | |
Heiko Carstens | a1b200e | 2010-08-09 17:18:28 -0700 | [diff] [blame] | 18 | #define INIT_MM_CONTEXT(name) \ |
| 19 | .context.list_lock = __SPIN_LOCK_UNLOCKED(name.context.list_lock), \ |
Heiko Carstens | a1b200e | 2010-08-09 17:18:28 -0700 | [diff] [blame] | 20 | .context.pgtable_list = LIST_HEAD_INIT(name.context.pgtable_list), |
| 21 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 22 | #endif |