From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <anatoly.burakov@intel.com>
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by dpdk.org (Postfix) with ESMTP id 01C761B76F
 for <dev@dpdk.org>; Fri, 13 Apr 2018 11:11:54 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga008.jf.intel.com ([10.7.209.65])
 by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 13 Apr 2018 02:11:52 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.48,444,1517904000"; d="scan'208";a="33380493"
Received: from aburakov-mobl.ger.corp.intel.com (HELO [10.237.220.128])
 ([10.237.220.128])
 by orsmga008.jf.intel.com with ESMTP; 13 Apr 2018 02:11:51 -0700
To: Thomas Monjalon <thomas@monjalon.net>
Cc: dev@dpdk.org, Shahaf Shuler <shahafs@mellanox.com>
References: <20180412133422.104155-1-shahafs@mellanox.com>
 <d050d739-50fe-f5e5-eef2-e9781fac82fe@intel.com> <7325634.395TUUszRC@xps>
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
Message-ID: <dd2307a5-9990-2453-1f5e-71680f472046@intel.com>
Date: Fri, 13 Apr 2018 10:11:49 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
 Thunderbird/52.7.0
MIME-Version: 1.0
In-Reply-To: <7325634.395TUUszRC@xps>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH] eal: fix compilation without VFIO
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 13 Apr 2018 09:11:56 -0000

On 13-Apr-18 12:39 AM, Thomas Monjalon wrote:
> 12/04/2018 16:13, Burakov, Anatoly:
>> On 12-Apr-18 2:34 PM, Shahaf Shuler wrote:
>>> a compilation error occurred when compiling with CONFIG_RTE_EAL_VFIO=n
>>>
>>> == Build lib/librte_eal/linuxapp/eal
>>>     CC eal_vfio.o
>>> /download/dpdk/lib/librte_eal/linuxapp/eal/eal_vfio.c:1535:1: error: no
>>> previous prototype for 'rte_vfio_dma_map' [-Werror=missing-prototypes]
>>>    rte_vfio_dma_map(uint64_t __rte_unused vaddr, __rte_unused uint64_t
>>> iova,
>>>    ^
>>> /download/dpdk/lib/librte_eal/linuxapp/eal/eal_vfio.c:1542:1: error: no
>>> previous prototype for 'rte_vfio_dma_unmap' [-Werror=missing-prototypes]
>>>    rte_vfio_dma_unmap(uint64_t __rte_unused vaddr, uint64_t __rte_unused
>>> iova,
>>>    ^
>>>
>>> As there is no use for those dummy functions without VFIO removing them
>>> completely.
>>
>> These functions are part of public API, like rest of functions in this
>> header. They're in the map file. Should we perhaps go the BSD way and
>> provide EAL with dummy prototypes as well? See bsdapp/eal/eal.c:763 onwards.
> 
> Why using dummy prototypes?
> Because the prototypes in rte_vfio.h are under #ifdef VFIO_PRESENT ?
> Is it possible to always define the prototypes in rte_vfio.h ?
> 

Well, technically, yes, we could. There is one function that uses a 
VFIO-specific struct definition:

int rte_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
		int *vfio_dev_fd, struct vfio_device_info *device_info);

I'm sure we can work around that.

-- 
Thanks,
Anatoly