really revert endpoint_t -> int

debugging info on panic: decode segment selectors and descriptors, now moved
to arch-specific part, prototypes added; sanity checking in debug.h made
optional with vmassert().
This commit is contained in:
Ben Gras
2009-10-05 15:47:23 +00:00
parent 30804b9ed7
commit 24e1e83028
8 changed files with 35 additions and 39 deletions

View File

@@ -25,7 +25,7 @@
#define DEBUG_TIME_LOCKS 1
/* Runtime sanity checking. */
#define DEBUG_VMASSERT 0
#define DEBUG_VMASSERT 1
#define DEBUG_SCHED_CHECK 0
#define DEBUG_STACK_CHECK 0
#define DEBUG_TRACE 0
@@ -44,38 +44,23 @@
#define ENTERED 0xBA5E1514
#define NOTENTERED 0x1415BEE1
#define NOREC_ENTER(varname) \
static int varname = NOTENTERED; \
int mustunlock = 0; \
if(!intr_disabled()) { lock; mustunlock = 1; } \
if(varname != ENTERED && varname != NOTENTERED) { \
printf("magictest: 0x%lx local: 0x%lx\n", magictest, varname);\
minix_panic(#varname " bogus value on enter", varname); \
} \
if(magictest != MAGICTEST) { \
printf("magictest: 0x%lx local: 0x%lx\n", magictest, varname);\
minix_panic(#varname " magictest failed", __LINE__); \
} \
if(varname == ENTERED) { \
minix_panic(#varname " recursive enter", __LINE__); \
} \
#define NOREC_ENTER(varname) \
static int varname = NOTENTERED; \
int mustunlock = 0; \
if(!intr_disabled()) { lock; mustunlock = 1; } \
vmassert(varname == ENTERED || varname == NOTENTERED); \
vmassert(magictest == MAGICTEST); \
vmassert(varname != ENTERED); \
varname = ENTERED;
#define NOREC_RETURN(varname, v) do { \
if(!intr_disabled()) \
minix_panic(#varname " interrupts on", __LINE__); \
if(magictest != MAGICTEST) { \
printf("magictest: 0x%lx local: 0x%lx\n", magictest, varname);\
minix_panic(#varname " magictest failed", __LINE__); \
} \
if(varname != ENTERED && varname != NOTENTERED) { \
printf("magictest: 0x%lx local: 0x%lx\n", magictest, varname);\
minix_panic(#varname " bogus value on return", varname); \
} \
varname = NOTENTERED; \
if(mustunlock) { unlock; } \
return v; \
} while(0)
#define NOREC_RETURN(varname, v) do { \
vmassert(intr_disabled()); \
vmassert(magictest == MAGICTEST); \
vmassert(varname == ENTERED || varname == NOTENTERED); \
varname = NOTENTERED; \
if(mustunlock) { unlock; } \
return v; \
} while(0)
#if DEBUG_VMASSERT
#define vmassert(t) { \