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_parent(udev_device * udev_device)30 udev_device* Udev1Loader::udev_device_get_parent(udev_device* udev_device) {
31 return lib_loader_->udev_device_get_parent(udev_device);
32 }
33
udev_device_get_parent_with_subsystem_devtype(udev_device * udev_device,const char * subsystem,const char * devtype)34 udev_device* Udev1Loader::udev_device_get_parent_with_subsystem_devtype(
35 udev_device* udev_device,
36 const char* subsystem,
37 const char* devtype) {
38 return lib_loader_->udev_device_get_parent_with_subsystem_devtype(
39 udev_device, subsystem, devtype);
40 }
41
udev_device_get_property_value(udev_device * udev_device,const char * key)42 const char* Udev1Loader::udev_device_get_property_value(
43 udev_device* udev_device,
44 const char* key) {
45 return lib_loader_->udev_device_get_property_value(udev_device, key);
46 }
47
udev_device_get_subsystem(udev_device * udev_device)48 const char* Udev1Loader::udev_device_get_subsystem(udev_device* udev_device) {
49 return lib_loader_->udev_device_get_subsystem(udev_device);
50 }
51
udev_device_get_sysattr_value(udev_device * udev_device,const char * sysattr)52 const char* Udev1Loader::udev_device_get_sysattr_value(udev_device* udev_device,
53 const char* sysattr) {
54 return lib_loader_->udev_device_get_sysattr_value(udev_device, sysattr);
55 }
56
udev_device_get_sysname(udev_device * udev_device)57 const char* Udev1Loader::udev_device_get_sysname(udev_device* udev_device) {
58 return lib_loader_->udev_device_get_sysname(udev_device);
59 }
60
udev_device_get_syspath(udev_device * udev_device)61 const char* Udev1Loader::udev_device_get_syspath(udev_device* udev_device) {
62 return lib_loader_->udev_device_get_syspath(udev_device);
63 }
64
udev_device_new_from_devnum(udev * udev,char type,dev_t devnum)65 udev_device* Udev1Loader::udev_device_new_from_devnum(udev* udev,
66 char type,
67 dev_t devnum) {
68 return lib_loader_->udev_device_new_from_devnum(udev, type, devnum);
69 }
70
udev_device_new_from_subsystem_sysname(udev * udev,const char * subsystem,const char * sysname)71 udev_device* Udev1Loader::udev_device_new_from_subsystem_sysname(
72 udev* udev,
73 const char* subsystem,
74 const char* sysname) {
75 return lib_loader_->udev_device_new_from_subsystem_sysname(
76 udev, subsystem, sysname);
77 }
78
udev_device_new_from_syspath(udev * udev,const char * syspath)79 udev_device* Udev1Loader::udev_device_new_from_syspath(udev* udev,
80 const char* syspath) {
81 return lib_loader_->udev_device_new_from_syspath(udev, syspath);
82 }
83
udev_device_unref(udev_device * udev_device)84 void Udev1Loader::udev_device_unref(udev_device* udev_device) {
85 lib_loader_->udev_device_unref(udev_device);
86 }
87
udev_enumerate_add_match_subsystem(udev_enumerate * udev_enumerate,const char * subsystem)88 int Udev1Loader::udev_enumerate_add_match_subsystem(
89 udev_enumerate* udev_enumerate,
90 const char* subsystem) {
91 return lib_loader_->udev_enumerate_add_match_subsystem(udev_enumerate,
92 subsystem);
93 }
94
udev_enumerate_get_list_entry(udev_enumerate * udev_enumerate)95 udev_list_entry* Udev1Loader::udev_enumerate_get_list_entry(
96 udev_enumerate* udev_enumerate) {
97 return lib_loader_->udev_enumerate_get_list_entry(udev_enumerate);
98 }
99
udev_enumerate_new(udev * udev)100 udev_enumerate* Udev1Loader::udev_enumerate_new(udev* udev) {
101 return lib_loader_->udev_enumerate_new(udev);
102 }
103
udev_enumerate_scan_devices(udev_enumerate * udev_enumerate)104 int Udev1Loader::udev_enumerate_scan_devices(udev_enumerate* udev_enumerate) {
105 return lib_loader_->udev_enumerate_scan_devices(udev_enumerate);
106 }
107
udev_enumerate_unref(udev_enumerate * udev_enumerate)108 void Udev1Loader::udev_enumerate_unref(udev_enumerate* udev_enumerate) {
109 lib_loader_->udev_enumerate_unref(udev_enumerate);
110 }
111
udev_list_entry_get_next(udev_list_entry * list_entry)112 udev_list_entry* Udev1Loader::udev_list_entry_get_next(
113 udev_list_entry* list_entry) {
114 return lib_loader_->udev_list_entry_get_next(list_entry);
115 }
116
udev_list_entry_get_name(udev_list_entry * list_entry)117 const char* Udev1Loader::udev_list_entry_get_name(udev_list_entry* list_entry) {
118 return lib_loader_->udev_list_entry_get_name(list_entry);
119 }
120
udev_monitor_enable_receiving(udev_monitor * udev_monitor)121 int Udev1Loader::udev_monitor_enable_receiving(udev_monitor* udev_monitor) {
122 return lib_loader_->udev_monitor_enable_receiving(udev_monitor);
123 }
124
udev_monitor_filter_add_match_subsystem_devtype(udev_monitor * udev_monitor,const char * subsystem,const char * devtype)125 int Udev1Loader::udev_monitor_filter_add_match_subsystem_devtype(
126 udev_monitor* udev_monitor,
127 const char* subsystem,
128 const char* devtype) {
129 return lib_loader_->udev_monitor_filter_add_match_subsystem_devtype(
130 udev_monitor, subsystem, devtype);
131 }
132
udev_monitor_get_fd(udev_monitor * udev_monitor)133 int Udev1Loader::udev_monitor_get_fd(udev_monitor* udev_monitor) {
134 return lib_loader_->udev_monitor_get_fd(udev_monitor);
135 }
136
udev_monitor_new_from_netlink(udev * udev,const char * name)137 udev_monitor* Udev1Loader::udev_monitor_new_from_netlink(udev* udev,
138 const char* name) {
139 return lib_loader_->udev_monitor_new_from_netlink(udev, name);
140 }
141
udev_monitor_receive_device(udev_monitor * udev_monitor)142 udev_device* Udev1Loader::udev_monitor_receive_device(
143 udev_monitor* udev_monitor) {
144 return lib_loader_->udev_monitor_receive_device(udev_monitor);
145 }
146
udev_monitor_unref(udev_monitor * udev_monitor)147 void Udev1Loader::udev_monitor_unref(udev_monitor* udev_monitor) {
148 lib_loader_->udev_monitor_unref(udev_monitor);
149 }
150
udev_new()151 udev* Udev1Loader::udev_new() {
152 return lib_loader_->udev_new();
153 }
154
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))155 void Udev1Loader::udev_set_log_fn(
156 struct udev* udev,
157 void (*log_fn)(struct udev* udev, int priority,
158 const char* file, int line,
159 const char* fn, const char* format, va_list args)) {
160 return lib_loader_->udev_set_log_fn(udev, log_fn);
161 }
162
udev_set_log_priority(struct udev * udev,int priority)163 void Udev1Loader::udev_set_log_priority(struct udev* udev, int priority) {
164 return lib_loader_->udev_set_log_priority(udev, priority);
165 }
166
udev_unref(udev * udev)167 void Udev1Loader::udev_unref(udev* udev) {
168 lib_loader_->udev_unref(udev);
169 }
170
171 } // namespace device
172