[ofw][patch] improved prints

Tzachi Dar tzachid at mellanox.co.il
Wed Sep 10 09:09:49 PDT 2008


Applied in: 1586, 1587 to trunk and branch.

Thanks
Tzachi 

> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org 
> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Slava Strebkov
> Sent: Tuesday, September 09, 2008 5:32 PM
> To: ofw at lists.openfabrics.org
> Subject: [ofw][patch] improved prints
> 
>   
> Improved prints
> 
> Index: tools/part_man/user/part_man.c
> ===================================================================
> --- tools/part_man/user/part_man.c	(revision 1545)
> +++ tools/part_man/user/part_man.c	(working copy)
> @@ -35,7 +35,7 @@
>  
>  void show_help()
>  {
> -	printf("Usage : part_man.exe <show|add|rem> <port_guid> <pkey1,
> pkey2, ...>\n");
> +	printf("Usage : part_man.exe <show|add|rem> <port_guid> <pkey1
> pkey2 ...>\n");
>  }
>  
>  /********************************************************************
> @@ -50,7 +50,8 @@
>  	LONG   ret;
>  	int retval;
>  	DWORD  read_length = DEFAULT_BUFER_SIZE;
> -
> +	const char *sep_group = ";";
> +	const char *sep_guid_pkey = ":,";
>  	ret =
> RegOpenKeyEx(HKEY_LOCAL_MACHINE,IBBUS_SERV_KEY,0,KEY_SET_VALUE
>  | KEY_QUERY_VALUE ,reg_handle);
>  	if (ERROR_SUCCESS != ret)
>  	{
> @@ -75,7 +76,57 @@
>  		if(retval > 4)
>  		{
>  			if(show)
> -				printf("Existing Pkey(s):
> %s\n",partKey);
> +			{
> +				char *pkey_group, *pkey_group_next,
> *pkey_guid, tmp;
> +				int i,j,k;
> +				unsigned short *guid_vstat;
> +				pkey_group = partKey;
> +				while(pkey_group && (*pkey_group !=
> '\0'))
> +				{
> +					pkey_group_next =
> strstr(pkey_group,sep_group);
> +					if(pkey_group_next)
> +						*pkey_group_next = '\0';
> +					pkey_guid =
> strtok(pkey_group,sep_guid_pkey);
> +					i = 0;
> +					while(pkey_guid)
> +					{
> +						if(i == 0)
> +						{
> +							j = 1;
> +							for (k =
> strlen(pkey_guid) -1; k > 1; k--)
> +							{
> +								if (j%2)
> +								{
> +
> tmp = pkey_guid[k -1];
> +
> pkey_guid[k -1] = pkey_guid[k];
> +
> pkey_guid[k] = tmp;
> +								}
> +
> printf("%c",pkey_guid[k]);
> +								if ((j%4
> == 0) && (k > 2))
> +								{
> +
> printf(":");
> +
> j = 1;
> +								}
> +								else
> +
> j++;
> +							}
> +							printf("\t");
> +						}
> +						else
> +						{
> +
> printf("%s\t",pkey_guid);
> +						}
> +						pkey_guid =
> strtok(NULL,sep_guid_pkey);
> +						if((++i)%5 == 0)
> +
> printf("\n\t\t\t");
> +					}
> +					printf("\n\n");
> +					if(pkey_group_next)
> +						pkey_group =
> pkey_group_next + 1;
> +					else
> +						pkey_group = NULL;
> +				}
> +			}
>  		}
>  		else
>  			retval = 0;
> @@ -404,7 +455,6 @@
>  			if( 0 ==
> send_pdo_req(&pkeys,UAL_REQ_CREATE_PDO))
>  			{
>  				ret =
> RegOpenKeyEx(HKEY_LOCAL_MACHINE,IBBUS_SERV_KEY,0,KEY_SET_VALUE
>  | KEY_QUERY_VALUE ,&reg_handle);
> -
>  				ret =
> RegSetValueEx(reg_handle,"PartitionKey",0,REG_SZ,(BYTE*)p_reg_
> string,reg
> _length);
>  				RegCloseKey( reg_handle );
>  				if (ERROR_SUCCESS == ret)
> @@ -459,16 +509,21 @@
>  		int i;
>  		unsigned short *guid_vstat;
>  		guid_vstat = (unsigned
> short*)&input->u.guid_pkey.port_guid;
> -
> sscanf(cmd[2],"%x:%x:%x:%x",&guid_vstat[0],&guid_vstat[1],&gui
> d_vstat[2]
> ,&guid_vstat[3]);
> -		for( i = 0; i < 4; i++)
> -			guid_vstat[i] = (guid_vstat[i] << 8) |
> (guid_vstat[i] >> 8);
> +		if (4 ==
> sscanf(cmd[2],"%x:%x:%x:%x",&guid_vstat[0],&guid_vstat[1],&gui
> d_vstat[2]
> ,&guid_vstat[3]))
> +		{
> +			for( i = 0; i < 4; i++)
> +				guid_vstat[i] = (guid_vstat[i] << 8) |
> (guid_vstat[i] >> 8);
> +		}
> +		else
> +		{
> +			goto bad_inp;
> +		}
>  	}
>  	else
>  	{
> -		printf("port guid %s - illegal string format\n",cmd[2]);
> -		return 0;
> +		goto bad_inp;
>  	}
> -	
> +
>  	for( i = 3; i < num; i++)
>  	{
>  		if((strstr(cmd[i],"ffff")) || 
> (strstr(cmd[i],"FFFF"))) @@ -480,6 +535,9 @@
>  		input->u.guid_pkey.pkey_num++;
>  	}
>  	return 1;
> +bad_inp:
> +	printf("port guid %s - illegal port guid format, expected
> xxxx:xxxx:xxxx:xxxx\n",cmd[2]);
> +	return 0;	
>  }
>  
>  void partition_operation(char* cmd[],int num)
> 
> 



More information about the ofw mailing list