summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/subr_rman.c72
-rw-r--r--sys/sys/rman.h23
2 files changed, 85 insertions, 10 deletions
diff --git a/sys/kern/subr_rman.c b/sys/kern/subr_rman.c
index 858434b..9ebbfcf 100644
--- a/sys/kern/subr_rman.c
+++ b/sys/kern/subr_rman.c
@@ -613,3 +613,75 @@ rman_make_alignment_flags(uint32_t size)
return(RF_ALIGNMENT_LOG2(i));
}
+
+u_long
+rman_get_start(struct resource *r)
+{
+ return (r->r_start);
+}
+
+u_long
+rman_get_end(struct resource *r)
+{
+ return (r->r_end);
+}
+
+u_long
+rman_get_size(struct resource *r)
+{
+ return (r->r_end - r->r_start + 1);
+}
+
+u_int
+rman_get_flags(struct resource *r)
+{
+ return (r->r_flags);
+}
+
+void
+rman_set_virtual(struct resource *r, void *v)
+{
+ r->r_virtual = v;
+}
+
+void *
+rman_get_virtual(struct resource *r)
+{
+ return (r->r_virtual);
+}
+
+void
+rman_set_bustag(struct resource *r, bus_space_tag_t t)
+{
+ r->r_bustag = t;
+}
+
+bus_space_tag_t
+rman_get_bustag(struct resource *r)
+{
+ return (r->r_bustag);
+}
+
+void
+rman_set_bushandle(struct resource *r, bus_space_handle_t h)
+{
+ r->r_bushandle = h;
+}
+
+bus_space_handle_t
+rman_get_bushandle(struct resource *r)
+{
+ return (r->r_bushandle);
+}
+
+void
+rman_set_rid(struct resource *r, int rid)
+{
+ r->r_rid = rid;
+}
+
+int
+rman_get_rid(struct resource *r)
+{
+ return (r->r_rid);
+}
diff --git a/sys/sys/rman.h b/sys/sys/rman.h
index ba63b8d..40fe307 100644
--- a/sys/sys/rman.h
+++ b/sys/sys/rman.h
@@ -103,6 +103,7 @@ struct resource {
bus_space_handle_t r_bushandle; /* bus_space handle */
struct device *r_dev; /* device which has allocated this resource */
struct rman *r_rm; /* resource manager from whence this came */
+ int r_rid; /* optional rid for this resource. */
};
struct rman {
@@ -131,16 +132,18 @@ struct resource *rman_reserve_resource_bound(struct rman *rm, u_long start,
u_int flags, struct device *dev);
uint32_t rman_make_alignment_flags(uint32_t size);
-#define rman_get_start(r) ((r)->r_start)
-#define rman_get_end(r) ((r)->r_end)
-#define rman_get_size(r) (((r)->r_end - (r)->r_start) + 1)
-#define rman_get_flags(r) ((r)->r_flags)
-#define rman_set_virtual(r,v) ((r)->r_virtual = (v))
-#define rman_get_virtual(r) ((r)->r_virtual)
-#define rman_set_bustag(r,t) ((r)->r_bustag = (t))
-#define rman_get_bustag(r) ((r)->r_bustag)
-#define rman_set_bushandle(r,h) ((r)->r_bushandle = (h))
-#define rman_get_bushandle(r) ((r)->r_bushandle)
+u_long rman_get_start(struct resource *_r);
+u_long rman_get_end(struct resource *_r);
+u_long rman_get_size(struct resource *_r);
+u_int rman_get_flags(struct resource *_r);
+void rman_set_virtual(struct resource *_r, void *_v);
+void *rman_get_virtual(struct resource *_r);
+void rman_set_bustag(struct resource *_r, bus_space_tag_t _t);
+bus_space_tag_t rman_get_bustag(struct resource *_r);
+void rman_set_bushandle(struct resource *_r, bus_space_handle_t _h);
+bus_space_handle_t rman_get_bushandle(struct resource *_r);
+void rman_set_rid(struct resource *_r, int _rid);
+int rman_get_rid(struct resource *_r);
extern struct rman_head rman_head;
#endif /* _KERNEL */
OpenPOWER on IntegriCloud