master/cdev.c
changeset 2150 5144a4bc6184
parent 2107 ebda087981e1
child 2182 4dc680830349
equal deleted inserted replaced
2149:98e1e773bed0 2150:5144a4bc6184
     1 /******************************************************************************
     1 /******************************************************************************
     2  *
     2  *
     3  *  $Id$
     3  *  $Id: cdev.c,v ebda087981e1 2011/09/15 13:58:58 fp $
     4  *
     4  *
     5  *  Copyright (C) 2006-2008  Florian Pose, Ingenieurgemeinschaft IgH
     5  *  Copyright (C) 2006-2008  Florian Pose, Ingenieurgemeinschaft IgH
     6  *
     6  *
     7  *  This file is part of the IgH EtherCAT Master.
     7  *  This file is part of the IgH EtherCAT Master.
     8  *
     8  *
   900     if (copy_from_user(sdo_data, (void __user *) data.data, data.data_size)) {
   900     if (copy_from_user(sdo_data, (void __user *) data.data, data.data_size)) {
   901         kfree(sdo_data);
   901         kfree(sdo_data);
   902         return -EFAULT;
   902         return -EFAULT;
   903     }
   903     }
   904 
   904 
   905     retval = ecrt_master_sdo_download(master, data.slave_position,
   905     if (data.complete_access) {
   906             data.sdo_index, data.sdo_entry_subindex, sdo_data, data.data_size,
   906         retval = ecrt_master_sdo_download_complete(master, data.slave_position,
   907             &data.abort_code);
   907                 data.sdo_index, sdo_data, data.data_size, &data.abort_code);
       
   908     } else {
       
   909         retval = ecrt_master_sdo_download(master, data.slave_position,
       
   910                 data.sdo_index, data.sdo_entry_subindex, sdo_data,
       
   911                 data.data_size, &data.abort_code);
       
   912     }
   908 
   913 
   909     kfree(sdo_data);
   914     kfree(sdo_data);
   910 
   915 
   911     if (__copy_to_user((void __user *) arg, &data, sizeof(data))) {
   916     if (__copy_to_user((void __user *) arg, &data, sizeof(data))) {
   912         retval = -EFAULT;
   917         retval = -EFAULT;