summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorPeter Tribble <peter.tribble@gmail.com>2020-01-26 12:00:11 +0000
committerPeter Tribble <peter.tribble@gmail.com>2020-02-06 18:50:37 +0000
commit8af765f5897d30449b941438e8d833f02dac74f8 (patch)
treee1fdfb8cbd359677e3fd0ba7c58f698592776774 /usr/src
parent34173ec8d0147391124bee4bbc60ac00807c0377 (diff)
downloadillumos-gate-8af765f5897d30449b941438e8d833f02dac74f8.tar.gz
12252 remove sunfire-specific code from kstat(1m)
Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Gergő Doma <domag02@gmail.com> Approved by: Gordon Ross <gordon.w.ross@gmail.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs174
-rw-r--r--usr/src/cmd/stat/kstat/Makefile3
-rw-r--r--usr/src/cmd/stat/kstat/kstat.c168
-rw-r--r--usr/src/cmd/stat/kstat/kstat.h20
4 files changed, 9 insertions, 356 deletions
diff --git a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
index e93076d9ce..968f0b1e87 100644
--- a/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
+++ b/usr/src/cmd/perl/contrib/Sun/Solaris/Kstat/Kstat.xs
@@ -23,6 +23,7 @@
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014 Racktop Systems.
* Copyright 2019 OmniOS Community Edition (OmniOSce) Association.
+ * Copyright 2020 Peter Tribble.
*/
/*
@@ -85,9 +86,6 @@
/* Ultra-specific kstat includes */
#ifdef __sparc
#include <vm/hat_sfmmu.h> /* from /usr/platform/sun4u/include */
-#include <sys/simmstat.h> /* from /usr/platform/sun4u/include */
-#include <sys/sysctrl.h> /* from /usr/platform/sun4u/include */
-#include <sys/fhc.h> /* from /usr/include */
#endif
/*
@@ -548,169 +546,6 @@ save_sfmmu_tsbsize_stat(HV *self, kstat_t *kp, int strip_str)
#endif
/*
- * Definition in /usr/platform/sun4u/include/sys/simmstat.h
- */
-
-#ifdef __sparc
-static void
-save_simmstat(HV *self, kstat_t *kp, int strip_str)
-{
- uchar_t *simmstatp;
- SV *list;
- int i;
-
- /* PERL_ASSERT(kp->ks_ndata == 1); */
- PERL_ASSERT(kp->ks_data_size == sizeof (uchar_t) * SIMM_COUNT);
-
- list = newSVpv("", 0);
- for (i = 0, simmstatp = (uchar_t *)(kp->ks_data);
- i < SIMM_COUNT - 1; i++, simmstatp++) {
- sv_catpvf(list, "%d,", *simmstatp);
- }
- sv_catpvf(list, "%d", *simmstatp);
- hv_store(self, "status", 6, list, 0);
-}
-#endif
-
-/*
- * Used by save_temperature to make CSV lists from arrays of
- * short temperature values
- */
-
-#ifdef __sparc
-static SV *
-short_array_to_SV(short *shortp, int len)
-{
- SV *list;
-
- list = newSVpv("", 0);
- for (; len > 1; len--, shortp++) {
- sv_catpvf(list, "%d,", *shortp);
- }
- sv_catpvf(list, "%d", *shortp);
- return (list);
-}
-
-/*
- * Definition in /usr/platform/sun4u/include/sys/fhc.h
- */
-
-static void
-save_temperature(HV *self, kstat_t *kp, int strip_str)
-{
- struct temp_stats *tempsp;
-
- /* PERL_ASSERT(kp->ks_ndata == 1); */
- PERL_ASSERT(kp->ks_data_size == sizeof (struct temp_stats));
- tempsp = (struct temp_stats *)(kp->ks_data);
-
- SAVE_UINT32(self, tempsp, index);
- hv_store(self, "l1", 2, short_array_to_SV(tempsp->l1, L1_SZ), 0);
- hv_store(self, "l2", 2, short_array_to_SV(tempsp->l2, L2_SZ), 0);
- hv_store(self, "l3", 2, short_array_to_SV(tempsp->l3, L3_SZ), 0);
- hv_store(self, "l4", 2, short_array_to_SV(tempsp->l4, L4_SZ), 0);
- hv_store(self, "l5", 2, short_array_to_SV(tempsp->l5, L5_SZ), 0);
- SAVE_INT32(self, tempsp, max);
- SAVE_INT32(self, tempsp, min);
- SAVE_INT32(self, tempsp, state);
- SAVE_INT32(self, tempsp, temp_cnt);
- SAVE_INT32(self, tempsp, shutdown_cnt);
- SAVE_INT32(self, tempsp, version);
- SAVE_INT32(self, tempsp, trend);
- SAVE_INT32(self, tempsp, override);
-}
-#endif
-
-/*
- * Not actually defined anywhere - just a short. Yuck.
- */
-
-#ifdef __sparc
-static void
-save_temp_over(HV *self, kstat_t *kp, int strip_str)
-{
- short *shortp;
-
- /* PERL_ASSERT(kp->ks_ndata == 1); */
- PERL_ASSERT(kp->ks_data_size == sizeof (short));
-
- shortp = (short *)(kp->ks_data);
- hv_store(self, "override", 8, newSViv(*shortp), 0);
-}
-#endif
-
-/*
- * Defined in /usr/platform/sun4u/include/sys/sysctrl.h
- * (Well, sort of. Actually there's no structure, just a list of #defines
- * enumerating *some* of the array indexes.)
- */
-
-#ifdef __sparc
-static void
-save_ps_shadow(HV *self, kstat_t *kp, int strip_str)
-{
- uchar_t *ucharp;
-
- /* PERL_ASSERT(kp->ks_ndata == 1); */
- PERL_ASSERT(kp->ks_data_size == SYS_PS_COUNT);
-
- ucharp = (uchar_t *)(kp->ks_data);
- hv_store(self, "core_0", 6, newSViv(*ucharp++), 0);
- hv_store(self, "core_1", 6, newSViv(*ucharp++), 0);
- hv_store(self, "core_2", 6, newSViv(*ucharp++), 0);
- hv_store(self, "core_3", 6, newSViv(*ucharp++), 0);
- hv_store(self, "core_4", 6, newSViv(*ucharp++), 0);
- hv_store(self, "core_5", 6, newSViv(*ucharp++), 0);
- hv_store(self, "core_6", 6, newSViv(*ucharp++), 0);
- hv_store(self, "core_7", 6, newSViv(*ucharp++), 0);
- hv_store(self, "pps_0", 5, newSViv(*ucharp++), 0);
- hv_store(self, "clk_33", 6, newSViv(*ucharp++), 0);
- hv_store(self, "clk_50", 6, newSViv(*ucharp++), 0);
- hv_store(self, "v5_p", 4, newSViv(*ucharp++), 0);
- hv_store(self, "v12_p", 5, newSViv(*ucharp++), 0);
- hv_store(self, "v5_aux", 6, newSViv(*ucharp++), 0);
- hv_store(self, "v5_p_pch", 8, newSViv(*ucharp++), 0);
- hv_store(self, "v12_p_pch", 9, newSViv(*ucharp++), 0);
- hv_store(self, "v3_pch", 6, newSViv(*ucharp++), 0);
- hv_store(self, "v5_pch", 6, newSViv(*ucharp++), 0);
- hv_store(self, "p_fan", 5, newSViv(*ucharp++), 0);
-}
-#endif
-
-/*
- * Definition in /usr/platform/sun4u/include/sys/fhc.h
- */
-
-#ifdef __sparc
-static void
-save_fault_list(HV *self, kstat_t *kp, int strip_str)
-{
- struct ft_list *faultp;
- int i;
- char name[KSTAT_STRLEN + 7]; /* room for 999999 faults */
-
- /* PERL_ASSERT(kp->ks_ndata == 1); */
- /* PERL_ASSERT(kp->ks_data_size == sizeof (struct ft_list)); */
-
- for (i = 1, faultp = (struct ft_list *)(kp->ks_data);
- i <= 999999 && i <= kp->ks_data_size / sizeof (struct ft_list);
- i++, faultp++) {
- (void) snprintf(name, sizeof (name), "unit_%d", i);
- hv_store(self, name, strlen(name), newSViv(faultp->unit), 0);
- (void) snprintf(name, sizeof (name), "type_%d", i);
- hv_store(self, name, strlen(name), newSViv(faultp->type), 0);
- (void) snprintf(name, sizeof (name), "fclass_%d", i);
- hv_store(self, name, strlen(name), newSViv(faultp->fclass), 0);
- (void) snprintf(name, sizeof (name), "create_time_%d", i);
- hv_store(self, name, strlen(name),
- NEW_UV(faultp->create_time), 0);
- (void) snprintf(name, sizeof (name), "msg_%d", i);
- hv_store(self, name, strlen(name), newSVpv(faultp->msg, 0), 0);
- }
-}
-#endif
-
-/*
* We need to be able to find the function corresponding to a particular raw
* kstat. To do this we ignore the instance and glue the module and name
* together to form a composite key. We can then use the data in the kstat
@@ -721,7 +556,7 @@ save_fault_list(HV *self, kstat_t *kp, int strip_str)
* Note that some kstats include the instance number as part of the module
* and/or name. This could be construed as a bug. However, to work around this
* we omit any digits from the module and name as we build the table in
- * build_raw_kstat_loopup(), and we remove any digits from the module and name
+ * build_raw_kstat_lookup(), and we remove any digits from the module and name
* when we look up the functions in lookup_raw_kstat_fn()
*/
@@ -747,11 +582,6 @@ build_raw_kstat_lookup()
"unix:sfmmu_global_stat");
SAVE_FNP(raw_kstat_lookup, save_sfmmu_tsbsize_stat,
"unix:sfmmu_tsbsize_stat");
- SAVE_FNP(raw_kstat_lookup, save_simmstat, "unix:simm-status");
- SAVE_FNP(raw_kstat_lookup, save_temperature, "unix:temperature");
- SAVE_FNP(raw_kstat_lookup, save_temp_over, "unix:temperature override");
- SAVE_FNP(raw_kstat_lookup, save_ps_shadow, "unix:ps_shadow");
- SAVE_FNP(raw_kstat_lookup, save_fault_list, "unix:fault_list");
#endif
}
diff --git a/usr/src/cmd/stat/kstat/Makefile b/usr/src/cmd/stat/kstat/Makefile
index 668c8ffec8..c315bf7c2c 100644
--- a/usr/src/cmd/stat/kstat/Makefile
+++ b/usr/src/cmd/stat/kstat/Makefile
@@ -22,6 +22,8 @@
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
+# Copyright 2020 Peter tribble.
+#
PROG = kstat
OBJS = kstat.o
@@ -37,7 +39,6 @@ CERRWARN += -_gcc=-Wno-switch
CERRWARN += -_gcc=-Wno-parentheses
CPPFLAGS_sparc += -I$(SRC)/uts/sfmmu
-CPPFLAGS_sparc += -I$(SRC)/uts/sun4u/sunfire
CPPFLAGS += $(CPPFLAGS_$(MACH))
FILEMODE= 0555
diff --git a/usr/src/cmd/stat/kstat/kstat.c b/usr/src/cmd/stat/kstat/kstat.c
index 236437face..2276b9762a 100644
--- a/usr/src/cmd/stat/kstat/kstat.c
+++ b/usr/src/cmd/stat/kstat/kstat.c
@@ -24,6 +24,7 @@
* Copyright (c) 2013 David Hoeppner. All rights reserved.
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
* Copyright 2016 Joyent, Inc.
+ * Copyright 2020 Peter Tribble.
*/
/*
@@ -518,7 +519,7 @@ static kstat_raw_reader_t
lookup_raw_kstat_fn(char *module, char *name)
{
char key[KSTAT_STRLEN * 2];
- register char *f, *t;
+ register char *f, *t;
int n = 0;
for (f = module, t = key; *f != '\0'; f++, t++) {
@@ -1324,171 +1325,6 @@ save_sfmmu_tsbsize_stat(kstat_t *kp, ks_instance_t *ksi)
}
#endif
-#ifdef __sparc
-static void
-save_simmstat(kstat_t *kp, ks_instance_t *ksi)
-{
- uchar_t *simmstat;
- char *simm_buf;
- char *list = NULL;
- int i;
-
- assert(kp->ks_data_size == sizeof (uchar_t) * SIMM_COUNT);
-
- for (i = 0, simmstat = (uchar_t *)(kp->ks_data); i < SIMM_COUNT - 1;
- i++, simmstat++) {
- if (list == NULL) {
- (void) asprintf(&simm_buf, "%d,", *simmstat);
- } else {
- (void) asprintf(&simm_buf, "%s%d,", list, *simmstat);
- free(list);
- }
- list = simm_buf;
- }
-
- (void) asprintf(&simm_buf, "%s%d", list, *simmstat);
- SAVE_STRING_X(ksi, "status", simm_buf);
- free(list);
- free(simm_buf);
-}
-#endif
-
-#ifdef __sparc
-/*
- * Helper function for save_temperature().
- */
-static char *
-short_array_to_string(short *shortp, int len)
-{
- char *list = NULL;
- char *list_buf;
-
- for (; len > 1; len--, shortp++) {
- if (list == NULL) {
- (void) asprintf(&list_buf, "%hd,", *shortp);
- } else {
- (void) asprintf(&list_buf, "%s%hd,", list, *shortp);
- free(list);
- }
- list = list_buf;
- }
-
- (void) asprintf(&list_buf, "%s%hd", list, *shortp);
- free(list);
- return (list_buf);
-}
-
-static void
-save_temperature(kstat_t *kp, ks_instance_t *ksi)
-{
- struct temp_stats *temps = (struct temp_stats *)(kp->ks_data);
- char *buf;
-
- assert(kp->ks_data_size == sizeof (struct temp_stats));
-
- SAVE_UINT32(ksi, temps, index);
-
- buf = short_array_to_string(temps->l1, L1_SZ);
- SAVE_STRING_X(ksi, "l1", buf);
- free(buf);
-
- buf = short_array_to_string(temps->l2, L2_SZ);
- SAVE_STRING_X(ksi, "l2", buf);
- free(buf);
-
- buf = short_array_to_string(temps->l3, L3_SZ);
- SAVE_STRING_X(ksi, "l3", buf);
- free(buf);
-
- buf = short_array_to_string(temps->l4, L4_SZ);
- SAVE_STRING_X(ksi, "l4", buf);
- free(buf);
-
- buf = short_array_to_string(temps->l5, L5_SZ);
- SAVE_STRING_X(ksi, "l5", buf);
- free(buf);
-
- SAVE_INT32(ksi, temps, max);
- SAVE_INT32(ksi, temps, min);
- SAVE_INT32(ksi, temps, state);
- SAVE_INT32(ksi, temps, temp_cnt);
- SAVE_INT32(ksi, temps, shutdown_cnt);
- SAVE_INT32(ksi, temps, version);
- SAVE_INT32(ksi, temps, trend);
- SAVE_INT32(ksi, temps, override);
-}
-#endif
-
-#ifdef __sparc
-static void
-save_temp_over(kstat_t *kp, ks_instance_t *ksi)
-{
- short *sh = (short *)(kp->ks_data);
- char *value;
-
- assert(kp->ks_data_size == sizeof (short));
-
- (void) asprintf(&value, "%hu", *sh);
- SAVE_STRING_X(ksi, "override", value);
- free(value);
-}
-#endif
-
-#ifdef __sparc
-static void
-save_ps_shadow(kstat_t *kp, ks_instance_t *ksi)
-{
- uchar_t *uchar = (uchar_t *)(kp->ks_data);
-
- assert(kp->ks_data_size == SYS_PS_COUNT);
-
- SAVE_CHAR_X(ksi, "core_0", *uchar++);
- SAVE_CHAR_X(ksi, "core_1", *uchar++);
- SAVE_CHAR_X(ksi, "core_2", *uchar++);
- SAVE_CHAR_X(ksi, "core_3", *uchar++);
- SAVE_CHAR_X(ksi, "core_4", *uchar++);
- SAVE_CHAR_X(ksi, "core_5", *uchar++);
- SAVE_CHAR_X(ksi, "core_6", *uchar++);
- SAVE_CHAR_X(ksi, "core_7", *uchar++);
- SAVE_CHAR_X(ksi, "pps_0", *uchar++);
- SAVE_CHAR_X(ksi, "clk_33", *uchar++);
- SAVE_CHAR_X(ksi, "clk_50", *uchar++);
- SAVE_CHAR_X(ksi, "v5_p", *uchar++);
- SAVE_CHAR_X(ksi, "v12_p", *uchar++);
- SAVE_CHAR_X(ksi, "v5_aux", *uchar++);
- SAVE_CHAR_X(ksi, "v5_p_pch", *uchar++);
- SAVE_CHAR_X(ksi, "v12_p_pch", *uchar++);
- SAVE_CHAR_X(ksi, "v3_pch", *uchar++);
- SAVE_CHAR_X(ksi, "v5_pch", *uchar++);
- SAVE_CHAR_X(ksi, "p_fan", *uchar++);
-}
-#endif
-
-#ifdef __sparc
-static void
-save_fault_list(kstat_t *kp, ks_instance_t *ksi)
-{
- struct ft_list *fault;
- char name[KSTAT_STRLEN + 7];
- int i;
-
- for (i = 1, fault = (struct ft_list *)(kp->ks_data);
- i <= 999999 && i <= kp->ks_data_size / sizeof (struct ft_list);
- i++, fault++) {
- (void) snprintf(name, sizeof (name), "unit_%d", i);
- SAVE_INT32_X(ksi, name, fault->unit);
- (void) snprintf(name, sizeof (name), "type_%d", i);
- SAVE_INT32_X(ksi, name, fault->type);
- (void) snprintf(name, sizeof (name), "fclass_%d", i);
- SAVE_INT32_X(ksi, name, fault->fclass);
- (void) snprintf(name, sizeof (name), "create_time_%d", i);
- SAVE_HRTIME_X(ksi, name, fault->create_time);
- (void) snprintf(name, sizeof (name), "msg_%d", i);
- SAVE_STRING_X(ksi, name, fault->msg);
- }
-}
-#endif
-
static void
save_named(kstat_t *kp, ks_instance_t *ksi)
{
diff --git a/usr/src/cmd/stat/kstat/kstat.h b/usr/src/cmd/stat/kstat/kstat.h
index b59263398c..9fd2077dce 100644
--- a/usr/src/cmd/stat/kstat/kstat.h
+++ b/usr/src/cmd/stat/kstat/kstat.h
@@ -22,6 +22,7 @@
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* Copyright 2013 David Hoeppner. All rights reserved.
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2020 Peter Tribble.
*/
#ifndef _STAT_KSTAT_H
@@ -41,9 +42,6 @@
#ifdef __sparc
#include <vm/hat_sfmmu.h>
-#include <sys/simmstat.h>
-#include <sys/sysctrl.h>
-#include <sys/fhc.h>
#endif
#define KSTAT_DATA_HRTIME (KSTAT_DATA_STRING + 1)
@@ -85,7 +83,7 @@ typedef union ks_value {
nvpair_insert(I, #N, &v, KSTAT_DATA_UINT32); \
}
-#define SAVE_INT64(I, S, N) \
+#define SAVE_INT64(I, S, N) \
{ \
ks_value_t v; \
v.i64 = S->N; \
@@ -167,7 +165,7 @@ typedef struct ks_instance {
char ks_name[KSTAT_STRLEN];
char ks_module[KSTAT_STRLEN];
char ks_class[KSTAT_STRLEN];
- int ks_instance;
+ int ks_instance;
uchar_t ks_type;
hrtime_t ks_snaptime;
list_t ks_nvlist;
@@ -214,13 +212,6 @@ static void save_nfs(kstat_t *, ks_instance_t *);
#ifdef __sparc
static void save_sfmmu_global_stat(kstat_t *, ks_instance_t *);
static void save_sfmmu_tsbsize_stat(kstat_t *, ks_instance_t *);
-static void save_simmstat(kstat_t *, ks_instance_t *);
-/* Helper function for save_temperature() */
-static char *short_array_to_string(short *, int);
-static void save_temperature(kstat_t *, ks_instance_t *);
-static void save_temp_over(kstat_t *, ks_instance_t *);
-static void save_ps_shadow(kstat_t *, ks_instance_t *);
-static void save_fault_list(kstat_t *, ks_instance_t *);
#endif
/* Named kstat readers */
@@ -246,11 +237,6 @@ static struct {
#ifdef __sparc
{save_sfmmu_global_stat, "unix:sfmmu_global_stat"},
{save_sfmmu_tsbsize_stat, "unix:sfmmu_tsbsize_stat"},
- {save_simmstat, "unix:simm-status"},
- {save_temperature, "unix:temperature"},
- {save_temp_over, "unix:temperature override"},
- {save_ps_shadow, "unix:ps_shadow"},
- {save_fault_list, "unix:fault_list"},
#endif
{NULL, NULL},
};