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