diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1994-11-28 11:59:19 +0000 |
---|---|---|
committer | <ralf@linux-mips.org> | 1994-11-28 11:59:19 +0000 |
commit | 1513ff9b7899ab588401c89db0e99903dbf5f886 (patch) | |
tree | f69cc81a940a502ea23d664c3ffb2d215a479667 /include/asm-alpha/page.h |
Import of Linus's Linux 1.1.68
Diffstat (limited to 'include/asm-alpha/page.h')
-rw-r--r-- | include/asm-alpha/page.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/asm-alpha/page.h b/include/asm-alpha/page.h new file mode 100644 index 000000000..6a09532f9 --- /dev/null +++ b/include/asm-alpha/page.h @@ -0,0 +1,50 @@ +#ifndef _ALPHA_PAGE_H +#define _ALPHA_PAGE_H + +#define invalidate_all() \ +__asm__ __volatile__( \ + "lda $16,-2($31)\n\t" \ + ".long 51" \ + : : :"$1", "$16", "$17", "$22","$23","$24","$25") + +#define invalidate() \ +__asm__ __volatile__( \ + "lda $16,-1($31)\n\t" \ + ".long 51" \ + : : :"$1", "$16", "$17", "$22","$23","$24","$25") + + /* PAGE_SHIFT determines the page size */ +#define PAGE_SHIFT 13 +#define PGDIR_SHIFT 23 +#define PAGE_SIZE (1UL << PAGE_SHIFT) +#define PGDIR_SIZE (1UL << PGDIR_SHIFT) + +#ifdef __KERNEL__ + + /* number of bits that fit into a memory pointer */ +#define BITS_PER_PTR (8*sizeof(unsigned long)) + /* to mask away the intra-page address bits */ +#define PAGE_MASK (~(PAGE_SIZE-1)) + /* to mask away the intra-page address bits */ +#define PGDIR_MASK (~(PGDIR_SIZE-1)) + /* to align the pointer to the (next) page boundary */ +#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) + /* to align the pointer to a pointer address */ +#define PTR_MASK (~(sizeof(void*)-1)) + + /* sizeof(void*)==1<<SIZEOF_PTR_LOG2 */ + /* 64-bit machines, beware! SRB. */ +#define SIZEOF_PTR_LOG2 4 + + /* to find an entry in a page-table-directory */ +#define PAGE_DIR_OFFSET(base,address) ((unsigned long*)((base)+\ + ((unsigned long)(address)>>(PAGE_SHIFT-SIZEOF_PTR_LOG2)*2&PTR_MASK&~PAGE_MASK))) + /* to find an entry in a page-table */ +#define PAGE_PTR(address) \ + ((unsigned long)(address)>>(PAGE_SHIFT-SIZEOF_PTR_LOG2)&PTR_MASK&~PAGE_MASK) + /* the no. of pointers that fit on a page */ +#define PTRS_PER_PAGE (PAGE_SIZE/sizeof(void*)) + +#endif /* __KERNEL__ */ + +#endif /* _ALPHA_PAGE_H */ |