diff options
author | marha <marha@users.sourceforge.net> | 2014-07-19 15:12:53 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-07-19 15:12:53 +0200 |
commit | 61c36feba19d918885022042ea62d068a698c83d (patch) | |
tree | fd351953eb2193fe548e7d0e2dca06b34b7c4f4d /xorg-server/config | |
parent | 3865d60ef607cbb00c819e905e40d3628b8eca29 (diff) | |
parent | d0c30e7945e76ac119f6d867e27137c8a76f7e15 (diff) | |
download | vcxsrv-61c36feba19d918885022042ea62d068a698c83d.tar.gz vcxsrv-61c36feba19d918885022042ea62d068a698c83d.tar.bz2 vcxsrv-61c36feba19d918885022042ea62d068a698c83d.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/glsl/ir.cpp
xorg-server/config/config.c
xorg-server/include/callback.h
xorg-server/include/colormap.h
xorg-server/include/cursor.h
xorg-server/include/dix.h
xorg-server/include/dixfont.h
xorg-server/include/dixgrabs.h
xorg-server/include/gc.h
xorg-server/include/gcstruct.h
xorg-server/include/input.h
xorg-server/include/os.h
xorg-server/include/pixmap.h
xorg-server/include/property.h
xorg-server/include/resource.h
xorg-server/include/scrnintstr.h
xorg-server/include/window.h
xorg-server/include/xkbsrv.h
xorg-server/mi/mi.h
Diffstat (limited to 'xorg-server/config')
-rwxr-xr-x[-rw-r--r--] | xorg-server/config/config.c | 129 | ||||
-rw-r--r-- | xorg-server/config/udev.c | 10 |
2 files changed, 16 insertions, 123 deletions
diff --git a/xorg-server/config/config.c b/xorg-server/config/config.c index 52fc80836..b5d634b87 100644..100755 --- 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", - __FUNCTION__, 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", - __FUNCTION__, 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); |