public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Fault Address from sigcontext for the various archs
@ 2001-03-05 18:41 Camm Maguire
  0 siblings, 0 replies; only message in thread
From: Camm Maguire @ 2001-03-05 18:41 UTC (permalink / raw)
  To: linux-kernel


Greetings!  I'm trying to assist in porting gcl to the various Linux
archs, and the code as is needs the fault address from struct
sigcontext.  i386 and m68k work, with solutions shown below.  What
about the other archs?  Where can I find the fault address around this
struct?

Thanks!

=============================================================================
i386
=============================================================================
#define GET_FAULT_ADDR(sig,code,sv,a) \
    ((void *)(((struct sigcontext_struct *)(&code))->cr2))     
=============================================================================
m68k
=============================================================================
#define GET_FAULT_ADDR(sig,code,sv,a) \
    ({	\
		struct sigcontext *scp = (struct sigcontext *)(sv);\
		int format = (scp->sc_formatvec >> 12) & 0xf;\
		unsigned long *framedata = (unsigned long *)(scp + 1);\
		unsigned long ea;\
		if (format == 0xa || format == 0xb)\
			/* 68020/030 */\
			ea = framedata[2];\
		else if (format == 7)\
			/* 68040 */\
			ea = framedata[3];\
		else if (format == 4) {\
			/* 68060 */\
			ea = framedata[0];\
			if (framedata[1] & 0x08000000)\
				/* correct addr on misaligned access */\
				ea = (ea+4095)&(~4095);\
		}\
		ea;\
	})
=============================================================================

-- 
Camm Maguire			     			camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-03-05 18:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-03-05 18:41 Fault Address from sigcontext for the various archs Camm Maguire

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox