diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-05-31 20:50:38 +0200 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-05-31 20:50:38 +0200 |
commit | 7c4b35e87012bd2e82483c109281bd1ea42ae8a2 (patch) | |
tree | 2fe816c661fa102c69f3f6b75d62ebcc4d0cb9bb /contrib/libdha/sysdep/pci_powerpc.c | |
parent | 39a3ba441844251b8fd2900864418cae92802b9d (diff) | |
download | xine-lib-7c4b35e87012bd2e82483c109281bd1ea42ae8a2.tar.gz xine-lib-7c4b35e87012bd2e82483c109281bd1ea42ae8a2.tar.bz2 |
Move vidix and libdha into contrib/.
--HG--
rename : src/video_out/libdha/.hgignore => contrib/libdha/.hgignore
rename : src/video_out/libdha/AsmMacros.h => contrib/libdha/AsmMacros.h
rename : src/video_out/libdha/Makefile.am => contrib/libdha/Makefile.am
rename : src/video_out/libdha/README => contrib/libdha/README
rename : src/video_out/libdha/bin/Makefile.am => contrib/libdha/bin/Makefile.am
rename : src/video_out/libdha/bin/README => contrib/libdha/bin/README
rename : src/video_out/libdha/bin/mapdev.copyright => contrib/libdha/bin/mapdev.copyright
rename : src/video_out/libdha/bin/mapdev.vxd => contrib/libdha/bin/mapdev.vxd
rename : src/video_out/libdha/cpu_flush.c => contrib/libdha/cpu_flush.c
rename : src/video_out/libdha/irq.c => contrib/libdha/irq.c
rename : src/video_out/libdha/kernelhelper/Makefile.am => contrib/libdha/kernelhelper/Makefile.am
rename : src/video_out/libdha/kernelhelper/README => contrib/libdha/kernelhelper/README
rename : src/video_out/libdha/kernelhelper/dhahelper.c => contrib/libdha/kernelhelper/dhahelper.c
rename : src/video_out/libdha/kernelhelper/dhahelper.h => contrib/libdha/kernelhelper/dhahelper.h
rename : src/video_out/libdha/kernelhelper/test.c => contrib/libdha/kernelhelper/test.c
rename : src/video_out/libdha/libdha.c => contrib/libdha/libdha.c
rename : src/video_out/libdha/libdha.h => contrib/libdha/libdha.h
rename : src/video_out/libdha/mmi.c => contrib/libdha/mmi.c
rename : src/video_out/libdha/mtrr.c => contrib/libdha/mtrr.c
rename : src/video_out/libdha/oth/Makefile.am => contrib/libdha/oth/Makefile.am
rename : src/video_out/libdha/oth/pci.db => contrib/libdha/oth/pci.db
rename : src/video_out/libdha/pci.c => contrib/libdha/pci.c
rename : src/video_out/libdha/pci_db2c.awk => contrib/libdha/pci_db2c.awk
rename : src/video_out/libdha/ports.c => contrib/libdha/ports.c
rename : src/video_out/libdha/sysdep/AsmMacros_alpha.h => contrib/libdha/sysdep/AsmMacros_alpha.h
rename : src/video_out/libdha/sysdep/AsmMacros_arm32.h => contrib/libdha/sysdep/AsmMacros_arm32.h
rename : src/video_out/libdha/sysdep/AsmMacros_generic.h => contrib/libdha/sysdep/AsmMacros_generic.h
rename : src/video_out/libdha/sysdep/AsmMacros_ia64.h => contrib/libdha/sysdep/AsmMacros_ia64.h
rename : src/video_out/libdha/sysdep/AsmMacros_powerpc.h => contrib/libdha/sysdep/AsmMacros_powerpc.h
rename : src/video_out/libdha/sysdep/AsmMacros_sparc.h => contrib/libdha/sysdep/AsmMacros_sparc.h
rename : src/video_out/libdha/sysdep/AsmMacros_x86.h => contrib/libdha/sysdep/AsmMacros_x86.h
rename : src/video_out/libdha/sysdep/Makefile.am => contrib/libdha/sysdep/Makefile.am
rename : src/video_out/libdha/sysdep/libdha_os2.c => contrib/libdha/sysdep/libdha_os2.c
rename : src/video_out/libdha/sysdep/libdha_win32.c => contrib/libdha/sysdep/libdha_win32.c
rename : src/video_out/libdha/sysdep/pci_386bsd.c => contrib/libdha/sysdep/pci_386bsd.c
rename : src/video_out/libdha/sysdep/pci_alpha.c => contrib/libdha/sysdep/pci_alpha.c
rename : src/video_out/libdha/sysdep/pci_arm32.c => contrib/libdha/sysdep/pci_arm32.c
rename : src/video_out/libdha/sysdep/pci_bsdi.c => contrib/libdha/sysdep/pci_bsdi.c
rename : src/video_out/libdha/sysdep/pci_freebsd.c => contrib/libdha/sysdep/pci_freebsd.c
rename : src/video_out/libdha/sysdep/pci_generic_cpu.c => contrib/libdha/sysdep/pci_generic_cpu.c
rename : src/video_out/libdha/sysdep/pci_generic_os.c => contrib/libdha/sysdep/pci_generic_os.c
rename : src/video_out/libdha/sysdep/pci_ia64.c => contrib/libdha/sysdep/pci_ia64.c
rename : src/video_out/libdha/sysdep/pci_isc.c => contrib/libdha/sysdep/pci_isc.c
rename : src/video_out/libdha/sysdep/pci_linux.c => contrib/libdha/sysdep/pci_linux.c
rename : src/video_out/libdha/sysdep/pci_lynx.c => contrib/libdha/sysdep/pci_lynx.c
rename : src/video_out/libdha/sysdep/pci_mach386.c => contrib/libdha/sysdep/pci_mach386.c
rename : src/video_out/libdha/sysdep/pci_netbsd.c => contrib/libdha/sysdep/pci_netbsd.c
rename : src/video_out/libdha/sysdep/pci_openbsd.c => contrib/libdha/sysdep/pci_openbsd.c
rename : src/video_out/libdha/sysdep/pci_os2.c => contrib/libdha/sysdep/pci_os2.c
rename : src/video_out/libdha/sysdep/pci_powerpc.c => contrib/libdha/sysdep/pci_powerpc.c
rename : src/video_out/libdha/sysdep/pci_sco.c => contrib/libdha/sysdep/pci_sco.c
rename : src/video_out/libdha/sysdep/pci_sparc.c => contrib/libdha/sysdep/pci_sparc.c
rename : src/video_out/libdha/sysdep/pci_svr4.c => contrib/libdha/sysdep/pci_svr4.c
rename : src/video_out/libdha/sysdep/pci_win32.c => contrib/libdha/sysdep/pci_win32.c
rename : src/video_out/libdha/sysdep/pci_x86.c => contrib/libdha/sysdep/pci_x86.c
rename : src/video_out/libdha/test.c => contrib/libdha/test.c
rename : src/video_out/vidix/Makefile.am => contrib/vidix/Makefile.am
rename : src/video_out/vidix/README => contrib/vidix/README
rename : src/video_out/vidix/drivers/Makefile.am => contrib/vidix/drivers/Makefile.am
rename : src/video_out/vidix/drivers/cyberblade_regs.h => contrib/vidix/drivers/cyberblade_regs.h
rename : src/video_out/vidix/drivers/cyberblade_vid.c => contrib/vidix/drivers/cyberblade_vid.c
rename : src/video_out/vidix/drivers/genfb_vid.c => contrib/vidix/drivers/genfb_vid.c
rename : src/video_out/vidix/drivers/glint_regs.h => contrib/vidix/drivers/glint_regs.h
rename : src/video_out/vidix/drivers/mach64.h => contrib/vidix/drivers/mach64.h
rename : src/video_out/vidix/drivers/mach64_vid.c => contrib/vidix/drivers/mach64_vid.c
rename : src/video_out/vidix/drivers/mga_vid.c => contrib/vidix/drivers/mga_vid.c
rename : src/video_out/vidix/drivers/nvidia_vid.c => contrib/vidix/drivers/nvidia_vid.c
rename : src/video_out/vidix/drivers/pm2_vid.c => contrib/vidix/drivers/pm2_vid.c
rename : src/video_out/vidix/drivers/pm3_regs.h => contrib/vidix/drivers/pm3_regs.h
rename : src/video_out/vidix/drivers/pm3_vid.c => contrib/vidix/drivers/pm3_vid.c
rename : src/video_out/vidix/drivers/radeon.h => contrib/vidix/drivers/radeon.h
rename : src/video_out/vidix/drivers/radeon_vid.c => contrib/vidix/drivers/radeon_vid.c
rename : src/video_out/vidix/drivers/savage_regs.h => contrib/vidix/drivers/savage_regs.h
rename : src/video_out/vidix/drivers/savage_vid.c => contrib/vidix/drivers/savage_vid.c
rename : src/video_out/vidix/drivers/sis_bridge.c => contrib/vidix/drivers/sis_bridge.c
rename : src/video_out/vidix/drivers/sis_defs.h => contrib/vidix/drivers/sis_defs.h
rename : src/video_out/vidix/drivers/sis_regs.h => contrib/vidix/drivers/sis_regs.h
rename : src/video_out/vidix/drivers/sis_vid.c => contrib/vidix/drivers/sis_vid.c
rename : src/video_out/vidix/drivers/unichrome_regs.h => contrib/vidix/drivers/unichrome_regs.h
rename : src/video_out/vidix/drivers/unichrome_vid.c => contrib/vidix/drivers/unichrome_vid.c
rename : src/video_out/vidix/fourcc.h => contrib/vidix/fourcc.h
rename : src/video_out/vidix/vidix.h => contrib/vidix/vidix.h
rename : src/video_out/vidix/vidix.txt => contrib/vidix/vidix.txt
rename : src/video_out/vidix/vidixlib.c => contrib/vidix/vidixlib.c
rename : src/video_out/vidix/vidixlib.h => contrib/vidix/vidixlib.h
Diffstat (limited to 'contrib/libdha/sysdep/pci_powerpc.c')
-rw-r--r-- | contrib/libdha/sysdep/pci_powerpc.c | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/contrib/libdha/sysdep/pci_powerpc.c b/contrib/libdha/sysdep/pci_powerpc.c new file mode 100644 index 000000000..667b4db37 --- /dev/null +++ b/contrib/libdha/sysdep/pci_powerpc.c @@ -0,0 +1,250 @@ +/* + This file is based on: + $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.34.2.17 1998/11/10 11:55:40 dawes Exp $ + Modified for readability by Nick Kurshev +*/ + +static int pci_config_type( void ) { return 1; } +#ifdef linux +#include <fcntl.h> +#include <sys/io.h> +#include <linux/pci.h> +#include "../../bswap.h" +#endif + +#ifdef linux +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; +} +#else +static int pci_get_vendor( + unsigned char bus, + unsigned char dev, + int func) +{ + int retval; + pciconfig_read(bus, dev<<3, PCI_ID_REG, 4, &retval); + return retval; +} +#endif +#ifdef linux +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; +} + +static long pci_config_read_word( + 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, 2, cmd) == 2) { + retval = bswap_16(retval); + } else { + retval = 0; + } + if (fd > 0) { + close(fd); + } + return retval; +} + +static long pci_config_read_byte( + 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, 1, cmd) != 1) { + retval = 0; + } + if (fd > 0) { + close(fd); + } + return retval; +} + +static void pci_config_write_long( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd, + long val) +{ + char path[100]; + int fd; + val = bswap_32(val); + sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev); + fd = open(path,O_RDONLY|O_SYNC); + if (fd > 0) { + pwrite(fd, &val, 4, cmd); + close(fd); + } +} + +static void pci_config_write_word( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd, + long val) +{ + char path[100]; + int fd; + val = bswap_16(val); + sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev); + fd = open(path,O_RDONLY|O_SYNC); + if (fd > 0) { + pwrite(fd, &val, 2, cmd); + close(fd); + } +} + +static void pci_config_write_byte( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd, + long val) +{ + char path[100]; + int fd; + sprintf(path,"/proc/bus/pci/%02d/%02x.0", bus, dev); + fd = open(path,O_RDONLY|O_SYNC); + if (fd > 0) { + pwrite(fd, &val, 1, cmd); + close(fd); + } +} +#else +static long pci_config_read_long( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd) +{ + long retval; + pciconfig_read(bus, dev<<3, cmd, 4, &retval); + return retval; +} + +static long pci_config_read_word( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd) +{ + long retval; + pciconfig_read(bus, dev<<3, cmd, 2, &retval); + return retval; +} + +static long pci_config_read_byte( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd) +{ + long retval; + pciconfig_read(bus, dev<<3, cmd, 1, &retval); + return retval; +} + +static void pci_config_write_long( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd, + long val) +{ + long retval; + pciconfig_write(bus, dev<<3, cmd, 4, val); + return retval; +} + +static void pci_config_write_word( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd, + long val) +{ + long retval; + pciconfig_write(bus, dev<<3, cmd, 2, val); + return retval; +} + +static void pci_config_write_byte( + unsigned char bus, + unsigned char dev, + int func, + unsigned cmd, + long val) +{ + long retval; + pciconfig_write(bus, dev<<3, cmd, 1, val); + return retval; +} +#endif |