[openib-general] Re: [PATCH] Opensm - asserts before OSM_LOG_ENTER

Hal Rosenstock halr at voltaire.com
Wed Feb 1 06:15:09 PST 2006


Hi Michael,
,
On Wed, 2006-02-01 at 08:40, Michael S. Tsirkin wrote:
> Quoting r. Yael Kalka <yael at mellanox.co.il>:
> > Subject: [PATCH] Opensm - asserts before OSM_LOG_ENTER
> > 
> > 
> > Hi Hal,
> > 
> > When trying to compile the windows stack with some late updates, I've
> > encountered an issue with the addition/change of place of asserts to
> > before the OSM_LOG_ENTER. Since OSM_LOG_ENTER declares a variable,
> > then these asserts cause failure due to declaration in the middle of
> > the function.
> > These asserts are all on the reciever object or the manager object, so
> > I don't think they are really necessary.
> > 
> > The Following patch removes these asserts.
> > 
> > Thanks,
> > Yael
> > 
> > Signed-off-by:  Yael Kalka <yael at mellanox.co.il>
> 
> Macros that declare variables are evil. Macros that end with ';'
> are evil too.
> 
> ---
> 
> gcc has __func__, and Visual has __FUNCTION__, so ugly
> hackery around OSM_LOG_ENTER is not needed anymore.
> 
> Signed-off-by: Michael S. Tsirkin <mst at mellanox.co.il>
> 
> Index: openib/src/userspace/management/osm/include/opensm/osm_log.h
> ===================================================================
> --- openib.orig/src/userspace/management/osm/include/opensm/osm_log.h	2005-10-16 10:49:04.791297000 +0200
> +++ openib/src/userspace/management/osm/include/opensm/osm_log.h	2006-02-01 15:36:38.652180000 +0200
> @@ -71,17 +71,13 @@ BEGIN_C_DECLS
>  #define LOG_ENTRY_SIZE_MAX		4096
>  #define BUF_SIZE				LOG_ENTRY_SIZE_MAX
>  
> -#define OSM_LOG_DEFINE_FUNC( NAME ) \
> -	static const char osm_log_func_name[] = #NAME
> -
>  #define OSM_LOG_ENTER( OSM_LOG_PTR, NAME ) \
> -	OSM_LOG_DEFINE_FUNC( NAME ); \
>  	osm_log( OSM_LOG_PTR, OSM_LOG_FUNCS, \
> -		 "%s: [\n", osm_log_func_name );
> +		 "%s: [\n", __func__ )
>  
>  #define OSM_LOG_EXIT( OSM_LOG_PTR ) \
>  	osm_log( OSM_LOG_PTR, OSM_LOG_FUNCS, \
> -		 "%s: ]\n", osm_log_func_name );
> +		 "%s: ]\n", __func__ )
>  
>  /****h* OpenSM/Log
>  * NAME


This looks fine for Linux to me but since this file is shared by
Windows, doesn't it need a conditionalization for those builds ? 

Also, will __FUNCTION__ work in all the Windows cases ?

-- Hal




More information about the general mailing list