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

Re: [PATCH v6 14/44] x86/boot: introduce boot module interator


  • To: "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Jason Andryuk <jason.andryuk@xxxxxxx>
  • Date: Fri, 18 Oct 2024 10:09:31 -0400
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=apertussolutions.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • 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=+o1gKyVaiKlpwwJXfggBVrbogXfkx/SrodavCyaR8EM=; b=PEJ09QBVNrPpoIq6D+7ZiiQbSYGW8JrWtyhl2itm3pJCt/v+fwSH91BR7wjCLKj+x8XQ+N9/wF3tQpcZ28sxgw8pqn4bJL0d4UxxyizgdtDR9RwiUJ+5boVR30bh0SnRLPQYBrujwzuRiQQKBXNOLwb8/iLFSUmPO2SIoMUtsqiY9H27gJxsQq4LvnZTlWxbnPVmjZnkDqP3q/ir3EJstxOb5BKqEje2OXpKTDn0BBF97bLASVRhL+Z3ofyRCThV/YesNlkecrnrDIPoT1dW4UGLEAZ3J9EViUXAzwqIE/GPiGZ+0YWq3HTF8ujOM+UHw2D1YkA6f/mhNOvblsfCeg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NOT+JscgytH/tHjWQP8KtkKvZ7hEw3yA3Z/VBB6m/1VRTNVaLNG1x19siY6HVKXpZXiJVo+FsbHk2UmAUPmNcK6pPWZoUsmu8acg1MmVIe7g1unCECSYnK4cTIhZ6DBTgmjEV9azJZjYOq4G5OelJBo8EWchUZjO1JGNxRZJLE5BOPtGQu43TKo/YEa5bk0SV5ytmVjVK/ybtbHqfohQY8N30KuxukQMmJJjwOCGsBZIgqCF0jaWHUcP3YKOd6BCAVRZt4OqEl3XLm3l/M7kg44qwWvlJwId9aLv7hnpdJKyGiMvqVIQSBBmm7V+9Xc2k4tyr0TbmVlGrl9zMhPICA==
  • Cc: <christopher.w.clark@xxxxxxxxx>, <stefano.stabellini@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Delivery-date: Fri, 18 Oct 2024 14:09:43 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 2024-10-17 13:02, Daniel P. Smith wrote:
Provide an iterator to go through boot module array searching based on type.

Signed-off-by: Daniel P. Smith <dpsmith@xxxxxxxxxxxxxxxxxxxx>
---
Changes since v5:
- documented help next_boot_module_index
- switch to unsigned int for next_boot_module_index
- changes identified that BOOTMOD_XEN was not supported, so added support
---
  xen/arch/x86/include/asm/bootinfo.h | 29 ++++++++++++++++++++++++++++-
  1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/include/asm/bootinfo.h 
b/xen/arch/x86/include/asm/bootinfo.h
index 5862054b8cef..3010e6f4af9c 100644
--- a/xen/arch/x86/include/asm/bootinfo.h
+++ b/xen/arch/x86/include/asm/bootinfo.h
@@ -62,8 +62,35 @@ struct boot_info {
      struct boot_module mods[MAX_NR_BOOTMODS + 1];
  };
-#endif /* __XEN_X86_BOOTINFO_H__ */
+/*
+ * next_boot_module_index:
+ *     Finds the next boot module of type t, starting at array index start.
+ *
+ * Returns:
+ *      Success - index in boot_module array
+ *      Failure - a value greater than MAX_NR_BOOTMODS
+ */
+static inline unsigned int __init next_boot_module_index(
+    const struct boot_info *bi, enum bootmod_type t, unsigned int start)
+{
+    unsigned int i;
+
+    if ( t == BOOTMOD_XEN )
+        return MAX_NR_BOOTMODS;

Your earlier patch "x86/boot: convert mod refs to boot_module mod" put xen at bi->nr_modules. You'll want these to match.

Regards,
Jason

+ for ( i = start; i < bi->nr_modules; i++ )
+    {
+        if ( bi->mods[i].type == t )
+            return i;
+    }
+
+    return MAX_NR_BOOTMODS + 1;
+}
+
+#define first_boot_module_index(bi, t)              \
+    next_boot_module_index(bi, t, 0)
+
+#endif /* __XEN_X86_BOOTINFO_H__ */
  /*
   * Local variables:
   * mode: C



 


Rackspace

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