master/cdev.c
changeset 957 ed5ac2e83495
parent 956 d9b9bc794d10
child 960 36e460ffbb5e
equal deleted inserted replaced
956:d9b9bc794d10 957:ed5ac2e83495
   141                 (u32) filp, (u32) cmd, (u32) arg);
   141                 (u32) filp, (u32) cmd, (u32) arg);
   142 
   142 
   143     // FIXME lock
   143     // FIXME lock
   144     
   144     
   145     switch (cmd) {
   145     switch (cmd) {
   146         case EC_IOCTL_SLAVE_COUNT:
   146         case EC_IOCTL_MASTER:
       
   147             {
       
   148                 ec_ioctl_master_t data;
       
   149 
       
   150                 data.slave_count = master->slave_count;
       
   151                 data.mode = (uint8_t) master->mode;
       
   152                 
       
   153                 memcpy(data.devices[0].address, master->main_mac, ETH_ALEN); 
       
   154                 data.devices[0].attached = master->main_device.dev ? 1 : 0;
       
   155                 data.devices[0].tx_count = master->main_device.tx_count;
       
   156                 data.devices[0].rx_count = master->main_device.rx_count;
       
   157                 memcpy(data.devices[1].address, master->backup_mac, ETH_ALEN); 
       
   158                 data.devices[1].attached = master->backup_device.dev ? 1 : 0;
       
   159                 data.devices[1].tx_count = master->backup_device.tx_count;
       
   160                 data.devices[1].rx_count = master->backup_device.rx_count;
       
   161 
       
   162                 if (copy_to_user((void __user *) arg, &data, sizeof(data))) {
       
   163                     retval = -EFAULT;
       
   164                     break;
       
   165                 }
       
   166 
       
   167                 break;
       
   168             }
       
   169 
   147             retval = master->slave_count;
   170             retval = master->slave_count;
   148             break;
   171             break;
   149 
   172 
   150         case EC_IOCTL_SLAVE:
   173         case EC_IOCTL_SLAVE:
   151             {
   174             {
   447                     break;
   470                     break;
   448                 }
   471                 }
   449                 break;
   472                 break;
   450             }
   473             }
   451 
   474 
   452         case EC_IOCTL_DEBUG_LEVEL:
   475         case EC_IOCTL_SET_DEBUG:
   453             if (ec_master_debug_level(master, (unsigned int) arg)) {
   476             if (ec_master_debug_level(master, (unsigned int) arg)) {
   454                 retval = -EINVAL;
   477                 retval = -EINVAL;
   455             }
   478             }
   456             break;
   479             break;
   457 
   480