[flashrom] [commit] r1507 - trunk

repository service svn at flashrom.org
Sat Feb 25 23:50:23 CET 2012


Author: hailfinger
Date: Sat Feb 25 23:50:21 2012
New Revision: 1507
URL: http://flashrom.org/trac/flashrom/changeset/1507

Log:
Support Debian/kFreeBSD

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Tested-by: Robert Millan <rmh at debian.org>
Tested-by: Uwe Hermann <uwe at hermann-uwe.de>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Modified:
   trunk/hwaccess.c
   trunk/hwaccess.h
   trunk/os.h
   trunk/physmap.c

Modified: trunk/hwaccess.c
==============================================================================
--- trunk/hwaccess.c	Sat Feb 25 00:49:30 2012	(r1506)
+++ trunk/hwaccess.c	Sat Feb 25 23:50:21 2012	(r1507)
@@ -40,7 +40,7 @@
 {
 }
 
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 int io_fd;
 #endif
 
@@ -52,7 +52,7 @@
 #else
 #if defined (__sun) && (defined(__i386) || defined(__amd64))
 	if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
-#elif defined(__FreeBSD__) || defined (__DragonFly__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined (__DragonFly__)
 	if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
 #else 
 	if (iopl(3) != 0) {
@@ -71,7 +71,7 @@
 
 void release_io_perms(void)
 {
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 	close(io_fd);
 #endif
 }

Modified: trunk/hwaccess.h
==============================================================================
--- trunk/hwaccess.h	Sat Feb 25 00:49:30 2012	(r1506)
+++ trunk/hwaccess.h	Sat Feb 25 23:50:21 2012	(r1507)
@@ -189,6 +189,10 @@
  */
 
 #if defined(__FreeBSD__) || defined(__DragonFly__)
+  /* Note that Debian/kFreeBSD (FreeBSD kernel with glibc) has conflicting
+   * out[bwl] definitions in machine/cpufunc.h and sys/io.h at least in some
+   * versions. Use machine/cpufunc.h only for plain FreeBSD/DragonFlyBSD.
+   */
   #include <machine/cpufunc.h>
   #define off64_t off_t
   #define lseek64 lseek
@@ -228,7 +232,7 @@
   #define INL  inportl
 
 #else
-
+  /* This is the usual glibc interface. */
   #define OUTB outb
   #define OUTW outw
   #define OUTL outl
@@ -299,12 +303,12 @@
   #endif
 #endif
 
-#if !defined(__DARWIN__) && !defined(__FreeBSD__) && !defined(__DragonFly__) && !defined(__LIBPAYLOAD__)
+#if !defined(__DARWIN__) && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__DragonFly__) && !defined(__LIBPAYLOAD__)
 typedef struct { uint32_t hi, lo; } msr_t;
 msr_t rdmsr(int addr);
 int wrmsr(int addr, msr_t msr);
 #endif
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 /* FreeBSD already has conflicting definitions for wrmsr/rdmsr. */
 #undef rdmsr
 #undef wrmsr

Modified: trunk/os.h
==============================================================================
--- trunk/os.h	Sat Feb 25 00:49:30 2012	(r1506)
+++ trunk/os.h	Sat Feb 25 23:50:21 2012	(r1507)
@@ -30,6 +30,9 @@
 // FreeBSD
 #elif defined(__FreeBSD__)
 #define __FLASHROM_OS__ "FreeBSD"
+// FreeBSD with glibc-based userspace (e.g. Debian/kFreeBSD)
+#elif defined(__FreeBSD_kernel__) && defined(__GLIBC__)
+#define __FLASHROM_OS__ "FreeBSD-glibc"
 // DragonFlyBSD
 #elif defined(__DragonFly__)
 #define __FLASHROM_OS__ "DragonFlyBSD"

Modified: trunk/physmap.c
==============================================================================
--- trunk/physmap.c	Sat Feb 25 00:49:30 2012	(r1506)
+++ trunk/physmap.c	Sat Feb 25 23:50:21 2012	(r1507)
@@ -382,7 +382,7 @@
 	fd_msr = -1;
 }
 #else
-#if defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
 #include <sys/ioctl.h>
 
 typedef struct {




More information about the flashrom mailing list