svn commit: r305345 - head/sys/dev/ppbus

Dimitry Andric dim at FreeBSD.org
Sat Sep 3 13:48:45 UTC 2016


Author: dim
Date: Sat Sep  3 13:48:44 2016
New Revision: 305345
URL: https://svnweb.freebsd.org/changeset/base/305345

Log:
  With clang 3.9.0, compiling ppbus(4) results in the following warnings:
  
  sys/dev/ppbus/ppb_1284.c:296:46: error: implicit conversion from 'int'
  to 'char' changes value from 144 to -112 [-Werror,-Wconstant-conversion]
          if ((error = do_peripheral_wait(bus, SELECT | nBUSY, 0))) {
                       ~~~~~~~~~~~~~~~~~~      ~~~~~~~^~~~~~~
  sys/dev/ppbus/ppb_1284.c:785:48: error: implicit conversion from 'int'
  to 'char' changes value from 240 to -16 [-Werror,-Wconstant-conversion]
                  if (do_1284_wait(bus, nACK | SELECT | PERROR | nBUSY,
                      ~~~~~~~~~~~~      ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
  sys/dev/ppbus/ppb_1284.c:786:29: error: implicit conversion from 'int'
  to 'char' changes value from 240 to -16 [-Werror,-Wconstant-conversion]
                                          nACK | SELECT | PERROR | nBUSY)) {
                                          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
  
  This is because nBUSY is 0x80, so the plain char argument is wrapped to
  a negative value.  Fix this in a minimal fashion, by using uint8_t in a
  few places.
  
  Reviewed by:	emaste
  MFC after:	3 days
  Differential Revision: https://reviews.freebsd.org/D7771

Modified:
  head/sys/dev/ppbus/ppb_1284.c
  head/sys/dev/ppbus/ppb_base.c
  head/sys/dev/ppbus/ppbconf.h

Modified: head/sys/dev/ppbus/ppb_1284.c
==============================================================================
--- head/sys/dev/ppbus/ppb_1284.c	Sat Sep  3 13:33:28 2016	(r305344)
+++ head/sys/dev/ppbus/ppb_1284.c	Sat Sep  3 13:48:44 2016	(r305345)
@@ -57,13 +57,13 @@ __FBSDID("$FreeBSD$");
  * Wait for the peripherial up to 40ms
  */
 static int
-do_1284_wait(device_t bus, char mask, char status)
+do_1284_wait(device_t bus, uint8_t mask, uint8_t status)
 {
 	return (ppb_poll_bus(bus, 4, mask, status, PPB_NOINTR | PPB_POLL));
 }
 
 static int
-do_peripheral_wait(device_t bus, char mask, char status)
+do_peripheral_wait(device_t bus, uint8_t mask, uint8_t status)
 {
 	return (ppb_poll_bus(bus, 100, mask, status, PPB_NOINTR | PPB_POLL));
 }

Modified: head/sys/dev/ppbus/ppb_base.c
==============================================================================
--- head/sys/dev/ppbus/ppb_base.c	Sat Sep  3 13:33:28 2016	(r305344)
+++ head/sys/dev/ppbus/ppb_base.c	Sat Sep  3 13:48:44 2016	(r305345)
@@ -54,11 +54,11 @@ MODULE_VERSION(ppbus, 1);
  */
 int
 ppb_poll_bus(device_t bus, int max,
-	     char mask, char status, int how)
+	     uint8_t mask, uint8_t status, int how)
 {
 	struct ppb_data *ppb = DEVTOSOFTC(bus);
 	int i, j, error;
-	char r;
+	uint8_t r;
 
 	ppb_assert_locked(bus);
 
@@ -186,7 +186,7 @@ ppb_ecp_sync(device_t bus)
 int
 ppb_get_status(device_t bus, struct ppb_status *status)
 {
-	register char r;
+	uint8_t r;
 
 	ppb_assert_locked(bus);
 

Modified: head/sys/dev/ppbus/ppbconf.h
==============================================================================
--- head/sys/dev/ppbus/ppbconf.h	Sat Sep  3 13:33:28 2016	(r305344)
+++ head/sys/dev/ppbus/ppbconf.h	Sat Sep  3 13:48:44 2016	(r305345)
@@ -263,7 +263,7 @@ extern void _ppb_assert_locked(device_t,
 extern void ppb_init_callout(device_t, struct callout *, int);
 extern int ppb_sleep(device_t, void *, int, const char *, int);
 extern int ppb_get_status(device_t, struct ppb_status *);
-extern int ppb_poll_bus(device_t, int, char, char, int);
+extern int ppb_poll_bus(device_t, int, uint8_t, uint8_t, int);
 extern int ppb_reset_epp_timeout(device_t);
 extern int ppb_ecp_sync(device_t);
 extern int ppb_get_epp_protocol(device_t);


More information about the svn-src-head mailing list