Deleted Added
sdiff udiff text old ( 47537 ) new ( 47578 )
full compact
1/*-
2 * Copyright (c) 1997,1998 Doug Rabson
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 9 unchanged lines hidden (view full) ---

18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $Id: subr_bus.c,v 1.26 1999/05/22 14:57:15 dfr Exp $
27 */
28
29#include <sys/param.h>
30#include <sys/queue.h>
31#include <sys/malloc.h>
32#include <sys/kernel.h>
33#include <sys/module.h>
34#include <sys/sysctl.h>

--- 564 unchanged lines hidden (view full) ---

599 dev->ops = &null_ops;
600 dev->driver = NULL;
601 dev->devclass = NULL;
602 dev->unit = unit;
603 dev->nameunit = NULL;
604 dev->desc = NULL;
605 dev->busy = 0;
606 dev->flags = DF_ENABLED;
607 if (unit == -1)
608 dev->flags |= DF_WILDCARD;
609 if (name) {
610 dev->flags |= DF_FIXEDCLASS;
611 devclass_add_device(dc, dev);
612 }
613 dev->ivars = ivars;
614 dev->softc = NULL;

--- 14 unchanged lines hidden (view full) ---

629 } else
630 printf(" not found");
631 printf("\n");
632}
633
634device_t
635device_add_child(device_t dev, const char *name, int unit, void *ivars)
636{
637 device_t child;
638
639 PDEBUG(("%s at %s as unit %d with%s ivars",
640 name, DEVICENAME(dev), unit, (ivars? "":"out")));
641
642 child = make_device(dev, name, unit, ivars);
643
644 if (child)
645 TAILQ_INSERT_TAIL(&dev->children, child, link);
646 else
647 PDEBUG(("%s failed", name));
648
649 return child;
650}
651
652device_t
653device_add_child_after(device_t dev, device_t place, const char *name,
654 int unit, void *ivars)
655{
656 device_t child;
657
658 PDEBUG(("%s at %s after %s as unit %d with%s ivars",
659 name, DEVICENAME(dev), DEVICENAME(place), unit, (ivars? "":"out")));
660
661 child = make_device(dev, name, unit, ivars);
662 if (child == NULL)
663 return child;
664
665 if (place) {
666 TAILQ_INSERT_AFTER(&dev->children, place, child, link);
667 } else {
668 TAILQ_INSERT_HEAD(&dev->children, child, link);
669 }
670
671 return child;
672}
673
674int
675device_delete_child(device_t dev, device_t child)
676{

--- 1672 unchanged lines hidden ---