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/mmi.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/mmi.c')
-rw-r--r-- | contrib/libdha/mmi.c | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/contrib/libdha/mmi.c b/contrib/libdha/mmi.c new file mode 100644 index 000000000..39d21926a --- /dev/null +++ b/contrib/libdha/mmi.c @@ -0,0 +1,112 @@ +/* Memory manager interface */ +#include <stdio.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/mman.h> /* mlock */ +#include <errno.h> +#include <unistd.h> +#include <fcntl.h> +#include "libdha.h" +#include "kernelhelper/dhahelper.h" + +static int libdha_fd=-1; + +#define ALLOWED_VER 0x10 +int bm_open( void ) +{ + int retv; + libdha_fd = open("/dev/dhahelper",O_RDWR); + retv = libdha_fd > 0 ? 0 : ENXIO; + if(!retv) + { + int ver; + ioctl(libdha_fd,DHAHELPER_GET_VERSION,&ver); + if(ver < ALLOWED_VER) + { + printf("libdha: You have wrong version (%i) of /dev/dhahelper\n" + "libdha: Please upgrade your driver up to ver=%i\n",ver,ALLOWED_VER); + retv = EINVAL; + close(libdha_fd); + } + } + else printf("libdha: Can't open /dev/dhahelper\n"); + return retv; +} + +void bm_close( void ) +{ + close(libdha_fd); +} + +int bm_virt_to_phys( void * virt_addr, unsigned long length, unsigned long * parray ) +{ + dhahelper_vmi_t vmi; + vmi.virtaddr = virt_addr; + vmi.length = length; + vmi.realaddr = parray; + if(libdha_fd > 0) return ioctl(libdha_fd,DHAHELPER_VIRT_TO_PHYS,&vmi); + return ENXIO; +} + +int bm_virt_to_bus( void * virt_addr, unsigned long length, unsigned long * barray ) +{ + dhahelper_vmi_t vmi; + vmi.virtaddr = virt_addr; + vmi.length = length; + vmi.realaddr = barray; + if(libdha_fd > 0) return ioctl(libdha_fd,DHAHELPER_VIRT_TO_BUS,&vmi); + return ENXIO; +} + +void * bm_alloc_pci_shmem(pciinfo_t *pi, unsigned mem_bitness, unsigned long length,int op ) +{ + printf("libdha: Pure virtual function call - bm_alloc_pci_shmem()\n"); +#if 0 + dhahelper_mem_t vmi; + vmi.length = length; + if(libdha_fd > 0) + { + if(ioctl(libdha_fd,DHAHELPER_ALLOC_PA,&vmi) == 0) + return vmi.addr; + } +#endif + return NULL; +} + +void bm_free_pci_shmem(void * pci_shmem) +{ + printf("libdha: Pure virtual function call - bm_free_pci_shmem()\n"); +#if 0 + dhahelper_mem_t vmi; + vmi.addr = virt_addr; + vmi.length = length; + if(libdha_fd > 0) + { + ioctl(libdha_fd,DHAHELPER_FREE_PA,&vmi); + } +#endif +} + +int bm_lock_mem( const void *addr, unsigned long length ) +{ + dhahelper_mem_t vmi; + vmi.addr = (void *) addr; + vmi.length = length; + if(libdha_fd > 0) + { + return ioctl(libdha_fd,DHAHELPER_LOCK_MEM,&vmi); + } + return mlock(addr,length); +} + +int bm_unlock_mem( const void * addr, unsigned long length ) +{ + dhahelper_mem_t vmi; + vmi.addr = (void *) addr; + vmi.length = length; + if(libdha_fd > 0) + { + return ioctl(libdha_fd,DHAHELPER_UNLOCK_MEM,&vmi); + } + return munlock(addr,length); +} |