kernel:enable trace on arm.

Change-Id: Iabe6dfd758e8f1cdb4a18e2f2ab8f8ca988f3c86
This commit is contained in:
Kees Jongenburger 2013-02-16 22:32:19 +01:00
parent 16440d9b8f
commit eff37b8a8b
2 changed files with 16 additions and 0 deletions

View file

@ -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 */

View file

@ -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;