/* * * oFono - Open Source Telephony * * Copyright (C) 2008-2009 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * */ #ifdef HAVE_CONFIG_H #include #endif #include #define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE #include #include #define OFONO_API_SUBJECT_TO_CHANGE #include #include static struct udev *udev_ctx; static struct udev_monitor *udev_mon; static int udev_init(void) { udev_ctx = udev_new(); if (udev_ctx == NULL) { ofono_error("Failed to create udev context"); return -EIO; } udev_mon = udev_monitor_new_from_netlink(udev_ctx, "udev"); if (udev_mon == NULL) { ofono_error("Failed to create udev monitor"); udev_unref(udev_ctx); udev_ctx = NULL; return -EIO; } return 0; } static void udev_exit(void) { if (udev_ctx == NULL) return; udev_monitor_unref(udev_mon); udev_unref(udev_ctx); } OFONO_PLUGIN_DEFINE(udev, "udev hardware detection", VERSION, OFONO_PLUGIN_PRIORITY_DEFAULT, udev_init, udev_exit)