Changes to make flashrom compile (and work) on FreeBSD
This patch addresses different argument order of outX() calls,
FreeBSD-specific headers, difference in certain type names and system
interface names, and also FreeBSD-specific way of gaining IO port
access.
Corresponding to flashrom svn r245 and coreboot v2 svn r3344.
Signed-off-by: Andriy Gapon <avg@icyb.net.ua>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
diff --git a/flashrom.c b/flashrom.c
index 842d473..e366f94 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -252,6 +252,9 @@
int option_index = 0;
int read_it = 0, write_it = 0, erase_it = 0, verify_it = 0;
int ret = 0, i;
+#ifdef __FreeBSD__
+ int io_fd;
+#endif
static struct option long_options[] = {
{"read", 0, 0, 'r'},
@@ -367,6 +370,8 @@
/* First get full io access */
#if defined (__sun) && (defined(__i386) || defined(__amd64))
if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
+#elif defined(__FreeBSD__)
+ if ((io_fd = open("/dev/io", O_RDWR)) < 0) {
#else
if (iopl(3) != 0) {
#endif
@@ -559,5 +564,8 @@
if (verify_it)
ret |= verify_flash(flash, buf);
+#ifdef __FreeBSD__
+ close(io_fd);
+#endif
return ret;
}