1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "device/udev_linux/udev1_loader.h"
6
7 #include "library_loaders/libudev1.h"
8
9 namespace device {
10
11 Udev1Loader::Udev1Loader() = default;
12
13 Udev1Loader::~Udev1Loader() = default;
14
Init()15 bool Udev1Loader::Init() {
16 if (lib_loader_)
17 return lib_loader_->loaded();
18 lib_loader_.reset(new LibUdev1Loader);
19 return lib_loader_->Load("libudev.so.1");
20 }
21
udev_device_get_action(udev_device * udev_device)22 const char* Udev1Loader::udev_device_get_action(udev_device* udev_device) {
23 return lib_loader_->udev_device_get_action(udev_device);
24 }
25
udev_device_get_devnode(udev_device * udev_device)26 const char* Udev1Loader::udev_device_get_devnode(udev_device* udev_device) {
27 return lib_loader_->udev_device_get_devnode(udev_device);
28 }
29
udev_device_get_devtype(udev_device * udev_device)30 const char* Udev1Loader::udev_device_get_devtype(udev_device* udev_device) {
31 return lib_loader_->udev_device_get_devtype(udev_device);
32 }
33
udev_device_get_parent(udev_device * udev_device)34 udev_device* Udev1Loader::udev_device_get_parent(udev_device* udev_device) {
35 return lib_loader_->udev_device_get_parent(udev_device);
36 }
37
udev_device_get_parent_with_subsystem_devtype(udev_device * udev_device,const char * subsystem,const char * devtype)38 udev_device* Udev1Loader::udev_device_get_parent_with_subsystem_devtype(
39 udev_device* udev_device,
40 const char* subsystem,
41 const char* devtype) {
42 return lib_loader_->udev_device_get_parent_with_subsystem_devtype(
43 udev_device, subsystem, devtype);
44 }
45
udev_device_get_property_value(udev_device * udev_device,const char * key)46 const char* Udev1Loader::udev_device_get_property_value(
47 udev_device* udev_device,
48 const char* key) {
49 return lib_loader_->udev_device_get_property_value(udev_device, key);
50 }
51
udev_device_get_subsystem(udev_device * udev_device)52 const char* Udev1Loader::udev_device_get_subsystem(udev_device* udev_device) {
53 return lib_loader_->udev_device_get_subsystem(udev_device);
54 }
55
udev_device_get_sysattr_value(udev_device * udev_device,const char * sysattr)56 const char* Udev1Loader::udev_device_get_sysattr_value(udev_device* udev_device,
57 const char* sysattr) {
58 return lib_loader_->udev_device_get_sysattr_value(udev_device, sysattr);
59 }
60
udev_device_get_sysname(udev_device * udev_device)61 const char* Udev1Loader::udev_device_get_sysname(udev_device* udev_device) {
62 return lib_loader_->udev_device_get_sysname(udev_device);
63 }
64
udev_device_get_syspath(udev_device * udev_device)65 const char* Udev1Loader::udev_device_get_syspath(udev_device* udev_device) {
66 return lib_loader_->udev_device_get_syspath(udev_device);
67 }
68
udev_device_new_from_devnum(udev * udev,char type,dev_t devnum)69 udev_device* Udev1Loader::udev_device_new_from_devnum(udev* udev,
70 char type,
71 dev_t devnum) {
72 return lib_loader_->udev_device_new_from_devnum(udev, type, devnum);
73 }
74
udev_device_new_from_subsystem_sysname(udev * udev,const char * subsystem,const char * sysname)75 udev_device* Udev1Loader::udev_device_new_from_subsystem_sysname(
76 udev* udev,
77 const char* subsystem,
78 const char* sysname) {
79 return lib_loader_->udev_device_new_from_subsystem_sysname(
80 udev, subsystem, sysname);
81 }
82
udev_device_new_from_syspath(udev * udev,const char * syspath)83 udev_device* Udev1Loader::udev_device_new_from_syspath(udev* udev,
84 const char* syspath) {
85 return lib_loader_->udev_device_new_from_syspath(udev, syspath);
86 }
87
udev_device_unref(udev_device * udev_device)88 void Udev1Loader::udev_device_unref(udev_device* udev_device) {
89 lib_loader_->udev_device_unref(udev_device);
90 }
91
udev_enumerate_add_match_subsystem(udev_enumerate * udev_enumerate,const char * subsystem)92 int Udev1Loader::udev_enumerate_add_match_subsystem(
93 udev_enumerate* udev_enumerate,
94 const char* subsystem) {
95 return lib_loader_->udev_enumerate_add_match_subsystem(udev_enumerate,
96 subsystem);
97 }
98
udev_enumerate_get_list_entry(udev_enumerate * udev_enumerate)99 udev_list_entry* Udev1Loader::udev_enumerate_get_list_entry(
100 udev_enumerate* udev_enumerate) {
101 return lib_loader_->udev_enumerate_get_list_entry(udev_enumerate);
102 }
103
udev_enumerate_new(udev * udev)104 udev_enumerate* Udev1Loader::udev_enumerate_new(udev* udev) {
105 return lib_loader_->udev_enumerate_new(udev);
106 }
107
udev_enumerate_scan_devices(udev_enumerate * udev_enumerate)108 int Udev1Loader::udev_enumerate_scan_devices(udev_enumerate* udev_enumerate) {
109 return lib_loader_->udev_enumerate_scan_devices(udev_enumerate);
110 }
111
udev_enumerate_unref(udev_enumerate * udev_enumerate)112 void Udev1Loader::udev_enumerate_unref(udev_enumerate* udev_enumerate) {
113 lib_loader_->udev_enumerate_unref(udev_enumerate);
114 }
115
udev_list_entry_get_next(udev_list_entry * list_entry)116 udev_list_entry* Udev1Loader::udev_list_entry_get_next(
117 udev_list_entry* list_entry) {
118 return lib_loader_->udev_list_entry_get_next(list_entry);
119 }
120
udev_list_entry_get_name(udev_list_entry * list_entry)121 const char* Udev1Loader::udev_list_entry_get_name(udev_list_entry* list_entry) {
122 return lib_loader_->udev_list_entry_get_name(list_entry);
123 }
124
udev_monitor_enable_receiving(udev_monitor * udev_monitor)125 int Udev1Loader::udev_monitor_enable_receiving(udev_monitor* udev_monitor) {
126 return lib_loader_->udev_monitor_enable_receiving(udev_monitor);
127 }
128
udev_monitor_filter_add_match_subsystem_devtype(udev_monitor * udev_monitor,const char * subsystem,const char * devtype)129 int Udev1Loader::udev_monitor_filter_add_match_subsystem_devtype(
130 udev_monitor* udev_monitor,
131 const char* subsystem,
132 const char* devtype) {
133 return lib_loader_->udev_monitor_filter_add_match_subsystem_devtype(
134 udev_monitor, subsystem, devtype);
135 }
136
udev_monitor_get_fd(udev_monitor * udev_monitor)137 int Udev1Loader::udev_monitor_get_fd(udev_monitor* udev_monitor) {
138 return lib_loader_->udev_monitor_get_fd(udev_monitor);
139 }
140
udev_monitor_new_from_netlink(udev * udev,const char * name)141 udev_monitor* Udev1Loader::udev_monitor_new_from_netlink(udev* udev,
142 const char* name) {
143 return lib_loader_->udev_monitor_new_from_netlink(udev, name);
144 }
145
udev_monitor_receive_device(udev_monitor * udev_monitor)146 udev_device* Udev1Loader::udev_monitor_receive_device(
147 udev_monitor* udev_monitor) {
148 return lib_loader_->udev_monitor_receive_device(udev_monitor);
149 }
150
udev_monitor_unref(udev_monitor * udev_monitor)151 void Udev1Loader::udev_monitor_unref(udev_monitor* udev_monitor) {
152 lib_loader_->udev_monitor_unref(udev_monitor);
153 }
154
udev_new()155 udev* Udev1Loader::udev_new() {
156 return lib_loader_->udev_new();
157 }
158
udev_set_log_fn(struct udev * udev,void (* log_fn)(struct udev * udev,int priority,const char * file,int line,const char * fn,const char * format,va_list args))159 void Udev1Loader::udev_set_log_fn(
160 struct udev* udev,
161 void (*log_fn)(struct udev* udev, int priority,
162 const char* file, int line,
163 const char* fn, const char* format, va_list args)) {
164 return lib_loader_->udev_set_log_fn(udev, log_fn);
165 }
166
udev_set_log_priority(struct udev * udev,int priority)167 void Udev1Loader::udev_set_log_priority(struct udev* udev, int priority) {
168 return lib_loader_->udev_set_log_priority(udev, priority);
169 }
170
udev_unref(udev * udev)171 void Udev1Loader::udev_unref(udev* udev) {
172 lib_loader_->udev_unref(udev);
173 }
174
175 } // namespace device
176