From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0048.outbound.protection.outlook.com [104.47.37.48]) by dpdk.org (Postfix) with ESMTP id C917937AC for ; Tue, 17 Jan 2017 14:35:06 +0100 (CET) Received: from CY1PR03CA0010.namprd03.prod.outlook.com (10.174.128.20) by CY4PR03MB2469.namprd03.prod.outlook.com (10.168.163.147) 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 13:35:05 +0000 Received: from BN1AFFO11FD006.protection.gbl (2a01:111:f400:7c10::153) by CY1PR03CA0010.outlook.office365.com (2603:10b6:600::20) 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; Tue, 17 Jan 2017 13:35:05 +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 BN1AFFO11FD006.mail.protection.outlook.com (10.58.52.66) 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 13:35:04 +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 v0HDYI2j005071; Tue, 17 Jan 2017 06:35:01 -0700 From: Shreyansh Jain To: CC: , , Shreyansh Jain Date: Tue, 17 Jan 2017 19:07:40 +0530 Message-ID: <1484660264-6531-6-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1484660264-6531-1-git-send-email-shreyansh.jain@nxp.com> References: <1484647774-28984-1-git-send-email-shreyansh.jain@nxp.com> <1484660264-6531-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131291337047170502; (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)(39850400002)(39400400002)(39860400002)(39380400002)(39840400002)(39450400003)(39410400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(68736007)(626004)(8936002)(5660300001)(81156014)(97736004)(8676002)(2950100002)(104016004)(76176999)(2351001)(36756003)(50986999)(105606002)(5003940100001)(50226002)(50466002)(48376002)(6916009)(30001)(33646002)(81166006)(6666003)(85426001)(110136003)(92566002)(106466001)(356003)(4326007)(2906002)(189998001)(77096006)(305945005)(47776003)(5890100001)(8656002)(86362001)(54906002)(38730400001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2469; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD006; 1:KZWBVNhu9XP2LV2EjoM2vhH1iKcCkLBT1peIDuTRs8UfkdNmOO9lYwSsRSQjXplFklEdDMYp/jaHG9bxbU+8CO737S40D2Y0WGHOj57GE4qtpPEh8ba6DxCIOCAeefqUYw9WOj0mKKcCvwwQ26iTpvcLj9pmSOf2j5o8+LIRpXLYa5U5UYqpIpK4fIdcVoXwgjrVziibmuXXKADq6k6Tejo/mJAL6BQXJDjYxZoCM8BoZz0ZbQKh1hSTwnstArSDZcsYRzxPdkzkhnPibJtan6NjmAfZe4KIvkNY32LiGbdsBuZdZyQ3DhdGcBJOXcXaSZpaAsQQcXNAeoTtBWmWj43EjB+OIBSe1XQtB6bgWd+PHxPu9SmYW1bvZrL9RVB44E0p2O66RwFIU2kn6kWPqmv2ti4pQnUoloeM6SLJ1+6gCuM/Nk58rcw41qFRjQIgSMFRflxvD4I0gJB0konE7AXW3le0Czyk7Q7bslBsi+tqQLGbQLrTApbO8S3UHspswXkcBRMjlgpWig40vieZ9WJ8OPEf+aTUysHkCNTW8Rbfcuu9975355D/B05SlmPR0cECR+kDiNcWNlJTPA4RVZFGm1jfnYFNCwdCphtOrZ7tJduBEmxI17wYO7yPmtM4/wJV6k8MgmxL3nMulsVBJEhW8EEl43D++zAFAAQhmbDLIIH6x8ndpAByYkTcOITknjr4numqbqk7o9L2mvVyZQ== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 79c3a564-3e26-441f-52de-08d43edda52c X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR03MB2469; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2469; 3:BW+eNHsMFZkFjmLfTbIbqgLBEAXI2n8osanHoXsGRdbAKUDNVVX54iNqNN97fFy0ny60quM2rlMFLArRsJEFwS7nKsrWFzX87xdPYKyijDauysivIvbK4059YRNgStSrYR4qvAy0WzRwufSUr4cjzICR+OhJV4Fi0z18TrfXj0ZhXtjwbWn3AQaQNniGxl8NLiIqoZPsHxz1fdXYRNZ1rUDpn5J9udKGTNsdMSnpDmOt/v6PIGavtS5ApAsoWeGTVxZKzVOUSpO2FbkVfplaEg0R/cLMAN6ASU7ajSdMq/tlL38rBab1whPdvwTrV7JLls2Cr0fDufjsfcLVBh9i8g0EbpSmtaWijMKAYZJho8T6mH6MpAveeaho9gXsrUf1; 25:CRwESUm2w99wV/6LcpfJFSnHB6JZPp37SYze9tPv8B3Q8sq1rhN6ftjkeJCVtcarweXuFAos78IQlzP9U4sbNQWcm8djO0uqXGT8Nh89ZEW8HlDD8ZJxuHhUZ2OeSBNn9EtdO+li+UjdcFfhQ0hVb/efCKr6Cz2BApRLyNi5oAUW47mn5zXpXgFARfc6m2xLfcW2Qvhn9pus1xRRaypcfjokR3JiF4p+15LE96VTFU42aeMHE5fqkrpDvHTUxIQ3emIjKCgHt9UD25x28E4z3c6cFiyc98S0d3LcOLxnE7o/JmhKOkos55iaqIVPpZ/1iTfttXHY5aKy1OZ6X8iMumQW3VGmt2R2gP6rYLIuxR7WP/uB85Kx/0vqppCILHbB3mcEtfZOn/W4KJME3WuL7EIN7Z4hBNzIk2iWSySfnZwFI9gSVQinAecvtsVFBQ8FHHikpRFkbjIS6gjIZUDrag== X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2469; 31:dlibEQuZ/GIl38wlcJbpFNsJHzoEeCN6+tmv+xrPVtGpMLPumkPMZetEOdYhnB9b5iIStA738oxs2nVnGDFoyMFlTNDvGzy3ZT5n+s1K1dpHAIFdEIjs5goI8RKfUDj4mPaLDJXz8oKOt5G+BqDtlVaGc70dBh0SCw6YEMrYjURkdYP0SJcGJS6uqXnSXwsrF0iBrbp1ngvrQh18YHE8a9quJz2HmYsgUmWo1W9Fuqh9hB/W6uKg8Py8F7w7YKZswvZD2Ad4rQhZzBZB6A6y+w== 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)(13017025)(13023025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123565025)(20161123563025)(20161123556025)(20161123559025)(20161123561025); SRVR:CY4PR03MB2469; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2469; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2469; 4:QDMEXyrZ0f1Mn0fx9241SgyBXkpeh733VNzLDZdkgKRY0LvAcPOEaiLOh25b5mG8sEUDZ2TxKF7Fx/fGBk9dpIPsu0fW+7/Sdmh8qgNiG+27fW16Y12YWGYyr4tNT4Msxx/y9Io2a9XTRwgX4cQSuH1zSO0cF3PvvxNgBT/FxYRvDoTGI5Sh18RSuAheIfcLF1pYwN7sMN6ALAu997oXiHSSQpZx6eWDmztu9nxeN5N+nplWXDpWIFwCXbi30xeCUGoySBOoP0JXmuRdtQqp1Ezam+SOEb4i1LZfNhYG7Qodf5ILzb3WArX450pTzNgAu/6u2g1SMDowPmeNMAvWcfLUGZnVRlrG7plTvlF6MwMFJDEV9TwAzOGpsfZUTCG6oxqzdk/b/gMYshP0Q2qtuUrq9/9736Ahr/CBDquDvk5mhlP9iU4HJQwJbBOUcx4NjsEsJXH+vDva7rnnq2INJ085bpefPK5gc4ZqeMWL33HoEWaTY+oL2MK+jUt7SkdH1riI21hx1eRp61P1SDdg7GAW/XkAOoib0U98wUYXCdtKFSei7KjQYXmDZim0w0gs1b5vZ6I0+enQUSLkncsMmdAlxBylEvSyfh2AVGf5t/A2fIJlXUu0ieZ8Fvre6/froKJ6MgsTfAHcqm9vQWMKkTZSGHuBSSADy4UFHfemig+FKmBp7Ap1FwOfUAKSYrrKSEJ9MUOJPRoPRBAH8EKOLekiVVWU7DR+HD6kJQd/zAS3O6HAp1Ea7KWST8+0abv7GNRB+Z3TvucipPGnz28yPA== X-Forefront-PRVS: 01901B3451 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2469; 23:KCa7bCFcxmE0GFMpTfg8LgL/EdPZc12TIySJXqLy/?= =?us-ascii?Q?kC0ggG1YFt7y600r7j02VVMh92yEuRkLWBoVTodC+G9Poxn9spLS2C55gbn7?= =?us-ascii?Q?X5EM3JOQSCNNkglEoMwddl8Dy5hldpKxmpHulSAfeUtdVYhDfQGkCR6WXD7e?= =?us-ascii?Q?IrVRUxN22oCYPQTnJJKbUmaCOKHzvDrCal1mqeM1fZxZ3RRi4g1WWhjAq9gZ?= =?us-ascii?Q?hOo2UXpQv2ru+5AgAjtf4+maHp991rY1JBPuAS+046QYgD2GJPR1hI3D6S3v?= =?us-ascii?Q?yiX6sWbOB9eq6eYNELHZ2DhWAhTwUiMxKvkC7E53UArMTgLEy6ovQhI4hNgu?= =?us-ascii?Q?8JWgQh9T0G3MGddSG2FxddsxPCN/A+rdYI1KGmTQOBnip04yeb0hpA3gwzVY?= =?us-ascii?Q?eRAe6GFPWkSudibg8cA/TLW4X3682tGRg7DtMNos7c8q9wm/Wh4NSUnmMWfJ?= =?us-ascii?Q?sfQ5iV+WlyUvhuOvuxRSMUxCXZ01uCYdOMCXR1NjfxolJU2kAtGLMRIwf9Xw?= =?us-ascii?Q?dfYSE4Q8DfCkWQP85bAvJzIw9vNC5hAONkfUT1ct+mCGs4t7nhnF+LcoK5oo?= =?us-ascii?Q?B9RkcJi/z4qDDbJIk3wH4KkkCWmTTufAnuEb0NoIAn2hwgFe+PnotvuF0CDO?= =?us-ascii?Q?0yGaa2wwoaF40sWwVvJ2yNU2bKokwKyNzwKpPO8r5p+bSQTAxUpAsACLU4oz?= =?us-ascii?Q?i8Ff9xkIHSiUUgaMfdrC31a28khGjBupbsdTT/zS0bVVqQO+eUvg0jSK0hrT?= =?us-ascii?Q?Fx0QPA51ID3EGyABI1v1mg651cRp89AVRk+eFpa/cCePDwtnB0nFQeW4E4ox?= =?us-ascii?Q?kyHGxh6NFZI6maoJjOJKxYwcObY2Epz8QvbaWFhZw2PlGq6VsbGA3yD/2Q4+?= =?us-ascii?Q?cYX+J2rcaOXZHH0EefD+Wr8+KJqou3vEHGFgV/egDPjiFXhc5WVWJU+QSFjO?= =?us-ascii?Q?Bcu2n2EzvpW7CFV8oPfZJoSO4AfjQXwiDe5KIU9kE0JLT3nuThESun1EHkwy?= =?us-ascii?Q?9wAJs/fmt5tcb9ylMjLQ+fhuKbFSCVIjvTwVZQGQ4hyGD22cGK+KNnVqwb7r?= =?us-ascii?Q?Gc0zz38/FeAANvLJYVJiSRhsczlXNie5cqaQoC9SnIzEWI8b6oIf56tdc3RF?= =?us-ascii?Q?jG3rnI3cJyStxlk9sZwo4/ltb++6nvCEvm0hc8dPqnTU74VNvxdHgNd3hbAc?= =?us-ascii?Q?9dm7z3Zx4F9FsAbb0Q00SdynbaD8YhuxHEsQHcZex5OrqaAdRtuV4BMcnPWl?= =?us-ascii?Q?nvdxDwXtHgysUyRL2HTs8+G9FVf5hrsmLoyQxtsqFg+6JKl/7IZT4pNWFWjr?= =?us-ascii?Q?HLiTGYD3O/3lUBBJ8GegRkDGGOLSglRbWwy487cDeBA?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2469; 6:ERFiHxjgyq84La9HWZNjgO9Yo2AMnk6/Wc5Dm1QD7yKiIdIRGsE5dzThi+yCLb4A491447P//0H+ZtM19VuaXsBpsnDO3NKCXQFLRzvxSQSARL+lX/m3NeJVbjLXLvP+f4C52EslHOXlNWNYJ0u4cwbs1/bln8hRZ4jgqlStoHhqsSphUWQBmvpM2RLVDqFUhjjprGxoZ9qtI654bdQCWPurLGw1MvFM5Pe8yVMNMCiqGEUvdTKLNLmuamD7zCrzizJAyphUad7FHD5B3HZtHezRDRKl7xSdfZTslrsXasgK5oD+cfJbnQguAZTBWTYXfZ8pYh2c5qVrljdYxntAp/u52v1lfICUhpyTtUDd2UaMQoj10fhqqc15q22Udu7KQTgQD0vH0osANThBAQDz6TZkUB2n5YcIPSodb+2dRupfM0t796Z8UGokXJZizIzK; 5:MDjYCvLNTrnju5Rk4AzR7CaS9wHDNUiZi1gnpvC4evr3EBUq+naJA4VrxPqRBBUYvvAaztu/mKGFdK4X4mZLoxViwFsECF5C5sJWCF4ijoMx9KvuBmaEb001d9UerqKmPrbWJdOKLikHaWxMDsiar8WISGbd6Z8XkIzym+N2JZwpGdnOSSQKUIXurESR9WHY; 24:O4H5QcVYPYjRcVZdNJg+AqH7yPgwzq+gO3238gXAtuiAYeKykYO87IVGDB98IyKtnkQwEN9t9GJqLZ+ncRuy/cnIQ3PVV3BuOvo1q/2+Huo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2469; 7:+2dFa6mSRVsqtTjUQsGCd+iDpPI62cqKUBIe5CFWp5uIBLM3M13wXj0DpoHi49KDo7ccBy3Qxf71IG/4yJn7Nl3yGdvjyxuxncYAreVLtfhHo/VSAqP29ahM4s1KGtikZ3WSzNf3+F1sCVIaP2rVjhECXCoigT5fYD1pcMNXg0/i4vIoFO1uwJLgEXZFGwJLC3MqqTWD3k8krsRlDxS9LZs9yKbYMOIC35ise37jqbinNZB9Z/+S1ByEIaXMdnMdpS7HScCFqVEZ9ncWc8IuJgAw80oxD/sNUHL8RoPuSnJCw+YXCr+L5hNfqv8oJUEjmJL7ovvZ0eGYn6jJ4W3VPteI92U6unZYOL5+5PG5P8i2qolrwN4Avt6AsvoYtlSMinNa/a1f1GVsCvDmkIZVF3X0kp9EwpSGiFEYBv/ppK2QDHoxJHt7lBVDQDFtjhxKgkaM7DdwS1JR8BObFXyFOg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2017 13:35:04.4050 (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: CY4PR03MB2469 Subject: [dpdk-dev] [PATCH v8 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 13:35:07 -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 Reviewed-by: Ferruh Yigit --- 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