--- src/sys/dev/serial/si/si.c 2004/09/19 01:20:42 1.13 +++ src/sys/dev/serial/si/si.c 2005/02/06 23:26:43 1.14 @@ -229,23 +229,33 @@ static char *si_type[] = { static void __inline si_bcopy(const void *src, void *dst, size_t len) { + const uint8_t *src_byte = (const uint8_t *)src; + uint8_t *dst_byte = (uint8_t *)dst; + while (len--) - *(((u_char *)dst)++) = *(((const u_char *)src)++); + *dst_byte++ = *src_byte++; } + static void __inline si_vbcopy(const volatile void *src, void *dst, size_t len) { + volatile const uint8_t *src_byte = (volatile const uint8_t *)src; + uint8_t *dst_byte = (uint8_t *)dst; + while (len--) - *(((u_char *)dst)++) = *(((const volatile u_char *)src)++); + *dst_byte++ = *src_byte++; } + static void __inline si_bcopyv(const void *src, volatile void *dst, size_t len) { + const uint8_t *src_byte = (const uint8_t *)src; + volatile uint8_t *dst_byte = (volatile uint8_t *)dst; + while (len--) - *(((volatile u_char *)dst)++) = *(((const u_char *)src)++); + *dst_byte++ = *src_byte++; } - /* * Attach the device. Initialize the card. */