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) {