Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/nic/e1k/e1k.c

    re882e3a r267f235  
    3232 *
    3333 */
     34
     35/* XXX Fix this */
     36#define _DDF_DATA_IMPLANT
    3437
    3538#include <assert.h>
     
    4952#include <device/pci.h>
    5053#include <nic.h>
    51 #include <nil_remote.h>
    5254#include <ops/nic.h>
    5355#include "e1k.h"
     
    7274        ((e1000_t *) nic_get_specific(nic))
    7375
    74 /** device_t* -> nic_driver_data_t* cast */
     76/** ddf_fun_t * -> nic_driver_data_t* cast */
     77#define NIC_DATA_FUN(fun) \
     78        ((nic_t *) ddf_fun_data_get(fun))
     79
     80/** ddf_dev_t * -> nic_driver_data_t* cast */
    7581#define NIC_DATA_DEV(dev) \
    76         ((nic_t *) ((dev)->driver_data))
    77 
    78 /** device_t* -> e1000_t* cast */
     82        ((nic_t *) ddf_dev_data_get(dev))
     83
     84/** ddf_dev_t * -> e1000_t* cast */
    7985#define DRIVER_DATA_DEV(dev) \
    8086        (DRIVER_DATA_NIC(NIC_DATA_DEV(dev)))
     87
     88/** ddf_fun_t * -> e1000_t* cast */
     89#define DRIVER_DATA_FUN(fun) \
     90        (DRIVER_DATA_NIC(NIC_DATA_FUN(fun)))
    8191
    8292/** Cast pointer to uint64_t
     
    306316 *
    307317 */
    308 static int e1000_get_cable_state(ddf_fun_t *dev, nic_cable_state_t *state)
    309 {
    310         assert(dev);
    311         assert(DRIVER_DATA_DEV(dev));
    312         assert(state);
    313        
    314         e1000_t *e1000 = DRIVER_DATA_DEV(dev);
     318static int e1000_get_cable_state(ddf_fun_t *fun, nic_cable_state_t *state)
     319{
     320        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    315321        if (E1000_REG_READ(e1000, E1000_STATUS) & (STATUS_LU))
    316322                *state = NIC_CS_PLUGGED;
     
    329335 *
    330336 */
    331 static int e1000_get_operation_mode(ddf_fun_t *dev, int *speed,
     337static int e1000_get_operation_mode(ddf_fun_t *fun, int *speed,
    332338    nic_channel_mode_t *duplex, nic_role_t *role)
    333339{
    334         e1000_t *e1000 = DRIVER_DATA_DEV(dev);
     340        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    335341        uint32_t status = E1000_REG_READ(e1000, E1000_STATUS);
    336342       
     
    377383 *
    378384 */
    379 static int e1000_set_operation_mode(ddf_fun_t *dev, int speed,
     385static int e1000_set_operation_mode(ddf_fun_t *fun, int speed,
    380386    nic_channel_mode_t duplex, nic_role_t role)
    381387{
     
    386392                return EINVAL;
    387393       
    388         e1000_t *e1000 = DRIVER_DATA_DEV(dev);
     394        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    389395       
    390396        fibril_mutex_lock(&e1000->ctrl_lock);
     
    425431 *
    426432 */
    427 static int e1000_autoneg_enable(ddf_fun_t *dev, uint32_t advertisement)
    428 {
    429         e1000_t *e1000 = DRIVER_DATA_DEV(dev);
     433static int e1000_autoneg_enable(ddf_fun_t *fun, uint32_t advertisement)
     434{
     435        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    430436       
    431437        fibril_mutex_lock(&e1000->ctrl_lock);
     
    453459 *
    454460 */
    455 static int e1000_autoneg_disable(ddf_fun_t *dev)
    456 {
    457         e1000_t *e1000 = DRIVER_DATA_DEV(dev);
     461static int e1000_autoneg_disable(ddf_fun_t *fun)
     462{
     463        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    458464       
    459465        fibril_mutex_lock(&e1000->ctrl_lock);
     
    492498 *
    493499 */
    494 static int e1000_defective_get_mode(ddf_fun_t *device, uint32_t *mode)
    495 {
    496         e1000_t *e1000 = DRIVER_DATA_DEV(device);
     500static int e1000_defective_get_mode(ddf_fun_t *fun, uint32_t *mode)
     501{
     502        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    497503       
    498504        *mode = 0;
     
    513519 *
    514520 */
    515 static int e1000_defective_set_mode(ddf_fun_t *device, uint32_t mode)
    516 {
    517         e1000_t *e1000 = DRIVER_DATA_DEV(device);
     521static int e1000_defective_set_mode(ddf_fun_t *fun, uint32_t mode)
     522{
     523        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    518524        int rc = EOK;
    519525       
     
    10391045 *
    10401046 */
    1041 static int e1000_vlan_set_tag(ddf_fun_t *device, uint16_t tag, bool add,
     1047static int e1000_vlan_set_tag(ddf_fun_t *fun, uint16_t tag, bool add,
    10421048    bool strip)
    10431049{
     
    10531059                return ENOTSUP;
    10541060       
    1055         e1000_t *e1000 = DRIVER_DATA_DEV(device);
     1061        e1000_t *e1000 = DRIVER_DATA_FUN(fun);
    10561062       
    10571063        e1000->vlan_tag = tag;
     
    18561862static e1000_t *e1000_create_dev_data(ddf_dev_t *dev)
    18571863{
    1858         assert(dev);
    1859         assert(!dev->driver_data);
    1860        
    18611864        nic_t *nic = nic_create_and_bind(dev);
    18621865        if (!nic)
     
    18971900        assert(dev);
    18981901       
    1899         if (dev->driver_data != NULL)
     1902        if (ddf_dev_data_get(dev) != NULL)
    19001903                nic_unbind_and_destroy(dev);
    19011904}
     
    19111914       
    19121915        e1000_delete_dev_data(dev);
    1913        
    1914         if (dev->parent_sess != NULL) {
    1915                 async_hangup(dev->parent_sess);
    1916                 dev->parent_sess = NULL;
    1917         }
    19181916}
    19191917
     
    19321930    const hw_res_list_parsed_t *hw_resources)
    19331931{
    1934         assert(dev != NULL);
    1935         assert(hw_resources != NULL);
    1936         assert(dev->driver_data != NULL);
    1937        
    19381932        e1000_t *e1000 = DRIVER_DATA_DEV(dev);
    19391933       
     
    20041998       
    20051999        uint16_t device_id;
    2006         rc = pci_config_space_read_16(dev->parent_sess, PCI_DEVICE_ID,
     2000        rc = pci_config_space_read_16(ddf_dev_parent_sess_get(dev), PCI_DEVICE_ID,
    20072001            &device_id);
    20082002        if (rc != EOK) {
     
    21222116       
    21232117        /* Device initialization */
    2124         nic_t *nic = dev->driver_data;
     2118        nic_t *nic = ddf_dev_data_get(dev);
    21252119        e1000_t *e1000 = DRIVER_DATA_NIC(nic);
    21262120       
     
    21482142                goto err_tx_structure;
    21492143        nic_set_ddf_fun(nic, fun);
    2150         fun->ops = &e1000_dev_ops;
    2151         fun->driver_data = nic;
     2144        ddf_fun_set_ops(fun, &e1000_dev_ops);
     2145        ddf_fun_data_implant(fun, nic);
    21522146       
    21532147        rc = e1000_register_int_handler(nic);
     
    22792273 * @return Negative error code otherwise
    22802274 */
    2281 static int e1000_set_addr(ddf_fun_t *dev, const nic_address_t *addr)
    2282 {
    2283         nic_t *nic = NIC_DATA_DEV(dev);
     2275static int e1000_set_addr(ddf_fun_t *fun, const nic_address_t *addr)
     2276{
     2277        nic_t *nic = NIC_DATA_FUN(fun);
    22842278        e1000_t *e1000 = DRIVER_DATA_NIC(nic);
    22852279       
     
    23872381            &e1000_nic_iface);
    23882382       
    2389         ddf_log_init(NAME, LVL_ERROR);
     2383        ddf_log_init(NAME);
    23902384        ddf_msg(LVL_NOTE, "HelenOS E1000 driver started");
    23912385        return ddf_driver_main(&e1000_driver);
Note: See TracChangeset for help on using the changeset viewer.