aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/config
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-07-19 15:00:38 +0200
committermarha <marha@users.sourceforge.net>2014-07-19 15:00:38 +0200
commitd0c30e7945e76ac119f6d867e27137c8a76f7e15 (patch)
tree1bfb3148a6f43bdd32746c5b882f9f083076cf91 /xorg-server/config
parente708bebcc029873004ade4241f347ce8c58896af (diff)
downloadvcxsrv-d0c30e7945e76ac119f6d867e27137c8a76f7e15.tar.gz
vcxsrv-d0c30e7945e76ac119f6d867e27137c8a76f7e15.tar.bz2
vcxsrv-d0c30e7945e76ac119f6d867e27137c8a76f7e15.zip
fontconfig plink libX11 libxcb mesa git update 19 July 2014
plink revision 10207 xserver commit cfa302d6224d10860e60491333950544c4fb9b04 libxcb commit 49a61c8b459ab19c7f39e653bbb0d0339ea8f00f libX11 commit 5525e8433f93bce464412f27cffa203ea628f368 fontconfig commit 6781c6baef062eeea5b5b68e4a9c31ea6cd7539b mesa commit f6fc80734533140a69b30361fe0d4773a03515db
Diffstat (limited to 'xorg-server/config')
-rw-r--r--xorg-server/config/config.c129
-rw-r--r--xorg-server/config/udev.c10
2 files changed, 16 insertions, 123 deletions
diff --git a/xorg-server/config/config.c b/xorg-server/config/config.c
index 551451623..b5d634b87 100644
--- a/xorg-server/config/config.c
+++ b/xorg-server/config/config.c
@@ -128,128 +128,21 @@ device_is_duplicate(const char *config_info)
}
struct OdevAttributes *
-config_odev_allocate_attribute_list(void)
+config_odev_allocate_attributes(void)
{
- struct OdevAttributes *attriblist;
-
- attriblist = XNFalloc(sizeof(struct OdevAttributes));
- xorg_list_init(&attriblist->list);
- return attriblist;
-}
-
-void
-config_odev_free_attribute_list(struct OdevAttributes *attribs)
-{
- config_odev_free_attributes(attribs);
- free(attribs);
-}
-
-static struct OdevAttribute *
-config_odev_find_attribute(struct OdevAttributes *attribs, int attrib_id)
-{
- struct OdevAttribute *oa;
-
- xorg_list_for_each_entry(oa, &attribs->list, member) {
- if (oa->attrib_id == attrib_id)
- return oa;
- }
- return NULL;
-}
-
-static struct OdevAttribute *
-config_odev_find_or_add_attribute(struct OdevAttributes *attribs, int attrib)
-{
- struct OdevAttribute *oa;
-
- oa = config_odev_find_attribute(attribs, attrib);
- if (oa)
- return oa;
-
- oa = XNFcalloc(sizeof(struct OdevAttribute));
- oa->attrib_id = attrib;
- xorg_list_append(&oa->member, &attribs->list);
-
- return oa;
-}
-
-Bool
-config_odev_add_attribute(struct OdevAttributes *attribs, int attrib,
- const char *attrib_name)
-{
- struct OdevAttribute *oa;
-
- oa = config_odev_find_or_add_attribute(attribs, attrib);
- free(oa->attrib_name);
- oa->attrib_name = XNFstrdup(attrib_name);
- oa->attrib_type = ODEV_ATTRIB_STRING;
- return TRUE;
-}
-
-Bool
-config_odev_add_int_attribute(struct OdevAttributes *attribs, int attrib,
- int attrib_value)
-{
- struct OdevAttribute *oa;
-
- oa = config_odev_find_or_add_attribute(attribs, attrib);
- oa->attrib_value = attrib_value;
- oa->attrib_type = ODEV_ATTRIB_INT;
- return TRUE;
-}
-
-char *
-config_odev_get_attribute(struct OdevAttributes *attribs, int attrib_id)
-{
- struct OdevAttribute *oa;
-
- oa = config_odev_find_attribute(attribs, attrib_id);
- if (!oa)
- return NULL;
-
- if (oa->attrib_type != ODEV_ATTRIB_STRING) {
- LogMessage(X_ERROR, "Error %s called for non string attrib %d\n",
- __func__, attrib_id);
- return NULL;
- }
- return oa->attrib_name;
-}
-
-int
-config_odev_get_int_attribute(struct OdevAttributes *attribs, int attrib_id, int def)
-{
- struct OdevAttribute *oa;
-
- oa = config_odev_find_attribute(attribs, attrib_id);
- if (!oa)
- return def;
-
- if (oa->attrib_type != ODEV_ATTRIB_INT) {
- LogMessage(X_ERROR, "Error %s called for non integer attrib %d\n",
- __func__, attrib_id);
- return def;
- }
-
- return oa->attrib_value;
+ struct OdevAttributes *attribs = XNFcalloc(sizeof (struct OdevAttributes));
+ attribs->fd = -1;
+ return attribs;
}
void
config_odev_free_attributes(struct OdevAttributes *attribs)
{
- struct OdevAttribute *iter, *safe;
- int major = 0, minor = 0, fd = -1;
-
- xorg_list_for_each_entry_safe(iter, safe, &attribs->list, member) {
- switch (iter->attrib_id) {
- case ODEV_ATTRIB_MAJOR: major = iter->attrib_value; break;
- case ODEV_ATTRIB_MINOR: minor = iter->attrib_value; break;
- case ODEV_ATTRIB_FD: fd = iter->attrib_value; break;
- }
- xorg_list_del(&iter->member);
- if (iter->attrib_type == ODEV_ATTRIB_STRING)
- free(iter->attrib_name);
- free(iter);
- }
-
- if (fd != -1)
- systemd_logind_release_fd(major, minor, fd);
+ if (attribs->fd != -1)
+ systemd_logind_release_fd(attribs->major, attribs->minor, attribs->fd);
+ free(attribs->path);
+ free(attribs->syspath);
+ free(attribs->busid);
+ free(attribs->driver);
+ free(attribs);
}
diff --git a/xorg-server/config/udev.c b/xorg-server/config/udev.c
index a1b72c13b..1e4a9d7a6 100644
--- a/xorg-server/config/udev.c
+++ b/xorg-server/config/udev.c
@@ -462,12 +462,12 @@ config_udev_odev_setup_attribs(const char *path, const char *syspath,
int major, int minor,
config_odev_probe_proc_ptr probe_callback)
{
- struct OdevAttributes *attribs = config_odev_allocate_attribute_list();
+ struct OdevAttributes *attribs = config_odev_allocate_attributes();
- config_odev_add_attribute(attribs, ODEV_ATTRIB_PATH, path);
- config_odev_add_attribute(attribs, ODEV_ATTRIB_SYSPATH, syspath);
- config_odev_add_int_attribute(attribs, ODEV_ATTRIB_MAJOR, major);
- config_odev_add_int_attribute(attribs, ODEV_ATTRIB_MINOR, minor);
+ attribs->path = XNFstrdup(path);
+ attribs->syspath = XNFstrdup(syspath);
+ attribs->major = major;
+ attribs->minor = minor;
/* ownership of attribs is passed to probe layer */
probe_callback(attribs);