Index: mmio_rw.c
===================================================================
--- mmio_rw.c (revision 11)
+++ mmio_rw.c (working copy)
@@ -51,18 +51,18 @@
mmap_addr->off = mmap_addr->addr & (mmap_addr->pgsize - 1);
mmap_addr->addr &= ~ ((uint64_t)mmap_addr->pgsize - 1);
- mmap_addr->fd = open("/dev/mem", flags);
+ mmap_addr->fd = open("/dev/mem", flags|O_DIRECT|O_SYNC);
if (mmap_addr->fd < 0) {
fprintf(stderr, "open(/dev/mem): %s\n", strerror(errno));
return -1;
}
prot = 0;
- if (flags == O_RDWR) {
+ if ((flags&O_ACCMODE) == O_RDWR) {
prot = PROT_READ | PROT_WRITE;
- } else if (flags == O_RDONLY) {
+ } else if ((flags & O_ACCMODE) == O_RDONLY) {
prot = PROT_READ;
- } else if (flags == O_WRONLY) {
+ } else if ((flags & O_ACCMODE) == O_WRONLY) {
prot = PROT_WRITE;
}
Index: Makefile
===================================================================
--- Makefile (revision 11)
+++ Makefile (working copy)
@@ -30,7 +30,8 @@
IOTOOLS_DEBUG = -O2 -DNDEBUG
endif
-CFLAGS = -Wall -Werror $(ARCHFLAGS) $(IOTOOLS_STATIC) $(IOTOOLS_DEBUG)
+CFLAGS = -Wall -Werror $(DEFS) $(ARCHFLAGS) $(IOTOOLS_STATIC) $(IOTOOLS_DEBUG)
+DEFS = -D_GNU_SOURCE
SBINDIR ?= /usr/local/sbin
BINARY=iotools
I don't think it matters.
Tim