From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 17D2A58F3 for ; Mon, 27 Jun 2016 12:46:11 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP; 27 Jun 2016 03:46:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,536,1459839600"; d="scan'208";a="835860973" Received: from rhorton-mobl.ger.corp.intel.com (HELO [163.33.228.169]) ([163.33.228.169]) by orsmga003.jf.intel.com with ESMTP; 27 Jun 2016 03:46:08 -0700 To: zr@semihalf.com, thomas.monjalon@6wind.com, wenzhuo.lu@intel.com, helin.zhang@intel.com, konstantin.ananyev@intel.com, jingjing.wu@intel.com References: <1466688410-13826-1-git-send-email-zr@semihalf.com> Cc: dev@dpdk.org From: Remy Horton Organization: Intel Shannon Limited Message-ID: Date: Mon, 27 Jun 2016 11:46:08 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <1466688410-13826-1-git-send-email-zr@semihalf.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v4 1/2] ethdev: remove get_reg_length callback X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Jun 2016 10:46:12 -0000 Morning, On 23/06/2016 14:26, zr@semihalf.com wrote: > From: Zyta Szpak > > Version 4 of fixing the assumption of that device registers > are always 32 bits long. rte_eth_dev_get_reg_length and > rte_eth_dev_get_reg_info callbacks did not provide register size > to the app in any way. It is needed to allocate proper number > of bytes before retrieving registers content with > rte_eth_dev_get_reg. This commit remove rte_eth_dev_get_reg_length > callback and adds width parameter to reg_info struct which makes > it possible to call rte_eth_dev_get_reg_info to get attributes > first. The drivers using this callback fill width and length > when call to function made with data=NULL. I think this would read better as a commit message: Removes hard-coded assumption that device registers are always 32 bits wide. The rte_eth_dev_get_reg_length and rte_eth_dev_get_reg_info callbacks did not provide register size to the app in any way, which is needed to allocate correct number of bytes before retrieving registers using rte_eth_dev_get_reg. This commit changes rte_eth_dev_get_reg_info so that it can be used to retrieve both the number of registers and their width, and removes the now-redundant rte_eth_dev_get_reg_length. > -/** > - * Retrieve device registers and register attributes > + * Retrieve device registers and register attributes (nb of regs and reg size) > * > * @param port_id > * The port identifier of the Ethernet device. Need detail regarding how *info->data affects function behaviour. Something along the lines of: /** * Retrieve device registers and register attributes (number of * registers and register size) * * @param port_id * The port identifier of the Ethernet device. * @param info * Pointer to rte_dev_reg_info structure to fill in. If info->data is * NULL the function fills in the width and length fields. If non-NULL * the registers are put into the buffer pointed at by the data field. Program code itself looks good to me. ..Remy