chiark / gitweb /
Changed the build system to drop I2C for now. Seems to cause too many issues
[wiringPi.git] / wiringPi / wiringPi.c
index 36c49f548703fb443c36730daa14c34ab89b2705..9655db25d705a292dc08608f12d54c3fa8d64f8b 100644 (file)
@@ -1204,7 +1204,11 @@ int wiringPiSetup (void)
   if ((fd = open ("/dev/mem", O_RDWR | O_SYNC) ) < 0)
   {
     if (wiringPiDebug)
-      fprintf (stderr, "wiringPiSetup: Unable to open /dev/mem: %s\n", strerror (errno)) ;
+    {
+      int serr = errno ;
+       fprintf (stderr, "wiringPiSetup: Unable to open /dev/mem: %s\n", strerror (errno)) ;
+      errno = serr ;
+    }
     return -1 ;
   }
 
@@ -1214,7 +1218,11 @@ int wiringPiSetup (void)
   if ((int32_t)gpio == -1)
   {
     if (wiringPiDebug)
-      fprintf (stderr, "wiringPiSetup: mmap failed: %s\n", strerror (errno)) ;
+    {
+      int serr = errno ;
+       fprintf (stderr, "wiringPiSetup: mmap failed: %s\n", strerror (errno)) ;
+      errno = serr ;
+    }
     return -1 ;
   }
 
@@ -1224,27 +1232,39 @@ int wiringPiSetup (void)
   if ((int32_t)pwm == -1)
   {
     if (wiringPiDebug)
-      fprintf (stderr, "wiringPiSetup: mmap failed (pwm): %s\n", strerror (errno)) ;
+    {
+      int serr = errno ;
+       fprintf (stderr, "wiringPiSetup: mmap failed (pwm): %s\n", strerror (errno)) ;
+      errno = serr ;
+    }
     return -1 ;
   }
  
 // Clock control (needed for PWM)
 
   clk = (uint32_t *)mmap(0, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, CLOCK_BASE) ;
-  if ((int32_t)clk < 0)
+  if ((int32_t)clk == -1)
   {
     if (wiringPiDebug)
-      fprintf (stderr, "wiringPiSetup: mmap failed (clk): %s\n", strerror (errno)) ;
+    {
+      int serr = errno ;
+       fprintf (stderr, "wiringPiSetup: mmap failed (clk): %s\n", strerror (errno)) ;
+      errno = serr ;
+    }
     return -1 ;
   }
  
 // The drive pads
 
   pads = (uint32_t *)mmap(0, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, GPIO_PADS) ;
-  if ((int32_t)pads < 0)
+  if ((int32_t)pads == -1)
   {
     if (wiringPiDebug)
-      fprintf (stderr, "wiringPiSetup: mmap failed (pads): %s\n", strerror (errno)) ;
+    {
+      int serr = errno ;
+       fprintf (stderr, "wiringPiSetup: mmap failed (pads): %s\n", strerror (errno)) ;
+      errno = serr ;
+    }
     return -1 ;
   }
 
@@ -1256,10 +1276,14 @@ int wiringPiSetup (void)
 // The system timer
 
   timer = (uint32_t *)mmap(0, BLOCK_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, GPIO_TIMER) ;
-  if ((int32_t)timer < 0)
+  if ((int32_t)timer == -1)
   {
     if (wiringPiDebug)
-      fprintf (stderr, "wiringPiSetup: mmap failed (timer): %s\n", strerror (errno)) ;
+    {
+      int serr = errno ;
+       fprintf (stderr, "wiringPiSetup: mmap failed (timer): %s\n", strerror (errno)) ;
+      errno = serr ;
+    }
     return -1 ;
   }