Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/isa/isa.c

    r267f235 r0bbd13e  
    7373#define CHILD_FUN_CONF_PATH "/drv/isa/isa.dev"
    7474
     75/** Obtain soft-state from device node */
     76#define ISA_BUS(dev) ((isa_bus_t *) ((dev)->driver_data))
     77
     78/** Obtain soft-state from function node */
     79#define ISA_FUN(fun) ((isa_fun_t *) ((fun)->driver_data))
     80
    7581#define ISA_MAX_HW_RES 5
    7682
     
    8995} isa_fun_t;
    9096
    91 /** Obtain soft-state from device node */
    92 static isa_bus_t *isa_bus(ddf_dev_t *dev)
    93 {
    94         return ddf_dev_data_get(dev);
    95 }
    96 
    97 /** Obtain soft-state from function node */
    98 static isa_fun_t *isa_fun(ddf_fun_t *fun)
    99 {
    100         return ddf_fun_data_get(fun);
    101 }
    102 
    10397static hw_resource_list_t *isa_get_fun_resources(ddf_fun_t *fnode)
    10498{
    105         isa_fun_t *fun = isa_fun(fnode);
     99        isa_fun_t *fun = ISA_FUN(fnode);
    106100        assert(fun != NULL);
    107101
     
    113107        /* This is an old ugly way, copied from pci driver */
    114108        assert(fnode);
    115         isa_fun_t *fun = isa_fun(fnode);
     109        isa_fun_t *isa_fun = fnode->driver_data;
    116110
    117111        sysarg_t apic;
     
    129123                return false;
    130124
    131         const hw_resource_list_t *res = &fun->hw_resources;
     125        assert(isa_fun);
     126        const hw_resource_list_t *res = &isa_fun->hw_resources;
    132127        assert(res);
    133128        for (size_t i = 0; i < res->count; ++i) {
     
    155150{
    156151        assert(fnode);
    157         isa_fun_t *fun = isa_fun(fnode);
    158         const hw_resource_list_t *res = &fun->hw_resources;
     152        isa_fun_t *isa_fun = fnode->driver_data;
     153        const hw_resource_list_t *res = &isa_fun->hw_resources;
    159154        assert(res);
    160155       
     
    344339
    345340                ddf_msg(LVL_NOTE, "Added irq 0x%x to function %s", irq,
    346                     ddf_fun_get_name(fun->fnode));
     341                    fun->fnode->name);
    347342        }
    348343}
     
    360355                        fun->hw_resources.count++;
    361356                        ddf_msg(LVL_NOTE, "Added dma 0x%x to function %s", dma,
    362                             ddf_fun_get_name(fun->fnode));
     357                            fun->fnode->name);
    363358                       
    364359                        return;
     
    371366                        fun->hw_resources.count++;
    372367                        ddf_msg(LVL_NOTE, "Added dma 0x%x to function %s", dma,
    373                             ddf_fun_get_name(fun->fnode));
     368                            fun->fnode->name);
    374369                       
    375370                        return;
     
    377372               
    378373                ddf_msg(LVL_WARN, "Skipped dma 0x%x for function %s", dma,
    379                     ddf_fun_get_name(fun->fnode));
     374                    fun->fnode->name);
    380375        }
    381376}
     
    396391                ddf_msg(LVL_NOTE, "Added io range (addr=0x%x, size=0x%x) to "
    397392                    "function %s", (unsigned int) addr, (unsigned int) len,
    398                     ddf_fun_get_name(fun->fnode));
     393                    fun->fnode->name);
    399394        }
    400395}
     
    468463        if (val == end) {
    469464                ddf_msg(LVL_ERROR, "Cannot read match score for function "
    470                     "%s.", ddf_fun_get_name(fun->fnode));
     465                    "%s.", fun->fnode->name);
    471466                return;
    472467        }
     
    476471        if (id == NULL) {
    477472                ddf_msg(LVL_ERROR, "Cannot read match ID for function %s.",
    478                     ddf_fun_get_name(fun->fnode));
     473                    fun->fnode->name);
    479474                return;
    480475        }
    481476
    482477        ddf_msg(LVL_DEBUG, "Adding match id '%s' with score %d to "
    483             "function %s", id, score, ddf_fun_get_name(fun->fnode));
     478            "function %s", id, score, fun->fnode->name);
    484479
    485480        rc = ddf_fun_add_match_id(fun->fnode, id, score);
     
    584579
    585580        /* Set device operations to the device. */
    586         ddf_fun_set_ops(fun->fnode, &isa_fun_ops);
    587 
    588         ddf_msg(LVL_DEBUG, "Binding function %s.", ddf_fun_get_name(fun->fnode));
     581        fun->fnode->ops = &isa_fun_ops;
     582
     583        ddf_msg(LVL_DEBUG, "Binding function %s.", fun->fnode->name);
    589584
    590585        /* XXX Handle error */
     
    619614
    620615        ddf_msg(LVL_DEBUG, "isa_dev_add, device handle = %d",
    621             (int) ddf_dev_get_handle(dev));
     616            (int) dev->handle);
    622617
    623618        isa = ddf_dev_data_alloc(dev, sizeof(isa_bus_t));
     
    657652static int isa_dev_remove(ddf_dev_t *dev)
    658653{
    659         isa_bus_t *isa = isa_bus(dev);
     654        isa_bus_t *isa = ISA_BUS(dev);
    660655        int rc;
    661656
     
    669664                if (rc != EOK) {
    670665                        fibril_mutex_unlock(&isa->mutex);
    671                         ddf_msg(LVL_ERROR, "Failed offlining %s", ddf_fun_get_name(fun->fnode));
     666                        ddf_msg(LVL_ERROR, "Failed offlining %s", fun->fnode->name);
    672667                        return rc;
    673668                }
     
    676671                if (rc != EOK) {
    677672                        fibril_mutex_unlock(&isa->mutex);
    678                         ddf_msg(LVL_ERROR, "Failed unbinding %s", ddf_fun_get_name(fun->fnode));
     673                        ddf_msg(LVL_ERROR, "Failed unbinding %s", fun->fnode->name);
    679674                        return rc;
    680675                }
     
    712707static void isa_init()
    713708{
    714         ddf_log_init(NAME);
     709        ddf_log_init(NAME, LVL_ERROR);
    715710        isa_fun_ops.interfaces[HW_RES_DEV_IFACE] = &isa_fun_hw_res_ops;
    716711}
Note: See TracChangeset for help on using the changeset viewer.