diff --git a/master/ioctl.c b/master/ioctl.c index 49d07892..b0282879 100644 --- a/master/ioctl.c +++ b/master/ioctl.c @@ -1350,6 +1350,7 @@ static int ec_ioctl_config_sdo( ioctl->size = req->data_size; memcpy(ioctl->data, req->data, min((u32) ioctl->size, (u32) EC_MAX_SDO_DATA_SIZE)); + ioctl->complete_access = req->complete_access; up(&master->master_sem); diff --git a/master/ioctl.h b/master/ioctl.h index 43dcbab6..d6cc78ef 100644 --- a/master/ioctl.h +++ b/master/ioctl.h @@ -56,7 +56,7 @@ * * Increment this when changing the ioctl interface! */ -#define EC_IOCTL_VERSION_MAGIC 19 +#define EC_IOCTL_VERSION_MAGIC 20 // Command-line tool #define EC_IOCTL_MODULE EC_IOR(0x00, ec_ioctl_module_t) @@ -528,6 +528,7 @@ typedef struct { uint8_t subindex; uint32_t size; uint8_t data[EC_MAX_SDO_DATA_SIZE]; + uint8_t complete_access; } ec_ioctl_config_sdo_t; /*****************************************************************************/ diff --git a/tool/CommandConfig.cpp b/tool/CommandConfig.cpp index f8840133..b9fa1b64 100644 --- a/tool/CommandConfig.cpp +++ b/tool/CommandConfig.cpp @@ -236,9 +236,14 @@ void CommandConfig::showDetailedConfigs( cout << indent << " 0x" << hex << setfill('0') - << setw(4) << sdo.index << ":" - << setw(2) << (unsigned int) sdo.subindex - << ", " << dec << sdo.size << " byte" << endl; + << setw(4) << sdo.index; + if (sdo.complete_access) { + cout << " C"; + } + else { + cout << ":" << setw(2) << (unsigned int) sdo.subindex; + } + cout << ", " << dec << sdo.size << " byte" << endl; cout << indent << " " << hex; for (i = 0; i < min((uint32_t) sdo.size,