blob: 77cc74441dd31cc74d394590d5b11717091af170 (
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
#include "udev.h"
#include <linux/stddef.h>
// --- cUdevListEntry --------------------------------------------------------
cUdevListEntry::cUdevListEntry(struct udev_list_entry *ListEntry)
:listEntry(ListEntry)
{
}
cUdevListEntry::~cUdevListEntry(void)
{
}
cUdevListEntry *cUdevListEntry::GetNext(void) const
{
if (listEntry == NULL)
return NULL;
struct udev_list_entry *next = udev_list_entry_get_next(listEntry);
if (next == NULL)
return NULL;
return new cUdevListEntry(next);
}
const char *cUdevListEntry::GetName(void) const
{
if (listEntry == NULL)
return NULL;
return udev_list_entry_get_name(listEntry);
}
const char *cUdevListEntry::GetValue(void) const
{
if (listEntry == NULL)
return NULL;
return udev_list_entry_get_value(listEntry);
}
// --- cUdevDevice -----------------------------------------------------------
cUdevDevice::cUdevDevice(udev_device *Device, bool DoUnref)
:device(Device)
,doUnref(DoUnref)
{
}
cUdevDevice::~cUdevDevice(void)
{
if (doUnref && device)
udev_device_unref(device);
}
const char *cUdevDevice::GetAction(void) const
{
if (device == NULL)
return NULL;
return udev_device_get_action(device);
}
cUdevListEntry *cUdevDevice::GetDevlinksList(void) const
{
if (device == NULL)
return NULL;
struct udev_list_entry *listEntry = udev_device_get_devlinks_list_entry(device);
if (listEntry == NULL)
return NULL;
return new cUdevListEntry(listEntry);
}
cUdevDevice *cUdevDevice::GetParent(void) const
{
if (device == NULL)
return NULL;
struct udev_device *parent = udev_device_get_parent(device);
if (parent == NULL)
return NULL;
return new cUdevDevice(parent, false);
}
const char *cUdevDevice::GetPropertyValue(const char *Key) const
{
if (device == NULL)
return false;
return udev_device_get_property_value(device, Key);
}
const char *cUdevDevice::GetSyspath(void) const
{
if (device == NULL)
return false;
return udev_device_get_syspath(device);
}
// --- cUdev -----------------------------------------------------------------
struct udev *cUdev::udev = NULL;
struct udev *cUdev::Init(void)
{
if (udev == NULL)
udev = udev_new();
return udev;
}
void cUdev::Free(void)
{
if (udev)
udev_unref(udev);
udev = NULL;
}
|