Display *display;
+static const char *PROVIDER_NAME = "nvctrl";
+
static char *get_product_name(int id, int type)
{
char *name;
NV_CTRL_STRING_PRODUCT_NAME,
&name);
if (res == True) {
- if (strcmp(name, "Unknown")) {
+ if (strcmp(name, "Unknown"))
return name;
- } else {
- log_err(_("Unknown NVIDIA product name for GPU %d"),
- id);
- free(name);
- }
+
+ log_err(_("Unknown NVIDIA product name for GPU %d"), id);
+ free(name);
} else {
log_err(_("Failed to retrieve NVIDIA product name for GPU %d"),
id);
if (res == True)
return temp;
- else
- return UNKNOWN_DBL_VALUE;
+
+ return UNKNOWN_DBL_VALUE;
}
static double get_usage_att(char *atts, const char *att)
if (type & SENSOR_TYPE_FAN) {
if (type & SENSOR_TYPE_RPM)
return "fan rpm";
- else
- return "fan level";
+
+ return "fan level";
}
return "unknown";
stype = get_nvidia_type_str(type);
n = strlen(pname) + 1 + strlen(strnid) + 1 + strlen(stype) + 1;
-
name = malloc(n);
sprintf(name, "%s %s %s", pname, strnid, stype);
- sid = malloc(strlen("nvidia") + 1 + strlen(name) + 1);
- sprintf(sid, "nvidia %s", name);
+ sid = malloc(strlen(PROVIDER_NAME) + 1 + strlen(name) + 1);
+ sprintf(sid, "%s %s", PROVIDER_NAME, name);
s = psensor_create(sid, name, pname, type, value_len);
s->nvidia_id = id;
while (*ss) {
s = *ss;
- if (s->type & SENSOR_TYPE_NVCTRL)
+ if (!(s->type & SENSOR_TYPE_REMOTE)
+ && s->type & SENSOR_TYPE_NVCTRL)
update(s);
ss++;
psensor_list_append(sensors, s);
}
-struct psensor **
-nvidia_psensor_list_add(struct psensor **ss, int values_len)
+void nvidia_psensor_list_append(struct psensor ***ss, int values_len)
{
int i, n, utype;
Bool ret;
if (!init())
- return ss;
+ return;
ret = XNVCTRLQueryTargetCount(display, NV_CTRL_TARGET_TYPE_GPU, &n);
if (ret == True) {
for (i = 0; i < n; i++) {
- add(&ss,
+ add(ss,
i,
SENSOR_TYPE_GPU | SENSOR_TYPE_TEMP,
values_len);
utype = SENSOR_TYPE_GPU | SENSOR_TYPE_PERCENT;
- add(&ss, i, utype | SENSOR_TYPE_AMBIENT, values_len);
- add(&ss, i, utype | SENSOR_TYPE_GRAPHICS, values_len);
- add(&ss, i, utype | SENSOR_TYPE_VIDEO, values_len);
- add(&ss, i, utype | SENSOR_TYPE_MEMORY, values_len);
- add(&ss, i, utype | SENSOR_TYPE_PCIE, values_len);
+ add(ss, i, utype | SENSOR_TYPE_AMBIENT, values_len);
+ add(ss, i, utype | SENSOR_TYPE_GRAPHICS, values_len);
+ add(ss, i, utype | SENSOR_TYPE_VIDEO, values_len);
+ add(ss, i, utype | SENSOR_TYPE_MEMORY, values_len);
+ add(ss, i, utype | SENSOR_TYPE_PCIE, values_len);
}
}
for (i = 0; i < n; i++) {
utype = SENSOR_TYPE_FAN | SENSOR_TYPE_RPM;
if (check_sensor(i, utype))
- add(&ss, i, utype, values_len);
+ add(ss, i, utype, values_len);
utype = SENSOR_TYPE_FAN | SENSOR_TYPE_PERCENT;
if (check_sensor(i, utype))
- add(&ss, i, utype, values_len);
+ add(ss, i, utype, values_len);
}
} else {
log_err(_("NVIDIA: failed to retrieve number of fans."));
}
-
- return ss;
}
void nvidia_cleanup()