summaryrefslogtreecommitdiff
path: root/contrib/libdha/mmi.c
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-05-31 20:50:38 +0200
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-05-31 20:50:38 +0200
commit7c4b35e87012bd2e82483c109281bd1ea42ae8a2 (patch)
tree2fe816c661fa102c69f3f6b75d62ebcc4d0cb9bb /contrib/libdha/mmi.c
parent39a3ba441844251b8fd2900864418cae92802b9d (diff)
downloadxine-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.c112
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);
+}