kernel:enable trace on arm.
Change-Id: Iabe6dfd758e8f1cdb4a18e2f2ab8f8ca988f3c86
This commit is contained in:
parent
16440d9b8f
commit
eff37b8a8b
|
@ -26,6 +26,15 @@
|
|||
*/
|
||||
#define ARM_STACK_TOP_RESERVED (2 * sizeof(reg_t))
|
||||
|
||||
/* only selected bits are changeable by user e.g.[31:9] and skip the
|
||||
* mode bits. It is probably is a better idea to look at the current
|
||||
* status to determine if one is allowed to write these values. This
|
||||
* might allow debugging of privileged processes
|
||||
*/
|
||||
#define SET_USR_PSR(rp, npsr) \
|
||||
rp->p_reg.psr = ( rp->p_reg.psr & 0x1F) | ( npsr & ~0x1F)
|
||||
|
||||
|
||||
#define PG_ALLOCATEME ((phys_bytes)-1)
|
||||
|
||||
#endif /* _ARM_ACONST_H */
|
||||
|
|
|
@ -154,6 +154,13 @@ int do_trace(struct proc * caller, message * m_ptr)
|
|||
SETPSW(rp, tr_data);
|
||||
else
|
||||
*(reg_t *) ((char *) &rp->p_reg + i) = (reg_t) tr_data;
|
||||
#else
|
||||
if (i == (int) &((struct proc *) 0)->p_reg.psr) {
|
||||
/* only selected bits are changeable */
|
||||
SET_USR_PSR(rp, tr_data);
|
||||
} else {
|
||||
*(reg_t *) ((char *) &rp->p_reg + i) = (reg_t) tr_data;
|
||||
}
|
||||
#endif
|
||||
m_ptr->CTL_DATA = 0;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue