debian/changelog                                                |    7 
 debian/control                                                  |    1 
 debian/patches/FreeBSD-implement-map_legacy-and-legacy_io.patch |  184 
++++++++++
 debian/patches/series                                           |    1 
 debian/rules                                                    |    2 
 5 files changed, 194 insertions(+), 1 deletion(-)

New commits:
commit 4e49ce6f99c7def60fc4777f8ccd2c19d3925211
Author: Julien Cristau <jcris...@debian.org>
Date:   Sun Apr 22 12:12:08 2012 +0200

    Upload to unstable

diff --git a/debian/changelog b/debian/changelog
index d538cfa..a84d428 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-libpciaccess (0.13.1-2) UNRELEASED; urgency=low
+libpciaccess (0.13.1-2) unstable; urgency=medium
 
   * FreeBSD: implement map_legacy and legacy_io (closes: #669062).  Thanks,
     Robert Millan!
 
- -- Julien Cristau <jcris...@debian.org>  Sun, 22 Apr 2012 12:10:39 +0200
+ -- Julien Cristau <jcris...@debian.org>  Sun, 22 Apr 2012 12:11:53 +0200
 
 libpciaccess (0.13.1-1) unstable; urgency=low
 

commit ecddc31f83edb87ca0e4118feff7632027a082fc
Author: Julien Cristau <jcris...@debian.org>
Date:   Sun Apr 22 12:11:33 2012 +0200

    FreeBSD: implement map_legacy and legacy_io (closes: #669062).
    
    Thanks, Robert Millan!

diff --git a/debian/changelog b/debian/changelog
index 0d1bd98..d538cfa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libpciaccess (0.13.1-2) UNRELEASED; urgency=low
+
+  * FreeBSD: implement map_legacy and legacy_io (closes: #669062).  Thanks,
+    Robert Millan!
+
+ -- Julien Cristau <jcris...@debian.org>  Sun, 22 Apr 2012 12:10:39 +0200
+
 libpciaccess (0.13.1-1) unstable; urgency=low
 
   * New upstream release
diff --git a/debian/control b/debian/control
index f9ae560..c20dd94 100644
--- a/debian/control
+++ b/debian/control
@@ -11,6 +11,7 @@ Build-Depends:
  xutils-dev (>= 1:7.5),
  pkg-config,
  dh-autoreconf,
+ quilt (>= 0.46-7),
 Standards-Version: 3.9.2
 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libpciaccess
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libpciaccess.git
diff --git a/debian/patches/FreeBSD-implement-map_legacy-and-legacy_io.patch 
b/debian/patches/FreeBSD-implement-map_legacy-and-legacy_io.patch
new file mode 100644
index 0000000..a66b9b7
--- /dev/null
+++ b/debian/patches/FreeBSD-implement-map_legacy-and-legacy_io.patch
@@ -0,0 +1,184 @@
+From 2135716a504ac21f7d024a40e2b1f13c7e479774 Mon Sep 17 00:00:00 2001
+From: Robert Millan <r...@debian.org>
+Date: Sat, 21 Apr 2012 18:42:46 +0200
+Subject: [libpciaccess PATCH] FreeBSD: implement map_legacy and legacy_io
+
+Signed-off-by: Julien Cristau <jcris...@debian.org>
+---
+ src/freebsd_pci.c |  146 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 146 insertions(+)
+
+diff --git a/src/freebsd_pci.c b/src/freebsd_pci.c
+index cc50e91..be562a0 100644
+--- a/src/freebsd_pci.c
++++ b/src/freebsd_pci.c
+@@ -1,6 +1,8 @@
+ /*
+  * (C) Copyright Eric Anholt 2006
+  * (C) Copyright IBM Corporation 2006
++ * (C) Copyright Mark Kettenis 2011
++ * (C) Copyright Robert Millan 2012
+  * All Rights Reserved.
+  *
+  * Permission is hereby granted, free of charge, to any person obtaining a
+@@ -561,6 +563,138 @@ pci_system_freebsd_destroy(void)
+     freebsd_pci_sys = NULL;
+ }
+ 
++#if defined(__i386__) || defined(__amd64__)
++#include <machine/bus.h>
++#endif
++
++static struct pci_io_handle *
++pci_device_freebsd_open_legacy_io(struct pci_io_handle *ret,
++    struct pci_device *dev, pciaddr_t base, pciaddr_t size)
++{
++#if defined(__i386__) || defined(__amd64__)
++      ret->fd = open("/dev/io", O_RDWR | O_CLOEXEC);
++
++      if (ret->fd < 0)
++              return NULL;
++
++      ret->base = base;
++      ret->size = size;
++      return ret;
++#elif defined(PCI_MAGIC_IO_RANGE)
++      ret->memory = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED,
++          aperturefd, PCI_MAGIC_IO_RANGE + base);
++      if (ret->memory == MAP_FAILED)
++              return NULL;
++
++      ret->base = base;
++      ret->size = size;
++      return ret;
++#else
++      return NULL;
++#endif
++}
++
++#if defined(__i386__) || defined(__amd64__)
++static void
++pci_device_freebsd_close_io(struct pci_device *dev, struct pci_io_handle 
*handle)
++{
++      if (handle->fd > -1)
++              close(handle->fd);
++}
++#endif
++
++static uint32_t
++pci_device_freebsd_read32(struct pci_io_handle *handle, uint32_t reg)
++{
++#if defined(__i386__) || defined(__amd64__)
++      return bus_space_read_4(X86_BUS_SPACE_IO, handle->base, reg);
++#else
++      return *(uint32_t *)((uintptr_t)handle->memory + reg);
++#endif
++}
++
++static uint16_t
++pci_device_freebsd_read16(struct pci_io_handle *handle, uint32_t reg)
++{
++#if defined(__i386__) || defined(__amd64__)
++      return bus_space_read_2(X86_BUS_SPACE_IO, handle->base, reg);
++#else
++      return *(uint16_t *)((uintptr_t)handle->memory + reg);
++#endif
++}
++
++static uint8_t
++pci_device_freebsd_read8(struct pci_io_handle *handle, uint32_t reg)
++{
++#if defined(__i386__) || defined(__amd64__)
++      return bus_space_read_1(X86_BUS_SPACE_IO, handle->base, reg);
++#else
++      return *(uint8_t *)((uintptr_t)handle->memory + reg);
++#endif
++}
++
++static void
++pci_device_freebsd_write32(struct pci_io_handle *handle, uint32_t reg,
++    uint32_t data)
++{
++#if defined(__i386__) || defined(__amd64__)
++      bus_space_write_4(X86_BUS_SPACE_IO, handle->base, reg, data);
++#else
++      *(uint16_t *)((uintptr_t)handle->memory + reg) = data;
++#endif
++}
++
++static void
++pci_device_freebsd_write16(struct pci_io_handle *handle, uint32_t reg,
++    uint16_t data)
++{
++#if defined(__i386__) || defined(__amd64__)
++      bus_space_write_2(X86_BUS_SPACE_IO, handle->base, reg, data);
++#else
++      *(uint8_t *)((uintptr_t)handle->memory + reg) = data;
++#endif
++}
++
++static void
++pci_device_freebsd_write8(struct pci_io_handle *handle, uint32_t reg,
++    uint8_t data)
++{
++#if defined(__i386__) || defined(__amd64__)
++      bus_space_write_1(X86_BUS_SPACE_IO, handle->base, reg, data);
++#else
++      *(uint32_t *)((uintptr_t)handle->memory + reg) = data;
++#endif
++}
++
++static int
++pci_device_freebsd_map_legacy(struct pci_device *dev, pciaddr_t base,
++    pciaddr_t size, unsigned map_flags, void **addr)
++{
++      struct pci_device_mapping map;
++      int err;
++
++      map.base = base;
++      map.size = size;
++      map.flags = map_flags;
++      map.memory = NULL;
++      err = pci_device_freebsd_map_range(dev, &map);
++      *addr = map.memory;
++
++      return err;
++}
++
++static int
++pci_device_freebsd_unmap_legacy(struct pci_device *dev, void *addr,
++    pciaddr_t size)
++{
++      struct pci_device_mapping map;
++
++      map.memory = addr;
++      map.size = size;
++      map.flags = 0;
++      return pci_device_freebsd_unmap_range(dev, &map);
++}
++
+ static const struct pci_system_methods freebsd_pci_methods = {
+     .destroy = pci_system_freebsd_destroy,
+     .destroy_device = NULL, /* nothing to do for this */
+@@ -571,6 +705,18 @@ static const struct pci_system_methods 
freebsd_pci_methods = {
+     .read = pci_device_freebsd_read,
+     .write = pci_device_freebsd_write,
+     .fill_capabilities = pci_fill_capabilities_generic,
++    .open_legacy_io = pci_device_freebsd_open_legacy_io,
++#if defined(__i386__) || defined(__amd64__)
++    .close_io = pci_device_freebsd_close_io,
++#endif
++    .read32 = pci_device_freebsd_read32,
++    .read16 = pci_device_freebsd_read16,
++    .read8 = pci_device_freebsd_read8,
++    .write32 = pci_device_freebsd_write32,
++    .write16 = pci_device_freebsd_write16,
++    .write8 = pci_device_freebsd_write8,
++    .map_legacy = pci_device_freebsd_map_legacy,
++    .unmap_legacy = pci_device_freebsd_unmap_legacy,
+ };
+ 
+ /**
+-- 
+1.7.10
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..3907456
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+FreeBSD-implement-map_legacy-and-legacy_io.patch
diff --git a/debian/rules b/debian/rules
index d724c5d..c811fc0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,7 +5,7 @@ PACKAGE = libpciaccess0
 CFLAGS = $(shell dpkg-buildflags --get CFLAGS)
 
 %:
-       dh $@ --with autoreconf --builddirectory=build/ --parallel
+       dh $@ --with autoreconf,quilt --builddirectory=build/ --parallel
 
 override_dh_auto_configure:
        dh_auto_configure -- \


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1sltpn-0000gl...@vasks.debian.org

Reply via email to