Also, if someone could describe what trap types 0x30 and 0x31
signify (sys/trap.h being particulary uninformative), I'd greatly
appreciate it.
--
Steve Dyer
dy...@ursa-major.spdcc.com
The main issues in porting drivers from release to release (and
especially across architectures) are often:
1. MP tolerance, especially problems with lock contention
(deadlocks-R-us :-)
2. Non-DDI compliant code. It may be necessary for device drivers
to stray from the DDI to get the job done, either because
of a perceived or actual deficiency in the DDI.
This may be a problem if things change behind the scenes of the
DDI and your code "assumes" things are the same...just check
for possible gotchas in these areas.
3. Architecture-specific assumptions. For example, going from 32 to
64 bit architectures.
Yeah, this is real general but it all depends on the code. It's
hard to be specific without a look at the code.
> Also, if someone could describe what trap types 0x30 and 0x31
> signify (sys/trap.h being particulary uninformative), I'd greatly
> appreciate it.
Are they hardware or software (user) traps? For software traps, add
0x80 (0x100 for ultra) to the value to get the "real" trap number.
Also, what architecture are we talking about here? Tell you what,
here's a matrix to summarise the situation:
h/w 0x30 h/w 0x31 s/w 0x30 s/w 0x31
sun4c bad trap bad trap trace trap 0 trace trap 1
sun4m bad trap bad trap trace trap 0 trace trap 1
sun4u data access data access trace trap 0 trace trap 1
exception MMU miss
Finally, don't look in sys/trap.h for anything except s/w traps.
Look in /usr/include/v7/sys/machtrap.h (or if you are on an ultra
look in /usr/include/v9/sys/machtrap.h).
Be cool,
Jim.
-=-
Email : Jim....@UK.Sun.COM | DNRC: The Day Cometh
SunSoft Technical Support (Europe) | "adb is your friend"