Commit 7e0b2be9 authored by Helge Deller's avatar Helge Deller
Browse files

parisc: Add constants for control registers and clean up mfctl()



Clean up the code for the mfctl() and mtctl() functions and add often
used constants.

Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent ed979481
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -30,11 +30,15 @@
	pa;						\
})

#define CR_EIEM 15	/* External Interrupt Enable Mask */
#define CR_CR16 16	/* CR16 Interval Timer */
#define CR_EIRR 23	/* External Interrupt Request Register */

#define mfctl(reg)	({		\
	unsigned long cr;		\
	__asm__ __volatile__(		\
		"mfctl " #reg ",%0" :	\
		 "=r" (cr)		\
		"mfctl %1,%0" :		\
		 "=r" (cr) : "i" (reg)	\
	);				\
	cr;				\
})
@@ -44,13 +48,8 @@
		: /* no outputs */ \
		: "r" (gr), "i" (cr) : "memory")

/* these are here to de-mystefy the calling code, and to provide hooks */
/* which I needed for debugging EIEM problems -PB */
#define get_eiem() mfctl(15)
static inline void set_eiem(unsigned long val)
{
	mtctl(val, 15);
}
#define get_eiem()	mfctl(CR_EIEM)
#define set_eiem(val)	mtctl(val, CR_EIEM)

#define mfsp(reg)	({		\
	unsigned long cr;		\