correct bus space unmap prototype
Reviewed by: cognet, imp MFC after: 1 month
This commit is contained in:
parent
7fb399a7e5
commit
588a2322a9
@ -152,7 +152,7 @@ nexus_bs_alloc(t, rstart, rend, size, alignment, boundary, cacheable,
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
nexus_bs_unmap(void *t, bus_size_t size)
|
nexus_bs_unmap(void *t, bus_space_handle_t h, bus_size_t size)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Temporary implementation
|
* Temporary implementation
|
||||||
|
@ -93,7 +93,7 @@ struct bus_space {
|
|||||||
/* mapping/unmapping */
|
/* mapping/unmapping */
|
||||||
int (*bs_map) (void *, bus_addr_t, bus_size_t,
|
int (*bs_map) (void *, bus_addr_t, bus_size_t,
|
||||||
int, bus_space_handle_t *);
|
int, bus_space_handle_t *);
|
||||||
void (*bs_unmap) (void *, bus_size_t);
|
void (*bs_unmap) (void *, bus_space_handle_t, bus_size_t);
|
||||||
int (*bs_subregion) (void *, bus_space_handle_t,
|
int (*bs_subregion) (void *, bus_space_handle_t,
|
||||||
bus_size_t, bus_size_t, bus_space_handle_t *);
|
bus_size_t, bus_size_t, bus_space_handle_t *);
|
||||||
|
|
||||||
@ -195,6 +195,61 @@ struct bus_space {
|
|||||||
void (*bs_c_8) (void *, bus_space_handle_t, bus_size_t,
|
void (*bs_c_8) (void *, bus_space_handle_t, bus_size_t,
|
||||||
bus_space_handle_t, bus_size_t, bus_size_t);
|
bus_space_handle_t, bus_size_t, bus_size_t);
|
||||||
|
|
||||||
|
/* read stream (single) */
|
||||||
|
u_int8_t (*bs_r_1_s) (void *, bus_space_handle_t, bus_size_t);
|
||||||
|
u_int16_t (*bs_r_2_s) (void *, bus_space_handle_t, bus_size_t);
|
||||||
|
u_int32_t (*bs_r_4_s) (void *, bus_space_handle_t, bus_size_t);
|
||||||
|
u_int64_t (*bs_r_8_s) (void *, bus_space_handle_t, bus_size_t);
|
||||||
|
|
||||||
|
/* read multiple stream */
|
||||||
|
void (*bs_rm_1_s) (void *, bus_space_handle_t, bus_size_t,
|
||||||
|
u_int8_t *, bus_size_t);
|
||||||
|
void (*bs_rm_2_s) (void *, bus_space_handle_t, bus_size_t,
|
||||||
|
u_int16_t *, bus_size_t);
|
||||||
|
void (*bs_rm_4_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int32_t *, bus_size_t);
|
||||||
|
void (*bs_rm_8_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int64_t *, bus_size_t);
|
||||||
|
|
||||||
|
/* read region stream */
|
||||||
|
void (*bs_rr_1_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int8_t *, bus_size_t);
|
||||||
|
void (*bs_rr_2_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int16_t *, bus_size_t);
|
||||||
|
void (*bs_rr_4_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int32_t *, bus_size_t);
|
||||||
|
void (*bs_rr_8_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int64_t *, bus_size_t);
|
||||||
|
|
||||||
|
/* write stream (single) */
|
||||||
|
void (*bs_w_1_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int8_t);
|
||||||
|
void (*bs_w_2_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int16_t);
|
||||||
|
void (*bs_w_4_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int32_t);
|
||||||
|
void (*bs_w_8_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, u_int64_t);
|
||||||
|
|
||||||
|
/* write multiple stream */
|
||||||
|
void (*bs_wm_1_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int8_t *, bus_size_t);
|
||||||
|
void (*bs_wm_2_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int16_t *, bus_size_t);
|
||||||
|
void (*bs_wm_4_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int32_t *, bus_size_t);
|
||||||
|
void (*bs_wm_8_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int64_t *, bus_size_t);
|
||||||
|
|
||||||
|
/* write region stream */
|
||||||
|
void (*bs_wr_1_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int8_t *, bus_size_t);
|
||||||
|
void (*bs_wr_2_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int16_t *, bus_size_t);
|
||||||
|
void (*bs_wr_4_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int32_t *, bus_size_t);
|
||||||
|
void (*bs_wr_8_s) (void *, bus_space_handle_t,
|
||||||
|
bus_size_t, const u_int64_t *, bus_size_t);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -215,6 +270,14 @@ struct bus_space {
|
|||||||
#define __bs_copy(sz, t, h1, o1, h2, o2, cnt) \
|
#define __bs_copy(sz, t, h1, o1, h2, o2, cnt) \
|
||||||
(*(t)->__bs_opname(c,sz))((t)->bs_cookie, h1, o1, h2, o2, cnt)
|
(*(t)->__bs_opname(c,sz))((t)->bs_cookie, h1, o1, h2, o2, cnt)
|
||||||
|
|
||||||
|
#define __bs_opname_s(op,size) __bs_c(__bs_c(__bs_c(__bs_c(bs_,op),_),size),_s)
|
||||||
|
#define __bs_rs_s(sz, t, h, o) \
|
||||||
|
(*(t)->__bs_opname_s(r,sz))((t)->bs_cookie, h, o)
|
||||||
|
#define __bs_ws_s(sz, t, h, o, v) \
|
||||||
|
(*(t)->__bs_opname_s(w,sz))((t)->bs_cookie, h, o, v)
|
||||||
|
#define __bs_nonsingle_s(type, sz, t, h, o, a, c) \
|
||||||
|
(*(t)->__bs_opname_s(type,sz))((t)->bs_cookie, h, o, a, c)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mapping and unmapping operations.
|
* Mapping and unmapping operations.
|
||||||
@ -253,6 +316,10 @@ struct bus_space {
|
|||||||
#define bus_space_read_4(t, h, o) __bs_rs(4,(t),(h),(o))
|
#define bus_space_read_4(t, h, o) __bs_rs(4,(t),(h),(o))
|
||||||
#define bus_space_read_8(t, h, o) __bs_rs(8,(t),(h),(o))
|
#define bus_space_read_8(t, h, o) __bs_rs(8,(t),(h),(o))
|
||||||
|
|
||||||
|
#define bus_space_read_stream_1(t, h, o) __bs_rs_s(1,(t), (h), (o))
|
||||||
|
#define bus_space_read_stream_2(t, h, o) __bs_rs_s(2,(t), (h), (o))
|
||||||
|
#define bus_space_read_stream_4(t, h, o) __bs_rs_s(4,(t), (h), (o))
|
||||||
|
#define bus_space_read_stream_8(t, h, o) __bs_rs_s(8,8,(t),(h),(o))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bus read multiple operations.
|
* Bus read multiple operations.
|
||||||
@ -266,6 +333,15 @@ struct bus_space {
|
|||||||
#define bus_space_read_multi_8(t, h, o, a, c) \
|
#define bus_space_read_multi_8(t, h, o, a, c) \
|
||||||
__bs_nonsingle(rm,8,(t),(h),(o),(a),(c))
|
__bs_nonsingle(rm,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
#define bus_space_read_multi_stream_1(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rm,1,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_read_multi_stream_2(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rm,2,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_read_multi_stream_4(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rm,4,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_read_multi_stream_8(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rm,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bus read region operations.
|
* Bus read region operations.
|
||||||
@ -279,6 +355,15 @@ struct bus_space {
|
|||||||
#define bus_space_read_region_8(t, h, o, a, c) \
|
#define bus_space_read_region_8(t, h, o, a, c) \
|
||||||
__bs_nonsingle(rr,8,(t),(h),(o),(a),(c))
|
__bs_nonsingle(rr,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
#define bus_space_read_region_stream_1(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rr,1,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_read_region_stream_2(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rr,2,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_read_region_stream_4(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rr,4,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_read_region_stream_8(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(rr,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bus write (single) operations.
|
* Bus write (single) operations.
|
||||||
@ -288,6 +373,11 @@ struct bus_space {
|
|||||||
#define bus_space_write_4(t, h, o, v) __bs_ws(4,(t),(h),(o),(v))
|
#define bus_space_write_4(t, h, o, v) __bs_ws(4,(t),(h),(o),(v))
|
||||||
#define bus_space_write_8(t, h, o, v) __bs_ws(8,(t),(h),(o),(v))
|
#define bus_space_write_8(t, h, o, v) __bs_ws(8,(t),(h),(o),(v))
|
||||||
|
|
||||||
|
#define bus_space_write_stream_1(t, h, o, v) __bs_ws_s(1,(t),(h),(o),(v))
|
||||||
|
#define bus_space_write_stream_2(t, h, o, v) __bs_ws_s(2,(t),(h),(o),(v))
|
||||||
|
#define bus_space_write_stream_4(t, h, o, v) __bs_ws_s(4,(t),(h),(o),(v))
|
||||||
|
#define bus_space_write_stream_8(t, h, o, v) __bs_ws_s(8,(t),(h),(o),(v))
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bus write multiple operations.
|
* Bus write multiple operations.
|
||||||
@ -301,6 +391,15 @@ struct bus_space {
|
|||||||
#define bus_space_write_multi_8(t, h, o, a, c) \
|
#define bus_space_write_multi_8(t, h, o, a, c) \
|
||||||
__bs_nonsingle(wm,8,(t),(h),(o),(a),(c))
|
__bs_nonsingle(wm,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
#define bus_space_write_multi_stream_1(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wm,1,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_write_multi_stream_2(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wm,2,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_write_multi_stream_4(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wm,4,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_write_multi_stream_8(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wm,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bus write region operations.
|
* Bus write region operations.
|
||||||
@ -314,6 +413,15 @@ struct bus_space {
|
|||||||
#define bus_space_write_region_8(t, h, o, a, c) \
|
#define bus_space_write_region_8(t, h, o, a, c) \
|
||||||
__bs_nonsingle(wr,8,(t),(h),(o),(a),(c))
|
__bs_nonsingle(wr,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
#define bus_space_write_region_stream_1(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wr,1,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_write_region_stream_2(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wr,2,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_write_region_stream_4(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wr,4,(t),(h),(o),(a),(c))
|
||||||
|
#define bus_space_write_region_stream_8(t, h, o, a, c) \
|
||||||
|
__bs_nonsingle_s(wr,8,(t),(h),(o),(a),(c))
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set multiple operations.
|
* Set multiple operations.
|
||||||
@ -363,7 +471,8 @@ int __bs_c(f,_bs_map) (void *t, bus_addr_t addr, \
|
|||||||
bus_size_t size, int cacheable, bus_space_handle_t *bshp);
|
bus_size_t size, int cacheable, bus_space_handle_t *bshp);
|
||||||
|
|
||||||
#define bs_unmap_proto(f) \
|
#define bs_unmap_proto(f) \
|
||||||
void __bs_c(f,_bs_unmap) (void *t, bus_size_t size);
|
void __bs_c(f,_bs_unmap) (void *t, bus_space_handle_t bsh, \
|
||||||
|
bus_size_t size);
|
||||||
|
|
||||||
#define bs_subregion_proto(f) \
|
#define bs_subregion_proto(f) \
|
||||||
int __bs_c(f,_bs_subregion) (void *t, bus_space_handle_t bsh, \
|
int __bs_c(f,_bs_subregion) (void *t, bus_space_handle_t bsh, \
|
||||||
@ -403,6 +512,18 @@ u_int32_t __bs_c(f,_bs_r_4) (void *t, bus_space_handle_t bsh, \
|
|||||||
u_int64_t __bs_c(f,_bs_r_8) (void *t, bus_space_handle_t bsh, \
|
u_int64_t __bs_c(f,_bs_r_8) (void *t, bus_space_handle_t bsh, \
|
||||||
bus_size_t offset);
|
bus_size_t offset);
|
||||||
|
|
||||||
|
#define bs_r_1_s_proto(f) \
|
||||||
|
u_int8_t __bs_c(f,_bs_r_1_s) (void *t, bus_space_handle_t bsh, \
|
||||||
|
bus_size_t offset);
|
||||||
|
|
||||||
|
#define bs_r_2_s_proto(f) \
|
||||||
|
u_int16_t __bs_c(f,_bs_r_2_s) (void *t, bus_space_handle_t bsh, \
|
||||||
|
bus_size_t offset);
|
||||||
|
|
||||||
|
#define bs_r_4_s_proto(f) \
|
||||||
|
u_int32_t __bs_c(f,_bs_r_4_s) (void *t, bus_space_handle_t bsh, \
|
||||||
|
bus_size_t offset);
|
||||||
|
|
||||||
#define bs_w_1_proto(f) \
|
#define bs_w_1_proto(f) \
|
||||||
void __bs_c(f,_bs_w_1) (void *t, bus_space_handle_t bsh, \
|
void __bs_c(f,_bs_w_1) (void *t, bus_space_handle_t bsh, \
|
||||||
bus_size_t offset, u_int8_t value);
|
bus_size_t offset, u_int8_t value);
|
||||||
@ -419,6 +540,18 @@ void __bs_c(f,_bs_w_4) (void *t, bus_space_handle_t bsh, \
|
|||||||
void __bs_c(f,_bs_w_8) (void *t, bus_space_handle_t bsh, \
|
void __bs_c(f,_bs_w_8) (void *t, bus_space_handle_t bsh, \
|
||||||
bus_size_t offset, u_int64_t value);
|
bus_size_t offset, u_int64_t value);
|
||||||
|
|
||||||
|
#define bs_w_1_s_proto(f) \
|
||||||
|
void __bs_c(f,_bs_w_1_s) (void *t, bus_space_handle_t bsh, \
|
||||||
|
bus_size_t offset, u_int8_t value);
|
||||||
|
|
||||||
|
#define bs_w_2_s_proto(f) \
|
||||||
|
void __bs_c(f,_bs_w_2_s) (void *t, bus_space_handle_t bsh, \
|
||||||
|
bus_size_t offset, u_int16_t value);
|
||||||
|
|
||||||
|
#define bs_w_4_s_proto(f) \
|
||||||
|
void __bs_c(f,_bs_w_4_s) (void *t, bus_space_handle_t bsh, \
|
||||||
|
bus_size_t offset, u_int32_t value);
|
||||||
|
|
||||||
#define bs_rm_1_proto(f) \
|
#define bs_rm_1_proto(f) \
|
||||||
void __bs_c(f,_bs_rm_1) (void *t, bus_space_handle_t bsh, \
|
void __bs_c(f,_bs_rm_1) (void *t, bus_space_handle_t bsh, \
|
||||||
bus_size_t offset, u_int8_t *addr, bus_size_t count);
|
bus_size_t offset, u_int8_t *addr, bus_size_t count);
|
||||||
@ -547,10 +680,16 @@ bs_r_1_proto(f); \
|
|||||||
bs_r_2_proto(f); \
|
bs_r_2_proto(f); \
|
||||||
bs_r_4_proto(f); \
|
bs_r_4_proto(f); \
|
||||||
bs_r_8_proto(f); \
|
bs_r_8_proto(f); \
|
||||||
|
bs_r_1_s_proto(f); \
|
||||||
|
bs_r_2_s_proto(f); \
|
||||||
|
bs_r_4_s_proto(f); \
|
||||||
bs_w_1_proto(f); \
|
bs_w_1_proto(f); \
|
||||||
bs_w_2_proto(f); \
|
bs_w_2_proto(f); \
|
||||||
bs_w_4_proto(f); \
|
bs_w_4_proto(f); \
|
||||||
bs_w_8_proto(f); \
|
bs_w_8_proto(f); \
|
||||||
|
bs_w_1_s_proto(f); \
|
||||||
|
bs_w_2_s_proto(f); \
|
||||||
|
bs_w_4_s_proto(f); \
|
||||||
bs_rm_1_proto(f); \
|
bs_rm_1_proto(f); \
|
||||||
bs_rm_2_proto(f); \
|
bs_rm_2_proto(f); \
|
||||||
bs_rm_4_proto(f); \
|
bs_rm_4_proto(f); \
|
||||||
@ -589,33 +728,6 @@ bs_c_8_proto(f);
|
|||||||
#define BUS_SPACE_MAXSIZE_32BIT 0xFFFFFFFF
|
#define BUS_SPACE_MAXSIZE_32BIT 0xFFFFFFFF
|
||||||
#define BUS_SPACE_MAXSIZE 0xFFFFFFFF
|
#define BUS_SPACE_MAXSIZE 0xFFFFFFFF
|
||||||
|
|
||||||
/* XXX: is this right ? */
|
|
||||||
#define bus_space_read_stream_1(t, h, o) bus_space_read_1((t), (h), (o))
|
|
||||||
#define bus_space_read_stream_2(t, h, o) bus_space_read_2((t), (h), (o))
|
|
||||||
#define bus_space_read_stream_4(t, h, o) bus_space_read_4((t), (h), (o))
|
|
||||||
|
|
||||||
#define bus_space_read_multi_stream_1(t, h, o, a, c) \
|
|
||||||
bus_space_read_multi_1((t), (h), (o), (a), (c))
|
|
||||||
#define bus_space_read_multi_stream_2(t, h, o, a, c) \
|
|
||||||
bus_space_read_multi_2((t), (h), (o), (a), (c))
|
|
||||||
#define bus_space_read_multi_stream_4(t, h, o, a, c) \
|
|
||||||
bus_space_read_multi_4((t), (h), (o), (a), (c))
|
|
||||||
|
|
||||||
#define bus_space_write_stream_1(t, h, o, v) \
|
|
||||||
bus_space_write_1((t), (h), (o), (v))
|
|
||||||
#define bus_space_write_stream_2(t, h, o, v) \
|
|
||||||
bus_space_write_2((t), (h), (o), (v))
|
|
||||||
#define bus_space_write_stream_4(t, h, o, v) \
|
|
||||||
bus_space_write_4((t), (h), (o), (v))
|
|
||||||
|
|
||||||
#define bus_space_write_multi_stream_1(t, h, o, a, c) \
|
|
||||||
bus_space_write_multi_1((t), (h), (o), (a), (c))
|
|
||||||
#define bus_space_write_multi_stream_2(t, h, o, a, c) \
|
|
||||||
bus_space_write_multi_2((t), (h), (o), (a), (c))
|
|
||||||
#define bus_space_write_multi_stream_4(t, h, o, a, c) \
|
|
||||||
bus_space_write_multi_4((t), (h), (o), (a), (c))
|
|
||||||
|
|
||||||
|
|
||||||
#include <machine/bus_dma.h>
|
#include <machine/bus_dma.h>
|
||||||
|
|
||||||
#endif /* _MACHINE_BUS_H_ */
|
#endif /* _MACHINE_BUS_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user