diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2010-04-02 12:11:56 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2010-04-02 12:11:56 +0000 |
commit | 701c2b078845c51c09de96300f02ae04dfe98d90 (patch) | |
tree | 6f91f3444e28deede75cc99e1830210ac09afa89 | |
parent | e5c29b46b0b4ce0a51ed98e9784b9946b6a605b2 (diff) |
Remove parent/slave mode of rbus as nothing uses it.
ok kettenis, sgi usage of rbus_new_body() pointed out by miod
-rw-r--r-- | sys/arch/sgi/xbow/xbridge.c | 4 | ||||
-rw-r--r-- | sys/dev/cardbus/rbus.c | 89 | ||||
-rw-r--r-- | sys/dev/cardbus/rbus.h | 28 |
3 files changed, 14 insertions, 107 deletions
diff --git a/sys/arch/sgi/xbow/xbridge.c b/sys/arch/sgi/xbow/xbridge.c index c67a90d8aa0..a6f6dc56474 100644 --- a/sys/arch/sgi/xbow/xbridge.c +++ b/sys/arch/sgi/xbow/xbridge.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xbridge.c,v 1.68 2010/03/28 17:12:41 miod Exp $ */ +/* $OpenBSD: xbridge.c,v 1.69 2010/04/02 12:11:55 jsg Exp $ */ /* * Copyright (c) 2008, 2009 Miodrag Vallat. @@ -3511,7 +3511,7 @@ xbridge_rbus_parent_io(struct pci_attach_args *pa) * resources, return a valid body which will fail requests. */ if (rb == NULL) - rb = rbus_new_body(pa->pa_iot, NULL, NULL, 0, 0, 0, + rb = rbus_new_body(pa->pa_iot, NULL, 0, 0, 0, RBUS_SPACE_INVALID); return rb; diff --git a/sys/dev/cardbus/rbus.c b/sys/dev/cardbus/rbus.c index 5adeac91afb..ee46b145f99 100644 --- a/sys/dev/cardbus/rbus.c +++ b/sys/dev/cardbus/rbus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rbus.c,v 1.14 2010/01/13 09:10:33 jsg Exp $ */ +/* $OpenBSD: rbus.c,v 1.15 2010/04/02 12:11:55 jsg Exp $ */ /* $NetBSD: rbus.c,v 1.3 1999/11/06 06:20:53 soren Exp $ */ /* * Copyright (c) 1999 @@ -81,10 +81,7 @@ rbus_space_alloc_subregion(rbus_tag_t rbt, bus_addr_t substart, decodesize = 0; } - if (rbt->rb_flags == RBUS_SPACE_ASK_PARENT) { - return (rbus_space_alloc(rbt->rb_parent, addr, size, mask, - align, flags, addrp, bshp)); - } else if (rbt->rb_flags == RBUS_SPACE_SHARE || + if (rbt->rb_flags == RBUS_SPACE_SHARE || rbt->rb_flags == RBUS_SPACE_DEDICATE) { /* rbt has its own sh_extent */ @@ -160,9 +157,7 @@ rbus_space_free(rbus_tag_t rbt, bus_space_handle_t bsh, bus_size_t size, bus_addr_t addr; int status = 1; - if (rbt->rb_flags == RBUS_SPACE_ASK_PARENT) { - status = rbus_space_free(rbt->rb_parent, bsh, size, &addr); - } else if (rbt->rb_flags == RBUS_SPACE_SHARE || + if (rbt->rb_flags == RBUS_SPACE_SHARE || rbt->rb_flags == RBUS_SPACE_DEDICATE) { md_space_unmap(rbt, bsh, size, &addr); @@ -182,35 +177,23 @@ rbus_space_free(rbus_tag_t rbt, bus_space_handle_t bsh, bus_size_t size, /* * rbus_tag_t - * rbus_new_body(bus_space_tag_t bt, rbus_tag_t parent, + * rbus_new_body(bus_space_tag_t bt, * struct extent *ex, bus_addr_t start, bus_size_t end, * bus_addr_t offset, int flags) * */ rbus_tag_t -rbus_new_body(bus_space_tag_t bt, rbus_tag_t parent, struct extent *ex, +rbus_new_body(bus_space_tag_t bt, struct extent *ex, bus_addr_t start, bus_addr_t end, bus_addr_t offset, int flags) { rbus_tag_t rb; - /* sanity check */ - if (parent != NULL) { - if (start < parent->rb_start || end > parent->rb_end) { - /* out of range: [start, size] should be contained - * in parent space - */ - return (0); - /* Should I invoke panic? */ - } - } - if ((rb = (rbus_tag_t)malloc(sizeof(struct rbustag), M_DEVBUF, M_NOWAIT)) == NULL) { panic("no memory for rbus instance"); } rb->rb_bt = bt; - rb->rb_parent = parent; rb->rb_start = start; rb->rb_end = end; rb->rb_offset = offset; @@ -220,50 +203,13 @@ rbus_new_body(bus_space_tag_t bt, rbus_tag_t parent, struct extent *ex, DPRINTF(("rbus_new_body: [%lx, %lx] type %s name [%s]\n", (u_long)start, (u_long)end, flags == RBUS_SPACE_SHARE ? "share" : - flags == RBUS_SPACE_DEDICATE ? "dedicated" : - flags == RBUS_SPACE_ASK_PARENT ? "parent" : "invalid", + flags == RBUS_SPACE_DEDICATE ? "dedicated" : "invalid", ex != NULL ? ex->ex_name : "noname")); return (rb); } /* - * rbus_tag_t rbus_new(rbus_tag_t parent, bus_addr_t start, bus_size_t - * size, bus_addr_t offset, int flags) - * - * This function makes a new child rbus instance. - */ -rbus_tag_t -rbus_new(rbus_tag_t parent, bus_addr_t start, bus_size_t size, - bus_addr_t offset, int flags) -{ - rbus_tag_t rb; - struct extent *ex = NULL; - bus_addr_t end = start + size; - - if (flags == RBUS_SPACE_SHARE) { - ex = parent->rb_ext; - } else if (flags == RBUS_SPACE_DEDICATE) { - if ((ex = extent_create("rbus", start, end, M_DEVBUF, NULL, 0, - EX_NOCOALESCE|EX_NOWAIT)) == NULL) - return (NULL); - } else if (flags == RBUS_SPACE_ASK_PARENT) { - ex = NULL; - } else { - /* Invalid flag */ - return (0); - } - - rb = rbus_new_body(parent->rb_bt, parent, ex, start, start + size, - offset, flags); - - if ((rb == NULL) && (flags == RBUS_SPACE_DEDICATE)) - extent_destroy(ex); - - return (rb); -} - -/* * rbus_tag_t rbus_new_root_delegate(bus_space_tag, bus_addr_t, * bus_size_t, bus_addr_t offset) * @@ -280,7 +226,7 @@ rbus_new_root_delegate(bus_space_tag_t bt, bus_addr_t start, bus_size_t size, NULL, 0, EX_NOCOALESCE|EX_NOWAIT)) == NULL) return (NULL); - rb = rbus_new_body(bt, NULL, ex, start, start + size, offset, + rb = rbus_new_body(bt, ex, start, start + size, offset, RBUS_SPACE_DEDICATE); if (rb == NULL) @@ -308,25 +254,6 @@ rbus_new_root_share(bus_space_tag_t bt, struct extent *ex, bus_addr_t start, /* Should I invoke panic? */ } - return (rbus_new_body(bt, NULL, ex, start, start + size, offset, + return (rbus_new_body(bt, ex, start, start + size, offset, RBUS_SPACE_SHARE)); } - -/* - * int rbus_delete (rbus_tag_t rb) - * - * This function deletes the rbus structure pointed in the argument. - */ -int -rbus_delete(rbus_tag_t rb) -{ - DPRINTF(("rbus_delete called [%s]\n", rb->rb_ext != NULL ? - rb->rb_ext->ex_name : "noname")); - - if (rb->rb_flags == RBUS_SPACE_DEDICATE) - extent_destroy(rb->rb_ext); - - free(rb, M_DEVBUF); - - return (0); -} diff --git a/sys/dev/cardbus/rbus.h b/sys/dev/cardbus/rbus.h index 6ae5cb9950c..5ee159fcc09 100644 --- a/sys/dev/cardbus/rbus.h +++ b/sys/dev/cardbus/rbus.h @@ -1,4 +1,4 @@ -/* $OpenBSD: rbus.h,v 1.8 2010/01/13 09:10:33 jsg Exp $ */ +/* $OpenBSD: rbus.h,v 1.9 2010/04/02 12:11:55 jsg Exp $ */ /* $NetBSD: rbus.h,v 1.3 1999/12/15 12:28:55 kleink Exp $ */ /* * Copyright (c) 1999 @@ -51,14 +51,10 @@ * * Abstraction * - * rbus can model a bus-to-bus bridge in three ways: dedicated, shared - * and slave. + * rbus can model a bus-to-bus bridge in two ways: dedicated or shared * Dedicated: the bridge has its own bus space. * Shared: the bridge has bus space, but this bus space is * shared with other bus bridges. - * Slave: the bus bridge does not have its own bus space and has to ask - * a parent bus bridge for bus space once a client is requesting bus space - * to the bridge. */ @@ -71,15 +67,11 @@ struct extent; /* * General rule * - * 1) When a rbustag has no space for child (meaning: rb_extent is - * NULL), ask bus-space for parent through rb_parent. - * - * 2) When a rbustag has its own space (whether shared or dedicated), + * 1) When a rbustag has its own space (whether shared or dedicated), * allocate from rb_ext. */ struct rbustag { bus_space_tag_t rb_bt; - struct rbustag *rb_parent; struct extent *rb_ext; bus_addr_t rb_start; bus_addr_t rb_end; @@ -96,7 +88,6 @@ struct rbustag { #define RBUS_SPACE_SHARE 0x01 #define RBUS_SPACE_DEDICATE 0x02 #define RBUS_SPACE_MASK 0x03 -#define RBUS_SPACE_ASK_PARENT 0x04 /* your own data below */ void *rb_md; }; @@ -124,28 +115,17 @@ int rbus_space_free(rbus_tag_t, bus_space_handle_t, bus_size_t, * These functions create rbus instance. These functions are * so-called-as a constructor of rbus. * - * rbus_new is a constructor which make an rbus instance from a parent - * rbus. */ -rbus_tag_t rbus_new_body(bus_space_tag_t, rbus_tag_t, struct extent *, +rbus_tag_t rbus_new_body(bus_space_tag_t, struct extent *, bus_addr_t, bus_addr_t, bus_addr_t, int); -rbus_tag_t rbus_new(rbus_tag_t, bus_addr_t, bus_size_t, bus_addr_t, int); - rbus_tag_t rbus_new_root_delegate(bus_space_tag_t, bus_addr_t, bus_size_t, bus_addr_t); rbus_tag_t rbus_new_root_share(bus_space_tag_t, struct extent *, bus_addr_t, bus_size_t, bus_addr_t); /* - * This function release bus-space used by the argument. This - * function is so-called-as a destructor. - */ -int rbus_delete(rbus_tag_t); - - -/* * Machine-dependent definitions. */ #include <machine/rbus_machdep.h> |