From c194357845dc951d1e4071e635ab4aca2bcadff6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 9 Dec 2011 19:46:29 +0100 Subject: [PATCH] libdrm: fix missing headers patch Signed-off-by: Stephan Raue --- ...ibdrm-2.4.28-install_missing_headers.patch | 212 ++++++++++++++++-- 1 file changed, 199 insertions(+), 13 deletions(-) diff --git a/packages/graphics/libdrm/patches/libdrm-2.4.28-install_missing_headers.patch b/packages/graphics/libdrm/patches/libdrm-2.4.28-install_missing_headers.patch index 5ebcb606a7..43643fbb01 100644 --- a/packages/graphics/libdrm/patches/libdrm-2.4.28-install_missing_headers.patch +++ b/packages/graphics/libdrm/patches/libdrm-2.4.28-install_missing_headers.patch @@ -1,19 +1,205 @@ -From 902ee661f1864aaf8325621085f6a1b5a6a3673a Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Mon, 05 Dec 2011 21:24:48 +0000 -Subject: test/radeon: add missing files for dist - ---- -diff --git a/tests/radeon/Makefile.am b/tests/radeon/Makefile.am -index 021ca72..1775669 100644 ---- a/tests/radeon/Makefile.am -+++ b/tests/radeon/Makefile.am -@@ -9,4 +9,6 @@ noinst_PROGRAMS = \ +diff -Naur libdrm-2.4.28-old/tests/radeon/list.h libdrm-2.4.28-new/tests/radeon/list.h +--- libdrm-2.4.28-old/tests/radeon/list.h 1969-12-31 16:00:00.000000000 -0800 ++++ libdrm-2.4.28-new/tests/radeon/list.h 2011-12-06 13:35:46.000000000 -0800 +@@ -0,0 +1,137 @@ ++/* ++ * ++ * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA. ++ * All Rights Reserved. ++ * ++ * 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, sub license, 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 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 NON-INFRINGEMENT. IN NO EVENT SHALL ++ * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS 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. ++ * ++ * The above copyright notice and this permission notice (including the ++ * next paragraph) shall be included in all copies or substantial portions ++ * of the Software. ++ * ++ */ ++ ++/** ++ * \file ++ * List macros heavily inspired by the Linux kernel ++ * list handling. No list looping yet. ++ * ++ * Is not threadsafe, so common operations need to ++ * be protected using an external mutex. ++ */ ++#ifndef _U_DOUBLE_LIST_H_ ++#define _U_DOUBLE_LIST_H_ ++ ++#include ++ ++struct list_head ++{ ++ struct list_head *prev; ++ struct list_head *next; ++}; ++ ++static void list_inithead(struct list_head *item) ++{ ++ item->prev = item; ++ item->next = item; ++} ++ ++static void list_add(struct list_head *item, struct list_head *list) ++{ ++ item->prev = list; ++ item->next = list->next; ++ list->next->prev = item; ++ list->next = item; ++} ++ ++static void list_addtail(struct list_head *item, struct list_head *list) ++{ ++ item->next = list; ++ item->prev = list->prev; ++ list->prev->next = item; ++ list->prev = item; ++} ++ ++static void list_replace(struct list_head *from, struct list_head *to) ++{ ++ to->prev = from->prev; ++ to->next = from->next; ++ from->next->prev = to; ++ from->prev->next = to; ++} ++ ++static void list_del(struct list_head *item) ++{ ++ item->prev->next = item->next; ++ item->next->prev = item->prev; ++} ++ ++static void list_delinit(struct list_head *item) ++{ ++ item->prev->next = item->next; ++ item->next->prev = item->prev; ++ item->next = item; ++ item->prev = item; ++} ++ ++#define LIST_INITHEAD(__item) list_inithead(__item) ++#define LIST_ADD(__item, __list) list_add(__item, __list) ++#define LIST_ADDTAIL(__item, __list) list_addtail(__item, __list) ++#define LIST_REPLACE(__from, __to) list_replace(__from, __to) ++#define LIST_DEL(__item) list_del(__item) ++#define LIST_DELINIT(__item) list_delinit(__item) ++ ++#define LIST_ENTRY(__type, __item, __field) \ ++ ((__type *)(((char *)(__item)) - offsetof(__type, __field))) ++ ++#define LIST_IS_EMPTY(__list) \ ++ ((__list)->next == (__list)) ++ ++#ifndef container_of ++#define container_of(ptr, sample, member) \ ++ (void *)((char *)(ptr) \ ++ - ((char *)&(sample)->member - (char *)(sample))) ++#endif ++ ++#define LIST_FOR_EACH_ENTRY(pos, head, member) \ ++ for (pos = container_of((head)->next, pos, member); \ ++ &pos->member != (head); \ ++ pos = container_of(pos->member.next, pos, member)) ++ ++#define LIST_FOR_EACH_ENTRY_SAFE(pos, storage, head, member) \ ++ for (pos = container_of((head)->next, pos, member), \ ++ storage = container_of(pos->member.next, pos, member); \ ++ &pos->member != (head); \ ++ pos = storage, storage = container_of(storage->member.next, storage, member)) ++ ++#define LIST_FOR_EACH_ENTRY_SAFE_REV(pos, storage, head, member) \ ++ for (pos = container_of((head)->prev, pos, member), \ ++ storage = container_of(pos->member.prev, pos, member); \ ++ &pos->member != (head); \ ++ pos = storage, storage = container_of(storage->member.prev, storage, member)) ++ ++#define LIST_FOR_EACH_ENTRY_FROM(pos, start, head, member) \ ++ for (pos = container_of((start), pos, member); \ ++ &pos->member != (head); \ ++ pos = container_of(pos->member.next, pos, member)) ++ ++#define LIST_FOR_EACH_ENTRY_FROM_REV(pos, start, head, member) \ ++ for (pos = container_of((start), pos, member); \ ++ &pos->member != (head); \ ++ pos = container_of(pos->member.prev, pos, member)) ++ ++#endif /*_U_DOUBLE_LIST_H_*/ +diff -Naur libdrm-2.4.28-old/tests/radeon/Makefile.am libdrm-2.4.28-new/tests/radeon/Makefile.am +--- libdrm-2.4.28-old/tests/radeon/Makefile.am 2011-12-05 02:02:31.000000000 -0800 ++++ libdrm-2.4.28-new/tests/radeon/Makefile.am 2011-12-06 13:33:43.000000000 -0800 +@@ -9,4 +9,6 @@ radeon_ttm_SOURCES = \ rbo.c \ + rbo.h \ + list.h \ radeon_ttm.c --- -cgit v0.9.0.2-2-gbebe +diff -Naur libdrm-2.4.28-old/tests/radeon/rbo.h libdrm-2.4.28-new/tests/radeon/rbo.h +--- libdrm-2.4.28-old/tests/radeon/rbo.h 1969-12-31 16:00:00.000000000 -0800 ++++ libdrm-2.4.28-new/tests/radeon/rbo.h 2011-12-06 13:35:25.000000000 -0800 +@@ -0,0 +1,50 @@ ++/* ++ * Copyright © 2011 Red Hat ++ * ++ * 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. ++ * ++ * Authors: ++ * Jerome Glisse ++ */ ++#ifndef RBO_H ++#define RBO_H ++ ++#include "list.h" ++ ++struct rbo { ++ struct list_head list; ++ int fd; ++ unsigned refcount; ++ unsigned mapcount; ++ unsigned handle; ++ unsigned size; ++ unsigned alignment; ++ void *data; ++}; ++ ++struct rbo *rbo(int fd, unsigned handle, unsigned size, ++ unsigned alignment, void *ptr); ++int rbo_map(struct rbo *bo); ++void rbo_unmap(struct rbo *bo); ++struct rbo *rbo_incref(struct rbo *bo); ++struct rbo *rbo_decref(struct rbo *bo); ++int rbo_wait(struct rbo *bo); ++ ++#endif