mem/src_loc.h
220ac6e2
 /* 
  * Copyright (C) 2009 iptelorg GmbH
  *
4c4e5766
  * This file is part of Kamailio, a free SIP server.
  *
220ac6e2
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  * copyright notice and this permission notice appear in all copies.
  *
  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
47f59303
 
 /**
  * \file
  * \brief Helper definitions for internal memory manager
  * 
  * Helper definitions for internal memory manager, defines for src location
  * (function name, module a.s.o.), used for recording a *malloc()/ *free()
  * caller. Expects MOD_NAME defined for modules (if it's not defined "core"
  * will be assumed).
  * 
  * Defines:
  * - _SRC_FUNCTION_  - current function name
  * - _SRC_FILENAME_  - current .c filename
  * - _SRC_LINE_      - current line
  * - _SRC_MODULE_    - module name, lib name or "<core>" (depends on MOD_NAME
  * being properly set)
  * - _SRC_LOC_       - module name + file name
  * \ingroup mem
  */
 
 
220ac6e2
 #ifndef __src_loc_h
 #define __src_loc_h
 
 
 /* C >= 99 has __func__, older gcc versions have __FUNCTION__ */
 #ifndef _SRC_FUNCTION_
 #	if __STDC_VERSION__ < 199901L
 #		if __GNUC__ >= 2
 #			define _SRC_FUNCTION_ __FUNCTION__
 #		else
 #			define _SRC_FUNCTION_ ""
 #		endif
 #	else
 #		define _SRC_FUNCTION_ __func__
 #	endif /* __STDC_VERSION_ < 199901L */
 #endif /* _FUNC_NAME_ */
 
 
 #ifndef _SRC_FILENAME_
 #	define _SRC_FILENAME_ __FILE__
 #endif /* _SRC_FILENAME_ */
 
 
 #ifndef _SRC_LINE_
 #	define _SRC_LINE_ __LINE__
 #endif /* _SRC_LINE_ */
 
 
 #ifndef _SRC_MODULE_
 #	ifdef MOD_NAME
 #		define _SRC_MODULE_ MOD_NAME
 #	else
a60f7438
 #		define _SRC_MODULE_ "core"
220ac6e2
 #	endif /* MOD_NAME */
 #endif /* _SRC_MODULE_ */
 
 
 #ifndef _SRC_LOC_
 #	define _SRC_LOC_ _SRC_MODULE_ ": " _SRC_FILENAME_
 #endif /*_SRC_LOC_ */
 
 
 #endif /*__src_loc_h*/
 
 /* vi: set ts=4 sw=4 tw=79:ai:cindent: */