Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright © 2011 Intel Corporation
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the "Software"),
  6.  * to deal in the Software without restriction, including without limitation
  7.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8.  * and/or sell copies of the Software, and to permit persons to whom the
  9.  * Software is furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice (including the next
  12.  * paragraph) shall be included in all copies or substantial portions of the
  13.  * Software.
  14.  *
  15.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  16.  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  17.  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  18.  * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  19.  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  20.  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21.  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  22.  * DEALINGS IN THE SOFTWARE.
  23.  *
  24.  * Authors:
  25.  *    Benjamin Franzke <benjaminfranzke@googlemail.com>
  26.  */
  27.  
  28. #include <stdio.h>
  29. #include <string.h>
  30.  
  31. #include <libudev.h>
  32. #include <sys/types.h>
  33. #include <sys/stat.h>
  34. #include <unistd.h>
  35.  
  36. #include "common.h"
  37. #include "gbmint.h"
  38.  
  39. GBM_EXPORT struct udev_device *
  40. _gbm_udev_device_new_from_fd(struct udev *udev, int fd)
  41. {
  42.    struct udev_device *device;
  43.    struct stat buf;
  44.  
  45.    if (fstat(fd, &buf) < 0) {
  46.       fprintf(stderr, "gbm: failed to stat fd %d", fd);
  47.       return NULL;
  48.    }
  49.  
  50.    device = udev_device_new_from_devnum(udev, 'c', buf.st_rdev);
  51.    if (device == NULL) {
  52.       fprintf(stderr,
  53.               "gbm: could not create udev device for fd %d", fd);
  54.       return NULL;
  55.    }
  56.  
  57.    return device;
  58. }
  59.  
  60. GBM_EXPORT char *
  61. _gbm_fd_get_device_name(int fd)
  62. {
  63.    struct udev *udev;
  64.    struct udev_device *device;
  65.    const char *const_device_name;
  66.    char *device_name = NULL;
  67.  
  68.    udev = udev_new();
  69.    device = _gbm_udev_device_new_from_fd(udev, fd);
  70.    if (device == NULL)
  71.       return NULL;
  72.  
  73.    const_device_name = udev_device_get_devnode(device);
  74.    if (!const_device_name)
  75.       goto out;
  76.    device_name = strdup(const_device_name);
  77.  
  78. out:
  79.    udev_device_unref(device);
  80.    udev_unref(udev);
  81.  
  82.    return device_name;
  83. }
  84.  
  85. GBM_EXPORT void
  86. _gbm_log(const char *fmt_str, ...)
  87. {
  88. }
  89.