a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync/*
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * Copyright © 2006-2007 Daniel Stone
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync *
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * Permission is hereby granted, free of charge, to any person obtaining a
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * copy of this software and associated documentation files (the "Software"),
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * to deal in the Software without restriction, including without limitation
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * and/or sell copies of the Software, and to permit persons to whom the
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * Software is furnished to do so, subject to the following conditions:
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync *
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * The above copyright notice and this permission notice (including the next
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * paragraph) shall be included in all copies or substantial portions of the
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * Software.
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync *
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * DEALINGS IN THE SOFTWARE.
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync *
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync * Author: Daniel Stone <daniel@fooishbar.org>
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync */
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#ifdef HAVE_DIX_CONFIG_H
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#include <dix-config.h>
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#endif
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#include "input.h"
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#include "list.h"
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid remove_devices(const char *backend, const char *config_info);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncBOOL device_is_duplicate(const char *config_info);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#ifdef CONFIG_UDEV
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncint config_udev_pre_init(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncint config_udev_init(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid config_udev_fini(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid config_udev_odev_probe(config_odev_probe_proc_ptr probe_callback);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#else
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#ifdef CONFIG_NEED_DBUS
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#include <dbus/dbus.h>
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsynctypedef void (*config_dbus_core_connect_hook) (DBusConnection * connection,
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync void *data);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsynctypedef void (*config_dbus_core_disconnect_hook) (void *data);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncstruct config_dbus_core_hook {
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync config_dbus_core_connect_hook connect;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync config_dbus_core_disconnect_hook disconnect;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync void *data;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync struct config_dbus_core_hook *next;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync};
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncint config_dbus_core_init(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid config_dbus_core_fini(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncint config_dbus_core_add_hook(struct config_dbus_core_hook *hook);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid config_dbus_core_remove_hook(struct config_dbus_core_hook *hook);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#endif
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#ifdef CONFIG_DBUS_API
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncint config_dbus_init(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid config_dbus_fini(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#endif
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#ifdef CONFIG_HAL
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncint config_hal_init(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid config_hal_fini(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#endif
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#endif
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#ifdef CONFIG_WSCONS
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncint config_wscons_init(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncvoid config_wscons_fini(void);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#endif