Index: include/bus.h =================================================================== RCS file: /cvs/src/sys/arch/alpha/include/bus.h,v retrieving revision 1.29 diff -u -p -r1.29 bus.h --- include/bus.h 23 Mar 2011 16:54:34 -0000 1.29 +++ include/bus.h 1 May 2016 00:44:28 -0000 @@ -79,6 +79,16 @@ struct alpha_bus_space { u_int64_t (*abs_r_8)(void *, bus_space_handle_t, bus_size_t); + /* read raw (single) */ + u_int8_t (*abs_rd_raw_1)(void *, bus_space_handle_t, + bus_size_t); + u_int16_t (*abs_rd_raw_2)(void *, bus_space_handle_t, + bus_size_t); + u_int32_t (*abs_rd_raw_4)(void *, bus_space_handle_t, + bus_size_t); + u_int64_t (*abs_rd_raw_8)(void *, bus_space_handle_t, + bus_size_t); + /* read multiple */ void (*abs_rm_1)(void *, bus_space_handle_t, bus_size_t, u_int8_t *, bus_size_t); @@ -108,6 +118,16 @@ struct alpha_bus_space { bus_size_t, u_int32_t); void (*abs_w_8)(void *, bus_space_handle_t, bus_size_t, u_int64_t); + + /* write raw (single) */ + void (*abs_wr_raw_1)(void *, bus_space_handle_t, + bus_size_t, u_int8_t); + void (*abs_wr_raw_2)(void *, bus_space_handle_t, + bus_size_t, u_int16_t); + void (*abs_wr_raw_4)(void *, bus_space_handle_t, + bus_size_t, u_int32_t); + void (*abs_wr_raw_8)(void *, bus_space_handle_t, + bus_size_t, u_int64_t); /* write multiple */ void (*abs_wm_1)(void *, bus_space_handle_t, @@ -187,8 +207,12 @@ struct alpha_bus_space { #define __abs_rs(sz, t, h, o) \ (*(t)->__abs_opname(r,sz))((t)->abs_cookie, h, o) +#define __abs_rd_raws(sz, t, h, o) \ + (*(t)->__abs_opname(rd_raw,sz))((t)->abs_cookie, h, o) #define __abs_ws(sz, t, h, o, v) \ (*(t)->__abs_opname(w,sz))((t)->abs_cookie, h, o, v) +#define __abs_wr_raws(sz, t, h, o, v) \ + (*(t)->__abs_opname(wr_raw,sz))((t)->abs_cookie, h, o, v) #define __abs_nonsingle(type, sz, t, h, o, a, c) \ (*(t)->__abs_opname(type,sz))((t)->abs_cookie, h, o, a, c) #ifndef DEBUG @@ -258,6 +282,13 @@ struct alpha_bus_space { #define bus_space_read_4(t, h, o) __abs_rs(4,(t),(h),(o)) #define bus_space_read_8(t, h, o) __abs_rs(8,(t),(h),(o)) +/* + * Bus read raw (single) operations. + */ +#define bus_space_read_raw_1(t, h, o) __abs_rd_raws(1,(t),(h),(o)) +#define bus_space_read_raw_2(t, h, o) __abs_rd_raws(2,(t),(h),(o)) +#define bus_space_read_raw_4(t, h, o) __abs_rd_raws(4,(t),(h),(o)) +#define bus_space_read_raw_8(t, h, o) __abs_rd_raws(8,(t),(h),(o)) /* * Bus read multiple operations. @@ -328,6 +359,13 @@ struct alpha_bus_space { #define bus_space_write_4(t, h, o, v) __abs_ws(4,(t),(h),(o),(v)) #define bus_space_write_8(t, h, o, v) __abs_ws(8,(t),(h),(o),(v)) +/* + * Bus write (single) operations. + */ +#define bus_space_write_raw_1(t, h, o, v) __abs_wr_raws(1,(t),(h),(o),(v)) +#define bus_space_write_raw_2(t, h, o, v) __abs_wr_raws(2,(t),(h),(o),(v)) +#define bus_space_write_raw_4(t, h, o, v) __abs_wr_raws(4,(t),(h),(o),(v)) +#define bus_space_write_raw_8(t, h, o, v) __abs_wr_raws(8,(t),(h),(o),(v)) /* * Bus write multiple operations. Index: tc/tc_bus_mem.c =================================================================== RCS file: /cvs/src/sys/arch/alpha/tc/tc_bus_mem.c,v retrieving revision 1.17 diff -u -p -r1.17 tc_bus_mem.c --- tc/tc_bus_mem.c 4 Apr 2010 12:49:27 -0000 1.17 +++ tc/tc_bus_mem.c 1 May 2016 00:44:28 -0000 @@ -176,6 +176,12 @@ struct alpha_bus_space tc_mem_space = { tc_mem_read_4, tc_mem_read_8, + /* read raw (single) */ + tc_mem_read_1, + tc_mem_read_2, + tc_mem_read_4, + tc_mem_read_8, + /* read multiple */ tc_mem_read_multi_1, tc_mem_read_multi_2, @@ -187,6 +193,12 @@ struct alpha_bus_space tc_mem_space = { tc_mem_read_region_2, tc_mem_read_region_4, tc_mem_read_region_8, + + /* write (single) */ + tc_mem_write_1, + tc_mem_write_2, + tc_mem_write_4, + tc_mem_write_8, /* write (single) */ tc_mem_write_1,