| 965 | |
| 966 | template <uint page> |
| 967 | __fi u16 rcntRead32(u32 mem) |
| 968 | { |
| 969 | // Important DevNote: |
| 970 | // Yes this uses a u16 return value on purpose! The upper bits 16 of the counter registers |
| 971 | // are all fixed to 0, so we always truncate everything in these two pages using a u16 |
| 972 | // return value! --air |
| 973 | |
| 974 | switch( mem ) |
| 975 | { |
| 976 | case(RCNT0_COUNT): return (u16)rcntRcount(0); |
| 977 | case(RCNT0_MODE): return (u16)counters[0].modeval; |
| 978 | case(RCNT0_TARGET): return (u16)counters[0].target; |
| 979 | case(RCNT0_HOLD): return (u16)counters[0].hold; |
| 980 | |
| 981 | case(RCNT1_COUNT): return (u16)rcntRcount(1); |
| 982 | case(RCNT1_MODE): return (u16)counters[1].modeval; |
| 983 | case(RCNT1_TARGET): return (u16)counters[1].target; |
| 984 | case(RCNT1_HOLD): return (u16)counters[1].hold; |
| 985 | |
| 986 | case(RCNT2_COUNT): return (u16)rcntRcount(2); |
| 987 | case(RCNT2_MODE): return (u16)counters[2].modeval; |
| 988 | case(RCNT2_TARGET): return (u16)counters[2].target; |
| 989 | |
| 990 | case(RCNT3_COUNT): return (u16)rcntRcount(3); |
| 991 | case(RCNT3_MODE): return (u16)counters[3].modeval; |
| 992 | case(RCNT3_TARGET): return (u16)counters[3].target; |
| 993 | } |
| 994 | |
| 995 | return psHu16(mem); |
| 996 | } |
| 997 | |
| 998 | template <uint page> |
| 999 | __fi bool rcntWrite32(u32 mem, mem32_t& value) |
nothing calls this directly
no test coverage detected