mirror of
https://github.com/Llewellynvdm/conky.git
synced 2024-11-17 18:45:10 +00:00
disk_protect - show queue protection state
* disk protection needs a kernel patch and is useful in combination with hdaps git-svn-id: https://conky.svn.sourceforge.net/svnroot/conky/trunk/conky1@1045 7f574dfc-610e-0410-a909-a81674777703
This commit is contained in:
parent
d6953f4864
commit
004d1cb7ba
@ -643,6 +643,10 @@ Displays current disk IO for writes. Device as in diskio.
|
|||||||
\fB\*(T<\fBdiskiograph_write\fR\*(T>\fR \*(T<\fB(device) (height),(width) (gradient colour 1) (gradient colour 2) (scale)\fR\*(T>
|
\fB\*(T<\fBdiskiograph_write\fR\*(T>\fR \*(T<\fB(device) (height),(width) (gradient colour 1) (gradient colour 2) (scale)\fR\*(T>
|
||||||
Disk IO graph for writes, colours defined in hex, minus the #. If scale is non-zero, it becomes the scale for the graph. Device as in diskio.
|
Disk IO graph for writes, colours defined in hex, minus the #. If scale is non-zero, it becomes the scale for the graph. Device as in diskio.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fB\*(T<\fBdisk_protect\fR\*(T>\fR \*(T<\fBdevice\fR\*(T>
|
||||||
|
Disk protection status, if supported (needs kernel-patch). Prints either "frozen" or "free " (note the padding).
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fB\*(T<\fBdownspeed\fR\*(T>\fR \*(T<\fBnet\fR\*(T>
|
\fB\*(T<\fBdownspeed\fR\*(T>\fR \*(T<\fBnet\fR\*(T>
|
||||||
Download speed in kilobytes
|
Download speed in kilobytes
|
||||||
|
@ -572,6 +572,17 @@
|
|||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>
|
<term>
|
||||||
|
<command><option>disk_protect</option></command>
|
||||||
|
<option>device</option>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
Disk protection status, if supported (needs kernel-patch). Prints either "frozen" or "free " (note the padding).
|
||||||
|
<para></para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
|
||||||
<command><option>downspeed</option></command>
|
<command><option>downspeed</option></command>
|
||||||
<option>net</option>
|
<option>net</option>
|
||||||
</term>
|
</term>
|
||||||
|
13
src/conky.c
13
src/conky.c
@ -1128,6 +1128,7 @@ enum text_object_type {
|
|||||||
OBJ_platform,
|
OBJ_platform,
|
||||||
OBJ_hwmon,
|
OBJ_hwmon,
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
OBJ_disk_protect,
|
||||||
OBJ_i8k_version,
|
OBJ_i8k_version,
|
||||||
OBJ_i8k_bios,
|
OBJ_i8k_bios,
|
||||||
OBJ_i8k_serial,
|
OBJ_i8k_serial,
|
||||||
@ -2049,6 +2050,9 @@ static void free_text_objects(unsigned int count, struct text_object *objs)
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
#ifdef __LINUX__
|
#ifdef __LINUX__
|
||||||
|
case OBJ_disk_protect:
|
||||||
|
free(objs[i].data.s);
|
||||||
|
break;
|
||||||
case OBJ_if_up:
|
case OBJ_if_up:
|
||||||
free(objs[i].data.ifblock.s);
|
free(objs[i].data.ifblock.s);
|
||||||
free(objs[i].data.ifblock.str);
|
free(objs[i].data.ifblock.str);
|
||||||
@ -2443,6 +2447,11 @@ static struct text_object *construct_text_object(const char *s,
|
|||||||
#endif /* !__OpenBSD__ */
|
#endif /* !__OpenBSD__ */
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
END OBJ(disk_protect, 0)
|
||||||
|
if (arg)
|
||||||
|
obj->data.s = strdup(arg);
|
||||||
|
else
|
||||||
|
CRIT_ERR("disk_protect needs an argument");
|
||||||
END OBJ(i8k_version, INFO_I8K)
|
END OBJ(i8k_version, INFO_I8K)
|
||||||
END OBJ(i8k_bios, INFO_I8K)
|
END OBJ(i8k_bios, INFO_I8K)
|
||||||
END OBJ(i8k_serial, INFO_I8K)
|
END OBJ(i8k_serial, INFO_I8K)
|
||||||
@ -4342,6 +4351,10 @@ static void generate_text_internal(char *p, int p_max_size,
|
|||||||
snprintf(p, p_max_size, "%s", BUILD_ARCH);
|
snprintf(p, p_max_size, "%s", BUILD_ARCH);
|
||||||
}
|
}
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
|
OBJ(disk_protect) {
|
||||||
|
snprintf(p, p_max_size, "%s",
|
||||||
|
get_disk_protect_queue(obj->data.s));
|
||||||
|
}
|
||||||
OBJ(i8k_version) {
|
OBJ(i8k_version) {
|
||||||
snprintf(p, p_max_size, "%s", i8k.version);
|
snprintf(p, p_max_size, "%s", i8k.version);
|
||||||
}
|
}
|
||||||
|
@ -584,6 +584,7 @@ void get_ibm_acpi_fan(char *buf, size_t client_buffer_size);
|
|||||||
void get_ibm_acpi_temps(void);
|
void get_ibm_acpi_temps(void);
|
||||||
void get_ibm_acpi_volume(char *buf, size_t client_buffer_size);
|
void get_ibm_acpi_volume(char *buf, size_t client_buffer_size);
|
||||||
void get_ibm_acpi_brightness(char *buf, size_t client_buffer_size);
|
void get_ibm_acpi_brightness(char *buf, size_t client_buffer_size);
|
||||||
|
char *get_disk_protect_queue(char *disk);
|
||||||
void get_cpu_count();
|
void get_cpu_count();
|
||||||
|
|
||||||
struct ibm_acpi_struct {
|
struct ibm_acpi_struct {
|
||||||
|
18
src/linux.c
18
src/linux.c
@ -2416,3 +2416,21 @@ void update_entropy(void)
|
|||||||
|
|
||||||
info.mask |= (1 << INFO_ENTROPY);
|
info.mask |= (1 << INFO_ENTROPY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *get_disk_protect_queue(char *disk)
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
char path[128];
|
||||||
|
int state;
|
||||||
|
|
||||||
|
snprintf(path, 127, "/sys/block/%s/queue/protect", disk);
|
||||||
|
if ((fp = fopen(path, "r")) == NULL)
|
||||||
|
return "n/a ";
|
||||||
|
if (fscanf(fp, "%d\n", &state) != 1) {
|
||||||
|
fclose(fp);
|
||||||
|
return "failed";
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
return state ? "frozen" : "free ";
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user