[BACK]Return to config_alloc.c CVS log [TXT][DIR] Up to [local] / prex-old / dev / core

Annotation of prex-old/dev/core/config_alloc.c, Revision 1.1

1.1     ! nbrk        1: /*
        !             2:  * $Id$
        !             3:  */
        !             4: /*
        !             5:  * Allocate and initialize new device structure.
        !             6:  */
        !             7: #include <driver.h>
        !             8:
        !             9: struct device
        !            10: *config_alloc_device(struct driver *drv)
        !            11: {
        !            12:        struct device   *devp;
        !            13:
        !            14:        /* device itself */
        !            15:        devp = kmem_alloc(sizeof(struct device));
        !            16:        if (devp == NULL)
        !            17:                panic("config: can't allocate memory for device");
        !            18:
        !            19:        /* device data */
        !            20:        if (drv->dr_datasize != 0) {
        !            21:                /* XXX page_alloc() ? */
        !            22:                devp->dv_data = kmem_alloc(drv->dr_datasize);
        !            23:                if (devp->dv_data == NULL)
        !            24:                        panic("config: can't allocate memory dor device data");
        !            25:        }
        !            26:
        !            27:        devp->dv_xname = drv->dr_name;
        !            28:
        !            29:        /* will be changed by config later */
        !            30:        devp->dv_unit = 0;
        !            31:        devp->dv_flags = 0;     /* XXX */
        !            32:        devp->dv_parent = NULL;
        !            33:
        !            34:        return(devp);
        !            35: }
        !            36:
        !            37:
        !            38: void
        !            39: config_free_device(struct device *devp)
        !            40: {
        !            41:        kmem_free(devp->dv_data);
        !            42:        kmem_free(devp);
        !            43: }
        !            44:

CVSweb