12
struct udev_enumerate *enumerate;
13
struct udev_list_entry *devices;
14
struct udev_list_entry *dev_list_entry;
15
struct udev_device *dev;
20
g_warning ("Cannot create udev");
24
enumerate = udev_enumerate_new (udev);
25
udev_enumerate_add_match_subsystem (enumerate, "dmi");
26
udev_enumerate_scan_devices (enumerate);
27
devices = udev_enumerate_get_list_entry (enumerate);
29
if (devices == NULL) {
30
g_warning("No dmi devices found.");
34
info = g_new0 (DmiInfo, 1);
36
udev_list_entry_foreach (dev_list_entry, devices) {
38
const char *attribute;
39
path = udev_list_entry_get_name (dev_list_entry);
40
dev = udev_device_new_from_syspath (udev, path);
42
attribute = udev_device_get_sysattr_value (dev, "sys_vendor");
44
info->sys_vendor = g_strdup (attribute);
46
attribute = udev_device_get_sysattr_value (dev, "bios_date");
48
info->bios_date = g_strdup (attribute);
50
attribute = udev_device_get_sysattr_value (dev, "bios_vendor");
52
info->bios_vendor = g_strdup (attribute);
54
attribute = udev_device_get_sysattr_value (dev, "bios_version");
56
info->bios_version = g_strdup (attribute);
58
attribute = udev_device_get_sysattr_value (dev, "product_name");
60
info->product_name = g_strdup (attribute);
62
attribute = udev_device_get_sysattr_value (dev, "product_version");
64
info->product_version = g_strdup (attribute);
66
udev_device_unref (dev);
69
udev_enumerate_unref (enumerate);
79
dmi_info_free (DmiInfo *info)
81
g_free (info->sys_vendor);
82
g_free (info->bios_date);
83
g_free (info->bios_vendor);
84
g_free (info->bios_version);
85
g_free (info->product_name);
86
g_free (info->product_version);
91
* get_rfkill_device_by_index:
94
get_rfkill_device_by_index (struct udev *udev,
97
struct udev_enumerate *enumerate;
98
struct udev_list_entry *devices;
99
struct udev_list_entry *dev_list_entry;
100
struct udev_device *dev;
102
enumerate = udev_enumerate_new(udev);
103
udev_enumerate_add_match_subsystem(enumerate, "rfkill");
104
udev_enumerate_scan_devices(enumerate);
105
devices = udev_enumerate_get_list_entry(enumerate);
107
udev_list_entry_foreach(dev_list_entry, devices) {
108
const char *path, *index_c;
109
path = udev_list_entry_get_name(dev_list_entry);
110
dev = udev_device_new_from_syspath(udev, path);
112
index_c = udev_device_get_sysattr_value (dev, "index");
113
if (index_c && atoi(index_c) == index)
116
udev_device_unref (dev);
124
event_to_state (gboolean soft,
128
return KILLSWITCH_STATE_HARD_BLOCKED;
130
return KILLSWITCH_STATE_SOFT_BLOCKED;
132
return KILLSWITCH_STATE_UNBLOCKED;
136
state_to_string (KillswitchState state)
139
case KILLSWITCH_STATE_NO_ADAPTER:
140
return "KILLSWITCH_STATE_NO_ADAPTER";
141
case KILLSWITCH_STATE_SOFT_BLOCKED:
142
return "KILLSWITCH_STATE_SOFT_BLOCKED";
143
case KILLSWITCH_STATE_UNBLOCKED:
144
return "KILLSWITCH_STATE_UNBLOCKED";
145
case KILLSWITCH_STATE_HARD_BLOCKED:
146
return "KILLSWITCH_STATE_HARD_BLOCKED";
148
g_assert_not_reached ();
153
type_to_string (guint type)
156
case RFKILL_TYPE_ALL:
158
case RFKILL_TYPE_WLAN:
160
case RFKILL_TYPE_BLUETOOTH:
162
case RFKILL_TYPE_UWB:
164
case RFKILL_TYPE_WIMAX:
166
case RFKILL_TYPE_WWAN:
168
case RFKILL_TYPE_GPS:
173
g_assert_not_reached ();