Index: libdha/sysdep/AsmMacros_powerpc.h =================================================================== RCS file: /cvsroot/mplayer/main/libdha/sysdep/AsmMacros_powerpc.h,v retrieving revision 1.2 diff -u -r1.2 AsmMacros_powerpc.h --- libdha/sysdep/AsmMacros_powerpc.h 4 Jul 2002 01:10:53 -0000 1.2 +++ libdha/sysdep/AsmMacros_powerpc.h 20 Oct 2002 18:41:46 -0000 @@ -55,8 +55,6 @@ #define intr_disable() #define intr_enable() -#else -#error This stuff is not ported on your system #endif #endif Index: libdha/sysdep/pci_linux.c =================================================================== RCS file: /cvsroot/mplayer/main/libdha/sysdep/pci_linux.c,v retrieving revision 1.4 diff -u -r1.4 pci_linux.c --- libdha/sysdep/pci_linux.c 30 Jun 2002 15:17:36 -0000 1.4 +++ libdha/sysdep/pci_linux.c 20 Oct 2002 18:41:46 -0000 @@ -32,8 +32,11 @@ dhahelper_initialized = -1; #endif +#if defined(__powerpc__) && !defined(Lynx) && !defined(__OpenBSD__) +#else if (iopl(3) != 0) return(errno); +#endif return(0); } @@ -44,7 +47,10 @@ close(dhahelper_fd); else #endif +#if defined(__powerpc__) && !defined(Lynx) && !defined(__OpenBSD__) +#else if (iopl(0) != 0) return(errno); +#endif return(0); } Index: libdha/sysdep/pci_powerpc.c =================================================================== RCS file: /cvsroot/mplayer/main/libdha/sysdep/pci_powerpc.c,v retrieving revision 1.1 diff -u -r1.1 pci_powerpc.c --- libdha/sysdep/pci_powerpc.c 15 Jan 2002 08:31:53 -0000 1.1 +++ libdha/sysdep/pci_powerpc.c 20 Oct 2002 18:41:46 -0000 @@ -6,6 +6,71 @@ static int pci_config_type( void ) { return 1; } +#if !defined(Lynx) && !defined(__OpenBSD__) +/* pci operations for powerpc Linux + questions, suggestions etc: + mplayer-dev-eng@mplayerhq.hu, colin@colino.net*/ +#include +#include +#include +#include "../../bswap.h" + +static int pci_get_vendor( + unsigned char bus, + unsigned char dev, + int func) +{ + int retval; + char path[100]; + int fd; + short vendor, device; + sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev); + fd = open(path,O_RDONLY|O_SYNC); + if (fd == -1) { + retval=0xFFFF; + } + else if (pread(fd, &vendor, 2, PCI_VENDOR_ID) == 2 && + pread(fd, &device, 2, PCI_DEVICE_ID) == 2) { + vendor = bswap_16(vendor); + device = bswap_16(device); + retval = vendor + (device<<16); /*no worries about byte order, + all ppc are bigendian*/ + } else { + retval = 0xFFFF; + } + if (fd > 0) { + close(fd); + } + return retval; +} + +static long pci_config_read_long( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd) +{ + long retval; + char path[100]; + int fd; + sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev); + fd = open(path,O_RDONLY|O_SYNC); + if (fd == -1) { + retval=0; + } + else if (pread(fd, &retval, 4, cmd) == 4) { + retval = bswap_32(retval); + } else { + retval = 0; + } + if (fd > 0) { + close(fd); + } + return retval; +} + +#else /*Lynx*/ + static int pci_get_vendor( unsigned char bus, unsigned char dev, @@ -26,3 +91,4 @@ pciconfig_read(bus, dev<<3, cmd, 4, &retval); return retval; } +#endif /*Lynx*/