> Date: Tue, 7 Jul 2020 22:49:31 +0200
> From: Christian Weisgerber <[email protected]>
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: inline
>
> Userland gettime support for alpha.
>
> Alas, completely untested since I don't have access to that arch.
>
> Index: lib/libc/arch/alpha/gen/usertc.c
> ===================================================================
> RCS file: /cvs/src/lib/libc/arch/alpha/gen/usertc.c,v
> retrieving revision 1.1
> diff -u -p -r1.1 usertc.c
> --- lib/libc/arch/alpha/gen/usertc.c 6 Jul 2020 13:33:05 -0000 1.1
> +++ lib/libc/arch/alpha/gen/usertc.c 7 Jul 2020 20:40:37 -0000
> @@ -18,4 +18,18 @@
> #include <sys/types.h>
> #include <sys/timetc.h>
>
> -int (*const _tc_get_timecount)(struct timekeep *, u_int *) = NULL;
> +int
> +tc_get_timecount(struct timekeep *tk, u_int *tc)
Need to make this function static to avoid namespace pollution.
> +{
> + unsigned long val;
> +
> + if (tk->tk_user != TC_RPCC)
> + return -1;
> +
> + __asm volatile("rpcc %0" : "=r" (val));
> + *tc = val;
> + return 0;
> +}
> +
> +int (*const _tc_get_timecount)(struct timekeep *, u_int *)
> + = tc_get_timecount;
> Index: sys/arch/alpha/alpha/clock.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/alpha/alpha/clock.c,v
> retrieving revision 1.24
> diff -u -p -r1.24 clock.c
> --- sys/arch/alpha/alpha/clock.c 6 Jul 2020 13:33:06 -0000 1.24
> +++ sys/arch/alpha/alpha/clock.c 7 Jul 2020 20:29:47 -0000
> @@ -64,7 +64,7 @@ int clk_irq = 0;
>
> u_int rpcc_get_timecount(struct timecounter *);
> struct timecounter rpcc_timecounter = {
> - rpcc_get_timecount, NULL, ~0u, 0, "rpcc", 0, NULL, 0
> + rpcc_get_timecount, NULL, ~0u, 0, "rpcc", 0, NULL, TC_RPCC
> };
>
> extern todr_chip_handle_t todr_handle;
> Index: sys/arch/alpha/include/timetc.h
> ===================================================================
> RCS file: /cvs/src/sys/arch/alpha/include/timetc.h,v
> retrieving revision 1.1
> diff -u -p -r1.1 timetc.h
> --- sys/arch/alpha/include/timetc.h 6 Jul 2020 13:33:06 -0000 1.1
> +++ sys/arch/alpha/include/timetc.h 7 Jul 2020 20:42:53 -0000
> @@ -18,6 +18,7 @@
> #ifndef _MACHINE_TIMETC_H_
> #define _MACHINE_TIMETC_H_
>
> -#define TC_LAST 0
> +#define TC_RPCC 1
> +#define TC_LAST 2
>
> #endif /* _MACHINE_TIMETC_H_ */
> --
> Christian "naddy" Weisgerber [email protected]
>
>