fix non-portable right shifts.
This commit is contained in:
parent
aca238f770
commit
684eb06cd8
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: data.c,v 1.3 2003/07/26 19:25:08 salo Exp $ */
|
/* $NetBSD: data.c,v 1.4 2005/12/05 02:09:17 christos Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1999 Lennart Augustsson <augustss@NetBSD.org>
|
* Copyright (c) 1999 Lennart Augustsson <augustss@NetBSD.org>
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__RCSID("$NetBSD: data.c,v 1.3 2003/07/26 19:25:08 salo Exp $");
|
__RCSID("$NetBSD: data.c,v 1.4 2005/12/05 02:09:17 christos Exp $");
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -39,7 +39,7 @@ hid_get_data(const void *p, const hid_item_t *h)
|
||||||
const unsigned char *buf;
|
const unsigned char *buf;
|
||||||
unsigned int hpos;
|
unsigned int hpos;
|
||||||
unsigned int hsize;
|
unsigned int hsize;
|
||||||
int data;
|
uint32_t data;
|
||||||
int i, end, offs;
|
int i, end, offs;
|
||||||
|
|
||||||
_DIAGASSERT(p != NULL);
|
_DIAGASSERT(p != NULL);
|
||||||
|
@ -63,7 +63,7 @@ hid_get_data(const void *p, const hid_item_t *h)
|
||||||
hsize = sizeof data * 8 - hsize;
|
hsize = sizeof data * 8 - hsize;
|
||||||
data = (data << hsize) >> hsize;
|
data = (data << hsize) >> hsize;
|
||||||
}
|
}
|
||||||
return (data);
|
return (int)(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -95,6 +95,6 @@ hid_set_data(void *p, const hid_item_t *h, int data)
|
||||||
end = (hpos + hsize) / 8 - offs;
|
end = (hpos + hsize) / 8 - offs;
|
||||||
|
|
||||||
for (i = 0; i <= end; i++)
|
for (i = 0; i <= end; i++)
|
||||||
buf[offs + i] = (buf[offs + i] & (mask >> (i*8))) |
|
buf[offs + i] = (buf[offs + i] & ((uint32_t)mask >> (i*8))) |
|
||||||
((data >> (i*8)) & 0xff);
|
(((uint32_t)data >> (i*8)) & 0xff);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue