[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH 2/6] Stop inlining VPD page codes


  • To: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>, "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Owen Smith <owen.smith@xxxxxxxxxx>
  • Date: Wed, 4 Mar 2026 08:26:13 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9fXUepzGl26k+T4KhtD3D404lSmilAUOnj6mbE9KLC4=; b=VsNEGvsqmiNcws1w83EpwrUmfDdGnRTbppsukDjZrYXGMXkOarwxQgbYHZCHVCtcMUT0LNKaa8OkIiXzQq+1jxd9K9idmSfuOvZYvm6ZesphvkMLzHQsWoJvQlUYtBN+hPnVuhLl4HAQw3wAT/I2Yu7CPAXw+MUCxD06aG9J6GHi1pUwt9OojLLi/IhWBYjAE+E2AsOOijj3LCdU/IiRCx5kr/8KuEeW0jjz5GcyJZAS600Hz4cv2wsrmEu/L63XfC/Ns+MI2xUCzjZJyYHlc9Vye7Fn5uI6tQvSt1cDv9I7WryQGe4mt9/HWSL6hfYKF9rzhgnFQKEoW6iU4BkHBg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jWPkS0y7R36ud2FQqaFws4Ej174EwLsqldNhnVCZzyRje94fuAgoR/xpLLLvzSQjN82WgmmqAundoXD8uE6YuatxituvWYgQrXPEwnCCepjbMvqEwxDYXWH51ilZUjZLadxtWx1Fp1mDSkcIqVOCK/GNgGU9QJKcHQhciBJDL7BJl5xklgyJDbiDYiiHGXQLz7YrIEqvOTvo7plikcTwVQOtbHgT1DLD3olhcETk1hr9sgoawm1Ta1WVhbpLpVx+qO5Vqq2T3sVyBtKmusSVPnPIyUtF9NkZQL21rA59iKPevf7ShlNkX77+8I5/yJ9p5TaJZKSdqWj36y0QkPM8uw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Delivery-date: Wed, 04 Mar 2026 08:26:19 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
  • Msip_labels:
  • Thread-index: AQHcpw8IwdrsMczlbU+gVlkTrzKi0LWeEv4w
  • Thread-topic: [RFC PATCH 2/6] Stop inlining VPD page codes

Reviewed-by: Owen Smith <owen.smith@xxxxxxxxxx>

________________________________________
From: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
Sent: 26 February 2026 10:59 AM
To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
Cc: Tu Dinh; Owen Smith
Subject: [RFC PATCH 2/6] Stop inlining VPD page codes

Use the constants from Storport.h instead.

Signed-off-by: Tu Dinh <ngoc-tu.dinh@xxxxxxxxxx>
---
 src/xenvbd/target.c | 40 ++++++++++++++++++++++++++++------------
 1 file changed, 28 insertions(+), 12 deletions(-)

diff --git a/src/xenvbd/target.c b/src/xenvbd/target.c
index 5a6c7be..1c6944f 100644
--- a/src/xenvbd/target.c
+++ b/src/xenvbd/target.c
@@ -741,7 +741,7 @@ TargetInquiry80(
         if (Length < sizeof(VPD_SERIAL_NUMBER_PAGE) + 4)
             return;

-        Data->PageCode      = 0x80;
+        Data->PageCode      = VPD_SERIAL_NUMBER;
         Data->PageLength    = 4;
         (VOID) RtlStringCbPrintfA(Serial,
                                   sizeof(Serial),
@@ -787,7 +787,7 @@ TargetInquiry83(
                      sizeof(VPD_IDENTIFICATION_DESCRIPTOR) + 16)
             return;

-        Data->PageCode = 0x83;
+        Data->PageCode = VPD_DEVICE_IDENTIFIERS;
         Data->PageLength = sizeof(VPD_IDENTIFICATION_DESCRIPTOR) + 16;

         Id->CodeSet         = VpdCodeSetAscii;
@@ -826,7 +826,7 @@ TargetInquiryB0(
     if (Length < sizeof(VPD_BLOCK_LIMITS_PAGE))
         return;

-    Data->PageCode = 0xB0;
+    Data->PageCode = VPD_BLOCK_LIMITS;
     Data->PageLength[1] = 0x3C; // as per spec

     *(PULONG)Data->OptimalUnmapGranularity = 
_byteswap_ulong(Features->DiscardGranularity);
@@ -859,7 +859,7 @@ TargetInquiryB1(
     if (Length < sizeof(VPD_BLOCK_DEVICE_CHARACTERISTICS_PAGE))
         return;

-    Data->PageCode = 0xB1;
+    Data->PageCode = VPD_BLOCK_DEVICE_CHARACTERISTICS;
     Data->PageLength = 0x3C; // as per spec

     Data->MediumRotationRateMsb = 0;
@@ -877,17 +877,33 @@ TargetInquiry(
 {
     if (Cdb_EVPD(Srb)) {
         switch (Cdb_PageCode(Srb)) {
-        case 0x00:  TargetInquiry00(Target, Srb);       break;
-        case 0x80:  TargetInquiry80(Target, Srb);       break;
-        case 0x83:  TargetInquiry83(Target, Srb);       break;
-        case 0xB0:  TargetInquiryB0(Target, Srb);       break;
-        case 0xB1:  TargetInquiryB1(Target, Srb);       break;
-        default:    Srb->SrbStatus = SRB_STATUS_ERROR;  break;
+        case VPD_SUPPORTED_PAGES:
+            TargetInquiry00(Target, Srb);
+            break;
+        case VPD_SERIAL_NUMBER:
+            TargetInquiry80(Target, Srb);
+            break;
+        case VPD_DEVICE_IDENTIFIERS:
+            TargetInquiry83(Target, Srb);
+            break;
+        case VPD_BLOCK_LIMITS:
+            TargetInquiryB0(Target, Srb);
+            break;
+        case VPD_BLOCK_DEVICE_CHARACTERISTICS:
+            TargetInquiryB1(Target, Srb);
+            break;
+        default:
+            Srb->SrbStatus = SRB_STATUS_ERROR;
+            break;
         }
     } else {
         switch (Cdb_PageCode(Srb)) {
-        case 0x00:  TargetInquiryStd(Target, Srb);      break;
-        default:    Srb->SrbStatus = SRB_STATUS_ERROR;  break;
+        case VPD_SUPPORTED_PAGES:
+            TargetInquiryStd(Target, Srb);
+            break;
+        default:
+            Srb->SrbStatus = SRB_STATUS_ERROR;
+            break;
         }
     }
 }
--
2.51.2.windows.1



--
Ngoc Tu Dinh | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.