From 1513ff9b7899ab588401c89db0e99903dbf5f886 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Mon, 28 Nov 1994 11:59:19 +0000 Subject: Import of Linus's Linux 1.1.68 --- include/asm-alpha/page.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 include/asm-alpha/page.h (limited to 'include/asm-alpha/page.h') 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<>(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 */ -- cgit v1.2.3