Group :: Som
RPM: fmio
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: fmio-2.0.8-nodirectio.patch
Download
Download
diff -up fmio-2.0.8/Makefile.nodirectio fmio-2.0.8/Makefile
--- fmio-2.0.8/Makefile.nodirectio 2007-11-12 01:10:10.000000000 +0200
+++ fmio-2.0.8/Makefile 2007-11-12 01:29:13.000000000 +0200
@@ -1,4 +1,7 @@
-SUBDIRS = src utils xsrc
+SUBDIRS = src xsrc
+ifeq ($(WITH_DIRECT_IO),y)
+SUBDIRS += utils
+endif
all:
for i in $(SUBDIRS); do \
diff -up fmio-2.0.8/src/radio.c.nodirectio fmio-2.0.8/src/radio.c
--- fmio-2.0.8/src/radio.c.nodirectio 2007-11-12 01:10:10.000000000 +0200
+++ fmio-2.0.8/src/radio.c 2007-11-12 01:10:10.000000000 +0200
@@ -46,6 +46,7 @@
#define MMAX(a,b) ((a) >= (b) ? (a) : (b))
EXPORT_FUNC export_db[] = {
+#ifdef USE_DIRECT_IO
export_aztech, /* Aztech/PackardBell */
#ifdef USE_BKTR
export_bktr, /* Brooktree BT848/BT878 or Video4Linux */
@@ -76,6 +77,9 @@ EXPORT_FUNC export_db[] = {
export_xtreme, /* AIMS Lab Highway Xtreme */
#endif /* BSDBKTR */
export_zx /* Zoltrix RadioPlus */
+#else
+ export_bktr
+#endif /* USE_DIRECT_IO */
};
struct tuner_drv_t **drv_db;
diff -up fmio-2.0.8/src/Makefile.nodirectio fmio-2.0.8/src/Makefile
--- fmio-2.0.8/src/Makefile.nodirectio 2007-11-12 01:10:10.000000000 +0200
+++ fmio-2.0.8/src/Makefile 2007-11-12 01:10:10.000000000 +0200
@@ -23,17 +23,23 @@ HDRS= bu2614.h lm700x.h pt2254a.h radio.
ALLHDRS= $(HDRS) export.h mixer.h ostypes.h pci.h
OBJS= access.o bu2614.o lm700x.o mixer.o pci.o pt2254a.o radio.o tc921x.o \
tea5757.o
-DRVS= aztech.o bktr.o bmc-hma.o bsdradio.o ecoradio.o \
+DRVS= bktr.o
+
+ifeq ($(WITH_DIRECT_IO),y)
+DIRECT_IO_DRVS= aztech.o bmc-hma.o bsdradio.o ecoradio.o \
gemtek-isa.o gemtek-pci.o radiotrack.o radiotrackII.o \
sf16fmd2.o sf16fmr.o sf16fmr2.o sf64pce2.o sf64pcr.o sf256pcpr.o \
sf256pcsr.o spase.o terratec-isa.o trust.o xtreme.o zoltrix.o
+CFLAGS += -DUSE_DIRECT_IO
+endif
+
FMIOOBJ= fmio.o
FMIO= fmio
MANPAGE= fmio.1
CATPAGE= fmio.0
-REMOVABLE= $(FMIOOBJ) $(FMIO) $(OBJS) $(DRVS) libradio.so *core
+REMOVABLE= $(FMIOOBJ) $(FMIO) $(OBJS) $(DIRECT_IO_DRVS) $(DRVS) libradio.so *core
PREFIX?= $(DESTDIR)$(prefix)
LIBDIR?= $(DESTDIR)$(libdir)
@@ -89,9 +95,9 @@ clean:
distclean:
rm -f $(REMOVABLE) $(CATPAGE)
-libradio.so: $(ALLHDRS) $(OBJS) $(DRVS)
+libradio.so: $(ALLHDRS) $(OBJS) $(DIRECT_IO_DRVS) $(DRVS)
rm -f $@
- $(CC) -o $@ -shared $(CFLAGS) $(LDFLAGS) $(OBJS) $(DRVS)
+ $(CC) -o $@ -shared $(CFLAGS) $(LDFLAGS) $(OBJS) $(DIRECT_IO_DRVS) $(DRVS)
fmio.0: $(MANPAGE)
@echo "groff -Tascii -mandoc $(MANPAGE) > $@"
diff -up fmio-2.0.8/src/radio_drv.h.nodirectio fmio-2.0.8/src/radio_drv.h
--- fmio-2.0.8/src/radio_drv.h.nodirectio 2003-05-13 18:08:44.000000000 +0300
+++ fmio-2.0.8/src/radio_drv.h 2007-11-12 01:10:10.000000000 +0200
@@ -32,7 +32,16 @@
#include <sys/ioctl.h>
#ifdef linux
+#ifdef USE_DIRECT_IO
#include <sys/io.h>
+#else
+#define inl(a) 0x00
+#define inw(a) 0x00
+#define inb(a) 0x00
+#define outl(a, b)
+#define outw(a, b)
+#define outb(a, b)
+#endif
#include <libv4l1-videodev.h>
#elif defined __FreeBSD__
#include <machine/ioctl_bt848.h>
diff -up fmio-2.0.8/src/access.c.nodirectio fmio-2.0.8/src/access.c
--- fmio-2.0.8/src/access.c.nodirectio 2003-05-13 18:08:44.000000000 +0300
+++ fmio-2.0.8/src/access.c 2007-11-12 01:10:10.000000000 +0200
@@ -52,7 +52,7 @@ const char *radio_device_1 = "/dev/radio
const char *radio_device_2 = "/dev/radio0";
#endif /* linux */
-#ifdef __FreeBSD__
+#if defined __FreeBSD__ && defined USE_DIRECT_IO
const char *devio = "/dev/io";
static int fd = -1;
@@ -75,13 +75,13 @@ fbsd_release_ioperms(void) {
return 0;
}
-#elif defined __QNXNTO__
+#elif defined __QNXNTO__ && defined USE_DIRECT_IO
int
qnx_iopl_acquire() {
ThreadCtl(_NTO_TCTL_IO, 0);
return 0;
}
-#elif defined linux
+#elif defined linux && defined USE_DIRECT_IO
int
os_iopl(int v) {
if (iopl(v) < 0) {
@@ -100,7 +100,7 @@ os_ioperms(u_int32_t port, int no, int v
return 0;
}
-#elif defined __OpenBSD__ || defined __NetBSD__
+#elif (defined __OpenBSD__ || defined __NetBSD__) && defined USE_DIRECT_IO
int
os_iopl(int v) {
struct i386_iopl_args iopls;