Index: include/bus.h =================================================================== RCS file: /cvs/src/sys/arch/macppc/include/bus.h,v retrieving revision 1.24 diff -u -p -r1.24 bus.h --- include/bus.h 24 Jan 2015 20:59:42 -0000 1.24 +++ include/bus.h 29 Apr 2016 22:33:07 -0000 @@ -118,6 +118,38 @@ bus_space_write(4,32) #define bus_space_write_8 !!! bus_space_write_8 unimplemented !!! +#define __BA(t, h, o) ((void *)((h) + (o))) + +#define bus_space_read_raw(n,m) \ +static __inline CAT3(u_int,m,_t) \ +CAT(bus_space_read_raw_,n)(bus_space_tag_t bst, bus_space_handle_t bsh, \ + bus_addr_t ba) \ +{ \ + volatile CAT3(u_int,m,_t) *a = __BA(bst, bsh, ba); \ + return (*a); \ +} + +bus_space_read_raw(1,8) +bus_space_read_raw(2,16) +bus_space_read_raw(4,32) + +#define bus_space_read_raw_8 !!! bus_space_read_raw_8 unimplemented !!! + +#define bus_space_write_raw(n,m) \ +static __inline void \ +CAT(bus_space_write_raw_,n)(bus_space_tag_t bst, bus_space_handle_t bsh, \ + bus_addr_t ba, CAT3(u_int,m,_t) x) \ +{ \ + volatile CAT3(u_int,m,_t) *a = __BA(bst, bsh, ba); \ + *a = x; \ +} + +bus_space_write_raw(1,8) +bus_space_write_raw(2,16) +bus_space_write_raw(4,32) + +#define bus_space_write_raw_8 !!! bus_space_write_raw_8 unimplemented !!! + #define bus_space_read_multi(n, m) \ static __inline void \ CAT(bus_space_read_multi_,n)(bus_space_tag_t bst, bus_space_handle_t bsh, \ @@ -160,7 +192,6 @@ bus_space_write_multi(4,32) * described by tag/handle and starting at `offset' and copy into * buffer provided. */ -#define __BA(t, h, o) ((void *)((h) + (o))) static __inline void bus_space_read_region_1(bus_space_tag_t tag, bus_space_handle_t bsh,