37 lines
962 B
C
37 lines
962 B
C
#ifndef __SERVERASSERT_H
|
|
#define __SERVERASSERT_H
|
|
|
|
/* This file contains functions and macros used for debugging within
|
|
* system servers. Also see <assert.h> which is used in regular programs.
|
|
*/
|
|
|
|
#ifndef NDEBUG /* 8086 must do without training wheels. */
|
|
#define NDEBUG (_WORD_SIZE == 2)
|
|
#endif
|
|
|
|
#if !NDEBUG
|
|
|
|
#define INIT_SERVER_ASSERT static char *server_assert_file= __FILE__;
|
|
|
|
void server_assert_failed(char *file, int line, char *what);
|
|
void server_compare_failed(char *file, int line, int lhs, char *what, int rhs);
|
|
|
|
#define server_assert(x) (!(x) ? server_assert_failed( \
|
|
server_assert_file, __LINE__, #x) : (void) 0)
|
|
#define server_compare(a,t,b) (!((a) t (b)) ? server_compare_failed( \
|
|
server_assert_file, __LINE__, (a), #a " " #t " " #b, (b)) : (void) 0)
|
|
|
|
|
|
#else /* NDEBUG */
|
|
|
|
#define INIT_SERVER_ASSERT /* nothing */
|
|
|
|
#define server_assert(x) (void) 0
|
|
#define server_compare(a,t,b) (void) 0
|
|
|
|
#endif /* NDEBUG */
|
|
|
|
|
|
#endif /* __SERVERASSERT_H */
|
|
|