diff options
Diffstat (limited to 'xorg-server/include')
-rw-r--r-- | xorg-server/include/Makefile.am | 1 | ||||
-rw-r--r-- | xorg-server/include/dix-config.h.in | 6 | ||||
-rw-r--r-- | xorg-server/include/hotplug.h | 30 | ||||
-rw-r--r-- | xorg-server/include/systemd-logind.h | 45 |
4 files changed, 80 insertions, 2 deletions
diff --git a/xorg-server/include/Makefile.am b/xorg-server/include/Makefile.am index fa6da00ec..6578038a5 100644 --- a/xorg-server/include/Makefile.am +++ b/xorg-server/include/Makefile.am @@ -72,4 +72,5 @@ EXTRA_DIST = \ dix-config-apple-verbatim.h \ dixfontstubs.h eventconvert.h eventstr.h inpututils.h \ protocol-versions.h \ + systemd-logind.h \ xsha1.h diff --git a/xorg-server/include/dix-config.h.in b/xorg-server/include/dix-config.h.in index 7c77956b1..06455a837 100644 --- a/xorg-server/include/dix-config.h.in +++ b/xorg-server/include/dix-config.h.in @@ -420,6 +420,9 @@ /* Support HAL for hotplug */ #undef CONFIG_HAL +/* Enable systemd-logind integration */ +#undef SYSTEMD_LOGIND 1 + /* Have a monotonic clock from clock_gettime() */ #undef MONOTONIC_CLOCK @@ -481,4 +484,7 @@ /* Build GLAMOR */ #undef GLAMOR +/* Build glamor's GBM-based EGL support */ +#undef GLAMOR_HAS_GBM + #endif /* _DIX_CONFIG_H_ */ diff --git a/xorg-server/include/hotplug.h b/xorg-server/include/hotplug.h index 29a22c4da..1d9364eee 100644 --- a/xorg-server/include/hotplug.h +++ b/xorg-server/include/hotplug.h @@ -32,15 +32,20 @@ extern _X_EXPORT void config_pre_init(void); extern _X_EXPORT void config_init(void); extern _X_EXPORT void config_fini(void); +enum { ODEV_ATTRIB_STRING, ODEV_ATTRIB_INT }; + struct OdevAttribute { struct xorg_list member; int attrib_id; - char *attrib_name; + union { + char *attrib_name; + int attrib_value; + }; + int attrib_type; }; struct OdevAttributes { struct xorg_list list; - Bool unowned; }; struct OdevAttributes * @@ -53,6 +58,17 @@ Bool config_odev_add_attribute(struct OdevAttributes *attribs, int attrib, const char *attrib_name); +char * +config_odev_get_attribute(struct OdevAttributes *attribs, int attrib_id); + +Bool +config_odev_add_int_attribute(struct OdevAttributes *attribs, int attrib, + int attrib_value); + +int +config_odev_get_int_attribute(struct OdevAttributes *attribs, int attrib, + int def); + void config_odev_free_attributes(struct OdevAttributes *attribs); @@ -62,6 +78,12 @@ config_odev_free_attributes(struct OdevAttributes *attribs); #define ODEV_ATTRIB_SYSPATH 2 /* DRI-style bus id */ #define ODEV_ATTRIB_BUSID 3 +/* Server managed FD */ +#define ODEV_ATTRIB_FD 4 +/* Major number of the device node pointed to by ODEV_ATTRIB_PATH */ +#define ODEV_ATTRIB_MAJOR 5 +/* Minor number of the device node pointed to by ODEV_ATTRIB_PATH */ +#define ODEV_ATTRIB_MINOR 6 typedef void (*config_odev_probe_proc_ptr)(struct OdevAttributes *attribs); void config_odev_probe(config_odev_probe_proc_ptr probe_callback); @@ -72,4 +94,8 @@ void DeleteGPUDeviceRequest(struct OdevAttributes *attribs); #endif #define ServerIsNotSeat0() (SeatId && strcmp(SeatId, "seat0")) + +struct xf86_platform_device * +xf86_find_platform_device_by_devnum(int major, int minor); + #endif /* HOTPLUG_H */ diff --git a/xorg-server/include/systemd-logind.h b/xorg-server/include/systemd-logind.h new file mode 100644 index 000000000..8b0908186 --- /dev/null +++ b/xorg-server/include/systemd-logind.h @@ -0,0 +1,45 @@ +/* + * Copyright © 2013 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Hans de Goede <hdegoede@redhat.com> + */ + +#ifndef SYSTEMD_LOGIND_H +#define SYSTEMD_LOGIND_H + +#ifdef SYSTEMD_LOGIND +int systemd_logind_init(void); +void systemd_logind_fini(void); +int systemd_logind_take_fd(int major, int minor, const char *path, Bool *paus); +void systemd_logind_release_fd(int major, int minor); +int systemd_logind_controls_session(void); +void systemd_logind_vtenter(void); +#else +#define systemd_logind_init() +#define systemd_logind_fini() +#define systemd_logind_take_fd(major, minor, path) -1 +#define systemd_logind_release_fd(dev) +#define systemd_logind_controls_session() 0 +#define systemd_logind_vtenter() +#endif + +#endif |