Module Name:    src
Committed By:   palle
Date:           Mon Jan 10 20:14:54 UTC 2022

Modified Files:
        src/sys/arch/sparc64/include: sparc64.h
        src/sys/arch/sparc64/sparc64: ofw_machdep.c

Log Message:
sun4v: add function to retrieve hypervisor api version


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/sparc64/include/sparc64.h
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/sparc64/sparc64/ofw_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/sparc64/include/sparc64.h
diff -u src/sys/arch/sparc64/include/sparc64.h:1.14 src/sys/arch/sparc64/include/sparc64.h:1.15
--- src/sys/arch/sparc64/include/sparc64.h:1.14	Sat Jul  3 19:18:55 2021
+++ src/sys/arch/sparc64/include/sparc64.h	Mon Jan 10 20:14:54 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: sparc64.h,v 1.14 2021/07/03 19:18:55 palle Exp $	*/
+/*	$NetBSD: sparc64.h,v 1.15 2022/01/10 20:14:54 palle Exp $	*/
 
 /*
  * Copyright (C) 1996 Wolfgang Solfrank.
@@ -60,6 +60,7 @@ bool prom_has_stop_other(void);
 void prom_startcpu(u_int, void *, u_long);
 int prom_startcpu_by_cpuid(u_int, void *, u_long arg);
 uint64_t prom_set_sun4v_api_version(uint64_t, uint64_t, uint64_t, uint64_t *);
+uint64_t prom_get_sun4v_api_version(uint64_t, uint64_t *, uint64_t *);
 void prom_sun4v_soft_state_supported(void);
 
 #endif	/* _MACHINE_SPARC64_H_ */

Index: src/sys/arch/sparc64/sparc64/ofw_machdep.c
diff -u src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.47 src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.48
--- src/sys/arch/sparc64/sparc64/ofw_machdep.c:1.47	Sat Jul  3 19:18:55 2021
+++ src/sys/arch/sparc64/sparc64/ofw_machdep.c	Mon Jan 10 20:14:54 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: ofw_machdep.c,v 1.47 2021/07/03 19:18:55 palle Exp $	*/
+/*	$NetBSD: ofw_machdep.c,v 1.48 2022/01/10 20:14:54 palle Exp $	*/
 
 /*
  * Copyright (C) 1996 Wolfgang Solfrank.
@@ -34,7 +34,7 @@
 #include "opt_multiprocessor.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ofw_machdep.c,v 1.47 2021/07/03 19:18:55 palle Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ofw_machdep.c,v 1.48 2022/01/10 20:14:54 palle Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -676,7 +676,35 @@ prom_set_sun4v_api_version(uint64_t api_
 	*supported_minor = args.supported_minor;
 	return (uint64_t)args.status;
 }
+#if 1
+uint64_t
+prom_get_sun4v_api_version(uint64_t api_group, uint64_t* major, uint64_t* minor)
+{
+	static struct {
+		cell_t  name;
+		cell_t  nargs;
+		cell_t  nreturns;
+		cell_t  api_group;
+		cell_t	status;
+		cell_t  major;
+		cell_t  minor;
+	} args;
 
+	args.name = ADR2CELL("SUNW,get-sun4v-api-version");
+	args.nargs = 1;
+	args.nreturns = 3;
+	args.api_group = api_group;
+	args.status = -1;
+	args.major = -1;
+	args.minor = -1;
+
+	openfirmware(&args);
+
+	*major = args.major;
+	*minor = args.minor;
+	return (uint64_t)args.status;
+}
+#endif
 void
 prom_sun4v_soft_state_supported(void)
 {

Reply via email to