From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0057.outbound.protection.outlook.com [104.47.37.57]) by dpdk.org (Postfix) with ESMTP id 66E76FA5C for ; Wed, 18 Jan 2017 15:03:42 +0100 (CET) Received: from DM2PR03CA0044.namprd03.prod.outlook.com (10.141.96.43) by CY4PR03MB2472.namprd03.prod.outlook.com (10.168.165.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Wed, 18 Jan 2017 14:03:41 +0000 Received: from BY2FFO11FD024.protection.gbl (2a01:111:f400:7c0c::192) by DM2PR03CA0044.outlook.office365.com (2a01:111:e400:2428::43) 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 14:03:41 +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 BY2FFO11FD024.mail.protection.outlook.com (10.1.15.213) 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 14:03:40 +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 v0IE2510026776; Wed, 18 Jan 2017 07:03:38 -0700 From: Shreyansh Jain To: CC: , , Shreyansh Jain Date: Wed, 18 Jan 2017 19:35:22 +0530 Message-ID: <1484748329-5418-7-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1484748329-5418-1-git-send-email-shreyansh.jain@nxp.com> References: <1484735880-17178-1-git-send-email-shreyansh.jain@nxp.com> <1484748329-5418-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131292218206495706; (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)(39860400002)(39400400002)(39410400002)(39380400002)(39840400002)(39850400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(189998001)(4326007)(5890100001)(97736004)(626004)(5660300001)(81156014)(8936002)(54906002)(38730400001)(8676002)(47776003)(53936002)(77096006)(8656002)(36756003)(2906002)(85426001)(50986999)(6666003)(48376002)(50226002)(33646002)(50466002)(76176999)(110136003)(86362001)(106466001)(81166006)(92566002)(68736007)(5003940100001)(6916009)(2351001)(2950100002)(356003)(105606002)(104016004)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2472; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD024; 1:E6EFwN9f0EDj5lFkQQMp9aQe4RRf824VZTNuqKMejs9v2YVMB8b5PVERG+WJAJ7b9kMMsmOlsNxb+SwZIiSWt5FfHU92vN0zYnybaZTrF5N8wbtG3HFCwy6dbK9UweKI+UCf2H2X3F20m9ZIdOqZiz9KowKim/Z4regC+9Zd4713O1woaaK9bBXwDGl7ejXQM2ilWmo41a2IavgfglJ0lemC/lPN2tPk39kq1PdBS0F+Pi8aIFhiT4gTZOZqMFX3odVvGDx2ORFiz+bNoAJbWMaOqDFuVl+m0yGXIM3FDrxXBxDgovKgiicnZuC3i1F3ijtE5fLnkHgW9lH12k5Wu1pnbGHVL0c6iPyx/grE7vgCegpYrfOe8MY7lcmdrbvWemGDM00kwjKtDyjLY/ewKBmh5Z+kcUj6d8QTqfORbzh0uBxIk3l06ghUWxhxbbKiURk/bUv6+7TbKL73ks2uf/YyWYUJYUdse3SAhW5N56QX0iG7PIOJbX8Lp5isrfRTuQM152EscRfbolvYeP/Ar3uVSOHbHO9wEyjFnaurIoguybP7d0WYbxwc9nZPK/MZtpm1UNj52HRswFnXNxuv+iwO1xurtlXqgdFNtjcEk6GMSV+1LiH2G7g7NrYloOFjvVwFhe1WjdIkHhJk0Dc1NGjqo8ESJMvSKE1kGLqJAc3fHHViqj2W94B9loY8yS36ek+ctXxtxasz1I9USqzvAw== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 4f9b9e81-7e83-4312-e120-08d43faace6a X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY4PR03MB2472; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2472; 3:j+H+VOEOAsL19aTwUs4DhRTKBjocXvaz0+FXMMFmMRBXCK4Nsp7ZPoQuqxoD2PUykX/6/ay6tzcWaozmB09L3So0fI0sfDskDd1rz9x2SaSzWP+yLi8G2IJftt0qJrHhWmn0WSfZeeYeqLhi7cjJ/x6ibNNZ19WB8PSh+xBPwDCG9BGWO2V9ACvf7KZrKbHhXNcTID4bR7gHCdXIR+A5oiFApzimPDSUnhNjeKgE3eBExMfGYwVi5h0cMFRnVE+Ygi4Wc7j9psxCt9es75w9ccqAGsG41cKDGIomDqHFNO8A3CPYP2ACsYJejbyrsXn89ZI5dECgyuJj2s8VvUd6LDDBV2i2W9GxMqoO3Lun9HjEsoEHrNDI+YzXsQzSreu4 X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2472; 25:y/r8ZCsckx2zGjEvStR2Vf0wLuSzZF+o6oGJkWavs8Xm6FXR9cOsp03arGBW8ZsNhv7iFRQajOMCz6JN7l0p74Fzt3Y92oYEKeu6/pXRBwap06aQe8desgnzP+od1Zc9HSmRPNXHOsrr2AmJvivjNL6RJtf8ctESic3InzlycekhpoBCXDx9s4wqc32MGk6FKdqhgkQw8OGEl9mv67RuhLw1jZhoBU23+mzYoNJdo4FZVqJDGcDk3O/P27Va+IDtMi4qvQbFWvsrPM4B1vX5qCj4XWQWYup99VShrW3t71+6j9hO2s8F6B51DX2pQ+b/XH5SP+F3EnnjPa9s4IL/MZkuojyFM2CZU1j7o1VLDIpN7rLs0wa0OFYiKb5cRM+bIgs30trhGske6pE9UQkfkUNcgHUpv4wNf1hkHA8jgvxEypRwp6TmiVXspWE4QlDNRBD5CukoaQ/NB+RyGWrju+7Vrgd7W2cTS4jdxuplEpwVOReW+ZrAEM/uL2uk98moIVx49nVqoIiLl5PJJ2mwUJZgJSCnY7UZOu3JUVKpSlD7/WaFOTDmIs+atRtHFxDOzk3hb3iSaJ0RIuVVAJPiCTPXavWFBkazfj8JVkeJXdJglzso8UX5a2gaKJNP4ocOxht1yCsn3blCasxNs29KSFTQpf7GR6pNPWB0nx/cwQlyEcD63y7qP1Q9L5x519Z01b7jMApks3wt1zV32cByrfUoOZ6SQDbL1SOVq3ufJFpA5yqogXKh3xe+hlaaDedgkxbjT+/fSK2pw9VFKJ4X5ohMeEwRfyCfcbH9y1byDiU= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2472; 31:w8JMGGHzVQf76rPMMBhOAIFT9UrUWtsSWRRS+UqvJG/8AjJkGDN2qGEsI4/ag8iMUd9+cekBAGkjwC4a52Xg4o9aLn2u0vNcF109nlNfAqjThPHpj2Moy+OJ3sdybcBvIBU4lHqmo4QXwUT89sz5aQhkmcZAMoOLvVMjnTXgdkFXmOCXCJLMFsIx5M0Pn+WtYrvc3KhlpWTbUN4Y/Z+SBqTaZxPatFjj7ZB9kb2ipEU2H9UL+NbvVRg4Kz91sdbzgRoBbrWQWDANcq2DeZyxEw== 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:CY4PR03MB2472; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2472; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2472; 4:D3xSrPX/EfkXHCxflfwYAafszxRpNaPQI5ztjysvvTVQIotLesf3qWm6UYkZOv2VXOZaYIbdO63F/gvlTbH+hklTxyWcePIwpLtgnXgf+YJLgp+g200llPKeyniDukSLth7/VWp+InG3l/CesTe3VAYR9vCY6BCmXaEuOA+TZ6RDBK9c/aZRH4CVRXoN5+JWssniIY0o0F5L+EMPsghDiZM/d6plWad/SDtVhrh2f1nCBOCVgbsEC7Mx4aLybcCM0sB0sLhDA1NWqK1bg3iEDE3LtChR8rGbCsctK2IaAKRQ6JzrzEcYL6f+3/U+CPMezdjB3kQCsfXaFze8qEToT3JDdxpaLQCVMWhrbIyakDqeQKOg4a4TmfKBaeqM4n1T0/UTQaCvkKaqkj57/ktHcczBs/5KJ85EO+HW6/RMR16oTtrCE6JSDIaO1SPQC7CkjnqHp3dDbysfk9qSp4skx3lSROPOTJxBQOyEl3OeNpsM/WlSQ0e77o/841ONJTBsjLO6LLZtNqweRaWKx96mt1mNCX0GBm/QCMEgqR+ZmCIga8cbrDq8BaD0PHKPlpjZvTcLjXdNJZ8quKxMiXrHDaKcRye3X8JlRqLC+YKJyq4WmpyC3USYLfBKiJDjRc0S+EtdZBDa37W5qf0aAolhnqmYCk4YIf+CBTV9aTkzwgzal2yYCWM60jC2QGEiuLHGFu9xMLdOucvnz7qyz3de2Ki5BiUfSY6ptPu0zBotlP6WHIOKq8N699YsbY3NsKrMDUuQrzSpwV+IkJkjCTHTNg== X-Forefront-PRVS: 01917B1794 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2472; 23:FoRM5kx+iCg5ildYc3KpCORuDi9Swq5mbJ0YZ0hFs?= =?us-ascii?Q?ir7x78ah+0AAEEikWFibFf/8Q95anZ4sLUw1LeC12C+xd/3Vnu5/via8oFRP?= =?us-ascii?Q?RuQxl3x/fcb40UTETJTd9gphAztmckdb9zxlnXJ5mYx5gmZmKJ3YfFroLgAh?= =?us-ascii?Q?9CiKMKIAu4C8OexnawpAhEDOyTAAP6FDNegJIw++j6yfFQspB21TKUH3L0+1?= =?us-ascii?Q?maKdI7TmZFwweJPBfAVdWr9OqifLLRgoK0pEhnrLBRWJQ3IHKrvBpC9xdHdO?= =?us-ascii?Q?X2UfMWeu+S7eK0AFrh9M31OcTaeyWzgKSpImKf+Z1lcdS00I/WDx9KfMivti?= =?us-ascii?Q?xdjHWFdxHqNaeaJ2q68Uhesx1dJScxz2P1m1EBxOeC4HquJgBJ5bLMNJ5p+z?= =?us-ascii?Q?85Q3wge6JjjMw4ENTngfjx8E1KitQZt2LI5qCxwC4jklYAA2JW1ki4UVkRxM?= =?us-ascii?Q?aa4sKC+1+9kCqBW/0rq4keUM3jST0hYINgNoqoShKqndZTlHpdvE0MQGGPD2?= =?us-ascii?Q?HA9yD0nrP2YhvZ8J44uNe5nywvn68sB1ZgwXq1G95DVe1kU5CIPhHGKUPK1U?= =?us-ascii?Q?hdJQtOphoALv8DqASt/65eFEG84AfavLK3oGxbM7oJD9By4tNtRNcwHTGZ8/?= =?us-ascii?Q?L1MaLZ+oiSa07Fdmw2mkHaaBgD0ScTrg5Wsnrqueb60kjvPUjJuYAoUA+L7Y?= =?us-ascii?Q?f2v2h9YMv9dsK1lLti70BquW9ofgzJwLrfD7UOq6snA/HAvMGoeGyXr8fi0T?= =?us-ascii?Q?U+ZxITz3hWxEyMmHrqcKZFROBZ1rQkjqxnX60/RbVagen6GBk66DRcBh3EqU?= =?us-ascii?Q?HUE5mhy3mJPpgd3f49NrgecmcyA18pYhPq4nDengELbng5QEPJvZL4aYfnF+?= =?us-ascii?Q?s9YUAPSox7QLqoOJFNR9f6Sq83AFVauK0IHewUtIt7Sai7/jf+2hwcVEaxIW?= =?us-ascii?Q?LW+f4RJ3oyb5J4Vb8ORDww59cnq5rMZrOelJq5s5+5iZ2LKcMnPhsQqhlrvY?= =?us-ascii?Q?LsijMUENDIJCA3RQrEUwMcDtzmNuiLRKYl0ohYMiJ8ckYRThu1IA5jixgIn7?= =?us-ascii?Q?XrhhgZP3dmwKtqNSPdtypphlWoLPWuR5atAl3j/PB7LXsw1M34h63X30+I9A?= =?us-ascii?Q?fq0R6GX22BwVBQsNg9Uf9LOhgVwGmc4I/MqsitEh3JMBGZEKJcl7/2tyz712?= =?us-ascii?Q?+Gi8wsjUjqJMtvlnuflu6vgEFei6oMlqDe7EMSw/G9DgQwO2nZfoF1MbzeNh?= =?us-ascii?Q?BXi6/vCWO4SibBkSc/cspDBC0d8PZ8aeh0jGCHdwTAtocdWrqbRRR7LWa9G2?= =?us-ascii?Q?sBTsY9nSc9tKFGpOWHNyQipvW1Jovy+cfWa2XB9r2Td?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2472; 6:BaX1DuZ98j7PBuAGxcIgGhUf1SvDoYnnysABQXndDGXMFPIc0ngBTcO1TZgQgD7RIi3jmYpaKOZkdE3GRGU2wawchoa2OPmBUC8/5M50q95ylbkbI+P3XBuByEEY0JqTP7LJm8v1VFgH71w605dVlFh/o2pVtw+FTGYXubSBVhvbpGnsp1GK8vBBARtmAiQvLKjETDdajhANhOlLQmoqSGTEG75a3N3ho4qDAxOVtwJ9NqQP526joXDt6cjiizbU5F0tnUq/ykd+7CViAh1BioZJzBQ68FM2yzgE0LWGWB4ZplRRlUci8YUGGgR4M86vgpfw4XRSAW8nGjBdx7CcJVSjJTueLHx985+GdtHGBtY3aNqcyXAIVtYHa47dF1bfbaMfD23AOu9vUJH3+tZXJxm482DtuDPzOP34AyCb/e1z7M4A/jjXwQUHsGp+iiGZ; 5:NMZNflwTBK/a9bJnQ8ksnU+0/LfZr5y0kpqhDcNTtSCvRFJRBnAqNHQqyEoiXqxSwN3LjaJD/5KMShdytsOsf4jU4yfT6lTM8LHnpSMD82Ct59ZSEkBRLw9c2IwMjaPeCqlXejs0KvvlQWYCJb/mUXkds3WsSIrboOnQI0RzEZX+IC7xQJzFNpczpp+3oa8H; 24:f8lmls6ewDcMr30Eiy1axtOe6J3IfCT4QOrk1Ft4fRG8NO7uLa/7Ghsv71Y6u3K1P6M/MkWzoCkg2MZ0HRYd5gvDiORPcQug5/jgXMhSKNw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2472; 7:jlGxdfSRpeBbp4Y6qugW9mYC3FznWqATxT6Avf6Rvy0gAXLVEdZxHwMoJUFZBK+FmzW4KJS3xGpKwj29mhlerlumVp2Uyb/5OuDaiXWaFpzw6yd5o9s0+p7FoPSdwozJyyBw5GlbksBeS+INU6MBOyIN81GxJQwxF64Fdp5RnosASx0G9gajlnGuZbFJbFAWx15lo7Lzkh+obnigh4zlsfwzw1I5AAzudlxmFWZK7oRLEg6F13aOoJ1nskZggp+iWoHA6KuAkuw7gZepVvQ+f/NtB8Cz7UchyLKqc8+xtjY+R+mE0hWTE91jn6cNPyK0VMlik7yqI4yp003cGGcYFk/4x1RJUQlSXa5cLPZsLg2SGTTC1comQmVubKGJg0rJ0JKiaPgTk9J9/3un7LK3MNdoDArFaRYeZuZFVjhomnIxYG3R6G03GHc8aHZHQRS6N3ZCLFrRpq8XiWg8ha51OQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 14:03:40.4311 (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: CY4PR03MB2472 Subject: [dpdk-dev] [PATCH v10 06/13] 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: Wed, 18 Jan 2017 14:03:42 -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 | 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 d5d6beb..205ddb6 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 */ }; /** -- 2.7.4