home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 5 / CD_Magazyn_EXEC_nr_5.iso / Programy / Internet / Samba / smbfs.lha / source / assert.h < prev    next >
C/C++ Source or Header  |  2001-01-07  |  4KB  |  109 lines

  1. /*
  2.  * $Id: assert.h 1.27 2001/01/07 09:04:16 olsen Exp olsen $
  3.  *
  4.  * :ts=8
  5.  *
  6.  * SMB file system wrapper for AmigaOS, using the AmiTCP V3 API
  7.  *
  8.  * Copyright (C) 2000-2001 by Olaf `Olsen' Barthel <olsen@sourcery.han.de>
  9.  *
  10.  * This program is free software; you can redistribute it and/or modify
  11.  * it under the terms of the GNU General Public License as published by
  12.  * the Free Software Foundation; either version 2 of the License, or
  13.  * (at your option) any later version.
  14.  *
  15.  * This program is distributed in the hope that it will be useful,
  16.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  * GNU General Public License for more details.
  19.  *
  20.  * You should have received a copy of the GNU General Public License
  21.  * along with this program; if not, write to the Free Software
  22.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  23.  */
  24.  
  25. /****************************************************************************/
  26.  
  27. /* IMPORTANT: If DEBUG is redefined, it must happen only here. This
  28.  *            will cause all modules to depend upon it to be rebuilt
  29.  *            by the smakefile (that is, provided the smakefile has
  30.  *            all the necessary dependency lines in place).
  31.  */
  32.  
  33. /*#define DEBUG*/
  34.  
  35. /****************************************************************************/
  36.  
  37. #ifdef ASSERT
  38. #undef ASSERT
  39. #endif    /* ASSERT */
  40.  
  41. #define PUSH_ASSERTS()    PUSHDEBUGLEVEL(0)
  42. #define PUSH_REPORTS()    PUSHDEBUGLEVEL(1)
  43. #define PUSH_CALLS()    PUSHDEBUGLEVEL(2)
  44. #define PUSH_ALL()    PUSHDEBUGLEVEL(2)
  45. #define POP()        POPDEBUGLEVEL()
  46.  
  47. #if defined(DEBUG) && defined(__SASC)
  48.  void _ASSERT(int x,const char *xs,const char *file,int line,const char *function);
  49.  void _SHOWVALUE(unsigned long value,int size,const char *name,const char *file,int line);
  50.  void _SHOWSTRING(const char *string,const char *name,const char *file,int line);
  51.  void _SHOWMSG(const char *msg,const char *file,int line);
  52.  void _ENTER(const char *file,int line,const char *function);
  53.  void _LEAVE(const char *file,int line,const char *function);
  54.  void _RETURN(const char *file,int line,const char *function,unsigned long result);
  55.  void _DPRINTF_HEADER(const char *file,int line);
  56.  void _DPRINTF(const char *format,...);
  57.  void _DLOG(const char *format,...);
  58.  int  _SETDEBUGLEVEL(int level);
  59.  void _PUSHDEBUGLEVEL(int level);
  60.  void _POPDEBUGLEVEL(void);
  61.  int  _GETDEBUGLEVEL(void);
  62.  void _SETPROGRAMNAME(char *name);
  63.  
  64.  #define ASSERT(x)        _ASSERT((int)(x),#x,__FILE__,__LINE__,__FUNC__)
  65.  #define ENTER()        _ENTER(__FILE__,__LINE__,__FUNC__)
  66.  #define LEAVE()        _LEAVE(__FILE__,__LINE__,__FUNC__)
  67.  #define RETURN(r)        _RETURN(__FILE__,__LINE__,__FUNC__,(unsigned long)r)
  68.  #define SHOWVALUE(v)        _SHOWVALUE((unsigned long)(v),sizeof(v),#v,__FILE__,__LINE__)
  69.  #define SHOWSTRING(s)        _SHOWSTRING((const char *)(s),#s,__FILE__,__LINE__)
  70.  #define SHOWMSG(s)        _SHOWMSG((const char *)(s),__FILE__,__LINE__)
  71.  #define D(s)            do { _DPRINTF_HEADER(__FILE__,__LINE__); _DPRINTF s; } while(0)
  72.  #define PRINTHEADER()        _DPRINTF_HEADER(__FILE__,__LINE__)
  73.  #define PRINTF(s)        _DLOG s
  74.  #define LOG(s)            do { _DPRINTF_HEADER(__FILE__,__LINE__); _DLOG("<%s()>:",__FUNC__); _DLOG s; } while(0)
  75.  #define SETDEBUGLEVEL(l)    _SETDEBUGLEVEL(l)
  76.  #define PUSHDEBUGLEVEL(l)    _PUSHDEBUGLEVEL(l)
  77.  #define POPDEBUGLEVEL()    _POPDEBUGLEVEL()
  78.  #define SETPROGRAMNAME(n)    _SETPROGRAMNAME(n)
  79.  #define GETDEBUGLEVEL()    _GETDEBUGLEVEL()
  80.  
  81.  #undef DEBUG
  82.  #define DEBUG 1
  83. #else
  84.  #define ASSERT(x)        ((void)0)
  85.  #define ENTER()        ((void)0)
  86.  #define LEAVE()        ((void)0)
  87.  #define RETURN(r)        ((void)0)
  88.  #define SHOWVALUE(v)        ((void)0)
  89.  #define SHOWSTRING(s)        ((void)0)
  90.  #define SHOWMSG(s)        ((void)0)
  91.  #define D(s)            ((void)0)
  92.  #define PRINTHEADER()        ((void)0)
  93.  #define PRINTF(s)        ((void)0)
  94.  #define LOG(s)            ((void)0)
  95.  #define SETDEBUGLEVEL(l)    ((void)0)
  96.  #define PUSHDEBUGLEVEL(l)    ((void)0)
  97.  #define POPDEBUGLEVEL()    ((void)0)
  98.  #define SETPROGRAMNAME(n)    ((void)0)
  99.  #define GETDEBUGLEVEL()    (0)
  100.  
  101.  #ifdef DEBUG
  102.  #undef DEBUG
  103.  #endif /* DEBUG */
  104.  
  105.  #define DEBUG 0
  106. #endif /* DEBUG */
  107.  
  108. /****************************************************************************/
  109.