gbm: return appropriate error when queryImage() fails
[mesa.git] / src / gbm / main / gbm.c
index 20ff3f280a7d3b0896fea0c87f07cb18e9c353b2..b9fb70d1293319076c2f691c2af54a640fdb9995 100644 (file)
 #include "gbmint.h"
 #include "backend.h"
 
-#define ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
-
-static struct gbm_device *devices[16];
-
-static int device_num = 0;
-
 /** Returns the file description for the gbm device
  *
  * \return The fd that the struct gbm_device was created with
@@ -104,32 +98,6 @@ gbm_device_destroy(struct gbm_device *gbm)
       gbm->destroy(gbm);
 }
 
-struct gbm_device *
-_gbm_mesa_get_device(int fd)
-{
-   struct gbm_device *gbm = NULL;
-   struct stat buf;
-   dev_t dev;
-   int i;
-
-   if (fd < 0 || fstat(fd, &buf) < 0 || !S_ISCHR(buf.st_mode)) {
-      errno = EINVAL;
-      return NULL;
-   }
-
-   for (i = 0; i < device_num; ++i) {
-      dev = devices[i]->stat.st_rdev;
-      if (major(dev) == major(buf.st_rdev) &&
-          minor(dev) == minor(buf.st_rdev)) {
-         gbm = devices[i];
-         gbm->refcount++;
-         break;
-      }
-   }
-
-   return gbm;
-}
-
 /** Create a gbm device for allocating buffers
  *
  * The file descriptor passed in is used by the backend to communicate with
@@ -153,9 +121,6 @@ gbm_create_device(int fd)
       return NULL;
    }
 
-   if (device_num == 0)
-      memset(devices, 0, sizeof devices);
-
    gbm = _gbm_create_device(fd);
    if (gbm == NULL)
       return NULL;
@@ -164,9 +129,6 @@ gbm_create_device(int fd)
    gbm->stat = buf;
    gbm->refcount = 1;
 
-   if (device_num < ARRAY_SIZE(devices)-1)
-      devices[device_num++] = gbm;
-
    return gbm;
 }
 
@@ -242,7 +204,8 @@ gbm_bo_get_handle(struct gbm_bo *bo)
  * descriptor.
 
  * \param bo The buffer object
- * \return Returns a file descriptor referring  to the underlying buffer
+ * \return Returns a file descriptor referring to the underlying buffer or -1
+ * if an error occurs.
  */
 GBM_EXPORT int
 gbm_bo_get_fd(struct gbm_bo *bo)
@@ -359,7 +322,7 @@ gbm_bo_create(struct gbm_device *gbm,
  *
  * This function imports a foreign object and creates a new gbm bo for it.
  * This enabled using the foreign object with a display API such as KMS.
- * Currently two types of foreign objects are supported, indicated by the type
+ * Currently three types of foreign objects are supported, indicated by the type
  * argument:
  *
  *   GBM_BO_IMPORT_WL_BUFFER