* Copyright (C) 1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
*/
+#include <asm-generic/4level-fixup.h>
+
#include <linux/config.h>
#include <linux/spinlock.h>
#include <linux/swap.h>
* The following only work if pte_present() is true.
* Undefined behaviour if not..
*/
+BTFIXUPDEF_HALF(pte_readi)
BTFIXUPDEF_HALF(pte_writei)
BTFIXUPDEF_HALF(pte_dirtyi)
BTFIXUPDEF_HALF(pte_youngi)
+extern int pte_read(pte_t pte) __attribute_const__;
+extern __inline__ int pte_read(pte_t pte)
+{
+ switch (sparc_cpu_model){
+ case sun4:
+ case sun4c:
+ return pte_val(pte) & BTFIXUP_HALF(pte_readi);
+ case sun4d:
+ case sun4e:
+ case sun4m:
+ return !(pte_val(pte) & BTFIXUP_HALF(pte_readi));
+ /* pacify gcc warnings */
+ case sun4u:
+ case sun_unknown:
+ case ap1000:
+ default:
+ return 0;
+ }
+}
+
extern int pte_write(pte_t pte) __attribute_const__;
extern __inline__ int pte_write(pte_t pte)
{