diff options
author | INSUN PYO <insun.pyo@samsung.com> | 2021-02-03 15:31:45 +0900 |
---|---|---|
committer | INSUN PYO <insun.pyo@samsung.com> | 2021-02-03 15:31:45 +0900 |
commit | 8333436f5330840dd5c4b80eab75fdf5e355456c (patch) | |
tree | c0640d5fca032cbd881c25bb3418dca3c8af6fc5 | |
parent | 9602581e7443569f3a1ca404852acb6c5aec2d28 (diff) | |
download | device-rpi-8333436f5330840dd5c4b80eab75fdf5e355456c.tar.gz device-rpi-8333436f5330840dd5c4b80eab75fdf5e355456c.tar.bz2 device-rpi-8333436f5330840dd5c4b80eab75fdf5e355456c.zip |
spec: remove unused pkgconfig(libudev) build dependency
Change-Id: I0f054ccd8b2d2fad46605c5aac361be5a1a77528
-rw-r--r-- | hw/thermal/CMakeLists.txt | 4 | ||||
-rw-r--r-- | hw/udev.c | 299 | ||||
-rw-r--r-- | hw/udev.h | 43 | ||||
-rw-r--r-- | packaging/device-manager-plugin-rpi3.spec | 3 |
4 files changed, 3 insertions, 346 deletions
diff --git a/hw/thermal/CMakeLists.txt b/hw/thermal/CMakeLists.txt index 4584579..990ebdd 100644 --- a/hw/thermal/CMakeLists.txt +++ b/hw/thermal/CMakeLists.txt @@ -6,7 +6,7 @@ SET(PREFIX ${CMAKE_INSTALL_PREFIX}) INCLUDE_DIRECTORIES(../common) INCLUDE(FindPkgConfig) -pkg_check_modules(hal-backend-device-thermal_pkgs REQUIRED dlog glib-2.0 libudev) +pkg_check_modules(hal-backend-device-thermal_pkgs REQUIRED dlog glib-2.0) FOREACH(flag ${hal-backend-device-thermal_pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") @@ -15,6 +15,6 @@ ENDFOREACH(flag) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") -ADD_LIBRARY(${PROJECT_NAME} MODULE thermal.c ../udev.c) +ADD_LIBRARY(${PROJECT_NAME} MODULE thermal.c) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${hal-backend-device-thermal_pkgs_LDFLAGS}) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${HAL_LIB_DIR} COMPONENT RuntimeLibraries) diff --git a/hw/udev.c b/hw/udev.c deleted file mode 100644 index 91d1aa2..0000000 --- a/hw/udev.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - * device-manager - * - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#include <stdio.h> -#include <stdbool.h> -#include <errno.h> -#include <libudev.h> -#include <glib.h> -#include <string.h> -#include "common.h" -#include "udev.h" - -#define EVENT_KERNEL "kernel" -#define EVENT_UDEV "udev" - -#define UDEV_MONITOR_SIZE (128*1024) - -struct uevent_info { - struct udev_monitor *mon; - GIOChannel *ch; - guint eventid; - GList *event_list; -}; - - -/* Uevent */ -static struct udev *udev; -static struct uevent_info kevent; /* kernel */ -static struct uevent_info uevent; /* udev */ - -static gboolean uevent_control_cb(GIOChannel *channel, - GIOCondition cond, void *data) -{ - struct uevent_info *info = data; - struct udev_device *dev; - struct uevent_handler *l; - GList *elem; - const char *subsystem; - int len; - - if (!info) { - _E("data is invalid"); - return TRUE; - } - - dev = udev_monitor_receive_device(info->mon); - if (!dev) - return TRUE; - - subsystem = udev_device_get_subsystem(dev); - if (!subsystem) - goto out; - - len = strlen(subsystem); - - for (elem = info->event_list ; elem ; elem = g_list_next(elem)) { - l = elem->data; - if (!l) - continue; - if (!strncmp(l->subsystem, subsystem, len) && - l->uevent_func) - l->uevent_func(dev); - } - -out: - udev_device_unref(dev); - return TRUE; -} - -static int uevent_control_stop(struct uevent_info *info) -{ - struct udev_device *dev; - - if (!info) - return -EINVAL; - - if (info->eventid) { - g_source_remove(info->eventid); - info->eventid = 0; - } - if (info->ch) { - g_io_channel_unref(info->ch); - info->ch = NULL; - } - if (info->mon) { - dev = udev_monitor_receive_device(info->mon); - if (dev) - udev_device_unref(dev); - udev_monitor_unref(info->mon); - info->mon = NULL; - } - if (udev) - udev = udev_unref(udev); - return 0; -} - -static int uevent_control_start(const char *type, - struct uevent_info *info) -{ - struct uevent_handler *l; - GList *elem; - int fd; - int ret; - - if (!info) - return -EINVAL; - - if (info->mon) { - _E("%s uevent control routine is alreay started", type); - return -EINVAL; - } - - if (!udev) { - udev = udev_new(); - if (!udev) { - _E("error create udev"); - return -EINVAL; - } - } else - udev = udev_ref(udev); - - info->mon = udev_monitor_new_from_netlink(udev, type); - if (info->mon == NULL) { - _E("error udev_monitor create"); - goto stop; - } - - _I("Set udev monitor buffer size %d", UDEV_MONITOR_SIZE); - ret = udev_monitor_set_receive_buffer_size(info->mon, - UDEV_MONITOR_SIZE); - if (ret != 0) { - _E("fail to set receive buffer size"); - goto stop; - } - - for (elem = info->event_list ; elem ; elem = g_list_next(elem)) { - l = elem->data; - ret = udev_monitor_filter_add_match_subsystem_devtype( - info->mon, - l->subsystem, NULL); - if (ret < 0) { - _E("error apply subsystem filter"); - goto stop; - } - } - - ret = udev_monitor_filter_update(info->mon); - if (ret < 0) - _E("error udev_monitor_filter_update"); - - fd = udev_monitor_get_fd(info->mon); - if (fd == -1) { - _E("error udev_monitor_get_fd"); - goto stop; - } - - info->ch = g_io_channel_unix_new(fd); - info->eventid = g_io_add_watch(info->ch, - G_IO_IN, uevent_control_cb, info); - if (info->eventid == 0) { - _E("Failed to add channel watch"); - goto stop; - } - - if (udev_monitor_enable_receiving(info->mon) < 0) { - _E("error unable to subscribe to udev events"); - goto stop; - } - - return 0; -stop: - uevent_control_stop(info); - return -EINVAL; -} - -int uevent_control_kernel_start(void) -{ - return uevent_control_start(EVENT_KERNEL, &kevent); -} - -void uevent_control_kernel_stop(void) -{ - uevent_control_stop(&kevent); -} - -int uevent_control_udev_start(void) -{ - return uevent_control_start(EVENT_UDEV, &uevent); -} - -void uevent_control_udev_stop(void) -{ - uevent_control_stop(&uevent); -} - -static int register_uevent_control(struct uevent_info *info, - struct uevent_handler *uh) -{ - struct uevent_handler *l; - GList *elem; - int r; - bool matched = false; - int len; - - if (!info || !uh || !uh->subsystem) - return -EINVAL; - - /* if udev is not initialized, it just will be added list */ - if (!udev || !info->mon) - goto add_list; - - len = strlen(uh->subsystem); - /* check if the same subsystem is already added */ - for (elem = info->event_list; elem ; elem = g_list_next(elem)) { - l = elem->data; - if (!strncmp(l->subsystem, uh->subsystem, len)) { - matched = true; - break; - } - } - - /* the first request to add subsystem */ - if (!matched) { - r = udev_monitor_filter_add_match_subsystem_devtype(info->mon, - uh->subsystem, NULL); - if (r < 0) { - _E("fail to add %s subsystem : %d", uh->subsystem, r); - return -EPERM; - } - } - - r = udev_monitor_filter_update(info->mon); - if (r < 0) - _E("fail to update udev monitor filter : %d", r); - -add_list: - info->event_list = g_list_append(info->event_list, uh); - return 0; -} - -static int unregister_uevent_control(struct uevent_info *info, - const struct uevent_handler *uh) -{ - struct uevent_handler *l; - GList *n, *next; - int len; - - if (!info || !uh || !uh->subsystem) - return -EINVAL; - - len = strlen(uh->subsystem); - for (n = info->event_list, next = g_list_next(n) ; - n ; n = next, next = g_list_next(n)) { - l = n->data; - if (!strncmp(l->subsystem, uh->subsystem, len) && - l->uevent_func == uh->uevent_func) { - info->event_list = g_list_delete_link(info->event_list, n); - return 0; - } - } - - return -ENOENT; -} - -int register_kernel_event_control(struct uevent_handler *uh) -{ - return register_uevent_control(&kevent, uh); -} - -void unregister_kernel_event_control(struct uevent_handler *uh) -{ - unregister_uevent_control(&kevent, uh); -} - -int register_udev_event_control(struct uevent_handler *uh) -{ - return register_uevent_control(&uevent, uh); -} - -void unregister_udev_event_control(struct uevent_handler *uh) -{ - unregister_uevent_control(&uevent, uh); -} diff --git a/hw/udev.h b/hw/udev.h deleted file mode 100644 index d2aeff1..0000000 --- a/hw/udev.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * device-manager - * - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the License); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -#ifndef __UDEV_H__ -#define __UDEV_H__ - -#include <libudev.h> - -struct uevent_handler { - const char *subsystem; - void (*uevent_func)(struct udev_device *dev); - void *data; -}; - -int uevent_control_kernel_start(void); -void uevent_control_kernel_stop(void); - -int uevent_control_udev_start(void); -void uevent_control_udev_stop(void); - -int register_kernel_event_control(struct uevent_handler *uh); -void unregister_kernel_event_control(struct uevent_handler *uh); - -int register_udev_event_control(struct uevent_handler *uh); -void unregister_udev_event_control(struct uevent_handler *uh); - -#endif /* __UDEV_H__ */ diff --git a/packaging/device-manager-plugin-rpi3.spec b/packaging/device-manager-plugin-rpi3.spec index c44be69..83e8c06 100644 --- a/packaging/device-manager-plugin-rpi3.spec +++ b/packaging/device-manager-plugin-rpi3.spec @@ -11,7 +11,6 @@ Requires(postun): /sbin/ldconfig BuildRequires: cmake BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(glib-2.0) -BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(capi-system-peripheral-io) BuildRequires: pkgconfig(hal-api-common) BuildRequires: pkgconfig(hal-api-device) @@ -44,4 +43,4 @@ make %{?jobs:-j%jobs} %files %{_hal_libdir}/*.so* %manifest %{name}.manifest -%{_hal_licensedir}/%{name}/LICENSE
\ No newline at end of file +%{_hal_licensedir}/%{name}/LICENSE |