diff --git a/src/arch/arm/exception.c b/src/arch/arm/exception.c index 2e6b3e5..9804749 100644 --- a/src/arch/arm/exception.c +++ b/src/arch/arm/exception.c @@ -18,7 +18,7 @@ #include INC_SUBARCH(mm.h) /* Abort debugging conditions */ -// #define DEBUG_ABORTS + #define DEBUG_ABORTS #if defined (DEBUG_ABORTS) #define dbg_abort(...) dprintk(__VA_ARGS__) #else diff --git a/tasks/libl4/src/arm/exregs.c b/tasks/libl4/src/arm/exregs.c index 1c7f138..72928e5 100644 --- a/tasks/libl4/src/arm/exregs.c +++ b/tasks/libl4/src/arm/exregs.c @@ -21,8 +21,7 @@ void exregs_set_mr(struct exregs_data *s, int offset, unsigned long val) mr[offset] = val; /* Set valid bit for mr register */ - s->valid_vect |= offsetof(exregs_context_t, r3) + - (offset * sizeof(int)); + s->valid_vect |= FIELD_TO_BIT(exregs_context_t, r3) << offset; } void exregs_set_pager(struct exregs_data *s, l4id_t pagerid) @@ -34,12 +33,12 @@ void exregs_set_pager(struct exregs_data *s, l4id_t pagerid) void exregs_set_stack(struct exregs_data *s, unsigned long sp) { s->context.sp = sp; - s->valid_vect |= 1 << (offsetof(exregs_context_t, sp) >> 2); + s->valid_vect |= FIELD_TO_BIT(exregs_context_t, sp); } void exregs_set_pc(struct exregs_data *s, unsigned long pc) { s->context.pc = pc; - s->valid_vect |= 1 << (offsetof(exregs_context_t, pc) >> 2); + s->valid_vect |= FIELD_TO_BIT(exregs_context_t, pc); }