From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0088.outbound.protection.outlook.com [104.47.40.88]) by dpdk.org (Postfix) with ESMTP id 6D9DF2BA2 for ; Tue, 17 Jan 2017 11:06:29 +0100 (CET) Received: from BN6PR03CA0009.namprd03.prod.outlook.com (10.168.230.147) by CY1PR0301MB1578.namprd03.prod.outlook.com (10.162.166.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Tue, 17 Jan 2017 10:06:24 +0000 Received: from BL2FFO11OLC003.protection.gbl (2a01:111:f400:7c09::115) by BN6PR03CA0009.outlook.office365.com (2603:10b6:404:23::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12 via Frontend Transport; Tue, 17 Jan 2017 10:06:24 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11OLC003.mail.protection.outlook.com (10.173.161.187) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.803.8 via Frontend Transport; Tue, 17 Jan 2017 10:06:24 +0000 Received: from tophie.ap.freescale.net ([10.232.14.39]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v0HA67Ti024558; Tue, 17 Jan 2017 03:06:21 -0700 From: Shreyansh Jain To: CC: , , Shreyansh Jain Date: Tue, 17 Jan 2017 15:39:30 +0530 Message-ID: <1484647774-28984-6-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1484647774-28984-1-git-send-email-shreyansh.jain@nxp.com> References: <1484581107-2025-1-git-send-email-shreyansh.jain@nxp.com> <1484647774-28984-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131291211841975942; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7916002)(39400400002)(39380400002)(39860400002)(39410400002)(39840400002)(39850400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(105606002)(50226002)(50986999)(189998001)(47776003)(50466002)(76176999)(36756003)(68736007)(104016004)(5890100001)(33646002)(5660300001)(54906002)(30001)(6666003)(106466001)(48376002)(38730400001)(626004)(77096006)(85426001)(97736004)(92566002)(81166006)(86362001)(110136003)(81156014)(305945005)(6916009)(5003940100001)(2351001)(8936002)(2906002)(8676002)(356003)(4326007)(8656002)(2950100002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB1578; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC003; 1:l2sEiAZheajXf36X7hwigg5UWTvtqxWbiii2KhOtVwM5iFwE9+vOMLxS6gpkJ+3dhkQuatlUh/hgzdX4N2FS936s7r0x7R2VvqNl109R5Vu8qJBHKVwE39e8g2oAzgbHqN3YZceHa9g/pNVF0SSIF+Ek5KhzHzkgFdfqa2PVDh55XkU/VROD5g+nIBU9jFFr4szkFv5Dwo27SHdrnBFXh+6+95qn9g/sJRMcDcnFUQhQ9Pd4t36Lxoa2yOYs6XgwiseMkAn9UrF+LBgnyWyQvriPB9CiLjwBDb3JJ2ghnqjVkwjoDE4hEr8tR6DGsWr2gb3MykNzX1ijA8nA/A+YBhVeK4SGF7DRg+vZQUKqGezhPTiSr/JApcn8O0ciAkYfMyxlxTAS81ylTwXcS9swbMdFMYZjgxfGpBiOq2dqY0W4lr3g0Cy/g4uUAg8IGAEv3qT04TlkCGaKh0RdWHrKVTfOS5TlLSzjxcmiwMvtHH5tDxRi4KyQ0PQro7I5V+a0zr0glNjXwRL8UWBjVI65qlcy/igCDCMp1RJJU0HiRWHCUqDF+JcH14uSeKfOuTTh42Q05w7OI/W2o9fv723yc1JBvglrBj9mDA0z4FJO0qIlwLW1SceMxBfHpKcoeDEPDcsgRU69aqvAZUEqITFB8hOB6kx4v1X59rkhqsJ4z/Qa66wTMT5A3FEFhex2UvU0JkP2nLPblfb/e8v5f+IdkQ== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: a70d92e3-1ce0-4a69-5527-08d43ec07e6d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0301MB1578; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1578; 3:6Onm7Nai2f+2hSvCKZRWzaFMG7MgvZxi4uSVdm7L5P4e4vopwfHFtO5w85jBzCJFcQL3CrGKXvZiZbgKAyokrMwulBumCQu/0/5fPezXwSvzkmdrVNLGGWNL1vfAYbQtA1FITjUjCyPAg6SBCHeFZB7FMUJDUSTc1Rxkzs1Va1SBmpGrvhq9GSOdMMfKZhSgO6kd0eEEJm7edxSJ5TKI8v6QqWJzYOyI4r0PdQAMNGDZsklX8Rybtq29Nnw7gVpdjpQ47Sp6HOI8rsC+goiXPrccSxtRnF7D/Uz1UMfjQEAlLQ6sLvR7LeEUFV0MFzYJOEcgPCrdpLGElIPyRwjH9GMhcx44kFhplJUNgJzNH0OrRSDYx7fhgI33RCP47ahN; 25:g1G1FlpDLMgvWMXbAj+ZNIE6RZf/V7gqys8fbY6CaAOuK4y94gqFCknLYLQwI7cvPUvpRMYvjtKhlGxVfo+zvEt0Z7N1MV84krwLFUSDoatmWEHzv/eiozR9ND9XDSfhB4iJql/svPZv5dcsVG5BsY1Xz034nHLF2oYokvH789Lt7UjEF8Ib6KpFXmpMwN6G/YkeW4BBSeCdy3Q+GNYjgykbVAC34K62gPtMANcjHHzrbdfqdzcIe2qqteS6uEHRpS7aX8IHFBHNDejpPTSV5a9gflKrOAqNVnwClCmQ2oH3txyrKJi8uKuZAD+QOwqfJMW0A8nNaHfFA2sMSm1qei7L+meJFXrKCBiumKAmLnYe6OYV4UUpb56HIy/vOuhoMk+4GOyLxv6CX/GMDyT4DAPH6EtuCfEbI8zOwx0j/tYBPCUDRF1q81UEjCCIHJZBI4kj3SuGf7uAhOfOSBxfPA== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1578; 31:2l8wyEJmErlbswq9H9jyPd/1UlIqbTEGRSl1Bu3dhpY2DyevUMfVs4fXipyBlGJSae2heMrCkkgIQuV3IwZ0h+dRf02rSrD7+4ODaLT0GOVvAf89BtiMeT1yuuhPOcjjTMWlZoNvQ5SBtNzpHM3citVXFTfJOXu8BEd3SFaYsYTSZeHfBw/77p3Nvk+49WWNUsl1hW5B8u+7DEJPigWrxH+acEbda47X27Y+K+c86xY4eDjb53DRCYhAnuL5NxPvQs6b9kC/3F+otbj26Ff2dH1KL6OlfD8QLPTC45C5m10= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13023025)(13017025)(13015025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123563025)(20161123565025); SRVR:CY1PR0301MB1578; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB1578; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1578; 4:UuJtfSgFkkPN7+m4uInybKKIGnNSzmijcrqXOR3GWJsxW6GmcYBavVUHaA6UCLTtIhSQPdtwfzceGJA+ILCQNqImBj5IiD6A5nNhLjzt2dNa/9kldZmQ8wG96j8CNZ+BR89MrDK0ceyWr7C3pAWqusdoZgIau2rLNjGo7cHS01Tw/CC56FKCmpnZs02OyjN13dMldohnzMaysFIb85obhEw9iw8Vw80dna0VxN85fNixXCWMynHb5jjk+NQj+QVqX3ApCKpNjTX0D0C5AMbh1l8vT8o7jfsGOcFgN+Q+x2Iy/gurQxngbGsbL+l1uC8JEx6WdBWEOUO4Fe579MRePV0YmsALdjzXdIzyYli/dZWmXRjNhzf8p3Hz1XFMqaEnRR78a77tG3AZIGDV9LVxpHxiTsQOQm5RlZb74b4JBqxJZLmu7mw2ySLZBo6dRaHWzMlgvKHXgL6gVNqB9O6JihtKvElH50WtiNYnM8DpYzoSf2O7zPrsZJJf51aSgzaVMSRnwJswKU5YJQulbbh57GtV7sVvLHe1fsJimH0veqfFdeB9Zh6JOwvYpckoCWGIhH1uBB4ruuQZHA49mWXk1xJIaEgNUrvhsykZuJ4jj1ztmFD7nN7MjjFGUEo7baEdJCm/X4YgRN8SbSMKjfzl1DwxoLdXeVMttvb2zz/v+o3Wv76REVrbX7ho5hX75uj4nQ9ga9mzKKlfgrspMfupSb2vFqmsx5H25MgCNteXpA79PDuu8iBaijggpkYyiSmU X-Forefront-PRVS: 01901B3451 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB1578; 23:FT1dVyY4e+fRwUDeW/9w+80Ozn8l0HRgx7qggXc?= =?us-ascii?Q?K5bO0KOqszht+BEQxh7bfQH1ufyhDYeMCFGrQSJSfUW58/bsIjt0ogmBap2L?= =?us-ascii?Q?LYlt+GeNX9OyPiCCSqbUp5ZiiLqfr2gOeyfoQWddCtdgec1v9QaJeSGEglop?= =?us-ascii?Q?yoYG2fGcAwmaP4T/rTX8wQC3JiYxG/7gK82yMekbnkKT6AETyPtoK01+lcNt?= =?us-ascii?Q?6tcZq6O12Y1B2qy7EQPmhna2p/XgdXKzv2Z4/JcIdrvhlPVfSQlONu0CEarn?= =?us-ascii?Q?/cV5TP8H9zv6W7K9n8shgVsEg7jWMFRKcssX6dFp16GWT9qvqLyDvJsG/0e7?= =?us-ascii?Q?LxumJ/2IMLuzS5oeh5QNEhWXE6D1ntIRO4ztifqNonYNXZi3cxAKZumjJWOa?= =?us-ascii?Q?Yp+gkiRyQ2+M053/CFt2/E3Gu12Hxu4RhomY24BY43gRBxcHItHzGetz+Tnb?= =?us-ascii?Q?P4rMOVFEiZhzH2WxXFuwm42rERt4VEHqEWdL3Nz6I28tu+Y+4erctxD4RX8N?= =?us-ascii?Q?sbxPC/jl9fGhZZtkkpqiyXgVMHDjKOMxhVQohh5GZs0RcEbdDAWlTUVhymNR?= =?us-ascii?Q?OS5hLXO9LfOkQmFU9fNLizJVQQkqZJDXyFa2QtoA4x+MbCBMYec4vuQGS7r6?= =?us-ascii?Q?j44qq82QWeAIzE5ysDQayrLLHf0Sh8tKm83uHRTJ5FwRWxU7ngZxa3F7i2c3?= =?us-ascii?Q?0ctwnsy34ytwe9wqOgS5btct3zliTMstqfJt8g+n65qNaxHBxZepLF879Iw/?= =?us-ascii?Q?uRJ44E9YR+a9hjH8J8sTwXsWrq6AdgsauLz9qbb9gYe5D5KqAp51mTNkunEI?= =?us-ascii?Q?MqXvOeVds3bKJ7AQuuOCe1zfmnfUU1S9FZhin9f+bpafpidRQiQM8H3UwxBQ?= =?us-ascii?Q?FYuhV0urSDuaLK+ciUryucv5ZSQYUj0oMmUhnCsbbSxui6jbx/DKfb7JcocH?= =?us-ascii?Q?MNYIgXDiW+PlDhq7sFKnjWDZCFlhyC/b+WVaaZ3bkGakpN8TDgVgihxE5GVK?= =?us-ascii?Q?AgIblTwSxz0TAvTTZfyTPZnMKoZvbywxu+DW+nQBGZIFMaTqJZ67Wzhjqbp7?= =?us-ascii?Q?AVdTzg2WHA6UVw/1MBQoWQEtpBqOr5jOK4pnrtcdGpT6Khs+h0tM+T2JC8Dy?= =?us-ascii?Q?r9kdIbM5oa3skENLGg5XbOvCkNXQk3gas5uqzdO9XaLdDEsvxgycJ7Ye49BC?= =?us-ascii?Q?HCB/MB6S8Jxd/2H7mT+vzPHnc9s1DO5tlVRfkb1WfWRLhD35OO4wT/l34cyA?= =?us-ascii?Q?z6eV7ijHG8aE691GwNcYm/wvxHWRDrRvajG24R7EctbPPE7wig1lRVIXQoD4?= =?us-ascii?Q?+opOfMOasMBpgGOg8DPzji/K6cOEZry5r5HyWUJCmoGlI?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1578; 6:63LB/M2pazl+qLatS+k9DPDWKn39bVgqvn4XC0AoKaPuzoRFa4oNttk3gIX66H47qeZjKze6UzyLqnwm39WvcmVQWlE6CbSE7LdN/iRyjwQN54Q6dRL8k0MA2gJUNG5kq7zdoUhAhQK2xaBofxxapBgjqpH+K0ADMKNJ22HHo5XbRQB8jf+0ZXdlpY7rrrSLtxQRoOIxe7Rfi0pwLIRIkeeUeoxYsYkZXm2wxk4NbV52CHKJIVtVl0yLJwqbH/M6lA2uEd7vWJ0P/vPwco8xU2sw4kALmIiwGCQleYd9ulevHmP3SYBuOkjQT+NrgoKZf37qsYd+b5ROGy9KfxzaT0/PbEYJW2NjGC9uEfUa4P74p4WHnJMV+O7Kf5TY0QPrOJvFJXqbed7xR2FYXJ4FpZJ9m4I+AASh9jBtsxJ5SNwTNqEf+Ibc/CoXu9TiQYQB; 5:Olz0qL0XFnVHcOCBWl87RdCy0qae9fILMn626bbdGzkLkDTd2t5NamkfvpWBYdLSTiJaNsnpMrZj8A97h6Kt0w+jfVBBLUk5V8uk+Bzwdu9TI5XSqQE1prmSNwK/bCxOwSqmsPacKbNcc4EMNMDCmpD7Bh+AmSDu+/Qu3Q1ZUYvgpS4fxwapzccAJ8dez2ah; 24:T4R3n/3jIt39i9KwDKrd57QXfwneiSdr0/2tnpMbbVq6hN7rxFT7J4SjJiANNoAz44L7XLMMorQBSUQct/v/NaEpLg3FTlLieDpKf++9qP4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1578; 7:2L2bqosKne/w+w+0HNrYBG2OCZxcOv3htgfL0IY+NdBdX8zBs68bNL7kPzX3xqdf30GAtxiSWTB4yb+G5a5/KkZnycraoO1GbvXxXjN1tPHukQMKEOSREWH38w2HwiRHTJEG1s4C5LJB77DqbQMHyKzBGqA2qrM7sKnrgik1viZcQf4veS+GnvUNHM2pgF5UYiAmmQRnp3b3mzNF1+avUqBYUHqrPvQSaWVbgJwQEb5Yh3xxgUq3nT/8E5iBNnb/ITlv2UHpbcyCX5oUU16nRJwKp0LUjiIQMP5pn4ief0Aq2xjjmdnunG2MuGGpRFuhpuN5QTHxzwbKaWMBAGC0ZRHZ4BPzXROTngTjCryywwqdGquY1LbtFTP0oq4wsWZqa3Ulfx02muSc3qxVmGctB7fDFZVORh046R4kp+Z0rquOBCQoyUKzXy6iMd/jv+dWHF2s99kBLawPR/iHIloOAg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2017 10:06:24.0103 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0301MB1578 Subject: [dpdk-dev] [PATCH v7 5/9] eal/bus: introduce support for bus probing X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 17 Jan 2017 10:06:30 -0000 Bus implementations can implement a probe handler to match the devices scanned against the drivers registered. This patch introduces the callback which would be implemented for PCI in subsequent patch. Signed-off-by: Shreyansh Jain --- lib/librte_eal/common/eal_common_bus.c | 1 + lib/librte_eal/common/include/rte_bus.h | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c index 35baff8..9c4b014 100644 --- a/lib/librte_eal/common/eal_common_bus.c +++ b/lib/librte_eal/common/eal_common_bus.c @@ -53,6 +53,7 @@ rte_bus_register(struct rte_bus *bus) RTE_VERIFY(bus->name && strlen(bus->name)); /* A bus should mandatorily have the scan implemented */ RTE_VERIFY(bus->scan); + RTE_VERIFY(bus->probe); TAILQ_INSERT_TAIL(&rte_bus_list, bus, next); RTE_LOG(INFO, EAL, "Registered [%s] bus.\n", bus->name); diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h index 152451c..eb5c677 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -77,12 +77,30 @@ extern struct rte_bus_list rte_bus_list; typedef int (*rte_bus_scan_t)(void); /** + * Implementation specific probe function which is responsible for linking + * devices on that bus with applicable drivers. + * + * This is called while iterating over each registered bus. Bus object is + * passed along assuming this is wrapped around (embedded) by Implementation + * specific bus object. + * + * @param bus + * Generic bus object which was registered with EAL + * + * @return + * 0 for successful probe + * !0 for any error while probing + */ +typedef int (*rte_bus_probe_t)(void); + +/** * A structure describing a generic bus. */ struct rte_bus { TAILQ_ENTRY(rte_bus) next; /**< Next bus object in linked list */ const char *name; /**< Name of the bus */ rte_bus_scan_t scan; /**< Scan for devices attached to bus */ + rte_bus_probe_t probe; /**< Probe devices on bus */ }; /** -- 2.7.4