aboutsummaryrefslogtreecommitdiff
path: root/includes/udisks2_util.h
blob: 9b26f6dd1369d1790fd0f8c69c5d7e82660f6bed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "vendor.h"

typedef struct udiskp {
    gchar *block;
    gchar *type;
    gchar *version;
    gchar *label;
    guint64 size;
    struct udiskp* next;
} udiskp;

enum{
    UDSK_INTPVAL_SKIP          = 0,
    UDSK_INTPVAL_DIMENSIONLESS = 1,
    UDSK_INTPVAL_MILISECONDS   = 2,
    UDSK_INTPVAL_HOURS         = 3,
    UDSK_INTPVAL_SECTORS       = 4,
    UDSK_INTPVAL_CELSIUS       = 5,
};

typedef struct udisksa {
    guint8 id;
    gchar *identifier;
    gint value;
    gint worst;
    gint threshold;
    gint64 interpreted;
    guint8 interpreted_unit; // enum
    struct udisksa* next;
} udisksa;

typedef struct udiskd {
    gchar *model;
    gchar *vendor;
    gchar *revision;
    gchar *block_dev;
    gchar *serial;
    gchar *wwid;
    gchar *connection_bus;
    gchar *partition_table;
    udiskp *partitions;
    gboolean ejectable;
    gboolean removable;
    gint32 rotation_rate;
    guint64 size;
    gchar *media;
    gchar **media_compatibility;
    gboolean pm_supported;
    gboolean aam_supported;
    gboolean apm_supported;
    gboolean smart_supported;
    gboolean smart_enabled;
    gboolean smart_failing;
    guint64 smart_poweron;
    gint64 smart_bad_sectors;
    gint32 smart_temperature;
    udisksa *smart_attributes;
} udiskd;

typedef struct udiskt {
    gchar *drive;
    gint32 temperature;
} udiskt;
void udisks2_init();
void udisks2_shutdown();
GSList *get_udisks2_temps();
GSList *get_udisks2_all_drives_info();
void udiskt_free(udiskt *u);
void udiskd_free(udiskd *u);