- ATOMIC_BLOCK(ATOMIC_RESTORESTATE)\r
- {\r
- GCC_FORCE_POINTER_ACCESS(Buffer);\r
- \r
- Buffer->In = DataPtr;\r
- Buffer->Out = DataPtr;\r
- Buffer->Start = &DataPtr[0];\r
- Buffer->End = &DataPtr[Size];\r
- Buffer->Size = Size;\r
- Buffer->Count = 0;\r
- }\r
+ GCC_FORCE_POINTER_ACCESS(Buffer);\r
+\r
+ uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();\r
+ GlobalInterruptDisable();\r
+ \r
+ Buffer->In = DataPtr;\r
+ Buffer->Out = DataPtr;\r
+ Buffer->Start = &DataPtr[0];\r
+ Buffer->End = &DataPtr[Size];\r
+ Buffer->Size = Size;\r
+ Buffer->Count = 0;\r
+\r
+ SetGlobalInterruptMask(CurrentGlobalInt);\r