From nobody Wed May 14 00:35:39 2025 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) client-ip=80.81.252.135; envelope-from=seabios-bounces@seabios.org; helo=mail.coreboot.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 80.81.252.135 is neither permitted nor denied by domain of seabios.org) smtp.mailfrom=seabios-bounces@seabios.org; Return-Path: Received: from mail.coreboot.org (mail.coreboot.org [80.81.252.135]) by mx.zohomail.com with SMTPS id 148836518878780.01761230563909; Wed, 1 Mar 2017 02:46:28 -0800 (PST) Received: from [127.0.0.1] (helo=ra.coresystems.de) by mail.coreboot.org with esmtp (Exim 4.86_2) (envelope-from ) id 1cj1lz-0004SW-HL; Wed, 01 Mar 2017 11:46:19 +0100 Received: from mail-ve1eur01on0093.outbound.protection.outlook.com ([104.47.1.93] helo=EUR01-VE1-obe.outbound.protection.outlook.com) by mail.coreboot.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) (Exim 4.86_2) (envelope-from ) id 1cj1ln-0004Lp-H8 for seabios@seabios.org; Wed, 01 Mar 2017 11:46:17 +0100 Received: from rkaganb.sw.ru (195.214.232.6) by DB6PR0802MB2469.eurprd08.prod.outlook.com (10.172.251.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Wed, 1 Mar 2017 10:45:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=OluJM3mjXP/sBvGF4eyQOFLBK1fYO4koD0AG+/PZgm0=; b=W3dwR8ePX1zgpl8A0kwJiPxTsph2QyfuEqBK9z4LPVg5N9JLUXHdh4tefg2AEPFi29HA+aWP+tjbQjLVzzPE/j2O20bG7EnWUlGbgbtwIoiy6pYjd1HFqb2RdLVP75YVdRMIKhtXS2mY28r1/f9zKUWV/rloa2YlOW0WM4RmB7U= Authentication-Results: seabios.org; dkim=none (message not signed) header.d=none;seabios.org; dmarc=none action=none header.from=virtuozzo.com; From: Roman Kagan To: Date: Wed, 1 Mar 2017 13:45:37 +0300 Message-ID: <20170301104542.7373-5-rkagan@virtuozzo.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170301104542.7373-1-rkagan@virtuozzo.com> References: <20170301104542.7373-1-rkagan@virtuozzo.com> MIME-Version: 1.0 X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR03CA0038.eurprd03.prod.outlook.com (10.163.170.176) To DB6PR0802MB2469.eurprd08.prod.outlook.com (10.172.251.17) X-MS-Office365-Filtering-Correlation-Id: bd9e917b-ee07-4a36-9c40-08d460901f94 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DB6PR0802MB2469; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 3:mb2CMzBt1JKvx5fEnjhy7pVh7W7fz9tHMUJqDJSq+RzFTjOVgoFj2BZS5gpRT2zwPdQCk7mDcEHF7RanvNoDVWGim/ouoa3ge+MgmZssOWD+L3/2MP8ERlI9G6+NXO5nVgncVzmGAFw+P4Z19R8AieQZvWCT01lTr/Vrq40uhKTKIq5jKk1Htljgh7AELVrpsgoZh5hfhTKO8ev7jgPnsBPsvpUWX5qmLsY9/Z2E1erpehisJ3nciOa171M5npGW/2MmYlbGFexlI60XzK/CYQ==; 25:XIf5p8GtpWzAuUFVVSlVBfBWFbSnBNDGu5kcPfAuACYq38IV79NJ+JEOcI15zFbALbEKiXBLGsVImag0x5ClxBXcA72CHqGRUlw6UoOzmIPYmi9ruqFzcprzfjfLG9vosi55uCliSYWxV+xWGHzFeHqc2M/iAJxEeOrYYzMj/366Ja5cN/p/na74klNVhaYtaOXLAcvsvUJICDoeCga5DrYcuIysDsAaZD2xNop0/TcNUew8GvsoqcLD0LGLpmtSIucu/BwTd13KbUVcgfSDlTBfsldNkYXWxxqpzi7k63gdPZhmNo6We1Cl4DNiMk+CGahIx8DlTjSlVa0PFyYj3j2/dQcrg+BBZ5Cgkk9MBKje1H/VjuuqSnb25Y438AjXdEqY6iqaZ6kCb5hfnCBFpCz7kL1HzcKKUEG1Cegm62G2iJfcZJwBbWzpVAOvlofD7alZRmFKfexaWeL/IbZVTg== X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 31:1ZTg4o6qlkuZs5huGKTH6SBiKHK9KRFePiu0lJELOAaAqf6LNE3JolxLa1ayOVCw+0MEAeX0QFh+nr43uX/bMOnS87t+Zetfk3xsLXfXgauS4n/DJSNbcnVhVD8XhoqRLBRczPqSeK4e2rs3DA35bLCXybjJqGqPKQBCdzfHcQ3xcuHsbuaPxxzjHFCpmW/CW+irWtkFBT9eGXGA8buYyIqSpQrk7WMEaUqED3CJSbsH2hYj61w0cBH4ya3a63uS35h3XqMyLNtfu1ypdArzUA==; 20:00lp3+UFdbTq8E8msZ6e+PkQMnwyclGlO1idvKz7TkN3XKeeQ4YYQjHkdzo8RE6tR6rBgpYAa9xDWQ2naSW125dlaqw66JxgEK9lqyxLmPMGk5otmITsP8iNDu6sm5XuVFZx2+QBPpM7w61/tjqitSprMqfuv4bJmBGhmiye0/LtfvX8wu8vduzPAxumWpklHRcZkEPl3tkJE07164CLjmaTp/qajuAXLuQizCuwwkB80VYJyvBLaLit+zuc2A2OnPPEXQWSdLwYVIOeusu9Vfc+TRQDwL5x08EtMSp5UIhPdPdQTLxU1PDlRWZFttmAICDhjf09R6o6QxMDkMAFHHJGi9FxeqfbJMsCKwED3jBEZxLU81CDX2N9GonbtH+h9lMCpmv36hVN+qGvaHhCinRSUB/Lm7vYjwNJ8lSOkCQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123555025)(20161123562025)(20161123564025)(20161123558025)(20161123560025)(6072148); SRVR:DB6PR0802MB2469; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0802MB2469; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 4:fTcbcLmiSr6SaAMD/F9hKU4S4R0jyojNsYhpPiuhZfGhTBMGLBZUbsHQi0UEOpfjiauxz1WgddF/8BFk82yKTQHCAz8VCxhAl3+EXg87BnR7EgC8oQHGxEo7nYWRU11IKajDX+Pq0TDMtJp2VjakmgkNtdcjRcLQ7VCvZ7OjwsbeLCWnX1DxE9Two2Y9x3dS20EeMX1+NbxFUe/acZrSpPdvlRXoaEM4zqsJnOR6Yb2ru5rjyAVEDZPXbnY49tGxTtfqN8reDHSleaQ+nCQ7adww6YWjV40/CFoYDca3rsxi0IvGSWkT7+lqM9ZSAccj43sAt8iSAv0oeAH4BRNjlLQbW/TKKm0+NZwkL91BxNGUpxd6c/pauZRGlpYBayoslAxerYnfycFECuTzPWHVZk811uZJwx8HjRCl1M96WdvnlW49vMDrgwqCXxffnGa/VwCYX3hHNPRot9IgX+KshDPy7jnDn1+dm+iQDb6EHtzXGcf1zmxM9lLaJ/yqAA4s0CLIDYiTahIcxkn0QKoBXLAJRdIUln63SmYJnDyWXp9kcNJo49SqMKgHhPOWYN0hB1Nb3iezqGdVgZ5+aOxcJvOfQJHLmEH6dTdYbNK3w/4= X-Forefront-PRVS: 0233768B38 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(39450400003)(36756003)(5660300001)(6486002)(5003940100001)(50986999)(76176999)(6512007)(2906002)(25786008)(2950100002)(450100001)(1076002)(6666003)(33646002)(6916009)(50466002)(6506006)(2351001)(42186005)(38730400002)(53936002)(305945005)(66066001)(92566002)(81166006)(8676002)(86362001)(53416004)(7736002)(110136004)(189998001)(47776003)(6116002)(3846002)(50226002); DIR:OUT; SFP:1102; SCL:1; SRVR:DB6PR0802MB2469; H:rkaganb.sw.ru; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB6PR0802MB2469; 23:ZO/d4VHM9Zh0jCv8LSXZyBmxeY6rrffFN33ZO/B?= =?us-ascii?Q?4WTjY95IPZlCG0KmJSc+59/hQKqkKZqR/c5YZObAI0pPjAnqCePMw1T8pXWB?= =?us-ascii?Q?v/ZrGIuIS5xxIc4Dqv7qhWtJmvx50NXY3PSmRhfueE7e9GM+Myr4V3pRqgOn?= =?us-ascii?Q?O5qaMoZd94nsTT2YV1J4nx9ogpCrt5GQ12IrQwXWGx/77eQAb85yN2/ih1O2?= =?us-ascii?Q?p+JyW1tEKNPQcrXKPj4+Jo6UMCi/gQ0P0Jf7XUJCu6tCT+/6/rS6k0KOpM5I?= =?us-ascii?Q?Ur6i55unPfcx5xRWMn2BmyXJzURLMluQfFfwVKccEItXRVuuihEXvQCyc+HF?= =?us-ascii?Q?IjVLgd3b34sEvP72InCRV1C/iq/bdgGK2I3AOUQJn43g+HVDbekgIr3twiPf?= =?us-ascii?Q?xq/glXDMLbZUHmE24f8OCn4232sNNv/CM0cbSIEymAtkLkZfKwkfK4kq/1xj?= =?us-ascii?Q?AUL5Q6ByC7rd7yZiM7POA4zRGa5Nb2B1rnFt3CvWba9vJKS4rnjVX8uJpS/7?= =?us-ascii?Q?3h+tJpKHajVYtB6KWVChrwwf9BcLvotQRQRmD6B1S9wmHKiZA/7tXtFoVe+k?= =?us-ascii?Q?Vh7n9tv8sUB5lN9YiIOdR3jWtE4f3yq28zPRCjzLqWIz6X9IH08th+d80fEU?= =?us-ascii?Q?1QpwJDHQbANrym44XtPDN5fVBt5JuCi5fzsBNMCsajrHZyU9eztuyr151uor?= =?us-ascii?Q?xIFj0xRBiuhfd8WbC7pC6zHydCFiLVky2xNmtXeZXiS+CsUt3oiUp+n4mTWL?= =?us-ascii?Q?pXOcSndniiceB50ZxQpLLGytsjUYcP0X3PfFEuGPt4NHsGGf6kDAysjRP5Gw?= =?us-ascii?Q?L1rC/c5pklONqjH2eQ9CULmwlNCK4+sj3Fo4kdFRCrsWQVgi9vL3gsr9KnTh?= =?us-ascii?Q?Zr7hEEAqOQltH+qZc9yCndHwCdn8KcPMb4NJbl6B7xxdmLhle9tDt8HEs8Nv?= =?us-ascii?Q?vOCFhCd/cSk5CroZO8OkYyqvkyNTGycj9qMEq2NWYxg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 6:7F2fNd+2CApuCuPcQRNViKZFrrZWaHncIknNAwlELxdd666FMemOP9x0IGUvA10s6DY/LTV78X4HfJaTeydTRNbODJCQgrhZ1qNAfAox1QtzPEHP+khCzK4uCw/TX14O21IWS5rQgzKPeR2PwH/TlHn++4XIPkfJ92MoDne5vB2ZFglDIHX7kbhmbTwXqhNig0tFWSkias97cwCEqEXE6At78ukqSZgnkgjbH4wcDXaJiH86nwsz87NX7gqtPaLKpnL/J5k0/lSYwdoQAooFYj9SiXrAazrks1d4wTfPsWQIhVetY+rzmsS8ouu28HskyEkv5HPRel7GU3xhD2dxICeEwX++pVciffMkZeBhtKo8I7oMUMykSsUGPdckNhCMypa1Pn2Ueaa30MoHWxT/wQ==; 5:GOmvsKvOYxelyr5/kGZ4KiHh0usJAebooImVCAOCWZmAAvvvuVct6ahOHlfQtejUTBqPauORaHoLtMUNA0+hLUavEhGe6CArL4e2oTzyw7RLtXC7HQsLptZ8Ox6K3kTDCivfc8etLm0yiT5zSiNC9g==; 24:K2bivNC6gF/6CSl2lHB6zaYSqymE6gv7nACzBabdeaKcu5das+wQ6HkVIILhIGYqmfNJb+W5OessoKKHCxoLvSfXh5DAliUL28hnT6r+ZX8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2469; 7:tQFMPefLazPi8pRaQnM9+0TPOfxONih1EGbDKYGW6+kXhMe8/y0ZejFuy2Pjy61FS8wPWorM9jc0IR12ABfKivz3Sd1AvSbIrxki8JSGAEwtMHJXvF2SL8EIk+zqBA5l6v0zPkXeITp6n8LVO29GCoLI+x4Mbpx7X+YDqs2k+DOXNXgdo8B6qMZwGw+PQEPp7/0t6GrwLJZY/SY4A7//CAWkuxzJZNlLzyFBcZT1UrpOAcQyiJ+gIwF3Di0Ldo++F52O2X2jU6el1ipPzc4BDa3W2YkTT79bxUN4FC9GV72lqJ5zXugZU82MdDZ4n+7EXp1fk6C8IqJH2d+s47560A==; 20:/l0onDvuUDou0SwrJTQUqv49Erq9xUcPe70oxF1pXtYoJByQSEXUzT1wG7dt1CjmAeEqW0VCydijwQpjNh2bgFP/PKBieJcw1Scf8NRJjqzAHnwyjPgIfhfZGQKm/OKBTFgzbX5LiIVHPuX/AcrUP7FgiPUvB0Tku+NaSgiSFDo= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2017 10:45:48.5100 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2469 X-Spam-Score: -5.1 (-----) Subject: [SeaBIOS] [PATCH 4/9] esp-scsi: enumerate luns with REPORT LUNS X-BeenThere: seabios@seabios.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SeaBIOS mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Errors-To: seabios-bounces@seabios.org Sender: "SeaBIOS" X-Duff: Orig. Duff, Duff Lite, Duff Dry, Duff Dark, Raspberry Duff, Lady Duff, Red Duff, Tartar Control Duff X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Roman Kagan --- src/hw/esp-scsi.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/hw/esp-scsi.c b/src/hw/esp-scsi.c index d2ba023..57d3832 100644 --- a/src/hw/esp-scsi.c +++ b/src/hw/esp-scsi.c @@ -153,14 +153,10 @@ esp_scsi_process_op(struct disk_op_s *op) return DISK_RET_EBADTRACK; } =20 -static int -esp_scsi_add_lun(struct pci_device *pci, u32 iobase, u8 target, u8 lun) +static void +esp_scsi_init_lun(struct esp_lun_s *llun, struct pci_device *pci, u32 ioba= se, + u8 target, u8 lun) { - struct esp_lun_s *llun =3D malloc_fseg(sizeof(*llun)); - if (!llun) { - warn_noalloc(); - return -1; - } memset(llun, 0, sizeof(*llun)); llun->drive.type =3D DTYPE_ESP_SCSI; llun->drive.cntl_id =3D pci->bdf; @@ -168,9 +164,24 @@ esp_scsi_add_lun(struct pci_device *pci, u32 iobase, u= 8 target, u8 lun) llun->target =3D target; llun->lun =3D lun; llun->iobase =3D iobase; +} + +static int +esp_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv) +{ + struct esp_lun_s *tmpl_llun =3D + container_of(tmpl_drv, struct esp_lun_s, drive); + struct esp_lun_s *llun =3D malloc_fseg(sizeof(*llun)); + if (!llun) { + warn_noalloc(); + return -1; + } + esp_scsi_init_lun(llun, tmpl_llun->pci, tmpl_llun->iobase, + tmpl_llun->target, lun); =20 - char *name =3D znprintf(MAXDESCSIZE, "esp %pP %d:%d", pci, target, lun= ); - int prio =3D bootprio_find_scsi_device(pci, target, lun); + char *name =3D znprintf(MAXDESCSIZE, "esp %pP %d:%d", + llun->pci, llun->target, llun->lun); + int prio =3D bootprio_find_scsi_device(llun->pci, llun->target, llun->= lun); int ret =3D scsi_drive_setup(&llun->drive, name, prio); free(name); if (ret) @@ -185,7 +196,11 @@ fail: static void esp_scsi_scan_target(struct pci_device *pci, u32 iobase, u8 target) { - esp_scsi_add_lun(pci, iobase, target, 0); + struct esp_lun_s llun0; + + esp_scsi_init_lun(&llun0, pci, iobase, target, 0); + + scsi_rep_luns_scan(&llun0.drive, esp_scsi_add_lun); } =20 static void --=20 2.9.3 _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://www.coreboot.org/mailman/listinfo/seabios