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