--- util-linux-2.12r/kbdrate/ok.c 2006-06-29 18:54:12.000000000 +0200 +++ util-linux-2.12r/kbdrate/kbdrate.c 2006-06-29 18:58:51.000000000 +0200 @@ -160,10 +160,19 @@ KIOCSRATE_ioctl_ok(double rate, int dela exit( 1 ); } +#ifdef __sparc__ + kbdrate_s.rate = (int) (rate + 0.5); /* round up */ +#else kbdrate_s.period = (int) (rate + 0.5); /* round up */ +#endif kbdrate_s.delay = delay * HZ / 1000; /* convert ms to Hz */ +#ifdef __sparc__ + if (kbdrate_s.rate > 50) + kbdrate_s.rate = 50; +#else if (kbdrate_s.period > 50) kbdrate_s.period = 50; +#endif if (ioctl( fd, KIOCSRATE, &kbdrate_s )) { perror( "ioctl(KIOCSRATE)" ); @@ -173,8 +182,11 @@ KIOCSRATE_ioctl_ok(double rate, int dela if (!silent) printf( "Typematic Rate set to %d cps (delay = %d ms)\n", +#ifdef __sparc__ + kbdrate_s.rate, kbdrate_s.delay * 1000 / HZ ); +#else kbdrate_s.period, kbdrate_s.delay * 1000 / HZ ); - +#endif return 1; #else /* no KIOCSRATE */ return 0; --- util-linux-2.12r/hwclock/rtc.c~ 2006-06-29 18:33:44.000000000 +0200 +++ util-linux-2.12r/hwclock/rtc.c 2006-06-29 18:41:40.000000000 +0200 @@ -41,8 +41,8 @@ struct sparc_rtc_time int year; /* Year (0-99) */ }; -#define RTCGET _IOR('p', 20, sparc_rtc_time) -#define RTCSET _IOW('p', 21, sparc_rtc_time) +#define RTCGET _IOR('p', 20, struct sparc_rtc_time) +#define RTCSET _IOW('p', 21, struct sparc_rtc_time) /* non-sparc stuff */ --- util-linux-2.12r/mount/umount.c.ok 2006-06-29 19:29:42.000000000 +0200 +++ util-linux-2.12r/mount/umount.c 2006-06-29 19:29:50.000000000 +0200 @@ -40,13 +40,13 @@ #include <linux/unistd.h> #ifdef __NR_umount2 -static int umount2(const char *path, int flags); +int umount2(const char *path, int flags); _syscall2(int, umount2, const char *, path, int, flags); #else /* __NR_umount2 */ -static int +int umount2(const char *path, int flags) { fprintf(stderr, _("umount: compiled without support for -f\n")); errno = ENOSYS;