Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r59357d3831aa60f17ccdfbe0eef1a005935b9a58 -r10a9fbfb6603a7719c27cc36ff8f4b8702c02747 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 59357d3831aa60f17ccdfbe0eef1a005935b9a58) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 10a9fbfb6603a7719c27cc36ff8f4b8702c02747) @@ -513,8 +513,12 @@ *************************************************************************/ void setHDOperationMode( U32 mode, U32 subMode ) { + // thread protection for queue operations + _disable_IRQ(); hdModes.hdMode = (HD_OP_MODE_T)mode; hdModes.hdSubMode = subMode; + // release thread protection + _enable_IRQ(); } /*********************************************************************//** @@ -528,7 +532,8 @@ *************************************************************************/ void getHDOperationMode( HD_MODE_SUB_MODE_T* mode ) { - memcpy( mode, &hdModes, sizeof( HD_MODE_SUB_MODE_T ) ); + mode->hdMode = hdModes.hdMode; + mode->hdSubMode = hdModes.hdSubMode; } /*********************************************************************//**