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 crst_list; |
| 9 | struct list_head pgtable_list; |
| 10 | unsigned long asce_bits; |
Martin Schwidefsky | 6252d70 | 2008-02-09 18:24:37 +0100 | [diff] [blame] | 11 | unsigned long asce_limit; |
Martin Schwidefsky | b020632 | 2008-12-25 13:38:36 +0100 | [diff] [blame] | 12 | unsigned long vdso_base; |
Martin Schwidefsky | 146e4b3 | 2008-02-09 18:24:35 +0100 | [diff] [blame] | 13 | int noexec; |
Christian Borntraeger | 250cf77 | 2008-10-28 11:10:15 +0100 | [diff] [blame] | 14 | int has_pgste; /* The mmu context has extended page tables */ |
| 15 | int alloc_pgste; /* cloned contexts will have extended page tables */ |
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), \ |
| 20 | .context.crst_list = LIST_HEAD_INIT(name.context.crst_list), \ |
| 21 | .context.pgtable_list = LIST_HEAD_INIT(name.context.pgtable_list), |
| 22 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 23 | #endif |