summaryrefslogtreecommitdiff
path: root/internal.c
diff options
context:
space:
mode:
authoruwe <uwe@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2009-05-14 20:41:57 +0000
committeruwe <uwe@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2009-05-14 20:41:57 +0000
commitdb6e99604a49158868dd4975e470901e492848b4 (patch)
treed002290fdd64e4adca0ad8a00e16821e987347cb /internal.c
parentb784f43e5b6ca66f86b3a2e4d1841a6b765236ae (diff)
downloadflashrom-db6e99604a49158868dd4975e470901e492848b4.tar.gz
Factor out portable iopl()-style code into a global function
which all programmers can use, add missing close() call (trivial). Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@511 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'internal.c')
-rw-r--r--internal.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/internal.c b/internal.c
index 4c12115..2f9ba17 100644
--- a/internal.c
+++ b/internal.c
@@ -83,11 +83,8 @@ struct pci_dev *pci_card_find(uint16_t vendor, uint16_t device,
return NULL;
}
-int internal_init(void)
+void get_io_perms(void)
{
- int ret = 0;
-
- /* First get full io access */
#if defined (__sun) && (defined(__i386) || defined(__amd64))
if (sysi86(SI86V86, V86SC_IOPL, PS_IOPL) != 0) {
#elif defined(__FreeBSD__) || defined (__DragonFly__)
@@ -95,9 +92,17 @@ int internal_init(void)
#else
if (iopl(3) != 0) {
#endif
- fprintf(stderr, "ERROR: Could not get IO privileges (%s).\nYou need to be root.\n", strerror(errno));
+ fprintf(stderr, "ERROR: Could not get I/O privileges (%s).\n"
+ "You need to be root.\n", strerror(errno));
exit(1);
}
+}
+
+int internal_init(void)
+{
+ int ret = 0;
+
+ get_io_perms(void);
/* Initialize PCI access for flash enables */
pacc = pci_alloc(); /* Get the pci_access structure */