From patchwork Wed Jan 18 10:37:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 19703 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 3EACEFA35; Wed, 18 Jan 2017 11:35:38 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0085.outbound.protection.outlook.com [104.47.36.85]) by dpdk.org (Postfix) with ESMTP id CF200F979 for ; Wed, 18 Jan 2017 11:35:29 +0100 (CET) Received: from BLUPR0301CA0021.namprd03.prod.outlook.com (10.162.113.159) by MWHPR03MB2478.namprd03.prod.outlook.com (10.169.200.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Wed, 18 Jan 2017 10:35:27 +0000 Received: from BY2FFO11FD001.protection.gbl (2a01:111:f400:7c0c::134) by BLUPR0301CA0021.outlook.office365.com (2a01:111:e400:5259::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13 via Frontend Transport; Wed, 18 Jan 2017 10:35:26 +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 BY2FFO11FD001.mail.protection.outlook.com (10.1.14.123) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.803.8 via Frontend Transport; Wed, 18 Jan 2017 10:35:25 +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 v0IAYYhY003396; Wed, 18 Jan 2017 03:35:23 -0700 From: Shreyansh Jain To: CC: , , Shreyansh Jain Date: Wed, 18 Jan 2017 16:07:54 +0530 Message-ID: <1484735880-17178-7-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1484735880-17178-1-git-send-email-shreyansh.jain@nxp.com> References: <1484660264-6531-1-git-send-email-shreyansh.jain@nxp.com> <1484735880-17178-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131292093261715045; (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)(7916002)(336005)(39410400002)(39400400002)(39450400003)(39380400002)(39850400002)(39860400002)(39840400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(6916009)(2950100002)(5660300001)(6666003)(8936002)(305945005)(626004)(77096006)(38730400001)(86362001)(76176999)(105606002)(50226002)(68736007)(106466001)(53936002)(2351001)(2906002)(50986999)(92566002)(356003)(47776003)(5003940100001)(4326007)(104016004)(5890100001)(81156014)(36756003)(97736004)(81166006)(50466002)(54906002)(8656002)(110136003)(8676002)(189998001)(48376002)(33646002)(85426001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR03MB2478; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD001; 1:D+VGLwPv+EMdKNuk7rDHWzhwwWmqWmNrD3e7xT9T1/SUcYuz+6nQiwbpUcLiBjQ4WAYDrppyfYu/EEEGjr9HwtJzDSLor1QeSfLcanCV8Lco/HfZRAZphRH88YbF8vELpLm79WI/lqvoxJQeR+0z7jqSuN+8Ht1d+wXaXRonOStej4q/wADW6ZN1ArP6ApYt71nWbyxhQ6v1cXk9iuJ7mqyIMEn4o3cexeOxgRLSBtpn6GfeCNB2FXedGqEfRmET8JnqKNsiCa24E13S4HDGcKGON0xYxUKT3+b3Bj5MtST6IXREHgugE+csmmwp3EPFvBqV0jGXyN52T5lXXOJlOwlbi8CAXxNPIm/bAeQLyhkm+p+oQA+t92BStf3fsrpg5jq9XkWk0Aj3QQr5/oTHwTCFHWzDS4e3PIVzHQy3FqQdt4F4bVVWkAAON42zdWx2m4ynRmna6J5xV6El24U5rA7ISQwvh+6zYaYI7JU4rotjQa0K8ykqmOyS0XmZOmPzD50hzvNJJ1JLZgU2aKDKqSVOCJ43RQ5srTbDlv69QkuBDkVZ/UYpgHW2uyPczITS4ZJPlKgr1MYKsHSJurV3Ig0GRm9MoN+SavhC9h81t/0M/izQVwBEYF25hag9YaEzRIMvVzqJdULK/StdBuw+sMU/rp9Iw85QgsJje197K+ePfHdBmC4HIVwkX2Y8mOpoolooLTZtcJ0hnwBbd/1q+Q== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 3f27819c-1409-4325-8b7d-08d43f8db712 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:MWHPR03MB2478; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2478; 3:7vfcb5FBCMPTf+4XQChujtNJo7ZUnue2hDyQlX1ExGi0fmJTbocc0gDAoJ5bJ45x15nf+wcT6jNKzYPFE54eu6WpQ88iiPfbFID8HCUwtpoawseBlTSVK84HGLlnIV/i48cu+AUbcI7eihAkcNOEj3zoemvSVS0zUSoWisOVAAoZSPzj2/6SXg0ZsqJlrjidK2DIenlHhQZu3xZivzWmn/0X/Qq5Ei/XlejToVt0Yt7Hd7XK2l1NqUTsJzOK6K69TpV9WErIHLyS77pC/J0ynB/pnMjDbkDaimB8qE59Ct6hkhzNQKNCi1AvVi0TWSQcpGJQJNH0QqQRVIlXNszd0DCj428MemEJI+yi8SX5+hrww8BHfFEqEv+p8fkOKQx8; 25:Er+UcpdZgMXOKVPAc73DebckpHvBUxUpMwgu4wNW6EptFiRJLh3B4OfeVbngaMYgCU7rnaTcoE4kKwmoOAKDeZlP6FNF0zMlwwLX+jbULPThXARii+35uNDftUuD8RY9yAl5/C/1Cg2sYShtJyMUKaBnjsnw6IYvEOjssR8Z3KLxH4Bv3Swv442eEkRcTeX5Ww1I1xbSQa6e0LNBgvohY79Dr2us7rEq2yM3OxB3f3IsoYc2Yw0fnVKrOnlPTAHtRPmQfVvqmOPSRSUkpTw+L7AXtnG+RbtSuNOszcfcXn+uZADYk0p4a/rVPZpY6rbrQpvzG+KhCqCr3KTDUCHieX/ktW5f9jwdkPrG3Bgk1khC/NZykCzaxZh+33lNoN2TnqXIuA4UTdiBxLD6o6KI3VPbX5rygApV9bD4FOYnBdTotpLmZsL1JO/2wR5nS6JKRXA5xtSXzLyCw4bMlM4+7Q== X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2478; 31:srNKDLpelpowItU+WOalLz0kE0AifCrjO9pdTS4P5Fxp00nA7e6i9YkRmAcq58KQflLWZwh0vjrjce0xID5FXtNtqHgIRvaowVfelFMOFDwzefj9p09LLUb2/vDy6kdlaqOBoW/K+HnKZsAymM3mcQrQynC4En3uun/4nAiSitQsLAIV/mZg1L/meEUJHDSxe/QCaEDzq0Q4LRkVTt9u3Puz4DZsUctHjjahstBBrd6ifH/UGWXSD9UXcnHquryCIpbSVPZ89q17Vlk2x+inWX6ml2Mv4E+5VYgWgdoLu98= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13015025)(13024025)(13023025)(13018025)(13017025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123565025)(20161123563025)(20161123556025)(20161123561025)(20161123559025); SRVR:MWHPR03MB2478; BCL:0; PCL:0; RULEID:(400006); SRVR:MWHPR03MB2478; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2478; 4:zW1NbEL+wd3Bk9GldOy9jhYXF9pD6HmdMkrcASrOj7nZhAe28aGm9bje5inwAOrfHePmVnSGPpNfytyJoma2nGGiWLXWKsiqEY3pshnKqr9o46Xr1JP+xNq30FZ71BatL6L4BR89vPLG9KcqmpLjxrvtjXYXc7l5PPJlRHZ6FxoYHGr7lfRpLXD+Huks/KXKPK10F848PlQMnBYp1glXvQ4tO1AlJpr4kUNIBv6a5MoRL4HJcgWEzGSVYx9X1GtlbZubAHoRPM+Mc692pwE9lAav7ejasjE+sS5psJaU737AiZmrsSLHZmWK39TfILOR9/LsMBXZlSAHzQNRGmFyB7qdJrMsJAwsKkWByYzFDnysavjMkpgNgC3WW1eNjz3Um838jXq6DnxH0fx/zUdn2z1fWDwiSd8E0pwW5L5ncLuBU0PvISJoNW5qBTbLAihDCXQXRCNwJW20kQJgiuH0AaQkSRShalUtfSS0VruLuPB2BS5rCn9/0wF8NF442/S3pzuxeREqJrtoNH2iahfDWdtYuJr2kX47PWA6EXFzMX4s6szLAyieFRz1RZuj9nkrXXJFbbliY16jXcSyOcSMIIqzsFEZ1BSLswA1f/2QjT9ptFx94xsloP6M13rribSRJA9OTKhKpjp6E9mySJFcMNJBmCNtXOj1uDzPtv7SWdV0hYEMuHQ9ZLbYVWrUkARCDbjiiNfvrC4y3hhodKxI1v0jQ6jBw/yXCeB/t7jQBhVBuSNHliUaNhh+nWc1XyeVuAGDUWyijXoVjvzk1O/dkA== X-Forefront-PRVS: 01917B1794 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR03MB2478; 23:J6EOa4y3DUX9HVxzX53IbY9iisPfQtNhPGlH0MDJ0?= fSW/EH9eZEWykZ9TFrXAkvUEEu9HB+UC+KOCljk0IBrWlOCQsX5g5mHH//4ml1ApbHhjWVdJacJuTpDZ3SSSlY5jtWC82yjxUC97iMPArzPXgk6XVs57IYVRcjW5pqMqg53MCl6o1CzkcgGSzO7Rezc8zjNo7rqli1I8e/dVlZRfqDWQFfNV3ZtkksOuXr36LSPzm0hLpwxIKxjBNQI2MdLNNoBLEQMKuxAZt00450NnzmkKl3d/cNv/X4qp72X6a3XHbZyvu+zTz0vKIsgA6dkh1EvaVo8OOyHHiknH/KMvnolnAKqiFjQNu69k8iLCzii71E+BnR0Brg2qLeCfGhfwCP/pfU+hDyH8jow1Q0QfC5z6k908tJJWzNrhjuoPUXIvJQzi8bmeYyTq74XsEKotR0nvl45GBucZNh2Tb8ufLBGkcDztkoAkV9wgJbJlDvHFChVUCZ+UPvaYnogjlUpBQAkEdcGDaXeEY7CX4sRBb/dWkBpTuazGTjfenWhmUJGQeqHP89oKOkzOBNn6F2Y/NkIHZ5CW/ZA1sA+RACHpbyJflXpSMJWxA6AFO++MJTWqo8BVogNHxrgn7q9/P1wiJYR554OF9f5ovnvf3CkwoeRz8nGa1bhutAmMOabRW4sn3OXxkOiYuqLyRxcxe8wcHvlAdmKTDN7ECyjPMkKktNaC/vg65CKtuCCU7Ayvp7HuNox7KasCU4Q+dupxlO38O4k4qP8DkT1Ezk5FWNjlDeHMZG2trByP3HCkSPZcWzdJpFxIHqJ7FrmfnZ+EAhZPbs4jWWKqg+vfg805MsgmcVvOqNqD0Ao+b8uhHXkGc+6I2BTjEkbDr9DtXCcg3kCLv/jok3+QveleOwk2zODDpwevC1d9EKCqxxDcSfOcEAgrogv3CBKLfp3CLg6Jv9Kjsv5ZkGiUPeXAlR6LAJOCqEok5P4KjOKwZgPgb4QRsg3hXawofbUw+R21dvfnp8BVAD21xjUaDGa4xAyaS95qBbaJGD3aEDC/5kglbv8KEDwLh1gWvh2wN3+7wqeM1+Q9IY3HTnUkQUiUWdU0ndwexqEGzhGTdRAMbXFnQ8uvne0KCX624oHpTRlkFiKZ8fxpT4xDba1INhDsFJwOlOZCYHhTC194Y2CujlG2WBMmm20uoEVM1/F4z4nGvJoBY4/vvBOC4dCLdMfpECPlhLTYloN0PAuaI/Sjg0+/aXZ3EI6Q8KR+Ed+RzC/FiFyA6BvKE00k9AeNJQg5qToPcSsrhP1EJ272ocLVTwFz04wGUwIO+/KzaHE+zc/bQmF1VMe X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2478; 6:6wE7DB5WnR4HFD8kOoxn2tdVWQR5n6UXvcYX5eA7fWO0i7SjbC24l+4fqqVB7S3owRZmS4u81pvqqlYLRE6tJKm5n2BcawSQrxaxDNuA2TMsqHkmvoUmWAbhgTeTqn88JOvoCj9R1rDkIlGq3duyexeGiY57mAEtWnDF8InjcEWJc2JxlkexfYVd1GbFyzDybgDb+N+muUORorS6Wxt65zi2uwkLMcwqaxOuCiWzNk+gxL35M++90LPvYNmdQw0VjnUX9rq0R9tiygyrPQc8L9lKVYpnWXi+sQKaF8e+TCzv0VvyFuSkRxzo+u/NxhPdMS1IMU+KAkYEsPkxqQ/uLpxMFZBvYXB/znqriqYStBwAs9aGvGBTmmugpkbMzZmLYq30Dvup4tmDn1XWYa8d+49i9au5TVVRcsV057cGb+n1BsGhvhrn/t2XZGgKso3I; 5:8kK3H1scWip/CZb1wVrNwUwvYL8w6NCX9WpggLqhVA7eU+19d9b2ANlwNKBTaDX+GNJbF8VXBTq3uhNsHckyDifQLCbOzsZTC7lswjE70l+fS7zUx5fxKt8xb7ONwLZ6yOQL3xKHn/bAiq0ZfZ6lEKOeN7Z/AQpyl2XO3RGc5wzJOzjzSHzZTnWR7SsbMQLY; 24:ne7S8U1+r60VkgfTnx0gnfvOtL7NQuTA4/rVMtD2PEy7v7pjpA+e1pzo4DOHD0mt0jpAIpDXBUqAf+pkygHzlStAFC+5UQCEQU2e/Xveass= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2478; 7:NQbHveS34TaoDpt1WA52VVlE+dxE/sZGI3GhA5ZpJVbrAMoP96fZ+QEh19OwwHC+lpPzEtMzGAYg2GvvpE1JGPeC5Af+3ai3N/BX40siho+6wMqrMI/Ht1t8KfsIbgF77jq51OF8Q61/t7Hrvwgo84SI6ouL4Rq6iXJ4JezD9JDaCbqSCBexw+VTVI9rqkj5wJgCDNTLhJbLVlSKssDnQfEwJLB+Ha1dsuOdVyxzh8YwLwhHdi+zp51QjRbJbS9LKuFkQouhmoFeuCdQitaMAj2N7BGpj5CoF5CFeTkCXf0ebo/eQdtGuKFTUpbVB2ee4ZjsCpXn5ceVvry+f4HiJElLX01Wbg8rjSIFd6t0W1DwS5QfVJr0JJF0Hcxilz62JRVsXZZKUwaRvadkWIbq1xawz7obUW2j28QKEoSDrQcRYCW7Erk/RjAsy27Seh9iMhKyCBjBPBNpWXOZFcTW2g== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 10:35:25.8439 (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: MWHPR03MB2478 Subject: [dpdk-dev] [PATCH v9 06/12] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Reviewed-by: Ferruh Yigit --- lib/librte_eal/common/eal_common_bus.c | 1 + lib/librte_eal/common/include/rte_bus.h | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c index aaba10a..3f529e6 100644 --- a/lib/librte_eal/common/eal_common_bus.c +++ b/lib/librte_eal/common/eal_common_bus.c @@ -52,6 +52,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(DEBUG, 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 ba7d866..17583ad 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -73,12 +73,25 @@ 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. + * + * @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 */ }; /**