| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | * We need constants.h for: | 
|  | 3 | *  VMA_VM_MM | 
|  | 4 | *  VMA_VM_FLAGS | 
|  | 5 | *  VM_EXEC | 
|  | 6 | */ | 
|  | 7 | #include <asm/constants.h> | 
|  | 8 | #include <asm/thread_info.h> | 
|  | 9 |  | 
|  | 10 | /* | 
|  | 11 | * vma_vm_mm - get mm pointer from vma pointer (vma->vm_mm) | 
|  | 12 | */ | 
|  | 13 | .macro	vma_vm_mm, rd, rn | 
|  | 14 | ldr	\rd, [\rn, #VMA_VM_MM] | 
|  | 15 | .endm | 
|  | 16 |  | 
|  | 17 | /* | 
|  | 18 | * vma_vm_flags - get vma->vm_flags | 
|  | 19 | */ | 
|  | 20 | .macro	vma_vm_flags, rd, rn | 
|  | 21 | ldr	\rd, [\rn, #VMA_VM_FLAGS] | 
|  | 22 | .endm | 
|  | 23 |  | 
|  | 24 | .macro	tsk_mm, rd, rn | 
|  | 25 | ldr	\rd, [\rn, #TI_TASK] | 
|  | 26 | ldr	\rd, [\rd, #TSK_ACTIVE_MM] | 
|  | 27 | .endm | 
|  | 28 |  | 
|  | 29 | /* | 
|  | 30 | * act_mm - get current->active_mm | 
|  | 31 | */ | 
|  | 32 | .macro	act_mm, rd | 
|  | 33 | bic	\rd, sp, #8128 | 
|  | 34 | bic	\rd, \rd, #63 | 
|  | 35 | ldr	\rd, [\rd, #TI_TASK] | 
|  | 36 | ldr	\rd, [\rd, #TSK_ACTIVE_MM] | 
|  | 37 | .endm | 
|  | 38 |  | 
|  | 39 | /* | 
|  | 40 | * mmid - get context id from mm pointer (mm->context.id) | 
|  | 41 | */ | 
|  | 42 | .macro	mmid, rd, rn | 
|  | 43 | ldr	\rd, [\rn, #MM_CONTEXT_ID] | 
|  | 44 | .endm | 
|  | 45 |  | 
|  | 46 | /* | 
|  | 47 | * mask_asid - mask the ASID from the context ID | 
|  | 48 | */ | 
|  | 49 | .macro	asid, rd, rn | 
|  | 50 | and	\rd, \rn, #255 | 
|  | 51 | .endm |