Releasing IO permissions was done by hand everywhere

Use a proper abstraction. Kill unneeded #include statements.

Corresponding to flashrom svn r672.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
diff --git a/flash.h b/flash.h
index 8a80dc5..e4f60c4 100644
--- a/flash.h
+++ b/flash.h
@@ -308,6 +308,7 @@
 struct pci_dev *pci_card_find(uint16_t vendor, uint16_t device,
 			      uint16_t card_vendor, uint16_t card_device);
 void get_io_perms(void);
+void release_io_perms(void);
 int internal_init(void);
 int internal_shutdown(void);
 void internal_chip_writeb(uint8_t val, chipaddr addr);
diff --git a/internal.c b/internal.c
index 302c7a9..888c502 100644
--- a/internal.c
+++ b/internal.c
@@ -95,6 +95,13 @@
 	}
 }
 
+void release_io_perms(void)
+{
+#if defined(__FreeBSD__) || defined(__DragonFly__)
+	close(io_fd);
+#endif
+}
+
 int internal_init(void)
 {
 	int ret = 0;
@@ -128,9 +135,7 @@
 
 int internal_shutdown(void)
 {
-#if defined(__FreeBSD__) || defined(__DragonFly__)
-	close(io_fd);
-#endif
+	release_io_perms();
 
 	return 0;
 }
diff --git a/nic3com.c b/nic3com.c
index 81b4f9e..bdf7db2 100644
--- a/nic3com.c
+++ b/nic3com.c
@@ -20,10 +20,7 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <fcntl.h>
 #include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
 #include "flash.h"
 
 #define BIOS_ROM_ADDR		0x04
@@ -99,9 +96,7 @@
 
 	free(pcidev_bdf);
 	pci_cleanup(pacc);
-#if defined(__FreeBSD__) || defined(__DragonFly__)
-	close(io_fd);
-#endif
+	release_io_perms();
 	return 0;
 }
 
diff --git a/satasii.c b/satasii.c
index 03baa3e..b576749 100644
--- a/satasii.c
+++ b/satasii.c
@@ -22,10 +22,6 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
 #include "flash.h"
 
 #define PCI_VENDOR_ID_SII	0x1095
@@ -77,9 +73,7 @@
 {
 	free(pcidev_bdf);
 	pci_cleanup(pacc);
-#if defined(__FreeBSD__) || defined(__DragonFly__)
-	close(io_fd);
-#endif
+	release_io_perms();
 	return 0;
 }