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
This commit is contained in:
parent
402e32a8af
commit
3128fa9a5a
@ -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));
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -263,7 +263,7 @@ extern void _ppb_assert_locked(device_t, const char *, int);
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user