|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |