1
0
mirror of git://projects.qi-hardware.com/iris.git synced 2024-07-01 01:29:31 +03:00

debug stuff

This commit is contained in:
Bas Wijnen 2009-09-01 19:00:46 +02:00
parent 418f6c6594
commit 4c73b034f8
5 changed files with 23 additions and 17 deletions

View File

@ -55,12 +55,20 @@ static void setup ():
if state == 2:
break
Caps caps = __my_memory.create_caps (2)
caps.use (slot)
Cap kc = __my_receiver.create_capability (KBD, Cap (slot, 1))
Cap kc = __my_receiver.create_capability (KBD, Cap (slot, 0))
kdebug ("init0: ")
caps.print (0)
kbd.set_cb (kc)
Cap tc = __my_receiver.create_capability (TP, Cap (slot, 0))
kdebug ("init1: ")
caps.print (0)
Cap tc = __my_receiver.create_capability (TP, Cap (slot, 1))
kdebug ("init2: ")
caps.print (1)
tp.set_cb (tc)
kdebug ("init3: ")
caps.print (1)
pwm.call (1)
free_slot (slot)
char const *decode_kbd = "0123456789abcdefghijklmnopqrstuvwxyz!@#$%^&*() T\n[],.-=/\\;|`'UDLREIKBPFZMS{}CA\":"

View File

@ -369,6 +369,7 @@ static void thread_invoke (unsigned cmd, unsigned target, Num cap_protected, kCa
break
case Thread::USE_SLOT:
if c->data[1].l >= thread->slots || c->caps->size < 2:
dbg_send (5, 3)
dpanic (c->data[1].l, "no argument given for USE_SLOT")
reply_num (~0)
return
@ -608,11 +609,6 @@ static void page_invoke (unsigned cmd, unsigned target, Num cap_protected, kCapa
return
reply_num (0)
static void print_capref (kCapRef cap):
dbg_log_num ((unsigned)cap.caps)
dbg_log_char (':')
dbg_log_num (cap.index)
static void print_cap (kCapRef cap, kCapRef self):
if cap.deref () == self.deref ():
dbg_log_char ('{')
@ -620,7 +616,9 @@ static void print_cap (kCapRef cap, kCapRef self):
dbg_log_char ('[')
dbg_log_num ((unsigned)cap.caps)
dbg_log_char (':')
dbg_log_num (cap.index)
dbg_log_num (cap.index, 1)
if !cap.valid ():
dbg_log_char ('!')
for kCapRef c = cap->children; c.valid (); c = c->sibling_next:
print_cap (c, self)
if cap.deref () == self.deref ():

View File

@ -525,10 +525,10 @@ void Receiver::sleep (unsigned value, OMessage *ret, unsigned slot):
#define __stringify(x) __stringify2 (x)
#define kdebug_line() do { kdebug (__stringify (__LINE__)); kdebug_char ('\n'); } while (0)
static void kdebug_num (unsigned n):
static void kdebug_num (unsigned n, unsigned digits = 8):
unsigned i
const char *encode = "0123456789abcdef"
for i = 0; i < 8; ++i:
kdebug_char (encode[(n >> (4 * (7 - i))) & 0xf])
for i = 0; i < digits; ++i:
kdebug_char (encode[(n >> (4 * ((digits - 1) - i))) & 0xf])
#endif

View File

@ -207,7 +207,7 @@ extern "C":
EXTERN kCapRef dbg_cap
void dbg_log_char (unsigned ch)
void dbg_log (char const *str)
void dbg_log_num (unsigned num)
void dbg_log_num (unsigned num, unsigned digits = 8)
void dbg_send (unsigned num, unsigned bits)
void check (unsigned num, char const *msg)
#define dpanic(n, msg) panic (n, msg)

View File

@ -32,13 +32,13 @@ void dbg_log (char const *str):
while *str:
dbg_log_char (*str++)
void dbg_log_num (unsigned num):
void dbg_log_num (unsigned num, unsigned digits):
char const *encode = "0123456789abcdef"
for unsigned i = 0; i < 8; ++i:
dbg_log_char (encode[(num >> (4 * (7 - i))) & 0xf])
for unsigned i = 0; i < digits; ++i:
dbg_log_char (encode[(num >> (4 * ((digits - 1) - i))) & 0xf])
return
#if 1 || defined (NDEBUG)
#if 0 || defined (NDEBUG)
void panic_impl (unsigned n, unsigned line, char const *name, char const *message):
// Stop all threads.
while first_scheduled: