#include <sys/fm/protocol.h>
#include <fm/topo_mod.h>
#include <topo_sensor.h>
#include "topo_zen_impl.h"
static const char *sensor_base = "/dev/sensors/temperature/cpu";
int
topo_zen_create_tdie(topo_mod_t *mod, tnode_t *tn, const amdzen_topo_ccd_t *ccd)
{
char buf[PATH_MAX];
if (snprintf(buf, sizeof (buf), "%s/procnode.%u.die.%u", sensor_base,
ccd->atccd_dfno, ccd->atccd_phys_no) >= sizeof (buf)) {
return (topo_mod_seterrno(mod, EMOD_UNKNOWN));
}
return (topo_sensor_create_scalar_sensor(mod, tn, buf, "Tdie"));
}
int
topo_zen_create_tctl(topo_mod_t *mod, tnode_t *tn, const amdzen_topo_df_t *df)
{
char buf[PATH_MAX];
if (snprintf(buf, sizeof (buf), "%s/procnode.%u", sensor_base,
df->atd_dfno) >= sizeof (buf)) {
return (topo_mod_seterrno(mod, EMOD_UNKNOWN));
}
return (topo_sensor_create_scalar_sensor(mod, tn, buf, "Tctl"));
}