[Mplayer-cvslog] CVS: main/libdha/sysdep AsmMacros_x86.h,1.1,1.2 pci_linux.c,1.2,1.3
Alex Beregszaszi
alex at mplayer.dev.hu
Sat Feb 2 08:05:55 CET 2002
Update of /cvsroot/mplayer/main/libdha/sysdep
In directory mplayer:/var/tmp.root/cvs-serv24889
Modified Files:
AsmMacros_x86.h pci_linux.c
Log Message:
added support for dhahelper
Index: AsmMacros_x86.h
===================================================================
RCS file: /cvsroot/mplayer/main/libdha/sysdep/AsmMacros_x86.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AsmMacros_x86.h 15 Jan 2002 08:31:53 -0000 1.1
+++ AsmMacros_x86.h 2 Feb 2002 07:05:52 -0000 1.2
@@ -11,24 +11,92 @@
#error This stuff is not ported on your system
#else
+#include "config.h"
+
+#ifdef CONFIG_DHAHELPER
+#include <sys/ioctl.h>
+#include "../kernelhelper/dhahelper.h"
+
+extern int dhahelper_fd;
+extern int dhahelper_initialized;
+#endif
+
static __inline__ void outb(short port,char val)
{
+#ifdef CONFIG_DHAHELPER
+ if (dhahelper_initialized == 1)
+ {
+ dhahelper_port_t _port;
+
+ _port.operation = PORT_OP_WRITE;
+ _port.addr = port;
+ _port.size = 1;
+ _port.value = val;
+ if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0)
+ return;
+ }
+ else
+#endif
__asm__ __volatile__("outb %0,%1" : :"a" (val), "d" (port));
+ return;
}
static __inline__ void outw(short port,short val)
{
+#ifdef CONFIG_DHAHELPER
+ if (dhahelper_initialized == 1)
+ {
+ dhahelper_port_t _port;
+
+ _port.operation = PORT_OP_WRITE;
+ _port.addr = port;
+ _port.size = 2;
+ _port.value = val;
+ if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0)
+ return;
+ }
+ else
+#endif
__asm__ __volatile__("outw %0,%1" : :"a" (val), "d" (port));
+ return;
}
static __inline__ void outl(short port,unsigned int val)
{
+#ifdef CONFIG_DHAHELPER
+ if (dhahelper_initialized == 1)
+ {
+ dhahelper_port_t _port;
+
+ _port.operation = PORT_OP_WRITE;
+ _port.addr = port;
+ _port.size = 4;
+ _port.value = val;
+ if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0)
+ return;
+ }
+ else
+#endif
__asm__ __volatile__("outl %0,%1" : :"a" (val), "d" (port));
+ return;
}
static __inline__ unsigned int inb(short port)
{
unsigned char ret;
+#ifdef CONFIG_DHAHELPER
+ if (dhahelper_initialized == 1)
+ {
+ dhahelper_port_t _port;
+
+ _port.operation = PORT_OP_READ;
+ _port.addr = port;
+ _port.size = 1;
+ if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0)
+ return _port.value;
+ }
+ else
+#endif
__asm__ __volatile__("inb %1,%0" :
"=a" (ret) :
"d" (port));
@@ -38,6 +106,19 @@
static __inline__ unsigned int inw(short port)
{
unsigned short ret;
+#ifdef CONFIG_DHAHELPER
+ if (dhahelper_initialized == 1)
+ {
+ dhahelper_port_t _port;
+
+ _port.operation = PORT_OP_READ;
+ _port.addr = port;
+ _port.size = 2;
+ if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0)
+ return _port.value;
+ }
+ else
+#endif
__asm__ __volatile__("inw %1,%0" :
"=a" (ret) :
"d" (port));
@@ -47,6 +128,19 @@
static __inline__ unsigned int inl(short port)
{
unsigned int ret;
+#ifdef CONFIG_DHAHELPER
+ if (dhahelper_initialized == 1)
+ {
+ dhahelper_port_t _port;
+
+ _port.operation = PORT_OP_READ;
+ _port.addr = port;
+ _port.size = 4;
+ if (ioctl(dhahelper_fd, DHAHELPER_PORT, &_port) == 0)
+ return _port.value;
+ }
+ else
+#endif
__asm__ __volatile__("inl %1,%0" :
"=a" (ret) :
"d" (port));
Index: pci_linux.c
===================================================================
RCS file: /cvsroot/mplayer/main/libdha/sysdep/pci_linux.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- pci_linux.c 15 Jan 2002 15:59:53 -0000 1.2
+++ pci_linux.c 2 Feb 2002 07:05:52 -0000 1.3
@@ -10,8 +10,26 @@
#include <sys/io.h>
#endif
+#include "config.h"
+
+#ifdef CONFIG_DHAHELPER
+#include <fcntl.h>
+int dhahelper_initialized = 0;
+int dhahelper_fd = 0;
+#endif
+
static __inline__ int enable_os_io(void)
{
+#ifdef CONFIG_DHAHELPER
+ dhahelper_fd = open("/dev/dhahelper", O_RDWR);
+ if (dhahelper_fd > 0)
+ {
+ dhahelper_initialized = 1;
+ return(0);
+ }
+ dhahelper_initialized = -1;
+#endif
+
if (iopl(3) != 0)
return(errno);
return(0);
@@ -19,6 +37,11 @@
static __inline__ int disable_os_io(void)
{
+#ifdef CONFIG_DHAHELPER
+ if (dhahelper_initialized == 1)
+ close(dhahelper_fd);
+ else
+#endif
if (iopl(0) != 0)
return(errno);
return(0);
More information about the MPlayer-cvslog
mailing list