[BACK]Return to debug.h CVS log [TXT][DIR] Up to [local] / prex-old / sys / include

Annotation of prex-old/sys/include/debug.h, Revision 1.1.1.1

1.1       nbrk        1: /*-
                      2:  * Copyright (c) 2005-2006, Kohsuke Ohtani
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution and use in source and binary forms, with or without
                      6:  * modification, are permitted provided that the following conditions
                      7:  * are met:
                      8:  * 1. Redistributions of source code must retain the above copyright
                      9:  *    notice, this list of conditions and the following disclaimer.
                     10:  * 2. Redistributions in binary form must reproduce the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer in the
                     12:  *    documentation and/or other materials provided with the distribution.
                     13:  * 3. Neither the name of the author nor the names of any co-contributors
                     14:  *    may be used to endorse or promote products derived from this software
                     15:  *    without specific prior written permission.
                     16:  *
                     17:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
                     18:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     19:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     20:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
                     21:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     22:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     23:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     24:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     25:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     26:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     27:  * SUCH DAMAGE.
                     28:  */
                     29:
                     30: #ifndef _DEBUG_H
                     31: #define _DEBUG_H
                     32:
                     33: #define MSGBUFSZ       128     /* Size of one kernel message */
                     34:
                     35: /*
                     36:  * BREAKPOINT()
                     37:  *
                     38:  * Break into debugger.
                     39:  * This works only with a debug version, and only when debugger
                     40:  * is attached.
                     41:  */
                     42: #ifdef DEBUG
                     43: #define BREAKPOINT()   breakpoint()
                     44: #else
                     45: #define BREAKPOINT()   do {} while (0)
                     46: #endif
                     47:
                     48: /*
                     49:  * printk()
                     50:  *
                     51:  * Print out kernel message to the debug port.
                     52:  * The message is enabled only when DEBUG build.
                     53:  */
                     54: #ifdef DEBUG
                     55: extern void printk(const char *fmt, ...);
                     56: #else
                     57: #define printk(fmt...) do {} while (0)
                     58: #endif
                     59:
                     60: /*
                     61:  * panic()
                     62:  *
                     63:  * Reset CPU for fatal error.
                     64:  * If debugger is attached, break into it.
                     65:  */
                     66: #ifdef DEBUG
                     67: extern void panic(const char *fmt, ...);
                     68: #else
                     69: extern void machine_reset(void);
                     70: #define panic(fmt...)  machine_reset()
                     71: #endif
                     72:
                     73: /*
                     74:  * ASSERT(exp)
                     75:  *
                     76:  * If exp is false(zero), stop with source info.
                     77:  * This is enabled only when DEBUG build. An asserion check
                     78:  * should be used only for invalid kernel condition.
                     79:  * It can not be used to check the input argument from user
                     80:  * mode because kernel must not do panic for it. The kernel
                     81:  * should return an appropriate error code in such case.
                     82:  */
                     83: #ifdef DEBUG
                     84: extern void assert(const char *file, int line, const char *exp);
                     85: #define ASSERT(exp)    do { if (!(exp)) \
                     86:     assert(__FILE__, __LINE__, #exp); } while (0)
                     87: #else
                     88: #define ASSERT(exp)    do {} while (0)
                     89: #endif
                     90:
                     91: /*
                     92:  * Command for sys_debug()
                     93:  */
                     94: #define DCMD_DUMP      0
                     95: #define DCMD_LOGSIZE   1
                     96: #define DCMD_GETLOG    2
                     97:
                     98: /*
                     99:  * Items for debug_dump()
                    100:  */
                    101: #define DUMP_THREAD    1
                    102: #define DUMP_TASK      2
                    103: #define DUMP_OBJECT    3
                    104: #define DUMP_TIMER     4
                    105: #define DUMP_IRQ       5
                    106: #define DUMP_DEVICE    6
                    107: #define DUMP_VM                7
                    108: #define DUMP_MSGLOG    8
                    109: #define DUMP_TRACE     9
                    110:
                    111: #ifdef DEBUG
                    112: extern void     boot_dump(void);
                    113: extern int      log_get(char **, size_t *);
                    114: #endif
                    115: extern int      debug_dump(int);
                    116: extern void     debug_attach(void (*)(char *));
                    117:
                    118: #endif /* !_DEBUG_H */

CVSweb