timerreg_4u
struct timerreg_4u timerreg_4u; /* XXX - need more cleanup */
return (u_int)ldxa((vaddr_t)&timerreg_4u.t_timer[1].t_count,
timerreg_4u.t_timer = (struct timer_4u *)(u_long)va[0];
timerreg_4u.t_clrintr = (int64_t *)(u_long)va[1];
timerreg_4u.t_mapintr = (int64_t *)(u_long)va[2];
stxa((vaddr_t)&timerreg_4u.t_mapintr[0], ASI_NUCLEUS,
(timerreg_4u.t_mapintr[0] & ~(INTMAP_V|INTMAP_TID)) |
stxa((vaddr_t)&timerreg_4u.t_mapintr[1], ASI_NUCLEUS,
(timerreg_4u.t_mapintr[1] & ~(INTMAP_V|INTMAP_TID)) |
level10->ih_clr = &timerreg_4u.t_clrintr[0];
level14->ih_clr = &timerreg_4u.t_clrintr[1];
cnt = &(timerreg_4u.t_timer[0].t_count);
lim = &(timerreg_4u.t_timer[0].t_limit);
if (!timerreg_4u.t_timer || !timerreg_4u.t_clrintr) {
stxa((vaddr_t)&timerreg_4u.t_timer[0].t_limit, ASI_NUCLEUS,
stxa((vaddr_t)&timerreg_4u.t_mapintr[0], ASI_NUCLEUS,
timerreg_4u.t_mapintr[0]|INTMAP_V);
stxa((vaddr_t)&timerreg_4u.t_timer[1].t_limit, ASI_NUCLEUS,
stxa((vaddr_t)&timerreg_4u.t_timer[1].t_limit, ASI_NUCLEUS,
stxa((vaddr_t)&timerreg_4u.t_timer[1].t_limit, ASI_NUCLEUS,
stxa((vaddr_t)&timerreg_4u.t_mapintr[1], ASI_NUCLEUS,
timerreg_4u.t_mapintr[1]|INTMAP_V|(CPU_UPAID << INTMAP_TID_SHIFT));
timerreg_4u.t_timer[0].t_count, timerreg_4u.t_timer[1].t_count,
timerreg_4u.t_timer[0].t_limit, timerreg_4u.t_timer[1].t_limit);
stxa((vaddr_t)&timerreg_4u.t_timer[1].t_limit, ASI_NUCLEUS,