From c98dac2d40a6f1249010d8c697b320e7206dfc76 Mon Sep 17 00:00:00 2001 From: Gabriel Bauer Date: Sat, 30 May 2026 23:34:44 -0400 Subject: [PATCH 01/12] added ThirdParty --- ThirdParty/BSL430_DLL/BSL430_DLL.sln | 28 + .../BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj | 285 + .../BSL430_DLL/BSL430_DLL.vcxproj.filters | 129 + .../Connections/MSPBSL_Connection.cpp | 99 + .../Connections/MSPBSL_Connection.h | 82 + .../MSPBSL_Connection5438Family.cpp | 116 + .../Connections/MSPBSL_Connection5438Family.h | 52 + .../Connections/MSPBSL_Connection5xx.cpp | 603 + .../Connections/MSPBSL_Connection5xx.h | 111 + .../Connections/MSPBSL_Connection5xxUART.cpp | 140 + .../Connections/MSPBSL_Connection5xxUART.h | 67 + .../Connections/MSPBSL_Connection5xxUSB.cpp | 155 + .../Connections/MSPBSL_Connection5xxUSB.h | 56 + .../MSPBSL_ConnectionFRAMFamily.cpp | 109 + .../Connections/MSPBSL_ConnectionFRAMFamily.h | 53 + .../BSL430_DLL/BSL430_DLL/MSPBSL_Factory.cpp | 279 + .../BSL430_DLL/BSL430_DLL/MSPBSL_Factory.h | 58 + .../Packet_Handlers/MSPBSL_PacketHander.cpp | 113 + .../Packet_Handlers/MSPBSL_PacketHandler.h | 83 + .../MSPBSL_PacketHandler5xxUART.cpp | 239 + .../MSPBSL_PacketHandler5xxUART.h | 78 + .../MSPBSL_PacketHandler5xxUSB.cpp | 216 + .../MSPBSL_PacketHandler5xxUSB.h | 58 + .../MSPBSL_PhysicalInterface.h | 125 + .../MSPBSL_PhysicalInterfaceSerialUART.cpp | 369 + .../MSPBSL_PhysicalInterfaceSerialUART.h | 77 + .../MSPBSL_PhysicalInterfaceUSB.cpp | 278 + .../MSPBSL_PhysicalInterfaceUSB.h | 73 + .../Utility_Classes/MSPBSL_CRCEngine.cpp | 148 + .../Utility_Classes/MSPBSL_CRCEngine.h | 60 + .../Utility_Classes/MSPBSL_TestResetControl.h | 196 + .../RAM_BSL_FLASH_MODE_MSP_FET.h | 302 + .../RAM_BSL_FLASH_MODE_eZ_FET.h | 302 + ThirdParty/BSL430_DLL/BSL430_DLL/pch.cpp | 34 + ThirdParty/BSL430_DLL/BSL430_DLL/pch.h | 52 + ThirdParty/BSL430_DLL/Makefile | 71 + ThirdParty/BSL430_Firmware/BSL.ewd | 384 + ThirdParty/BSL430_Firmware/BSL.ewp | 4027 +++++ ThirdParty/BSL430_Firmware/BSL.eww | 8 + ThirdParty/BSL430_Firmware/BSL430_API.c | 674 + ThirdParty/BSL430_Firmware/BSL430_API.h | 209 + .../BSL430_Command_Definitions.h | 70 + .../BSL430_Command_Interpreter.c | 343 + .../BSL430_Command_Interpreter.h | 39 + .../BSL430_Firmware/BSL430_Low_Level_Init.s43 | 164 + ThirdParty/BSL430_Firmware/BSL430_PI.h | 84 + ThirdParty/BSL430_Firmware/BSL430_USB_PI.c | 287 + ThirdParty/BSL430_Firmware/BSL_Device_File.h | 175 + .../CONFIG/lnk430F5509_RAM_AREA.xcl | 183 + .../CONFIG/lnk430_BSL_AREA_RAM_2400-33FF.xcl | 105 + ThirdParty/BSL430_Firmware/Proj_Settings.h | 87 + ThirdParty/BSL430_Firmware/UsbApi.c | 109 + ThirdParty/BSL430_Firmware/UsbHidReq.c | 59 + ThirdParty/BSL430_Firmware/UsbHidReq.h | 74 + ThirdParty/BSL430_Firmware/UsbIsr.c | 178 + ThirdParty/BSL430_Firmware/UsbIsr.h | 118 + ThirdParty/BSL430_Firmware/cstartup.s43 | 343 + ThirdParty/BSL430_Firmware/defUSB.h | 170 + ThirdParty/BSL430_Firmware/descriptor.h | 90 + ThirdParty/BSL430_Firmware/descriptors.c | 165 + ThirdParty/BSL430_Firmware/descriptors.h | 75 + ThirdParty/BSL430_Firmware/hal_UCS.c | 83 + ThirdParty/BSL430_Firmware/hal_UCS.h | 98 + .../BSL430_Firmware/tools/convertBsl.bat | 49 + ThirdParty/BSL430_Firmware/types.h | 113 + ThirdParty/BSL430_Firmware/usb.c | 630 + ThirdParty/BSL430_Firmware/usb.h | 317 + ThirdParty/BSL430_Firmware/usbapi.h | 52 + ThirdParty/include/pugiconfig.hpp | 74 + ThirdParty/include/pugixml.hpp | 1400 ++ ThirdParty/include/tinfl.c | 592 + ThirdParty/src/pugixml.cpp | 12444 ++++++++++++++++ 72 files changed, 29368 insertions(+) create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL.sln create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj.filters create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHander.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterface.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_TestResetControl.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_MSP_FET.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_eZ_FET.h create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/pch.cpp create mode 100644 ThirdParty/BSL430_DLL/BSL430_DLL/pch.h create mode 100644 ThirdParty/BSL430_DLL/Makefile create mode 100644 ThirdParty/BSL430_Firmware/BSL.ewd create mode 100644 ThirdParty/BSL430_Firmware/BSL.ewp create mode 100644 ThirdParty/BSL430_Firmware/BSL.eww create mode 100644 ThirdParty/BSL430_Firmware/BSL430_API.c create mode 100644 ThirdParty/BSL430_Firmware/BSL430_API.h create mode 100644 ThirdParty/BSL430_Firmware/BSL430_Command_Definitions.h create mode 100644 ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.c create mode 100644 ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.h create mode 100644 ThirdParty/BSL430_Firmware/BSL430_Low_Level_Init.s43 create mode 100644 ThirdParty/BSL430_Firmware/BSL430_PI.h create mode 100644 ThirdParty/BSL430_Firmware/BSL430_USB_PI.c create mode 100644 ThirdParty/BSL430_Firmware/BSL_Device_File.h create mode 100644 ThirdParty/BSL430_Firmware/CONFIG/lnk430F5509_RAM_AREA.xcl create mode 100644 ThirdParty/BSL430_Firmware/CONFIG/lnk430_BSL_AREA_RAM_2400-33FF.xcl create mode 100644 ThirdParty/BSL430_Firmware/Proj_Settings.h create mode 100644 ThirdParty/BSL430_Firmware/UsbApi.c create mode 100644 ThirdParty/BSL430_Firmware/UsbHidReq.c create mode 100644 ThirdParty/BSL430_Firmware/UsbHidReq.h create mode 100644 ThirdParty/BSL430_Firmware/UsbIsr.c create mode 100644 ThirdParty/BSL430_Firmware/UsbIsr.h create mode 100644 ThirdParty/BSL430_Firmware/cstartup.s43 create mode 100644 ThirdParty/BSL430_Firmware/defUSB.h create mode 100644 ThirdParty/BSL430_Firmware/descriptor.h create mode 100644 ThirdParty/BSL430_Firmware/descriptors.c create mode 100644 ThirdParty/BSL430_Firmware/descriptors.h create mode 100644 ThirdParty/BSL430_Firmware/hal_UCS.c create mode 100644 ThirdParty/BSL430_Firmware/hal_UCS.h create mode 100644 ThirdParty/BSL430_Firmware/tools/convertBsl.bat create mode 100644 ThirdParty/BSL430_Firmware/types.h create mode 100644 ThirdParty/BSL430_Firmware/usb.c create mode 100644 ThirdParty/BSL430_Firmware/usb.h create mode 100644 ThirdParty/BSL430_Firmware/usbapi.h create mode 100644 ThirdParty/include/pugiconfig.hpp create mode 100644 ThirdParty/include/pugixml.hpp create mode 100644 ThirdParty/include/tinfl.c create mode 100644 ThirdParty/src/pugixml.cpp diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL.sln b/ThirdParty/BSL430_DLL/BSL430_DLL.sln new file mode 100644 index 0000000..af99997 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 2013 for Windows Desktop +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BSL430_DLL", "BSL430_DLL\BSL430_DLL.vcxproj", "{C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Debug|Win32.ActiveCfg = Debug|Win32 + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Debug|Win32.Build.0 = Debug|Win32 + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Debug|x64.ActiveCfg = Debug|x64 + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Debug|x64.Build.0 = Debug|x64 + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Release|Win32.ActiveCfg = Release|Win32 + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Release|Win32.Build.0 = Release|Win32 + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Release|x64.ActiveCfg = Release|x64 + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj b/ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj new file mode 100644 index 0000000..7df1e8f --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj @@ -0,0 +1,285 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C57AA8C3-1C6E-4F1A-9E65-8A3BFC896D7A} + Win32Proj + BSL430_DLL + 10.0.17763.0 + + + + StaticLibrary + true + Unicode + v141 + + + StaticLibrary + true + Unicode + v141 + + + StaticLibrary + false + MultiByte + v141 + + + StaticLibrary + false + MultiByte + v141 + + + + + + + + + + + + + + + + + + + $(LibraryPath) + .lib + $(IncludePath) + $(ProjectName)d + ..\..\lib\ + ..\$(Configuration)\ + + + $(LibraryPath) + .lib + $(IncludePath) + $(ProjectName)d + ..\..\lib64\ + + + $(LibraryPath) + .lib + $(IncludePath) + ..\..\lib\ + ..\$(Configuration)\ + + + $(LibraryPath) + .lib + $(IncludePath) + ..\..\lib64\ + + + + Use + Level3 + Disabled + _WINSOCK_DEPRECATED_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Utility_Classes;Physical_Interfaces;Packet_Handlers;Connections;BSL430_DLL;..\..\include;s:\boost_1_67_0\boost_1_67_0\;C:\MSP430\boost\boost_1_67_0 + MultiThreadedDebug + true + true + pch.h + $(IntDir)$(TargetName).pch + false + ProgramDatabase + false + + + Console + true + + + true + true + false + + + %(AdditionalDependencies) + $(TargetPath) + %(AdditionalLibraryDirectories) + + + false + + + + + Use + Level3 + Disabled + _WINSOCK_DEPRECATED_NO_WARNINGS;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Utility_Classes;Physical_Interfaces;Packet_Handlers;Connections;BSL430_DLL;..\..\include;s:\boost_1_67_0\boost_1_67_0\;C:\MSP430\boost\boost_1_67_0 + MultiThreadedDebug + true + true + pch.h + $(IntDir)$(TargetName).pch + false + ProgramDatabase + false + + + Console + true + + + true + true + false + + + %(AdditionalDependencies) + $(TargetPath) + %(AdditionalLibraryDirectories) + + + false + + + + + Use + Level3 + Full + _WINSOCK_DEPRECATED_NO_WARNINGS;NDEBUG;%(PreprocessorDefinitions) + MultiThreaded + true + false + Default + Size + true + ProgramDatabase + true + false + true + true + pch.h + $(IntDir)$(TargetName).pch + Utility_Classes;Physical_Interfaces;Packet_Handlers;Connections;BSL430_DLL;..\..\include;s:\boost_1_67_0\boost_1_67_0\;C:\MSP430\boost\boost_1_67_0 + + + Console + true + + + true + true + false + + + %(AdditionalDependencies) + $(TargetPath) + false + %(AdditionalLibraryDirectories) + + + false + + + + + Use + Level3 + Full + _WINSOCK_DEPRECATED_NO_WARNINGS;NDEBUG;%(PreprocessorDefinitions) + MultiThreaded + true + false + Default + Size + true + ProgramDatabase + true + false + true + true + pch.h + $(IntDir)$(TargetName).pch + Utility_Classes;Physical_Interfaces;Packet_Handlers;Connections;BSL430_DLL;..\..\include;s:\boost_1_67_0\boost_1_67_0\;C:\MSP430\boost\boost_1_67_0 + + + Console + true + + + true + true + false + + + %(AdditionalDependencies) + $(TargetPath) + false + %(AdditionalLibraryDirectories) + + + false + + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj.filters b/ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj.filters new file mode 100644 index 0000000..dab1b9e --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/BSL430_DLL.vcxproj.filters @@ -0,0 +1,129 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {194c4325-48e9-4cfd-9ebd-6dfa5816a5c8} + + + {58e1a238-aed1-4ace-838f-23296b566bf6} + + + {ec54b1c2-bdff-428c-a0e3-baa56e815549} + + + {17500bde-fc6e-4a00-b225-ba91988f4dea} + + + {1cedb7fc-ffdd-4e65-b6d4-6fe41599a81c} + + + {fb04c1eb-5e15-428e-a3b0-e6f221355f7d} + + + {b51158f2-cd5f-44ec-a691-7608c6a65e0f} + + + + + Source Files\BSL Connection Source + + + Source Files\BSL Connection Source + + + Source Files\BSL Connection Source + + + Source Files\BSL Connection Source + + + Source Files\BSL Connection Source + + + Source Files\PacketHandler Source + + + Source Files\PacketHandler Source + + + Source Files\PacketHandler Source + + + Source Files\Phys Connection Source + + + Source Files\Phys Connection Source + + + Source Files + + + Source Files + + + Source Files\BSL Connection Source + + + Source Files + + + + + Header Files\BSL Connection Headers + + + Header Files\BSL Connection Headers + + + Header Files\BSL Connection Headers + + + Header Files\BSL Connection Headers + + + Header Files\BSL Connection Headers + + + Header Files\PacketHandler Headers + + + Header Files\PacketHandler Headers + + + Header Files\PacketHandler Headers + + + Header Files\Phys Connection Headers + + + Header Files\Phys Connection Headers + + + Header Files\Phys Connection Headers + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.cpp new file mode 100644 index 0000000..66a457a --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.cpp @@ -0,0 +1,99 @@ +/* + * MSPBSL_Connection + * + * An interface to define basic BSL functionality across all families + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_Connection.h" +#include "MSPBSL_PacketHandler.h" + +using namespace std; + +/***************************************************************************//** +* MSPBSL_Connection Class Destructor. +* +******************************************************************************/ +MSPBSL_Connection::~MSPBSL_Connection() +{ + delete thePacketHandler; +} + +/***************************************************************************//** +* Gets the Packet Handler used for formatting packets +* +* \return a MSPBSL_PacketHandler class +******************************************************************************/ +MSPBSL_PacketHandler* MSPBSL_Connection::getPacketHandler() +{ + return thePacketHandler; +} + +/***************************************************************************//** +* Sets the Packet Handler used for formatting packets +* +* \param a MSPBSL_PacketHandler class reference to be used to format packets +* +******************************************************************************/ +void MSPBSL_Connection::setPacketHandler(MSPBSL_PacketHandler* handler) +{ + thePacketHandler = handler; +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_Connection::getErrorInformation( uint16_t err ) +{ + + switch( err ) + { + case (GENERAL_BSL_CONNECTION_ERROR): + return "General Connection Error Occured"; + break; + case (UNEXPECTED_VALUE): + return "an unexpected value was received by the BSL connection"; + break; + } + return thePacketHandler->getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.h new file mode 100644 index 0000000..e9c3198 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection.h @@ -0,0 +1,82 @@ +/* + * MSPBSL_Connection + * + * An interface to define basic BSL functionality across all families + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +//Error header (top 8 bits) definitions +#define MSLBSL_CONNECTION_HEADER 0x0100 +#define getHeader(X) (X&0xFF00) +#define MSPBSL_ConnectionError(X) (MSLBSL_CONNECTION_HEADER | X) + +//Error footer (lower 8 bits) definitions +#define GENERAL_BSL_CONNECTION_ERROR MSPBSL_ConnectionError(0xEE) +#define UNEXPECTED_VALUE MSPBSL_ConnectionError(0x01) + +// General BSL defines +#define BSL_ERROR_HEADER 0x0000 +#define ACKNOWLEDGE 0x00 +#define ACK ACKNOWLEDGE + +class MSPBSL_PacketHandler; + +class MSPBSL_Connection +{ +protected: + MSPBSL_PacketHandler* thePacketHandler; + +public: + MSPBSL_Connection() : thePacketHandler(nullptr) {} + MSPBSL_Connection(const MSPBSL_Connection&) = delete; + MSPBSL_Connection& operator=(const MSPBSL_Connection&) = delete; + virtual ~MSPBSL_Connection(); + + virtual uint16_t massErase() = 0; + virtual uint16_t RX_Password() = 0; + virtual uint16_t RX_Password(uint8_t* password) = 0; + virtual uint16_t TX_BSL_Version(std::string& versionString) = 0; + virtual uint16_t setPC(uint32_t addr) = 0; + virtual uint16_t TX_DataBlock( uint8_t* data, uint32_t startAddr, uint32_t numBytes ) = 0; + virtual uint16_t RX_DataBlock( uint8_t* data, uint32_t startAddr, uint32_t numBytes ) = 0; + + virtual std::string getErrorInformation( uint16_t err ); + + + MSPBSL_PacketHandler* getPacketHandler(); + void setPacketHandler(MSPBSL_PacketHandler* protocol); + +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.cpp new file mode 100644 index 0000000..199d078 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.cpp @@ -0,0 +1,116 @@ +/* + * MSPBSL_Connection5438Family + * + * A subclass to add 5438 (non-A) specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_Connection5438Family.h" + +using namespace std; + + +/***************************************************************************//** +* MSPBSL_Connection5438Family Class Constructor. +* +* Creates a 5/6xx General Connection using the supplied parameters +* +* \param initString an initialization string for the connection +* +* \return a MSPBSL_Connection5438Family class +******************************************************************************/ +MSPBSL_Connection5438Family::MSPBSL_Connection5438Family(string initString) : MSPBSL_Connection5xxUART( initString) +{ +} + +/***************************************************************************//** +* MSPBSL_Connection5438Family Class Destructor. +* +******************************************************************************/ +MSPBSL_Connection5438Family::~MSPBSL_Connection5438Family(void) +{ +} + +/***************************************************************************//** +* The 5438 Standard RX Password Command +* +* Creates a databuffer containing a standard 5438 RX Password Command, and passes +* this on to the Packet Handler layer for sending. Note: This command accepts +* no parameters as it sends a default (16x 0xFF) password +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5438Family::RX_Password(void) +{ + uint8_t buf_array[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + return RX_Password( buf_array ); +} + +/***************************************************************************//** +* Thex 5438 Standard RX Password Command +* +* Creates a databuffer containing a standard 5/6xx RX Password Command, and passes +* this on to the Packet Handler layer for sending. Note: This command accepts +* no parameters as it sends a default (16x 0xFF) password +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5438Family::RX_Password(uint8_t* password) +{ + uint8_t passwordPacket[17]; + passwordPacket[0] = RX_PASSWORD_COMMAND; + for( uint8_t i = 0; i < 16; i++ ) + { + passwordPacket[i+1] = password[i]; + } + + return MSPBSL_Connection5xx::sendPacketExpectMessage(passwordPacket, 17); +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_Connection5438Family::getErrorInformation( uint16_t err ) +{ + return MSPBSL_Connection5xxUART::getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.h new file mode 100644 index 0000000..3e4a4b5 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5438Family.h @@ -0,0 +1,52 @@ +/* + * MSPBSL_Connection5438Family + * + * A subclass to add 5438 (non-A) specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ +#pragma once + +#include "MSPBSL_Connection5xxUART.h" + +class MSPBSL_Connection5438Family : public MSPBSL_Connection5xxUART +{ +public: + MSPBSL_Connection5438Family(std::string initString); + virtual ~MSPBSL_Connection5438Family(); + + uint16_t RX_Password(); + uint16_t RX_Password(uint8_t* password); + + virtual std::string getErrorInformation( uint16_t err ); +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.cpp new file mode 100644 index 0000000..6dd9abe --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.cpp @@ -0,0 +1,603 @@ +/* + * MSPBSL_Connection 5xx + * + * A class file to impliment the high-level communication interface for 5xx BSL connections + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_Connection5xx.h" +#include "MSPBSL_PhysicalInterfaceSerialUART.h" +#include "MSPBSL_PacketHandler.h" + +using namespace std; + +string BUG_DESIGNATOR = "BUG:"; +string bugList = ""; + +/***************************************************************************//** +* MSPBSL_Connection5xx Class Constructor. +* +* Creates a 5/6xx General Connection using the supplied parameters +* +* \param initString an initialization string for the connection +* +* \return a MSPBSL_Connection5xx class +******************************************************************************/ +MSPBSL_Connection5xx::MSPBSL_Connection5xx(string initString) +{ + // currently no bugs + if( initString.find(BUG_DESIGNATOR) != string::npos) + { + int bugStart = initString.find(BUG_DESIGNATOR)+BUG_DESIGNATOR.size(); + int bugEnd = initString.find(' ', bugStart ); + bugList.append(initString.substr( bugStart, bugEnd-bugStart)); + }// found buglist + +} + +/***************************************************************************//** +* MSPBSL_Connection5xx Class Destructor. +* +******************************************************************************/ +MSPBSL_Connection5xx::~MSPBSL_Connection5xx(void) +{ +} + +/***************************************************************************//** +* The 5/6xx Standard Set PC Command +* +* Creates a databuffer containing a standard 5/6xx Set PC Command, and passes +* this on to the Packet Handler layer for sending +* +* \param addr a 32-bit address where the device should begin to execute +* +* \return the result of packet handler's Packet Transmission. Note: This only +* means the caller knows if the packet was sucessfully sent to the BSL, +* not whether the desired address is executing correctly +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::setPC(uint32_t addr) +{ + uint8_t command[4]; + command[0]=SET_PC_COMMAND; + command[1]=((addr)&0xFF); // AL + command[2]=((addr>>8)&0xFF); // AM + command[3]=((addr>>16)&0xFF); // AH + thePacketHandler->TX_Packet(command, 4); + return ACK; +} + +/***************************************************************************//** +* The 5/6xx Standard Toggle Info Command +* +* Creates a databuffer containing a standard 5/6xx Toggle Info Command, and passes +* this on to the Packet Handler layer for sending +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::toggleInfo(void) +{ + uint8_t command[1]; + command[0]=TOGGLE_INFO_LOCK_COMMAND; + return sendPacketExpectMessage(command, 1); +} + +/***************************************************************************//** +* The 5/6xx Standard Erase Segment Command +* +* Creates a databuffer containing a standard 5/6xx Erase Segment Command, and passes +* this on to the Packet Handler layer for sending +* +* \param addr a 32-bit address which is in the desired segment to erase +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::eraseSegment(uint32_t addr) +{ + uint8_t command[4]; + command[0]=ERASE_SEGMENT_COMMAND; + command[1]=((addr)&0xFF); // AL + command[2]=((addr>>8)&0xFF); // AM + command[3]=((addr>>16)&0xFF); // AH + return sendPacketExpectMessage(command, 4); +} + +/***************************************************************************//** +* The 5/6xx Standard Get Buffer Size Command +* +* Creates a databuffer containing a standard 5/6xx Get Buffer Size Command, and passes +* this on to the Packet Handler layer for sending +* +* \param bufSize a reference to a 16 bit variable in which to write the buffer size +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::TX_BufferSize(uint16_t* bufSize) +{ + uint16_t retValue; + uint8_t command[4]; + uint8_t rxBuf[4]; + command[0]=TX_BUFFER_SIZE_COMMAND; + retValue = thePacketHandler->TX_Packet(command, 1); + if( retValue == OPERATION_SUCCESSFUL ) + { + retValue = thePacketHandler->RX_Packet(rxBuf, 4); + if (retValue == OPERATION_SUCCESSFUL ) + { + if( command[0] == MESSAGE_RESPONSE ) // we have a message + { + retValue = command[1]; // return the message + } + else if( command[0] == DATA_RESPONSE ) // we have the size + { + //parse buffer + *bufSize = ((uint32_t)command[2])<<8; + *bufSize |= ((uint32_t)command[1]); + retValue = OPERATION_SUCCESSFUL; + } + else + { + retValue = UNEXPECTED_VALUE; // panic + } + } + } + return retValue; + +} + +/***************************************************************************//** +* The 5/6xx Standard RX Data Block Fast Command +* +* Creates a databuffer containing a standard 5/6xx RX Data Block Fast Command, and passes +* this on to the Packet Handler layer for sending. Note: This command tells the BSL +* to Receive a data block, so it will send data from the Host +* +* \param data an array of unsigned bytes to send +* \param startAddr the start address in device memory to begin writing these bytes +* \param numBytes the number of bytes in the array +* +* \return the value returned by the connected BSL, or underlying connection layers +* Note: This only means the caller knows if the packet was sucessfully +* sent to the BSL, not whether the data was correctly written +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::RX_DataBlockFast(const uint8_t* data, uint32_t startAddr, uint32_t numBytes ) +{ + uint16_t retValue = ACK; + uint32_t currentStartAddr = startAddr; + uint16_t currentPacketNumBytes; + uint32_t numBytesRemaining = numBytes; + uint16_t currentBytePointer = 0; + uint16_t maxPacketSize = thePacketHandler->getMaxDataSize()-4; + while( numBytesRemaining > 0) + { + if( numBytesRemaining > maxPacketSize ) + { + currentPacketNumBytes = maxPacketSize; + } + else + { + currentPacketNumBytes = (uint16_t)numBytesRemaining; // cast is safe since max Packet size is less than 16 bts + } + uint8_t* txDataBuf = NULL; + txDataBuf = new uint8_t[currentPacketNumBytes+4]; + txDataBuf[0] = RX_DATA_BLOCK_FAST_COMMAND; + txDataBuf[1] = ((currentStartAddr)&0xFF); // AL + txDataBuf[2] = ((currentStartAddr>>8)&0xFF); // AM + txDataBuf[3] = ((currentStartAddr>>16)&0xFF); // AH + for( uint16_t i = 0; i < currentPacketNumBytes; i++,currentBytePointer++ ) + { + txDataBuf[i+4] = data[currentBytePointer]; + + } + retValue = sendPacketExpectNothing(txDataBuf, currentPacketNumBytes+4); + delete [] txDataBuf; + currentStartAddr += currentPacketNumBytes; + numBytesRemaining -= currentPacketNumBytes; + if( retValue != ACK ) + { + return retValue; + } + } // while + + return retValue; + +} + +/***************************************************************************//** +* The 5/6xx Standard RX Data Block Command +* +* Creates a databuffer containing a standard 5/6xx RX Data Block Command, and passes +* this on to the Packet Handler layer for sending. Note: This command tells the BSL +* to Receive a data block, so it will send data from the Host +* +* \param data an array of unsigned bytes to send +* \param startAddr the start address in device memory to begin writing these bytes +* \param numBytes the number of bytes in the array +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::RX_DataBlock(uint8_t* data, uint32_t startAddr, uint32_t numBytes) +{ + uint16_t retValue = ACK; + uint32_t currentStartAddr = startAddr; + uint16_t currentPacketNumBytes; + uint16_t numBytesRemaining = numBytes; + uint16_t currentBytePointer = 0; + uint16_t maxPacketSize = thePacketHandler->getMaxDataSize()-4; + while( numBytesRemaining > 0) + { + if( numBytesRemaining > maxPacketSize ) + { + currentPacketNumBytes = maxPacketSize; + } + else + { + currentPacketNumBytes = (uint16_t)numBytesRemaining; // cast is safe since max Packet size is less than 16 bts + } + uint8_t* txDataBuf = NULL; + txDataBuf = new uint8_t[currentPacketNumBytes+4]; + txDataBuf[0] = RX_DATA_BLOCK_COMMAND; + txDataBuf[1] = ((currentStartAddr)&0xFF); // AL + txDataBuf[2] = ((currentStartAddr>>8)&0xFF); // AM + txDataBuf[3] = ((currentStartAddr>>16)&0xFF); // AH + for( uint16_t i = 0; i < currentPacketNumBytes; i++,currentBytePointer++ ) + { + txDataBuf[i+4] = data[currentBytePointer]; + + } + retValue = sendPacketExpectMessage(txDataBuf, currentPacketNumBytes+4); + delete [] txDataBuf; + currentStartAddr += currentPacketNumBytes; + numBytesRemaining -= currentPacketNumBytes; + if( retValue != ACK ) + { + return retValue; + } + } // while + + return retValue; + +} + +/***************************************************************************//** +* The 5/6xx Standard TX Data Block Command +* +* Sends one or more TX Data Block Commands in order to write all data in the +* supplied array down to memory as requested +* +* \param data an array of unsigned bytes to send +* \param startAddr the start address in device memory to begin writing these bytes +* \param numBytes the number of bytes in the array +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::TX_DataBlock( uint8_t* data, uint32_t startAddr, uint32_t numBytes) +{ + // to do: handle "large" streaming data blocks being TXed + + uint16_t retValue = ACK; + uint16_t maxPacketSize = thePacketHandler->getMaxDataSize(); + uint16_t maxBytesRXed = maxPacketSize-1; // the packet size minus data header = max data + uint16_t totalBytesRxed = 0; + uint16_t bytesReceived; + uint8_t command[6]; + uint16_t TimeOut = 3; + vector rxDataBuf(maxPacketSize); + + if( numBytes > (uint32_t)0xFFFF ) // if we are requesting over a 16 byte number, we must break it up + { + retValue |= TX_DataBlock( (data+0xFFFF), (startAddr+0xFFFF), (numBytes-0xFFFF) ); // use recursion to grab the remaining upper locations + numBytes = 0xFFFF; + } + + command[0]=TX_DATA_BLOCK_COMMAND; + command[1]=((startAddr)&0xFF); // AL + command[2]=((startAddr>>8)&0xFF); // AM + command[3]=((startAddr>>16)&0xFF); // AH + command[4]=((numBytes)&0xFF); // Bytes_Low + command[5]=((numBytes>>8)&0xFF); // Bytes_High + + retValue |= thePacketHandler->TX_Packet(command, 6); + if( retValue == 0x00 ) + { + uint16_t bytesExpected; + if( numBytes > maxBytesRXed) + { + bytesExpected = maxBytesRXed; + } + else + { + bytesExpected = numBytes; + } + bytesExpected++; // +1 for the header + TimeOut = TimeOut * numBytes; + while( totalBytesRxed < numBytes && TimeOut > 0) // to do: recompute bytesExpected each loop! + { + retValue = thePacketHandler->RX_Packet(&rxDataBuf[0], bytesExpected, &bytesReceived); + if (retValue == OPERATION_SUCCESSFUL ) + { + if( rxDataBuf[0] == MESSAGE_RESPONSE ) // we have a message + { + // to do: if the message is a buffer size error, switch reading mode to non-streaming + retValue = rxDataBuf[1]; // return the message + } + else if( rxDataBuf[0] == DATA_RESPONSE ) // we have the data + { + for( uint16_t i = 1; i < bytesReceived; i++,totalBytesRxed++ ) //i = 1 to skip over data header byte + { + data[totalBytesRxed] = rxDataBuf[i]; + } + } + } + TimeOut--; + } // while + } + return retValue; + +} + +/***************************************************************************//** +* The 5/6xx Standard CRC Command +* +* Creates a databuffer containing a standard 5/6xx CRC Command, and passes +* this on to the Packet Handler layer for sending. +* +* \param CRC_Return 32bit variable reference in which the CRC value will be placed +* \param startAddr The start address for CRC computation +* \param numBytes The number of bytes to include in CRC computation +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::CRC_Check(uint16_t* CRC_Return, uint32_t startAddr, uint16_t numBytes) +{ + + uint16_t retValue = ACK; + uint8_t command[6]; + //dataBuffer command(6); + command[0]=CRC_CHECK_COMMAND; + command[1]=((startAddr)&0xFF); // AL + command[2]=((startAddr>>8)&0xFF); // AM + command[3]=((startAddr>>16)&0xFF); // AH + command[4]=((numBytes)&0xFF); // Bytes_Low + command[5]=((numBytes>>8)&0xFF); // Bytes_High + + retValue = thePacketHandler->TX_Packet(command, 6); + if( retValue == OPERATION_SUCCESSFUL ) + { + retValue = thePacketHandler->RX_Packet(command, 3); + if (retValue == OPERATION_SUCCESSFUL ) + { + if( command[0] == MESSAGE_RESPONSE ) // we have a message + { + retValue = command[1]; // return the message + } + else if( command[0] == DATA_RESPONSE ) // we have the CRC + { + + //parse CRC + *CRC_Return = ((uint16_t)command[2])<<8; + *CRC_Return |= ((uint16_t)command[1]); + retValue = ACK; + } + else + { + retValue = GENERAL_BSL_CONNECTION_ERROR; // panic + } + } + } + return retValue; + +} + +/***************************************************************************//** +* The 5/6xx Standard TX BSL Version Command +* +* Creates a databuffer containing a standard 5/6xx TX BSL Version Command, and passes +* this on to the Packet Handler layer for sending. +* +* \param versionString a reference to a string which will store the returned version +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::TX_BSL_Version(string& versionString) +{ + + uint16_t retValue = ACK; + versionString = ""; + uint8_t rxedDataPacket[5]; + uint16_t rxedByteCount; + uint8_t commandPacket[1]; + commandPacket[0] = TX_BSL_VERSION_COMMAND; + retValue = thePacketHandler->TX_Packet(commandPacket, 1); + if( retValue == OPERATION_SUCCESSFUL ) + { + retValue = thePacketHandler->RX_Packet(rxedDataPacket, 5, &rxedByteCount); + if (retValue == OPERATION_SUCCESSFUL ) + { + if( rxedDataPacket[0] == MESSAGE_RESPONSE ) // we have a message + { + retValue = rxedDataPacket[1]; // return the message + } + else if( rxedDataPacket[0] == DATA_RESPONSE ) // we have the Version + { + versionString += (uint8_t)(((rxedDataPacket[1]>>4)&0xF)+48); + versionString += (uint8_t)(((rxedDataPacket[1])&0xF)+48); + versionString += '.'; + versionString += (uint8_t)(((rxedDataPacket[2]>>4)&0xF)+48); + versionString += (uint8_t)(((rxedDataPacket[2])&0xF)+48); + versionString += '.'; + versionString += (uint8_t)(((rxedDataPacket[3]>>4)&0xF)+48); + versionString += (uint8_t)(((rxedDataPacket[3])&0xF)+48); + versionString += '.'; + versionString += (uint8_t)(((rxedDataPacket[4]>>4)&0xF)+48); + versionString += (uint8_t)(((rxedDataPacket[4])&0xF)+48); + for( int i = 0; i < 11; i++) + { + if( (versionString[i] >= 58) && (versionString[i] <= 63)) + { + versionString[i] += 7; + } + } + retValue = OPERATION_SUCCESSFUL; + } + else + { + retValue = GENERAL_BSL_CONNECTION_ERROR; // panic + } + } + } + return retValue; + + return 0; +} + +/***************************************************************************//** +* The 5/6xx Standard RX Password Command +* +* Creates a databuffer containing a standard 5/6xx RX Password Command, and passes +* this on to the Packet Handler layer for sending. Note: This command accepts +* no parameters as it sends a default (32x 0xFF) password +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::RX_Password(void) +{ + uint8_t standardPassword[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + return RX_Password( standardPassword ); + +} + +/***************************************************************************//** +* The 5/6xx Standard RX Password Command +* +* Creates a databuffer containing a standard 5/6xx RX Password Command, and passes +* this on to the Packet Handler layer for sending. +* +* \param pass a databuffer containing the device password +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::RX_Password(uint8_t* password) +{ + uint8_t passwordPacket[33]; + passwordPacket[0] = RX_PASSWORD_COMMAND; + for( uint8_t i = 0; i < 32; i++ ) + { + passwordPacket[i+1] = password[i]; + } + + return sendPacketExpectMessage(passwordPacket, 33); +} + +/***************************************************************************//** +* The 5/6xx Standard Mass Erase Command +* +* Creates a databuffer containing a standard 5/6xx Mass Erase Command, and passes +* this on to the Packet Handler layer for sending. +* +* \return the value returned by the connected BSL, or underlying connection layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::massErase(void) +{ + uint8_t massEraseCommand[1]; + massEraseCommand[0] = MASS_ERASE_COMMAND; + return sendPacketExpectMessage(massEraseCommand, 1); +} + +/***************************************************************************//** +* Sends a Data packet and waits for the BSL to reply with a message +* +* This function transmits a data packet to the BSL, and will expect that +* the BSL should reply with a message +* +* \param packet an array of unsigned bytes containing the data to send +* \param packetSize the number of bytes in the packet +* +* \return the message or error returned by BSL or underlying layers +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::sendPacketExpectMessage(uint8_t* packet, uint16_t packetSize) +{ + uint16_t retValue, tempRX; + uint8_t messageBuf[2]; + retValue = thePacketHandler->TX_Packet(packet, packetSize); + if( retValue == OPERATION_SUCCESSFUL ) + { + retValue = thePacketHandler->RX_Packet(messageBuf, 2, &tempRX ); + if (retValue == OPERATION_SUCCESSFUL ) + { + if( messageBuf[0] == MESSAGE_RESPONSE ) // we have a message + { + retValue = messageBuf[1]; // return the message + } + else + { + retValue = GENERAL_BSL_CONNECTION_ERROR; // panic + } + } + } + + return retValue; +} + +/***************************************************************************//** +* Sends a Data packet and does not expect a message +* +* This function transmits a data packet to the BSL, and will not expect that +* the BSL replies with a message +* +* \param packet an array of unsigned bytes containing the data to send +* \param packetSize the number of bytes in the packet +* +* \return TX status as returned by the underlying layers (0 for success) +******************************************************************************/ +uint16_t MSPBSL_Connection5xx::sendPacketExpectNothing(uint8_t* packet, uint16_t packetSize) +{ + return thePacketHandler->TX_Packet(packet, packetSize); +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_Connection5xx::getErrorInformation( uint16_t err ) +{ + return MSPBSL_Connection::getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.h new file mode 100644 index 0000000..e95d521 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xx.h @@ -0,0 +1,111 @@ +/* + * MSPBSL_Connection 5xx + * + * A class file to impliment the high-level communication interface for 5xx BSL connections + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include "MSPBSL_Connection.h" + +//Commands +#define RX_DATA_BLOCK_COMMAND 0x10 +#define RX_DATA_BLOCK_FAST_COMMAND 0x1B +#define RX_PASSWORD_COMMAND 0x11 +#define ERASE_SEGMENT_COMMAND 0x12 +#define TOGGLE_INFO_LOCK_COMMAND 0x13 +//#define RESERVED_COMMAND 0x14 +#define MASS_ERASE_COMMAND 0x15 +#define CRC_CHECK_COMMAND 0x16 +#define SET_PC_COMMAND 0x17 +#define TX_DATA_BLOCK_COMMAND 0x18 +#define TX_BSL_VERSION_COMMAND 0x19 +#define TX_BUFFER_SIZE_COMMAND 0x1A +#define USB_DISCONNECT_COMMAND 0x53 + +//Responses +#define DATA_RESPONSE 0x3A +#define MESSAGE_RESPONSE 0x3B + +//Messages +#define OPERATION_SUCCESSFUL 0x00 +#define FLASH_WRITE_CHECK_FAILED 0x01 +#define FLASH_FAIL_BIT_SET 0x02 +#define VOLTAGE_CHANGE_DURING_PROGRAM 0x03 +#define BSL_LOCKED 0x04 +#define BSL_PASSWORD_ERROR 0x05 +#define BYTE_WRITE_FORBIDDEN 0x06 +#define UNKNOWN_COMMAND 0x07 +#define PACKET_LENGTH_EXCEEDS_BUFFER 0x08 + +// Bugs +#define PASSWORD_BUG_5438 "SHORT_PASS" + +class MSPBSL_Connection5xx : public MSPBSL_Connection +{ +public: + MSPBSL_Connection5xx(std::string initString); + virtual ~MSPBSL_Connection5xx(); + + + + uint16_t massErase(); + uint16_t RX_Password(); + uint16_t RX_Password(uint8_t* password); + uint16_t TX_BSL_Version(std::string& versionString); + + + uint16_t setPC(uint32_t addr); + uint16_t TX_DataBlock( uint8_t* data, uint32_t startAddr, uint32_t numBytes ); + uint16_t RX_DataBlock( uint8_t* data, uint32_t startAddr, uint32_t numBytes ); + uint16_t RX_DataBlockFast( const uint8_t* data, uint32_t startAddr, uint32_t numBytes ); + uint16_t CRC_Check(uint16_t* CRC_Return, uint32_t startAddr, uint16_t numBytes); + uint16_t eraseSegment(uint32_t addr); + uint16_t toggleInfo(); + uint16_t TX_BufferSize(uint16_t* bufSize); + + virtual std::string getErrorInformation( uint16_t err ); + + //uint8_t TX_TXT_File(file) + //uint8_t RX_TXT_File(file) + +protected: + std::string bugList; + uint16_t sendPacketExpectNothing(uint8_t* packet, uint16_t packetSize); + uint16_t sendPacketExpectMessage(uint8_t* packet, uint16_t packetSize); + + + +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.cpp new file mode 100644 index 0000000..087ef43 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.cpp @@ -0,0 +1,140 @@ +/* + * MSPBSL_Connection5xxUART + * + * A subclass to add UART specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_Connection5xxUART.h" +#include "MSPBSL_PacketHandler.h" +#include "MSPBSL_PhysicalInterfaceSerialUART.h" + +using namespace std; + +/***************************************************************************//** +* MSPBSL_Connection5xxUSB Constructor. +* +* \return a MSPBSL_Connection5xxUSB class +******************************************************************************/ +MSPBSL_Connection5xxUART::MSPBSL_Connection5xxUART(string initString) : MSPBSL_Connection5xx( initString) +{ +} + +/***************************************************************************//** +* MSPBSL_Connection5xxUSB Destructor. +* +******************************************************************************/ +MSPBSL_Connection5xxUART::~MSPBSL_Connection5xxUART(void) +{ +} + +/***************************************************************************//** +* Sets the Baud Rate +* +* \param baudRate the Baud to set as a raw number ie. 9600 +* +* \return 0 if the set baud rate is successfull, or a non-zero value if error +******************************************************************************/ +uint16_t MSPBSL_Connection5xxUART::setBaudRate(uint32_t baudRate) +{ + string baudString; + uint16_t retValue; + uint8_t packet[2] = {CHANGE_BAUD_RATE_COMMAND, BAUD_9600_NUMBER}; + if( (baudRate == 4800)||(baudRate == BAUD_4800_NUMBER) ) + { + baudString = "BAUD:4800"; + packet[1] = BAUD_4800_NUMBER; + } + else if( (baudRate == 9600)||(baudRate == BAUD_9600_NUMBER) ) + { + baudString = "BAUD:9600"; + packet[1] = BAUD_9600_NUMBER; + } + else if( (baudRate == 19200)||(baudRate == BAUD_19200_NUMBER) ) + { + baudString = "BAUD:19200"; + packet[1] = BAUD_19200_NUMBER; + } + else if( (baudRate == 38400)||(baudRate == BAUD_38400_NUMBER) ) + { + baudString = "BAUD:38400"; + packet[1] = BAUD_38400_NUMBER; + } + else if( (baudRate == 57600)||(baudRate == BAUD_57600_NUMBER) ) + { + baudString = "BAUD:57600"; + packet[1] = BAUD_57600_NUMBER; + } + else if( (baudRate == 115200)||(baudRate == BAUD_115200_NUMBER) ) + { + baudString = "BAUD:115200"; + packet[1] = BAUD_115200_NUMBER; + } + else + { + return UNKNOWN_BAUD_RATE_AS_CONNECTION_PARAM; + } + + retValue = sendPacketExpectNothing( packet, 2); + if( retValue == ACK ) + { + retValue = thePacketHandler->getPhysicalInterface()->physicalInterfaceCommand(baudString); + } + + return retValue; +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_Connection5xxUART::getErrorInformation( uint16_t err ) +{ + switch( err) + { + case( UNKNOWN_BAUD_RATE_AS_CONNECTION_PARAM ): + return "an unknown baudrate was passed as a parameter to the UART Connection Class"; + break; + + } + return MSPBSL_Connection5xx::getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.h new file mode 100644 index 0000000..fd6a258 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUART.h @@ -0,0 +1,67 @@ +/* + * * MSPBSL_Connection5xxUART + * + * A subclass to add UART specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#define CHANGE_BAUD_RATE_COMMAND 0x52 + +#define BAUD_4800_NUMBER 0x01 +#define BAUD_9600_NUMBER 0x02 +#define BAUD_19200_NUMBER 0x03 +#define BAUD_38400_NUMBER 0x04 +#define BAUD_57600_NUMBER 0x05 +#define BAUD_115200_NUMBER 0x06 + + +#define UNKNOWN_BAUD_RATE_AS_CONNECTION_PARAM MSPBSL_ConnectionError(0x02) + +#pragma once +#include +#include "MSPBSL_Connection5xx.h" + +class MSPBSL_Connection5xxUART : public MSPBSL_Connection5xx +{ +public: + + MSPBSL_Connection5xxUART(std::string initString); + virtual ~MSPBSL_Connection5xxUART(); + + uint16_t setBaudRate(uint32_t baudRate); + + virtual std::string getErrorInformation( uint16_t err ); + + +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.cpp new file mode 100644 index 0000000..5d06e5b --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.cpp @@ -0,0 +1,155 @@ +/* + * MSPBSL_Connection5xxUSB + * + * A subclass to add USB specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_Connection5xxUSB.h" +#include "MSPBSL_PhysicalInterfaceUSB.h" +#include "MSPBSL_PacketHandler.h" + +#include "RAM_BSL_FLASH_MODE_eZ_FET.h" +#include "RAM_BSL_FLASH_MODE_MSP_FET.h" + +using namespace std; + +/***************************************************************************//** +* MSPBSL_Connection5xxUSB Constructor. +* +* \param initString an initialization string for the connection +* +* \return a MSPBSL_Connection5xxUSB class +******************************************************************************/ +MSPBSL_Connection5xxUSB::MSPBSL_Connection5xxUSB(string initString) : MSPBSL_Connection5xx( initString) +{ +} + +/***************************************************************************//** +* MSPBSL_Connection5xxUSB Destructor. +* +******************************************************************************/ +MSPBSL_Connection5xxUSB::~MSPBSL_Connection5xxUSB(void) +{ +} + +void MSPBSL_Connection5xxUSB:: closeBslconnection() +{ + uint8_t usbDisconnct = USB_DISCONNECT_COMMAND; + this->thePacketHandler->TX_Packet(&usbDisconnct,1); + std::this_thread::sleep_for(std::chrono::seconds(5)); +} + +/***************************************************************************//** +* Loads the USB BSL into RAM using the default password +* +* Creates a default 5/6xx password array (32x 0xFF) and calls LoadRAM_BSL with +* that as a parameter +* +* \return the result of the LoadRAM_BSL function call +******************************************************************************/ +uint16_t MSPBSL_Connection5xxUSB::loadRAM_BSL(uint16_t toolPid) +{ + uint8_t buf_array[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; + return loadRAM_BSL( buf_array, toolPid ); +} + +/***************************************************************************//** +* USB-specific helper function to load the RAM BSL and start it +* +* This function is included in the 5xx USB class as a convenience function +* it's purpose is to make it simple to unlock a device, load and start the RAM +* BSL, and re-connect to this RAM BSL +* +* \param pass the password to submit to the connected device's BSL +* +* \return an unsigned byte describing the success or failure of the entire operation +* 0: No error, RAM based BSL is loaded, and further communication can +* continue using this class +* >0: one or more errors occured +******************************************************************************/ +#define MSPBSL_EZ_FET_USB_PID 0x0203 +#define MSPBSL_MSP_FET_USB_PID 0x0204 + +uint16_t MSPBSL_Connection5xxUSB::loadRAM_BSL(uint8_t* password, uint16_t toolPid) +{ + uint16_t retValue = RX_Password( password ); + if( retValue != ACK ) + { + return retValue; + } + + if(MSPBSL_EZ_FET_USB_PID == toolPid) + { + retValue = RX_DataBlockFast(RAM_BSL_FLASH_MODE_eZ_FETImage, 0x2500, sizeof RAM_BSL_FLASH_MODE_eZ_FETImage); + if( retValue != ACK ) + { + return retValue; + } + } + if(MSPBSL_MSP_FET_USB_PID == toolPid) + { + retValue = RX_DataBlockFast(RAM_BSL_FLASH_MODE_MSP_FETImage, 0x2500, sizeof RAM_BSL_FLASH_MODE_MSP_FETImage); + if( retValue != ACK ) + { + return retValue; + } + } + + retValue = setPC(0x2504); + if( retValue != ACK ) + { + return retValue; + } + std::this_thread::sleep_for(std::chrono::seconds(1)); + + return ACK; +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_Connection5xxUSB::getErrorInformation( uint16_t err ) +{ + return MSPBSL_Connection5xx::getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.h new file mode 100644 index 0000000..205a7b7 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_Connection5xxUSB.h @@ -0,0 +1,56 @@ +/* + * MSPBSL_Connection5xxUSB + * + * A subclass to add USB specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include "MSPBSL_Connection5xx.h" + +class MSPBSL_Connection5xxUSB : public MSPBSL_Connection5xx +{ +public: + + MSPBSL_Connection5xxUSB(std::string initString); + virtual ~MSPBSL_Connection5xxUSB(); + + uint16_t loadRAM_BSL(uint16_t toolPid); + uint16_t loadRAM_BSL(uint8_t* password, uint16_t toolPid); + + void closeBslconnection(); + + virtual std::string getErrorInformation( uint16_t err ); +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.cpp new file mode 100644 index 0000000..46dbc2a --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.cpp @@ -0,0 +1,109 @@ +/* + * MSPBSL_ConnectionFRAMFamily + * + * A subclass to add FRAM specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_ConnectionFRAMFamily.h" +#include "MSPBSL_PacketHandler.h" +#include "MSPBSL_PhysicalInterface.h" + +using namespace std; + +/***************************************************************************//** +* FRAM General Connection Class Constructor. +* +* Creates a 5/6xx General Connection using the supplied parameters +* +* \param initString an initialization string for the connection +* +* \return a MSPBSL_ConnectionFRAMFamily class +******************************************************************************/ +MSPBSL_ConnectionFRAMFamily::MSPBSL_ConnectionFRAMFamily(string initString) : MSPBSL_Connection5xxUART( initString) +{ +} + +/***************************************************************************//** +* MSPBSL_ConnectionFRAMFamily Class Destructor. +* +******************************************************************************/ +MSPBSL_ConnectionFRAMFamily::~MSPBSL_ConnectionFRAMFamily(void) +{ +} + + +/***************************************************************************//** +* A function to send the mass erase command +* +* This function handles the special case of Mass erase for FRAM devices. +* This means it sends the mass erase, then reinitializes the COM port to 9600 baud +* then unlocks the BSL again using the default password +* +* \return A string describing the error code +******************************************************************************/ +uint16_t MSPBSL_ConnectionFRAMFamily::massErase(void) +{ + uint16_t retValue; + + retValue = MSPBSL_Connection5xx::massErase(); // after a mass erase, the FRAM devices reset themselves + if( retValue != ACK ) + { + return retValue; + } + thePacketHandler->getPhysicalInterface()->physicalInterfaceCommand("BAUD:9600"); + retValue = MSPBSL_Connection5xx::RX_Password(); + if( retValue != ACK ) + { + return retValue; + } + return retValue; +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_ConnectionFRAMFamily::getErrorInformation( uint16_t err ) +{ + return MSPBSL_Connection5xxUART::getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.h new file mode 100644 index 0000000..ca9e53d --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Connections/MSPBSL_ConnectionFRAMFamily.h @@ -0,0 +1,53 @@ +/* + * MSPBSL_ConnectionFRAMFamily + * + * A subclass to add FRAM specific connection functions + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include "MSPBSL_Connection5xxUART.h" + +class MSPBSL_ConnectionFRAMFamily : public MSPBSL_Connection5xxUART +{ +public: + MSPBSL_ConnectionFRAMFamily(std::string initString); + virtual ~MSPBSL_ConnectionFRAMFamily(); + + uint16_t massErase(); + + virtual std::string getErrorInformation( uint16_t err ); + +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.cpp new file mode 100644 index 0000000..7d08594 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.cpp @@ -0,0 +1,279 @@ +/* + * MSPBSL_Factory + * + * A factory class designed to create BSL Connections based on standard parameters + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_Factory.h" + +//5xx includes +// Connections +#include "MSPBSL_ConnectionFRAMFamily.h" +#include "MSPBSL_Connection5438Family.h" +#include "MSPBSL_Connection5xxUSB.h" +#include "MSPBSL_Connection5xx.h" +// Packet Handlers +#include "MSPBSL_PacketHandler5xxUART.h" +#include "MSPBSL_PacketHandler5xxUSB.h" +// Physical Connections Handlers +#include "MSPBSL_PhysicalInterfaceSerialUART.h" +#include "MSPBSL_PhysicalInterfaceUSB.h" + +using namespace std; +// to do: eventuall put this in a txt file + +//Official List of acceptable inputs: +// +//5XX_UART +// +//PARITY: +// EVEN +// ODD +// NONE +// +//BUG: +// SHORT_PASSWORD + +#define UART_5XX_STRING "UART_5XX " +#define UART_FRAM_STRING "UART_FRAM " +#define USB_5XX_STRING "USB_5XX " + +#define BUG_SHORT_PASSWORD "SHORT_PASSWORD" + +#define REPLACE_LIST_SIZE 67 +static string replaceList[REPLACE_LIST_SIZE][2] = { { "DEVICE:5438_FAMILY ", "UART_5XX PARITY:NONE BUG:SHORT_PASSWORD "}, + { "DEVICE:5xx_STANDARD_UART ", UART_5XX_STRING}, + { "DEVICE:5xx_STANDARD_USB ", USB_5XX_STRING}, + { "DEVICE:FRAM_STANDARD_UART ", UART_FRAM_STRING}, + // Actual UART 5xx Devices Below + { "DEVICE:MSP430F5438 ", "DEVICE:5438_FAMILY "}, + { "DEVICE:MSP430F5437 ", "DEVICE:5438_FAMILY "}, + { "DEVICE:MSP430F5436 ", "DEVICE:5438_FAMILY "}, + { "DEVICE:MSP430F5435 ", "DEVICE:5438_FAMILY "}, + { "DEVICE:MSP430F5419 ", "DEVICE:5438_FAMILY "}, + { "DEVICE:MSP430F5418 ", "DEVICE:5438_FAMILY "}, + { "DEVICE:MSP430F5438A ", "DEVICE:5xx_STANDARD_UART INVOKE:2 "}, + { "DEVICE:MSP430F5437A ", "DEVICE:5xx_STANDARD_UART INVOKE:2 "}, + { "DEVICE:MSP430F5436A ", "DEVICE:5xx_STANDARD_UART INVOKE:2 "}, + { "DEVICE:MSP430F5435A ", "DEVICE:5xx_STANDARD_UART INVOKE:2 "}, + { "DEVICE:MSP430F5419A ", "DEVICE:5xx_STANDARD_UART INVOKE:2 "}, + { "DEVICE:MSP430F5418A ", "DEVICE:5xx_STANDARD_UART INVOKE:2 "}, + // Actual FRAM Devices below + { "DEVICE:MSP430FR5720 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5721 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5722 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5723 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5724 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5725 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5726 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5727 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5728 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5729 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5730 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5731 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5732 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5733 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5734 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5735 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5736 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5737 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5738 ", "DEVICE:FRAM_STANDARD_UART "}, + { "DEVICE:MSP430FR5739 ", "DEVICE:FRAM_STANDARD_UART "}, + // Actual USB 5xx Devices Below + { "DEVICE:MSP430F5529 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5528 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5527 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5526 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5525 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5524 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5522 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5521 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5519 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5517 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5515 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5514 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5510 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5509 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5508 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5507 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5506 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5505 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5504 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5503 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5502 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5501 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F5500 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6638 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6636 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6635 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6634 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6633 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6632 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6631 ", "DEVICE:5xx_STANDARD_USB "}, + { "DEVICE:MSP430F6630 ", "DEVICE:5xx_STANDARD_USB "}, + +}; // end of device table + +/**************************************************************************//** +* Factory Class Constructor. +* +* Creates a BSL Factory which can supply multiple connections. +* +* \return a MSPBSL_Factory class +******************************************************************************/ +MSPBSL_Factory::MSPBSL_Factory(void) +{ +} + +/**************************************************************************//** +* Factory Class Destructor. +* +* Class Destructor +* +******************************************************************************/ +MSPBSL_Factory::~MSPBSL_Factory(void) +{ +} + +/**************************************************************************//** +* BSL Connection creator +* +* Creates a BSL connection based on the desired parameters in the init string. +* +* \param init a string containing configuration parameters +* +* \return a MSPBSL_Connection class +******************************************************************************/ +MSPBSL_Connection* MSPBSL_Factory::getMSPBSL_Connection(string initString) +{ + initString = MSPBSL_Factory::expandInitString( initString ); + unique_ptr theBSLConnection; + // + if ( (initString.find( UART_5XX_STRING ) !=string::npos) || (initString.find( UART_FRAM_STRING ) !=string::npos)) // if it's a 5xx UART.... + { + if(initString.find( BUG_SHORT_PASSWORD ) !=string::npos ) // short password means 5438 + { + theBSLConnection.reset(new MSPBSL_Connection5438Family(initString)); + } + else if(initString.find( UART_FRAM_STRING ) !=string::npos ) // FRAM Device + { + theBSLConnection.reset(new MSPBSL_ConnectionFRAMFamily(initString)); + } + else // otherwise, any other UART device + { + theBSLConnection.reset(new MSPBSL_Connection5xx(initString)); + } + + MSPBSL_PhysicalInterfaceSerialUART* s = new MSPBSL_PhysicalInterfaceSerialUART( initString ); // Parity handled in object; + MSPBSL_PacketHandler5xxUART* p = new MSPBSL_PacketHandler5xxUART( initString ); + p->setPhysicalInterface( s ); + theBSLConnection->setPacketHandler(p); + } // all 5XX UART BSLs handled + else if (initString.find( USB_5XX_STRING ) !=string::npos) // if it's a 5xx USB.... + { + theBSLConnection.reset(new MSPBSL_Connection5xxUSB(initString)); + unique_ptr s(new MSPBSL_PhysicalInterfaceUSB(initString)); + + int retries = 5; + bool isOpen = s->physicalInterfaceCommand(ENUMERATE_COMMAND) == 0; + while (s && !isOpen && retries-- > 0) + { + std::this_thread::sleep_for(std::chrono::seconds(2)); + isOpen = s->physicalInterfaceCommand(ENUMERATE_COMMAND) == 0; + } + if (!isOpen) + { + return nullptr; + } + + MSPBSL_PacketHandler5xxUSB* p = new MSPBSL_PacketHandler5xxUSB(initString); + p->setPhysicalInterface(s.release()); + theBSLConnection->setPacketHandler(p); + } + return theBSLConnection.release(); +} + +/**************************************************************************//** +* Expand init string. +* +* Mostly used internally by the factory. This takes a initialization string +* and returns the expanded value which is used to initialize the sub-layers +* +* \param init a string containing configuration parameters +* +* +* \return an expanded parameter string +******************************************************************************/ +string MSPBSL_Factory::expandInitString( string init ) +{ + int full_loop = 0; + init += " "; // add string at back since we search for strings with space following (to distinguish between A/non-A versions + do + { + full_loop = 1; + for( unsigned int i = 0; i < REPLACE_LIST_SIZE; i++ ) + { + if( init.find( replaceList[i][0] ) !=string::npos ) + { + full_loop = init.find( replaceList[i][0] ); // using as pointer to location + init.erase( init.find( replaceList[i][0]), replaceList[i][0].size() ); + init.insert( full_loop, replaceList[i][1]); + full_loop = 0; + break; + } + } + + } + while( full_loop == 0); + + return init; +} + +/**************************************************************************//** +* errorCode. +* +* Used to transform an error code into a human readable form +* +* \param error a 16 bit error code +* +* +* \return a string explanation of that error code +******************************************************************************/ +string MSPBSL_Factory::errorCode (uint16_t error ) +{ + return "to do"; +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.h b/ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.h new file mode 100644 index 0000000..695c976 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/MSPBSL_Factory.h @@ -0,0 +1,58 @@ +/* + * MSPBSL_Factory + * + * A factory class designed to create BSL Connections based on standard parameters + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include "Connections/MSPBSL_Connection.h" + +class MSPBSL_Factory +{ +public: + + MSPBSL_Factory(); + + ~MSPBSL_Factory(); + + static MSPBSL_Connection* getMSPBSL_Connection(std::string init); + + static std::string expandInitString( std::string init ); + + static std::string errorCode (uint16_t error ); + +}; + diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHander.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHander.cpp new file mode 100644 index 0000000..5675b15 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHander.cpp @@ -0,0 +1,113 @@ +/* + * MSPBSL_PacketHandler + * + * A class designed to define the interface for concrete Packet Handler classes + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_PacketHandler.h" +#include "MSPBSL_PhysicalInterface.h" + +using namespace std; + + +/***************************************************************************//** +* MSPBSL_PacketHandler Class destructor. +* +* Destructor for this class +* +******************************************************************************/ +MSPBSL_PacketHandler::~MSPBSL_PacketHandler() +{ + delete thePhysicalInterface; +} + +/***************************************************************************//** +* Allows an outside class to get access to the Physical Interface. +* +* An outside class might need access to the physical connection used, for +* lower level manipulation (BSL invoke, etc) +* +* \return the Physical Interface used for packet transmission +******************************************************************************/ +MSPBSL_PhysicalInterface* MSPBSL_PacketHandler::getPhysicalInterface() +{ + return thePhysicalInterface; +} + +/***************************************************************************//** +* Sets the Physical Interface layer used for sending packets +* +* Sets the Physical Interface layer to be used by this packet handler +* +* \param con the Physical Interface pointer to use for packet transmission +* +******************************************************************************/ +void MSPBSL_PacketHandler::setPhysicalInterface(MSPBSL_PhysicalInterface* con) +{ + thePhysicalInterface = con; +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_PacketHandler::getErrorInformation( uint16_t err ) +{ + switch( err ) + { + case (GENERAL_PACKET_HANDLER_ERROR): + return "An unknown error has occured with packet handling"; + break; + case (SENT_PACKET_SIZE_ZERO): + return "An attempt was made to send a packet with zero bytes"; + break; + case (SENT_PACKET_SIZE_EXCEEDS_BUFFER): + return "An attempt was made to send a packet which is too big for the sending databuffer"; + break; + case (RECEIVED_PACKET_SIZE_EXCEEDS_BUFFER): + return "a packet was received which is too large for the receiving buffer"; + break; + } + + return thePhysicalInterface->getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler.h new file mode 100644 index 0000000..a80edf3 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler.h @@ -0,0 +1,83 @@ +/* + * MSPBSL_PacketHandler + * + * A class designed to define the interface for concrete Packet Handler classes + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +class MSPBSL_PhysicalInterface; + +//Error header (top 8 bits) definitions +#define MSL_BSL_PACKET_HANDLER_HEADER 0x0200 +#define getHeader(X) (X&0xFF00) +#define MSPBSL_PacketHandlerError(X) (MSL_BSL_PACKET_HANDLER_HEADER | X) + +//Error footer (lower 8 bits) definitions +#define GENERAL_PACKET_HANDLER_ERROR MSPBSL_PacketHandlerError(0xEE) +#define SENT_PACKET_SIZE_ZERO MSPBSL_PacketHandlerError(0x01) +#define SENT_PACKET_SIZE_EXCEEDS_BUFFER MSPBSL_PacketHandlerError(0x02) +#define RECEIVED_PACKET_SIZE_EXCEEDS_BUFFER MSPBSL_PacketHandlerError(0x03) + + +// General BSL defines +#define ACKNOWLEDGE 0x00 +#define ACK ACKNOWLEDGE + +class MSPBSL_PacketHandler +{ +protected: + + MSPBSL_PhysicalInterface* thePhysicalInterface; + +public: + MSPBSL_PacketHandler() : thePhysicalInterface(NULL) {} + MSPBSL_PacketHandler(const MSPBSL_PacketHandler&) = delete; + MSPBSL_PacketHandler& operator=(const MSPBSL_PacketHandler&) = delete; + virtual ~MSPBSL_PacketHandler(); + + virtual uint16_t TX_Packet( uint8_t* buf, uint16_t bufSize ) = 0; + + virtual uint16_t RX_Packet( uint8_t* buf, uint16_t bufSize, uint16_t* numBytesReceived ) = 0; + virtual uint16_t RX_Packet( uint8_t* buf, uint16_t bufSize ) = 0; + + virtual uint16_t getMaxDataSize() = 0; + + virtual std::string getErrorInformation( uint16_t err ); + + MSPBSL_PhysicalInterface* getPhysicalInterface(); + void setPhysicalInterface(MSPBSL_PhysicalInterface* con); + +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.cpp new file mode 100644 index 0000000..a255153 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.cpp @@ -0,0 +1,239 @@ +/* + * MSPBSL_PacketHandler5xxUART + * + * A class file to corrrectly form packets for transmission via Serial UART + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_PacketHandler5xxUART.h" +#include "MSPBSL_CRCEngine.h" +#include "MSPBSL_PhysicalInterfaceSerialUART.h" + +using namespace std; + +#define MAX_PACKET_SIZE 260 +#define HANDLER_OVERHEAD 5 +/***************************************************************************//** +* Object Constructor. +* +* Creates a new MSPBSL_PacketHandler5xxUART object according to the +* supplied parameters +* +* \param initString A string containing a list of parameters for this obj +* +* \return a new MSPBSL_PacketHandler5xxUART object +******************************************************************************/ +MSPBSL_PacketHandler5xxUART::MSPBSL_PacketHandler5xxUART(string initString) +{ + //TODO: INIT CRC ENGINE +} + +/***************************************************************************//** +* MSPBSL_PacketHandler5xxUART Class destructor. +* +* Destructor for this class +* +******************************************************************************/ +MSPBSL_PacketHandler5xxUART::~MSPBSL_PacketHandler5xxUART(void) +{ +} + +/***************************************************************************//** +* 5xx UART Packet transmit. +* +* Adds the 5xx UART specific header and footer bytes to a buffer, then sends +* +* \param buf an array of unsigned bytes to send +* \param bufSize the number of bytes in the array +* +* \return 0 if success, or other value indicating and error +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUART::TX_Packet( uint8_t* buf, uint16_t bufSize ) +{ + uint16_t retValue = 0; + uint8_t rxBuf[1]; + uint8_t txBuf[MAX_PACKET_SIZE]; + uint16_t txNumBytes = bufSize + HANDLER_OVERHEAD; + + if ( txNumBytes > MAX_PACKET_SIZE ) + { + return SENT_PACKET_SIZE_EXCEEDS_BUFFER; + } + // TODO: CHANGE TO INIT STRING BASED + MSPBSL_CRCEngine crcEngine("5xx_CRC"); + crcEngine.initEngine( 0xFFFF ); + crcEngine.addBytes(buf,bufSize); + + txBuf[0] = UART_HEADER; + txBuf[1] = (uint8_t)((bufSize )&0xFF); // Low Byte + txBuf[2] = (uint8_t)((bufSize>>8)&0xFF); // High Byte + for( uint16_t i = 0; i < bufSize; i++ ) + { + txBuf[i+3] = buf[i]; + } + txBuf[txNumBytes-1] = (uint8_t)crcEngine.getHighByte(); // CheckSum High Byte + txBuf[txNumBytes-2] = (uint8_t)crcEngine.getLowByte(); // CheckSum Low Byte + + retValue |= thePhysicalInterface->TX_Bytes(txBuf, txNumBytes); + if( retValue != ACK ) + { + return retValue; + } + retValue |= thePhysicalInterface->RX_Bytes( rxBuf, 1); + if( retValue != ACK ) + { + return retValue; + } + return rxBuf[0]; + +} + +/***************************************************************************//** +* 5xx UART Packet receive. +* +* removes and verifies the 5xx UART specific header and footer bytes from +* the buffer. +* +* \param buf an array of unsigned bytes to use as an RX buffer via USB +* \param numBytes the size of the RX buffer +* +* \return 0 if sucessful, or a value indicating the error +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUART::RX_Packet(uint8_t* buf, uint16_t bufSize ) +{ + uint16_t temp; + return MSPBSL_PacketHandler5xxUART::RX_Packet(buf, bufSize, &temp); + +} + +/***************************************************************************//** +* 5xx UART Packet receive. +* +* removes and verifies the 5xx UART specific header and footer bytes from +* the buffer. +* +* \param buf an array of unsigned bytes to use as an RX buffer via USB +* \param numBytes the size of the RX buffer +* \param numBytesReceived a reference to an integer to set to the number of RXed bytes +* +* \return 0 if sucessful, or a value indicating the error +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUART::RX_Packet(uint8_t* buf, uint16_t bufSize, uint16_t* numBytesReceived ) +{ + uint16_t packetSize, rxedCRC, retValue; + uint8_t crcBuf[2]; + // to do: make temp buf for receiving overhead + MSPBSL_CRCEngine crcEngine("5xx_CRC"); + crcEngine.initEngine(0xFFFF); + retValue = thePhysicalInterface->RX_Bytes( buf, 1); + if( retValue != ACK ) + { + return retValue; + } + if( buf[0] != UART_HEADER ) + { + return UART_HEADER_INCORRECT; // header incorrect + } + retValue |= thePhysicalInterface->RX_Bytes( buf, 2); // RX size + if( retValue != ACK ) + { + return retValue; + } + packetSize = buf[0]; + packetSize |= (((uint16_t)(buf[1]))<<8)&0xFF00; + if( packetSize > bufSize ) + { + return RECEIVED_PACKET_SIZE_EXCEEDS_BUFFER; // rxed data too big for RX Buffer! + } + retValue |= thePhysicalInterface->RX_Bytes( buf, packetSize ); + if( retValue != ACK ) + { + return retValue; + } + retValue |= thePhysicalInterface->RX_Bytes( crcBuf, 2); // RX crc + if( retValue != ACK ) + { + return retValue; + } + rxedCRC = crcBuf[0]; + rxedCRC |= (((uint16_t)(crcBuf[1]))<<8)&0xFF00; + *numBytesReceived = packetSize; + if( crcEngine.verify( buf, packetSize, rxedCRC ) ) + { + return ACK; + } + else + { + return UART_CHECKSUM_INCORRECT; // CRC error + } + +} + +/***************************************************************************//** +* 5xx UART getMaxDataSize +* +* returns the maximum amount of data that can be sent in a packet by this handler +* +* \return the data size +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUART::getMaxDataSize() +{ + return (MAX_PACKET_SIZE - HANDLER_OVERHEAD); +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_PacketHandler5xxUART::getErrorInformation( uint16_t err ) +{ + switch( err ) + { + case( UART_HEADER_INCORRECT ): + return "A Packet was received which did not contain the standard UART header 0x80"; + break; + case ( UART_CHECKSUM_INCORRECT ): + return "An incorrect checksum was seen on a recieved packet"; + break; + } + return MSPBSL_PacketHandler::getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.h new file mode 100644 index 0000000..227ba9d --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUART.h @@ -0,0 +1,78 @@ +/* + * MSPBSL_PacketHandler5xxUART + * + * A class file to corrrectly form packets for transmission via Serial UART + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include "MSPBSL_PacketHandler.h" + +//UART SPECIFIC CONSTANTS and COMMANDS +#define UART_HEADER 0x80 +#define UART_CHANGE_BAUD_RATE 0x52 +#define UART_BAUD_4800 0x01 +#define UART_BAUD_9600 0x02 +#define UART_BAUD_19200 0x03 +#define UART_BAUD_38400 0x04 +#define UART_BAUD_57600 0x05 +#define UART_BAUD_115200 0x06 + +//UART SPECIFIC RETURN MESSAGES +#define UART_HEADER_INCORRECT MSPBSL_PacketHandlerError(0x04) +#define UART_CHECKSUM_INCORRECT MSPBSL_PacketHandlerError(0x05) +//#define UART_PACKET_SIZE_ZERO MSPBSL_PacketHandlerError(0x06) +//#define UART_PACKET_SIZE_EXCEEDS_BUFFER MSPBSL_PacketHandlerError(0x07) +//#define UART_UNKNOWN_ERROR MSPBSL_PacketHandlerError(0x08) +//#define UART_UNKNOWN_BAUD_RATE MSPBSL_PacketHandlerError(0x09) + +class MSPBSL_PacketHandler5xxUART : public MSPBSL_PacketHandler +{ +public: + + MSPBSL_PacketHandler5xxUART(std::string initString); + + virtual ~MSPBSL_PacketHandler5xxUART(); + + uint16_t TX_Packet( uint8_t* buf, uint16_t bufSize ); + + uint16_t RX_Packet( uint8_t* buf, uint16_t bufSize, uint16_t* numBytesReceived ); + uint16_t RX_Packet( uint8_t* buf, uint16_t bufSize ); + + uint16_t getMaxDataSize(); + + virtual std::string getErrorInformation( uint16_t err ); + +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.cpp new file mode 100644 index 0000000..64cafbb --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.cpp @@ -0,0 +1,216 @@ +/* + * MSPBSL_PacketHandler5xxUSB + * + * A class file to corrrectly form packets for transmission via USB + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_PacketHandler5xxUSB.h" +#include "MSPBSL_PhysicalInterface.h" + +using namespace std; + + +#define MAX_PACKET_SIZE 64 +#define HANDLER_OVERHEAD 2 + +/***************************************************************************//** +* MSPBSL_PacketHandler5xxUSB Class Constructor. +* +* \param initString a string containing configuration parameters +* +* \return a MSPBSL_PacketHandler5xxUSB class +******************************************************************************/ +MSPBSL_PacketHandler5xxUSB::MSPBSL_PacketHandler5xxUSB(string initString) +{ +} + +/***************************************************************************//** +* MSPBSL_PacketHandler5xxUSB Class Destructor. +* +******************************************************************************/ +MSPBSL_PacketHandler5xxUSB::~MSPBSL_PacketHandler5xxUSB(void) +{} + +/***************************************************************************//** +* TX Packet. +* +* Transmits a data packet via USB +* +* \param buf an array of unsigned bytes to transmit via USB +* \param numBytes the number of bytes contained in the array +* +* \return 0 if sucessful, or a value indicating the error +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUSB::TX_Packet( uint8_t* buf, uint16_t numBytes ) +{ + + uint8_t txBuf[MAX_PACKET_SIZE]; + for( uint16_t i = 0; i < MAX_PACKET_SIZE; i++ ) + { + txBuf[i] = 0xAC; + } + if ( numBytes == 0 ) + { + return SENT_PACKET_SIZE_ZERO; + } + else if ( numBytes > (MAX_PACKET_SIZE-HANDLER_OVERHEAD ) ) + { + return SENT_PACKET_SIZE_EXCEEDS_BUFFER; + } + txBuf[0] = 63; + txBuf[1] = (uint8_t)numBytes; //type cast is safe due to size check above + for( uint16_t i = 0; i < numBytes; i++ ) + { + txBuf[i+2] = buf[i]; + } + return thePhysicalInterface->TX_Bytes( txBuf, MAX_PACKET_SIZE ); + + /* + uint16_t i; + vector::iterator it; + + if ( buf.size() > (MAX_PACKET_SIZE-HANDLER_OVERHEAD ) ) + { + return PACKET_SIZE_EXCEEDS_BUFFER; + } + + it = buf.begin(); + it = buf.insert ( it , buf.size() ); + //vector::iterator it; + it = buf.begin(); + it = buf.insert ( it , 63 ); + for( i = buf.size(); i < MAX_PACKET_SIZE; i++ ) + { + buf.push_back( 0xAC ); + } + + i = thePhysicalInterface->TX_Bytes(buf); + //buf.clear(); + return i; + */ +} + +/***************************************************************************//** +* RX Packet. +* +* Receives a data packet via USB +* +* \param buf an array of unsigned bytes to use as an RX buffer via USB +* \param numBytes the size of the RX buffer +* +* \return 0 if sucessful, or a value indicating the error +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUSB::RX_Packet(uint8_t* buf, uint16_t bufSize ) +{ + uint16_t temp; + return MSPBSL_PacketHandler5xxUSB::RX_Packet(buf, bufSize, &temp); + +} + +/***************************************************************************//** +* RX Packet. +* +* Receives a data packet via USB +* +* \param buf an array of unsigned bytes to use as an RX buffer via USB +* \param numBytes the size of the RX buffer +* \param numBytesReceived a reference to an integer to set to the number of RXed bytes +* +* \return 0 if sucessful, or a value indicating the error +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUSB::RX_Packet( uint8_t* buf, uint16_t bufSize, uint16_t* numBytesReceived ) +{ + uint8_t rxBuf[MAX_PACKET_SIZE]; + uint16_t retValue = 0; + retValue = thePhysicalInterface->RX_Bytes(rxBuf, MAX_PACKET_SIZE); + if ( retValue != ACK ) + { + return retValue; + } + if( rxBuf[1] > bufSize ) + { + return RECEIVED_PACKET_SIZE_EXCEEDS_BUFFER; // rxed data too big for RX Buffer! + } + for( uint8_t i = 0; i < rxBuf[1]; i++ ) + { + buf[i] = rxBuf[i+2]; + } + *numBytesReceived = rxBuf[1]; + return ACK; + /* + uint16_t i; + //buf.clear(); + buf.resize( 64 ); + thePhysicalInterface->RX_Bytes(buf, 64); + buf.erase( buf.begin() ); + i = buf[0]; + buf.erase( buf.begin() ); + while( buf.size() > i ) + { + buf.pop_back(); + } + + return 0; + */ +} + +/***************************************************************************//** +* 5xx USB getMaxDataSize +* +* returns the maximum amount of data that can be sent in a packet by this handler +* +* \return the data size +******************************************************************************/ +uint16_t MSPBSL_PacketHandler5xxUSB::getMaxDataSize() +{ + return (MAX_PACKET_SIZE - HANDLER_OVERHEAD); +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_PacketHandler5xxUSB::getErrorInformation( uint16_t err ) +{ + return MSPBSL_PacketHandler::getErrorInformation( err ); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.h new file mode 100644 index 0000000..47be65e --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Packet_Handlers/MSPBSL_PacketHandler5xxUSB.h @@ -0,0 +1,58 @@ +/* + * MSPBSL_PacketHandler5xxUSB + * + * A class file to corrrectly form packets for transmission via USB + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include "MSPBSL_PacketHandler.h" + +class MSPBSL_PacketHandler5xxUSB : public MSPBSL_PacketHandler +{ +public: + + MSPBSL_PacketHandler5xxUSB(std::string initString); + + virtual ~MSPBSL_PacketHandler5xxUSB(); + + uint16_t TX_Packet( uint8_t* buf, uint16_t bufSize ); + uint16_t RX_Packet( uint8_t* buf, uint16_t bufSize, uint16_t* numBytesReceived ); + uint16_t RX_Packet( uint8_t* buf, uint16_t bufSize ); + + uint16_t getMaxDataSize(); + + virtual std::string getErrorInformation( uint16_t err ); +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterface.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterface.h new file mode 100644 index 0000000..785eea7 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterface.h @@ -0,0 +1,125 @@ +/* + * MSPBSL_PhysicalInterface + * + * A virtual class designed to set the abstract interface for a Physical BSL connection + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +//Error header (top 8 bits) definitions +#define MSL_BSL_PHYSICAL_INTERFACE_HEADER 0x0300 +#define getHeader(X) (X&0xFF00) +#define MSPBSL_PhysicalInterfaceError(X) (MSL_BSL_PHYSICAL_INTERFACE_HEADER | X) + +//Error footer (lower 8 bits) definitions +#define GENERAL_PHYSICAL_CONNECTION_ERROR MSPBSL_PhysicalInterfaceError(0xEE) + +// General BSL defines +#define ACKNOWLEDGE 0x00 +#define ACK ACKNOWLEDGE + + +class MSPBSL_PhysicalInterface +{ +public: + +/***************************************************************************//** +* MSPBSL_PhysicalInterface Class destructor. +* +* Destructor for this class +* +******************************************************************************/ + virtual ~MSPBSL_PhysicalInterface(){}; + +/***************************************************************************//** +* Allows each physical interface to decide how it invokes the BSL. +* +* This function is required to do anything, as some BSLs (such as USB) are not +* invoked by any specific controllable action on the part of the physical +* interface. +* +******************************************************************************/ + virtual void invokeBSL() = 0; + +/***************************************************************************//** +* Transfers a buffer of bytes. +* +* Each physical interface must impliment its own specific methods for +* transfering a buffer full of bytes +* +* \param buf a pointer to an array of bytes to send +* \param numBytes the number of bytes in the array +* +* \return the result of the transfer +******************************************************************************/ + virtual uint16_t TX_Bytes( uint8_t* buf, uint16_t numBytes ) = 0; + +/***************************************************************************//** +* Receives a buffer of bytes. +* +* Each physical interface must impliment its own specific methods for receiving +* a buffer full of bytes +* +* \param buf a pointer to an array in which to write the bytes +* \param numBytes the number of bytes to receive +* +* \return the result of the transfer +******************************************************************************/ + virtual uint16_t RX_Bytes( uint8_t* buf, uint16_t numBytes) = 0; + +/***************************************************************************//** +* Reserved for Interface Specific commands. +* +* A physical interface can also impliment additional, specific commands +* +* \param command A string to be interpreted by the specific subclass +* +* \return the result of the command +******************************************************************************/ + virtual uint16_t physicalInterfaceCommand( std::string command ) = 0; + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ + virtual std::string getErrorInformation( uint16_t err ) = 0; + +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp new file mode 100644 index 0000000..6a67530 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp @@ -0,0 +1,369 @@ +/* + * MSPBSL_PhysicalInterfaceSerialUART + * + * A class file to allow for serial UART communication with a BSL + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include +#include "MSPBSL_TestResetControl.h" + +using namespace std; +using namespace boost::asio; + +string COM_DESIGNATOR = "COM:"; +string BAUD_DESIGNATOR = "BAUD:"; +string PARITY_DESIGNATOR = "PARITY:"; +string INVOKE_DESIGNATOR = "INVOKE:"; + +#define STANDARD_INVOKE 0x01 +#define BSL_XXXX_INVOKE 0x02 +int invokeMethod = STANDARD_INVOKE; +int baudRate; + +#ifdef _WIN32 +// -> \\.\com12 -> "\\\\.\\COM1" + const char *PORT = "COM1"; +#else + const char *PORT = "dev/ttyS3"; +#endif + +/***************************************************************************//** +* Serial UART Class Constructor. +* +* Creates a serial port UART class for BSL communication. +* +* \param initString a string containing configuration parameters +* Parameters +* COM: The COM port to use +* COM1 (any com number acceptable) +* BAUD: The initial baud rate to start with +* 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000, 256000 +* PARITY: Specifies the Partity bit +* EVEN, ODD, NONE +* INVOKE: Specifies which invoke sequence to use +* 1: 'Classic' invoke for 1/2/4/5xx devices +* 2: Two high TEST toggles before REST high for 5xx devices +* +* +* \return a MSPBSL_PhysicalInterfaceSerialUART class +******************************************************************************/ +MSPBSL_PhysicalInterfaceSerialUART::MSPBSL_PhysicalInterfaceSerialUART(string initString ) +{ + // String format... + // COM:COM1 + // BAUD:9600 + // BUG:xxx,xxx,xxx where xxx can be: + // BSL_XXXX - BSL invoke bug #XXXX + + string Com = "\\\\.\\"; + string Baud = "BAUD:9600"; + string Parity = "EVEN"; + if( initString.find(COM_DESIGNATOR) != string::npos) + { + uint16_t comStart = initString.find(COM_DESIGNATOR)+COM_DESIGNATOR.size(); + uint16_t comEnd = initString.find(' ', comStart ); + Com.append(initString.substr( comStart, comEnd-comStart)); + PORT = &Com[0]; + //Com = initString.substr( (initString.find(COM_DESIGNATOR))+COM_DESIGNATOR.size(), initString.find(" ", initString.find(COM_DESIGNATOR) )); + }// found COM port + else + { + //TODO: search COMs? + } + if( initString.find(PARITY_DESIGNATOR) != string::npos) + { + uint16_t parityStart = initString.find(PARITY_DESIGNATOR)+PARITY_DESIGNATOR.size(); + uint16_t parityEnd = initString.find(' ', parityStart ); + Parity = initString.substr( parityStart, parityEnd-parityStart); + } + if( initString.find(BAUD_DESIGNATOR) != string::npos) + { + //int baudStart = initString.find(BAUD_DESIGNATOR)+BAUD_DESIGNATOR.size(); + uint16_t baudStart = initString.find(BAUD_DESIGNATOR); + uint16_t baudEnd = initString.find(' ', baudStart ); + Baud = initString.substr( baudStart, baudEnd-baudStart); + //Baud = initString.substr( (initString.find(BAUD_DESIGNATOR))+BAUD_DESIGNATOR.size(), initString.find(" ", initString.find(BAUD_DESIGNATOR) )); + }// found COM port + // else default = 9600 + if( initString.find(INVOKE_DESIGNATOR) != string::npos) + { + uint16_t invokeStart = initString.find(INVOKE_DESIGNATOR)+INVOKE_DESIGNATOR.size(); + uint16_t invokeEnd = initString.find(' ', invokeStart ); + string sub = initString.substr( invokeStart, invokeEnd-invokeStart); + invokeMethod = atoi(sub.c_str());; + } + + + //TODO: Catch exception forunknown ports + io_service io; + port = new serial_port( io, PORT ); + port->set_option( serial_port_base::character_size( 8 ) ); + port->set_option( serial_port_base::flow_control( serial_port_base::flow_control::none ) ); + + physicalInterfaceCommand( Baud ); // set Baud Rate + + if( Parity.compare("EVEN")==0 ) + { + port->set_option( serial_port_base::parity( serial_port_base::parity::even ) ); + } + else if( Parity.compare("ODD")==0 ) + { + port->set_option( serial_port_base::parity( serial_port_base::parity::odd ) ); + } + else if( Parity.compare("NONE")==0 ) + { + port->set_option( serial_port_base::parity( serial_port_base::parity::none ) ); + } + //serial_port_base::baud_rate BAUD(9600) + //serial_port_base::character_size CSIZE( 8 ) + //serial_port_base::flow_control FLOW( serial_port_base::flow_control::none ) + //serial_port_base::parity PARITY( serial_port_base::parity::even ) + //serial_port_base::stop_bits STOP( serial_port_base::stop_bits::one ) +} + +/***************************************************************************//** +* MSPBSL_PhysicalInterfaceSerialUART Class destructor. +* +* Destructor for this class +* +******************************************************************************/ +MSPBSL_PhysicalInterfaceSerialUART::~MSPBSL_PhysicalInterfaceSerialUART(void) +{ + delete port; +} + +/***************************************************************************//** +* BSL invoke method. +* +* Causes the BSL to be invoked, using the method chosen during class +* construction. +* +******************************************************************************/ +void MSPBSL_PhysicalInterfaceSerialUART::invokeBSL() +{ + invokeBSL( invokeMethod ); +} + +/***************************************************************************//** +* BSL invoke method. +* +* Causes the BSL to be invoked, using the mrthod given in the parameter +* +* \param method an integer describing the invoke method to use: +* 1 The 'classic' BSL invoke for 1/2/4/5/6xx devices +* 2 Two test toggles before reset high for 5/6xx devices +* +******************************************************************************/ +void MSPBSL_PhysicalInterfaceSerialUART::invokeBSL(uint16_t method) +{ + + port->set_option(RESETControl(LOW_SIGNAL)); + port->set_option(TESTControl(LOW_SIGNAL)); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + port->set_option(TESTControl(HIGH_SIGNAL)); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + port->set_option(TESTControl(LOW_SIGNAL)); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + port->set_option(TESTControl(HIGH_SIGNAL)); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + if( method == STANDARD_INVOKE ) + { + port->set_option(RESETControl(HIGH_SIGNAL)); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + port->set_option(TESTControl(LOW_SIGNAL)); + } + else if ( method == BSL_XXXX_INVOKE ) + { + port->set_option(TESTControl(LOW_SIGNAL)); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + port->set_option(RESETControl(HIGH_SIGNAL)); + } + + std::this_thread::sleep_for(std::chrono::milliseconds(250)); + +} + +/***************************************************************************//** +* Serial UART Transmit routine. +* +* Uses the constructed class to transmit a buffer of bytes +* +* \param buf an array of bytes to send out the interface +* \param numBytes the number of bytes in the array +* +* \return the result of the transfer, 0 meaning success, otherwise an error code +* is returned +******************************************************************************/ +uint16_t MSPBSL_PhysicalInterfaceSerialUART::TX_Bytes( uint8_t* buf, uint16_t numBytes ) +{ + //dataBuffer rx; + if( (write( *port, buffer( buf, numBytes ) )) != numBytes) + { + return ERROR_WRITING_DATA; + // return 0; + } + //to do: check write command and return value + return 0; +} + +/***************************************************************************//** +* Serial UART Receive routine. +* +* Uses the constructed class to receive a given number of bytes +* +* \param buf a reference to the buffer in which to store the received bytes +* \param numBytes The expected number of bytes to receive +* +* \return the result of the transfer, 0 meaning success, otherwise an error code +* is returned +******************************************************************************/ +//#define MAX_BUFFER_SIZE 300 +uint16_t MSPBSL_PhysicalInterfaceSerialUART::RX_Bytes( uint8_t* buf, uint16_t numBytes) +{ + //uint8_t rxBuf[MAX_BUFFER_SIZE]; + //b.resize(numBytes); + + read( *port, buffer( buf, numBytes) ); + // To do: error checking later (timeout?) + //if( (read( *port, buffer( buf, numBytes) )) != 0) + //{ + //return ERROR_READING_DATA; + // return 0; + //} + //for (unsigned int i = 0; i < numBytes; i++) + //{ + // b[i] = rxBuf[i]; + //} + + return 0; +} + +/***************************************************************************//** +* Reserved for Interface Specific commands. +* +* Reserved for specific commands to the Serial UART interface +* +* \param command A string to be interpreted by the Serial UART interface +* +* \return the result of the transfer, 0 meaning success, otherwise an error code +* is returned +******************************************************************************/ +uint16_t MSPBSL_PhysicalInterfaceSerialUART::physicalInterfaceCommand( string command ) +{ + if( command.find(BAUD_DESIGNATOR) != string::npos) + { + //4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000 and 256000 + if( command.compare("BAUD:4800")==0) + { + baudRate = 4800; + } + else if( command.compare("BAUD:9600")==0) + { + baudRate = 9600; + } + else if( command.compare("BAUD:14400")==0) + { + baudRate = 14400; + } + else if( command.compare("BAUD:19200")==0) + { + baudRate = 19200; + } + else if( command.compare("BAUD:38400")==0) + { + baudRate = 38400; + } + else if( command.compare("BAUD:57600")==0) + { + baudRate = 57600; + } + else if( command.compare("BAUD:115200")==0) + { + baudRate = 115200; + } + else if( command.compare("BAUD:128000")==0) + { + baudRate = 128000; + } + else if( command.compare("BAUD:256000")==0) + { + baudRate = 256000; + } + else + { + return UNKNOWN_BAUD_RATE; + } + port->set_option( serial_port_base::baud_rate( baudRate ) ); + //if( (port->set_option( serial_port_base::baud_rate( baudRate ) ))!= 0 ) + //{ + // return ERROR_CHANGING_BAUD_RATE; + //} + }// if baud rate command + + return 0; +} + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_PhysicalInterfaceSerialUART::getErrorInformation( uint16_t err ) +{ + switch ( err ) + { + case (ERROR_WRITING_DATA): + return "Error writing data to the USB BSL, possibly not connected or enumerated"; + break; + case (ERROR_READING_DATA): + return "Error reading data from the USB BSL, possibly not connected or enumerated"; + break; + case (UNKNOWN_BAUD_RATE): + return "Baud Rate unknown to COM Port on Host"; + break; + case (ERROR_CHANGING_BAUD_RATE): + return "Error changing COM Port to specified baud rate"; + break; + } + + return "unknown error number"; +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.h new file mode 100644 index 0000000..b01bdd7 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.h @@ -0,0 +1,77 @@ +/* + * MSPBSL_PhysicalInterfaceSerialUART + * + * A class file to allow for serial UART communication with a BSL + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include "MSPBSL_PhysicalInterface.h" + +#define LOW false +#define HIGH true + +#define ERROR_WRITING_DATA MSPBSL_PhysicalInterfaceError(0x01) +#define ERROR_READING_DATA MSPBSL_PhysicalInterfaceError(0x02) +#define UNKNOWN_BAUD_RATE MSPBSL_PhysicalInterfaceError(0x03) +#define ERROR_CHANGING_BAUD_RATE MSPBSL_PhysicalInterfaceError(0x04) + + +class MSPBSL_PhysicalInterfaceSerialUART : public MSPBSL_PhysicalInterface +{ +public: + + MSPBSL_PhysicalInterfaceSerialUART(std::string initString); + MSPBSL_PhysicalInterfaceSerialUART(const MSPBSL_PhysicalInterfaceSerialUART&) = delete; + MSPBSL_PhysicalInterfaceSerialUART& operator=(const MSPBSL_PhysicalInterfaceSerialUART&) = delete; + + virtual ~MSPBSL_PhysicalInterfaceSerialUART(); + + void invokeBSL(); + + void invokeBSL(uint16_t method); + + uint16_t TX_Bytes( uint8_t* buf, uint16_t numBytes ); + + uint16_t RX_Bytes( uint8_t* buf, uint16_t numBytes); + + uint16_t physicalInterfaceCommand( std::string command ); + + virtual std::string getErrorInformation( uint16_t err ); + +private: + boost::asio::io_service io; + boost::asio::serial_port* port; +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp new file mode 100644 index 0000000..ce13251 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp @@ -0,0 +1,278 @@ +/* + * MSPBSL_PhysicalInterfaceUSB + * + * A class file to allow for USB communication with a BSL + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_PhysicalInterfaceUSB.h" + +using namespace std; +using namespace::boost::asio; + +//#define MSPBSL_STANDARD_USB_VID 0x2047 // Vendor ID, 0x2047 for Texas Instruments Incorporated (MSP430 Group) +//#define MSPBSL_STANDARD_USB_PID 0x0203 // Product ID (PID), 0x0200 for F552x HID BSL stack + +string VID_DESIGNATOR_HEX = "VID:0x"; +string PID_DESIGNATOR_HEX = "PID:0x"; +string VID_DESIGNATOR = "VID:"; +string PID_DESIGNATOR = "PID:"; + +uint16_t myVID = 0;//MSPBSL_STANDARD_USB_VID; +uint16_t myPID = 0;//MSPBSL_STANDARD_USB_PID; + +/***************************************************************************//** +* USB Connection Class Constructor. +* +* Creates new USB Connection for use in BSL programming, and enumerates USB +* +* \param initString a string containing configuration parameters +* +* +* \return a MSPBSL_PhysicalInterfaceUSB class +******************************************************************************/ +MSPBSL_PhysicalInterfaceUSB::MSPBSL_PhysicalInterfaceUSB(string initString) + : MSPBSL_Device(NULL) +{ + string tempVID = ""; + string tempPID = ""; + + if( initString.find(VID_DESIGNATOR_HEX) != string::npos) + { + int vidStart = initString.find(VID_DESIGNATOR_HEX)+VID_DESIGNATOR_HEX.size(); + int vidEnd = initString.find(' ', vidStart ); + tempVID.append(initString.substr( vidStart, vidEnd-vidStart)); + + std::stringstream ss; + ss << std::hex << tempVID; + ss >> myVID; + } + else if( initString.find(VID_DESIGNATOR) != string::npos) + { + + int vidStart = initString.find(VID_DESIGNATOR)+VID_DESIGNATOR.size(); + int vidEnd = initString.find(' ', vidStart ); + tempVID.append(initString.substr( vidStart, vidEnd-vidStart)); + + std::stringstream ss; + ss << tempVID; + ss >> myVID; + } + + if( initString.find(PID_DESIGNATOR_HEX) != string::npos) + { + + int pidStart = initString.find(PID_DESIGNATOR_HEX)+PID_DESIGNATOR_HEX.size(); + int pidEnd = initString.find(' ', pidStart ); + tempPID.append(initString.substr( pidStart, pidEnd-pidStart)); + + std::stringstream ss; + ss << std::hex << tempPID; + ss >> myPID; + } + else if( initString.find(PID_DESIGNATOR) != string::npos) + { + + int pidStart = initString.find(PID_DESIGNATOR)+PID_DESIGNATOR.size(); + int pidEnd = initString.find(' ', pidStart ); + tempPID.append(initString.substr( pidStart, pidEnd-pidStart)); + + std::stringstream ss; + ss << tempPID; + ss >> myPID; + } +} + +/***************************************************************************//** +* MSPBSL_PhysicalInterfaceUSB Class Destructor. +* +* Class destructor, closes the USB conntection +* +******************************************************************************/ +MSPBSL_PhysicalInterfaceUSB::~MSPBSL_PhysicalInterfaceUSB(void) +{ + hid_close(MSPBSL_Device); +} + +/***************************************************************************//** +* Transfers a buffer of bytes. +* +* Sends a buffer of bytes to a connected BSL via USB +* +* \param buf an array of bytes to send out the interface +* \param numBytes the number of bytes in the array +* +* \return the result of the transfer, 0 meaning success, otherwise an error code +* is returned +******************************************************************************/ +uint16_t MSPBSL_PhysicalInterfaceUSB::TX_Bytes( uint8_t* buf, uint16_t numBytes ) +{ + int res = 0; + if(MSPBSL_Device) + { + res = hid_write(MSPBSL_Device, buf, numBytes); + if (res < 0) + { + return ERROR_WRITING_DATA; + } + return 0; + } + else + { + return ERROR_WRITING_DATA; + } +} + +/***************************************************************************//** +* Receives a buffer of bytes. +* +* Receives a buffer of bytes to a connected BSL via USB +* +* \param b a reference to a buffer to receive the bytes +* \param numBytes the number of bytes to receive +* +* \return the result of the transfer, 0 meaning success, otherwise an error code +* is returned +******************************************************************************/ +uint16_t MSPBSL_PhysicalInterfaceUSB::RX_Bytes( uint8_t* buf, uint16_t numBytes ) +{ + int res = 0; + while (res == 0) + { + if(MSPBSL_Device) + { + res = hid_read(MSPBSL_Device, buf, numBytes); + if (res == 0) + { + //printf("waiting...\n"); + } + if (res < 0) + { + return ERROR_READING_DATA; + } + } + else + { + return ERROR_READING_DATA; + } + + std::this_thread::sleep_for(std::chrono::milliseconds(500)); + } + + return 0; + +} + +/**************************************************************************//** +* Reserved for USB Specific commands. +* +* Used to send USB specific commands to this connection via a string parameter +* +* \param command A string to be interpreted by the USB connection +* "ENUMERATE:" : Causes the interface to enumerate +* "DE-ENUMERATE:" : Causes the interface to de-enumerate +* +* \return the result of the command, 0 meaning success, otherwise an error code +* is returned +******************************************************************************/ +uint16_t MSPBSL_PhysicalInterfaceUSB::physicalInterfaceCommand( string command ) +{ + + if (command.find( ENUMERATE_COMMAND ) !=string::npos) // if we wish to enumerate + { + hid_close(MSPBSL_Device); + MSPBSL_Device = hid_open(myVID,myPID,0); + + if (!MSPBSL_Device) + { + //hid_free_enumeration(hidDevices); + return ERROR_OPENING_DEVICE; + } + else + { + hid_set_nonblocking(MSPBSL_Device, 0); + } + } + + if (command.find(DE_ENUMERATE_COMMAND) != string::npos) // if we wish to enumerate + { + hid_close(MSPBSL_Device); + + if (MSPBSL_Device) + { + return ERROR_CLOSING_DEVICE; + } + } + return 0; +} + +/**************************************************************************//** +* Inherited invoke function, not used. +* +* This function is inherited from the connection class, not currently used +* +******************************************************************************/ +void MSPBSL_PhysicalInterfaceUSB::invokeBSL(){} // not used in USB... possibly use for reconnect? + +/***************************************************************************//** +* An error description function +* +* This function is meant to return a string which fully describes an error code +* which could be returned from any function within this class +* +* \param err the 16 bit error code +* +* \return A string describing the error code +******************************************************************************/ +string MSPBSL_PhysicalInterfaceUSB::getErrorInformation( uint16_t err ) +{ + switch ( err ) + { + case (ERROR_WRITING_DATA): + return "Error writing data to the USB BSL, possibly not connected or enumerated"; + break; + case (ERROR_READING_DATA): + return "Error reading data from the USB BSL, possibly not connected or enumerated"; + break; + case (ERROR_OPENING_DEVICE): + return "Error opening the connection to the USB BSL (enumerate)"; + break; + case (ERROR_CLOSING_DEVICE): + return "Error closing the connection to the USB BSL (de-enumerate)"; + break; + } + return "unknown error number"; +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h new file mode 100644 index 0000000..37825c6 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h @@ -0,0 +1,73 @@ +/* + * MSPBSL_PhysicalInterfaceUSB + * + * A class file to allow for USB communication with a BSL + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +#include + +#include "MSPBSL_PhysicalInterface.h" + +#define ENUMERATE_COMMAND "ENUMERATE:" +#define DE_ENUMERATE_COMMAND "CLOSE:" + + +#define ERROR_WRITING_DATA MSPBSL_PhysicalInterfaceError(0x01) +#define ERROR_READING_DATA MSPBSL_PhysicalInterfaceError(0x02) +#define ERROR_OPENING_DEVICE MSPBSL_PhysicalInterfaceError(0x03) +#define ERROR_CLOSING_DEVICE MSPBSL_PhysicalInterfaceError(0x04) + +class MSPBSL_PhysicalInterfaceUSB : public MSPBSL_PhysicalInterface +{ +public: + MSPBSL_PhysicalInterfaceUSB(std::string initString); + + virtual ~MSPBSL_PhysicalInterfaceUSB(void); + + void invokeBSL(); + + uint16_t TX_Bytes( uint8_t* buf, uint16_t numBytes ); + + uint16_t RX_Bytes( uint8_t* buf, uint16_t numBytes); + + uint16_t physicalInterfaceCommand( std::string command ); + + virtual std::string getErrorInformation( uint16_t err ); + +private: + hid_device* MSPBSL_Device; +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.cpp new file mode 100644 index 0000000..7c4d8b3 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.cpp @@ -0,0 +1,148 @@ +/* + * MSPBSL_CRCEngine + * + * A class file to encapsulate the computation of CRCs on the PC side + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#include + +#include "MSPBSL_CRCEngine.h" +#include "MSPBSL_PhysicalInterfaceSerialUART.h" + +using namespace std; + +uint16_t crc16Value; + +/**************************************************************************//** +* CRC Engine Class Constructor. +* +* Creates a CRC Engine using the supplied parameters +* +* \param initString an initialization string for the CRC engine +* +* \return a BSL430_CRC_Engine class +******************************************************************************/ +MSPBSL_CRCEngine::MSPBSL_CRCEngine(string initString) +{ +} + +/**************************************************************************//** +* CRC Engine Class Destructor. +* +******************************************************************************/ +MSPBSL_CRCEngine::~MSPBSL_CRCEngine(void) +{ +} + +/**************************************************************************//** +* CRC Engine intializaer. +* +* Initializes the CRC engine +* +* \param seed a 16 bit initialization value +* +******************************************************************************/ +void MSPBSL_CRCEngine::initEngine(uint16_t seed) +{ + crc16Value = seed; +} + +/**************************************************************************//** +* Adds a byte to the ongoing CRC +* +* \param byte a 8 bit value to add to the CRC +* +******************************************************************************/ +void MSPBSL_CRCEngine::addByte(uint8_t byte) +{ + uint8_t x; + x = ((crc16Value>>8) ^ byte) & 0xff; + x ^= x>>4; + crc16Value = (crc16Value << 8) ^ (x << 12) ^ (x <<5) ^ x; +} + +/**************************************************************************//** +* Adds an array of bytes to the ongoing CRC +* +* \param buf a pointer to an 8 bit array to add to the CRC +* \param numBytes the number of bytes to process +* +******************************************************************************/ +void MSPBSL_CRCEngine::addBytes(uint8_t* buf, uint16_t numBytes) +{ + for( uint16_t i = 0; i < numBytes; i++ ) + { + addByte(buf[i]); + } +} + + +/**************************************************************************//** +* Verifies a databuffers integrity using a 16 bit crc value +* +* +* \param buf the data to verify +* \param crc the CRC value to use against the data +* +* \return a non-zero value if the CRC is correct for the data, zero if there is +* a mis-match +******************************************************************************/ +uint16_t MSPBSL_CRCEngine::verify( uint8_t* buf, uint16_t numBytes, uint16_t crc ) +{ + addBytes(buf, numBytes); + return (crc16Value == crc ); +} + +/**************************************************************************//** +* returns the low byte of the 16 bit CRC +* +* \return a 8 bit unsigned value +* +******************************************************************************/ +uint16_t MSPBSL_CRCEngine::getLowByte() +{ + return (uint8_t)(crc16Value&0xFF); +} + +/**************************************************************************//** +* returns the high byte of the 16 bit CRC +* +* \return a 8 bit unsigned value +* +******************************************************************************/ +uint16_t MSPBSL_CRCEngine::getHighByte() +{ + return (uint8_t)((crc16Value>>8)&0xFF); +} diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.h new file mode 100644 index 0000000..576d5a3 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_CRCEngine.h @@ -0,0 +1,60 @@ +/* + * MSPBSL_CRCEngine + * + * A class file to encapsulate the computation of CRCs on the PC side + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +#pragma once + +class MSPBSL_CRCEngine +{ +public: + + MSPBSL_CRCEngine(std::string initString); + + ~MSPBSL_CRCEngine(); + + void initEngine(uint16_t seed); + + void addByte(uint8_t byte); + + void addBytes(uint8_t* byte, uint16_t numBytes); + + uint16_t getLowByte(); + + uint16_t getHighByte(); + + uint16_t verify( uint8_t* buf, uint16_t numBytes, uint16_t crc ); +}; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_TestResetControl.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_TestResetControl.h new file mode 100644 index 0000000..1712fd3 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/MSPBSL_TestResetControl.h @@ -0,0 +1,196 @@ +/* + * MSPBSL_TestResetControl + * + * Configuration classes for use in controling TEST and RESET lines for BSL invoke + * + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + + +#pragma once + +#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) +# define MSPBSL_ON_WIN +# define BOOST_ASIO_OPTION_STORAGE DCB +#else +# define MSPBSL_ON_LINUX +# define BOOST_ASIO_OPTION_STORAGE termios +#endif + +#define HIGH_SIGNAL 1 +#define LOW_SIGNAL 0 +//------------------------------------------------------------------ +//RESET AND TEST CLASSES +//------------------------------------------------------------------ +//Class for TEST line control + +class TESTControl +{ +private: + uint16_t state; +public: + TESTControl( uint16_t initState ) + { + state = initState; + }; // constructor + boost::system::error_code store( BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& error ) const + { + #if defined( MSPBSL_ON_WIN ) + if( state ) + { + storage.fRtsControl = RTS_CONTROL_DISABLE; + } + else + { + storage.fRtsControl = RTS_CONTROL_ENABLE; + } + #elif defined ( MSPBSL_ON_LINUX ) + // linux currently untested + //uint16_t flags; + //ioctl(fd, TIOCMGET, &flags); + if( state ) + { + //flags &= ~TIOCM_RTS; + storage.c_cflag &= ~CRTSCTS; + } + else + { + //flags |= TIOCM_RTS; + storage.c_cflag |= CRTSCTS; + } + //tcsetattr( fd, TCSANOW, storage ); + //ioctl(fd, TIOCMSET, &flags); + #endif + return error; + }; // store + + boost::system::error_code load( BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& error) + { + #if defined( MSPBSL_ON_WIN ) + if (storage.fRtsControl == RTS_CONTROL_ENABLE) + { + state = 0; + } + else + { + state = 1; + } + + #elif defined ( MSPBSL_ON_LINUX ) + //uint16_t flags; + //ioctl(fd, TIOCMGET, &flags); + //if( flags & TIOCM_RTS ) + if (storage.c_cflag & CRTSCTS) + { + state = 0; + } + else + { + state = 1; + } + #endif + return error; + }; // load + +}; // class TestControl + +class RESETControl +{ +private: + uint16_t state; +public: + RESETControl( uint16_t initState ) + { + state = initState; + }; // constructor + boost::system::error_code store( BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& error ) const + { + #if defined( MSPBSL_ON_WIN ) + if( state ) + { + storage.fDtrControl = DTR_CONTROL_ENABLE; + } + else + { + storage.fDtrControl = DTR_CONTROL_DISABLE; + } + #elif defined ( MSPBSL_ON_LINUX ) + // linux currently untested + //uint16_t flags; + //ioctl(fd, TIOCMGET, &flags); + if( state ) + { + //flags |= TIOCM_DTR; + storage.c_cflag &= ~CRTSCTS; + } + else + { + //flags &= ~TIOCM_DTR; + storage.c_cflag |= CRTSCTS; + } + //tcsetattr( fd, TCSANOW, storage ); + //ioctl(fd, TIOCMSET, &flags); + + #endif + return error; + }; // store + + boost::system::error_code load( BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& error) + { + #if defined( MSPBSL_ON_WIN ) + if (storage.fDtrControl == DTR_CONTROL_ENABLE) + { + state = 1; + } + else + { + state = 0; + } + + #elif defined ( MSPBSL_ON_LINUX ) + //uint16_t flags; + //ioctl(fd, TIOCMGET, &flags); + //if( flags & TIOCM_DTR ) + if (storage.c_cflag & CRTSCTS) + { + state = 1; + } + else + { + state = 0; + } + #endif + return error; + }; // load + +}; // class TestControl diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_MSP_FET.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_MSP_FET.h new file mode 100644 index 0000000..ea680d9 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_MSP_FET.h @@ -0,0 +1,302 @@ +/* http://srecord.sourceforge.net/ */ +const uint8_t RAM_BSL_FLASH_MODE_MSP_FETImage[] = +{ +0x54, 0x07, 0x08, 0x40, 0x31, 0x40, 0x90, 0x33, 0xB0, 0x13, 0x64, 0x30, +0x0C, 0x93, 0x00, 0x24, 0xB0, 0x13, 0xDA, 0x2E, 0xFF, 0x3F, 0x12, 0x01, +0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x47, 0x20, 0x04, 0x02, 0x08, 0x01, +0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, +0x3F, 0x95, 0x3F, 0x75, 0x08, 0x25, 0x01, 0x15, 0x01, 0x09, 0x01, 0x81, +0x02, 0x85, 0x3F, 0x95, 0x3F, 0x75, 0x08, 0x25, 0x01, 0x15, 0x01, 0x09, +0x01, 0x91, 0x02, 0xC0, 0x09, 0x02, 0x29, 0x00, 0x01, 0x01, 0x00, 0x80, +0x32, 0x09, 0x04, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x09, 0x21, +0x01, 0x01, 0x00, 0x01, 0x22, 0x24, 0x00, 0x07, 0x05, 0x81, 0x03, 0x40, +0x00, 0x01, 0x07, 0x05, 0x01, 0x03, 0x40, 0x00, 0x01, 0xFF, 0x3B, 0x15, +0x4C, 0x43, 0x38, 0x40, 0x5A, 0x24, 0xB2, 0x90, 0xA5, 0xA5, 0x16, 0x24, +0x75, 0x20, 0x1A, 0x42, 0xDA, 0x24, 0x1B, 0x42, 0xDC, 0x24, 0x7A, 0xB0, +0x7F, 0x00, 0x3E, 0x20, 0xB2, 0x90, 0x80, 0x00, 0xE2, 0x24, 0x3A, 0x20, +0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0xB2, 0x40, 0x00, 0xA5, 0x44, 0x01, +0xB2, 0x40, 0xC0, 0xA5, 0x40, 0x01, 0x0D, 0x3C, 0x3E, 0x48, 0x3F, 0x48, +0x1B, 0x15, 0x0D, 0x16, 0x8D, 0x4E, 0x00, 0x00, 0x8D, 0x4F, 0x02, 0x00, +0xB2, 0xB2, 0x44, 0x01, 0xFD, 0x2B, 0x2A, 0x52, 0x0B, 0x63, 0x1E, 0x42, +0xDA, 0x24, 0x1F, 0x42, 0xDC, 0x24, 0x3E, 0x50, 0x80, 0x00, 0x0F, 0x63, +0x0B, 0x9F, 0xEA, 0x2B, 0x02, 0x20, 0x0A, 0x9E, 0xE7, 0x2B, 0x92, 0x42, +0x18, 0x24, 0x40, 0x01, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x1F, 0x42, +0x18, 0x24, 0x3F, 0x50, 0x10, 0x00, 0x82, 0x4F, 0x44, 0x01, 0x82, 0x43, +0xDA, 0x24, 0x82, 0x43, 0xDC, 0x24, 0x82, 0x43, 0xDE, 0x24, 0x82, 0x43, +0xE0, 0x24, 0x82, 0x43, 0xE2, 0x24, 0x31, 0x3C, 0x92, 0x42, 0x18, 0x24, +0x44, 0x01, 0x1F, 0x42, 0x18, 0x24, 0x3F, 0x50, 0x40, 0x00, 0x82, 0x4F, +0x40, 0x01, 0x0B, 0x3C, 0x3E, 0x48, 0x0C, 0x4A, 0x0D, 0x4B, 0xB0, 0x13, +0x46, 0x2D, 0x1A, 0x53, 0x0B, 0x63, 0x4C, 0x93, 0x1E, 0x20, 0x1A, 0x53, +0x0B, 0x63, 0x1E, 0x42, 0xE2, 0x24, 0x0F, 0x43, 0x1E, 0x52, 0xDA, 0x24, +0x1F, 0x62, 0xDC, 0x24, 0x0B, 0x9F, 0x03, 0x28, 0xD6, 0x23, 0x0A, 0x9E, +0xD4, 0x2F, 0x92, 0xB3, 0xDA, 0x24, 0x06, 0x2C, 0x3E, 0x53, 0x3F, 0x63, +0x0A, 0x9E, 0xE2, 0x23, 0x0B, 0x9F, 0xE0, 0x23, 0x7E, 0x48, 0x0C, 0x4A, +0x0D, 0x4B, 0xB0, 0x13, 0x10, 0x2D, 0xE1, 0x3F, 0x6C, 0x42, 0x38, 0x17, +0x10, 0x01, 0x1B, 0x15, 0x1E, 0x42, 0xE4, 0x24, 0x5D, 0x4E, 0x03, 0x00, +0x5F, 0x4E, 0x01, 0x00, 0x5C, 0x4E, 0x02, 0x00, 0x8C, 0x10, 0x0C, 0xDF, +0x6F, 0x4E, 0x7F, 0x80, 0x10, 0x00, 0x1F, 0x24, 0x5F, 0x83, 0x15, 0x24, +0x5F, 0x83, 0x25, 0x24, 0x5F, 0x83, 0x29, 0x24, 0x6F, 0x83, 0x1C, 0x24, +0x5F, 0x83, 0x2A, 0x24, 0x5F, 0x83, 0x0E, 0x24, 0x5F, 0x83, 0x2F, 0x24, +0x5F, 0x83, 0x36, 0x24, 0x6F, 0x83, 0x3B, 0x20, 0x5F, 0x43, 0x2E, 0x52, +0xB0, 0x13, 0x7C, 0x2D, 0x3A, 0x3C, 0xB0, 0x13, 0x8C, 0x2E, 0x37, 0x3C, +0xB0, 0x13, 0x6C, 0x2E, 0xB0, 0x13, 0xC2, 0x2E, 0x32, 0x3C, 0x4F, 0x43, +0x2E, 0x52, 0xB0, 0x13, 0x7C, 0x2D, 0x2D, 0x3C, 0xB0, 0x13, 0xD8, 0x2C, +0xB0, 0x13, 0xC2, 0x2E, 0x28, 0x3C, 0x0E, 0x4C, 0x0F, 0x4D, 0x4C, 0x43, +0xB0, 0x13, 0xAA, 0x30, 0x22, 0x3C, 0xB0, 0x13, 0x06, 0x2E, 0xB0, 0x13, +0xC2, 0x2E, 0x1D, 0x3C, 0x5F, 0x4E, 0x04, 0x00, 0x5E, 0x4E, 0x05, 0x00, +0x8E, 0x10, 0x0E, 0xDF, 0xB0, 0x13, 0x62, 0x2C, 0x14, 0x3C, 0x5F, 0x4E, +0x04, 0x00, 0x5E, 0x4E, 0x05, 0x00, 0x8E, 0x10, 0x0E, 0xDF, 0xB0, 0x13, +0xF6, 0x28, 0x0B, 0x3C, 0x2E, 0x42, 0x3C, 0x40, 0x00, 0x25, 0x0D, 0x43, +0xB0, 0x13, 0xF6, 0x28, 0x04, 0x3C, 0x7C, 0x40, 0x07, 0x00, 0xB0, 0x13, +0xC2, 0x2E, 0x1A, 0x17, 0x10, 0x01, 0xC2, 0x93, 0x80, 0x23, 0x04, 0x34, +0x1F, 0x43, 0xD2, 0xD3, 0x3C, 0x09, 0x03, 0x3C, 0x0F, 0x43, 0xD2, 0xC3, +0x3C, 0x09, 0x5E, 0x42, 0x80, 0x23, 0x7E, 0xB0, 0x60, 0x00, 0x45, 0x20, +0x5D, 0x42, 0x81, 0x23, 0x4D, 0x83, 0x37, 0x24, 0x5D, 0x83, 0x33, 0x24, +0x6D, 0x83, 0x2F, 0x24, 0x6D, 0x83, 0x25, 0x24, 0x5D, 0x83, 0x09, 0x24, +0x6D, 0x83, 0x25, 0x24, 0x5D, 0x83, 0x21, 0x24, 0x5D, 0x83, 0x19, 0x24, +0x5D, 0x83, 0x21, 0x24, 0x30, 0x3C, 0x0F, 0x93, 0x2E, 0x24, 0x5E, 0x42, +0x83, 0x23, 0x5E, 0x83, 0x08, 0x24, 0x5E, 0x83, 0x08, 0x24, 0x7E, 0x80, +0x1F, 0x00, 0x09, 0x24, 0x5E, 0x83, 0x05, 0x24, 0x22, 0x3C, 0x80, 0x00, +0xEA, 0x2F, 0x80, 0x00, 0xA2, 0x2F, 0x80, 0x00, 0x56, 0x30, 0x80, 0x00, +0x90, 0x2F, 0x0F, 0x93, 0x18, 0x24, 0x80, 0x00, 0xA8, 0x2E, 0x80, 0x00, +0x72, 0x30, 0x80, 0x00, 0x7C, 0x2F, 0x80, 0x00, 0x0C, 0x30, 0x80, 0x00, +0x2C, 0x30, 0x80, 0x00, 0xB0, 0x2D, 0x80, 0x00, 0xDE, 0x2D, 0x7E, 0x90, +0x80, 0x00, 0x02, 0x20, 0x80, 0x00, 0x1C, 0x30, 0x7E, 0x90, 0x82, 0x00, +0x02, 0x20, 0x80, 0x00, 0x5C, 0x2A, 0x80, 0x00, 0x8C, 0x30, 0x7B, 0x15, +0x0A, 0x4C, 0x0B, 0x4D, 0x04, 0x4E, 0x06, 0x4F, 0x28, 0x3C, 0x1F, 0x42, +0xDA, 0x24, 0x1F, 0xD2, 0xDC, 0x24, 0x0F, 0x93, 0x04, 0x20, 0x82, 0x4A, +0xDA, 0x24, 0x82, 0x4B, 0xDC, 0x24, 0x08, 0x4A, 0x09, 0x4B, 0x08, 0x54, +0x09, 0x63, 0x82, 0x48, 0xDE, 0x24, 0x82, 0x49, 0xE0, 0x24, 0x08, 0x43, +0x09, 0x43, 0x09, 0x93, 0x27, 0x20, 0x08, 0x94, 0x25, 0x2C, 0x1F, 0x42, +0xE2, 0x24, 0xFF, 0x46, 0x5A, 0x24, 0x92, 0x53, 0xE2, 0x24, 0x1A, 0x53, +0x0B, 0x63, 0x18, 0x53, 0x09, 0x63, 0x7A, 0xB0, 0x7F, 0x00, 0xEF, 0x23, +0xB0, 0x13, 0x76, 0x25, 0x04, 0x88, 0x4C, 0x43, 0xB2, 0x90, 0xA5, 0xA5, +0x16, 0x24, 0x0F, 0x20, 0x1F, 0x42, 0xDA, 0x24, 0x1F, 0xD2, 0xDC, 0x24, +0x0F, 0x93, 0xCD, 0x27, 0x82, 0x9A, 0xDE, 0x24, 0x03, 0x20, 0x82, 0x9B, +0xE0, 0x24, 0xC7, 0x27, 0xB0, 0x13, 0x76, 0x25, 0xEC, 0x3F, 0x6C, 0x42, +0x74, 0x17, 0x10, 0x01, 0x82, 0x43, 0xE8, 0x24, 0xB0, 0x13, 0xC4, 0x30, +0x0F, 0x3C, 0xB0, 0x13, 0x58, 0x2B, 0xD2, 0x93, 0x12, 0x24, 0x0A, 0x20, +0xF2, 0xD2, 0x42, 0x02, 0xC2, 0x93, 0x11, 0x24, 0x05, 0x20, 0xB0, 0x13, +0xB4, 0x2F, 0x4C, 0x4C, 0x82, 0x4C, 0xE8, 0x24, 0x82, 0x93, 0xE8, 0x24, +0xEE, 0x27, 0x27, 0x24, 0xF2, 0xE0, 0x80, 0x00, 0x43, 0x02, 0x5F, 0x42, +0x01, 0x1C, 0x82, 0x4F, 0xE8, 0x24, 0x1F, 0x42, 0xE4, 0x24, 0xFF, 0x90, +0x53, 0x00, 0x00, 0x00, 0x1C, 0x20, 0xB0, 0x13, 0xF2, 0x2E, 0x03, 0x43, +0x3F, 0x40, 0x7E, 0x84, 0x3E, 0x40, 0x1E, 0x00, 0x3F, 0x53, 0x3E, 0x63, +0xFD, 0x2F, 0xB0, 0x13, 0x0A, 0x2F, 0x03, 0x43, 0x3F, 0x40, 0x7E, 0x84, +0x3E, 0x40, 0x1E, 0x00, 0x3F, 0x53, 0x3E, 0x63, 0xFD, 0x2F, 0xB2, 0xD0, +0x00, 0x01, 0x6C, 0x01, 0xB2, 0x40, 0x04, 0xA5, 0x20, 0x01, 0x4C, 0x43, +0x10, 0x01, 0x5C, 0x43, 0x10, 0x01, 0x5B, 0x15, 0x0A, 0x4C, 0x0B, 0x4D, +0x08, 0x4C, 0x09, 0x4D, 0x08, 0x5E, 0x09, 0x63, 0x47, 0x43, 0x04, 0x3C, +0xB0, 0x13, 0xC2, 0x2E, 0x0A, 0x56, 0x0B, 0x63, 0x0B, 0x99, 0x03, 0x28, +0x30, 0x20, 0x0A, 0x98, 0x2E, 0x2C, 0x47, 0x93, 0x2C, 0x20, 0xB0, 0x13, +0xB2, 0x30, 0x3C, 0x53, 0x0D, 0x4C, 0x3D, 0xE3, 0x0D, 0x5D, 0x0D, 0x7D, +0x0E, 0x48, 0x0F, 0x49, 0x0E, 0x8A, 0x0F, 0x7B, 0x0D, 0x9F, 0x03, 0x28, +0x07, 0x20, 0x0C, 0x9E, 0x05, 0x2C, 0xB0, 0x13, 0xB2, 0x30, 0x06, 0x4C, +0x36, 0x53, 0x02, 0x3C, 0x06, 0x48, 0x06, 0x8A, 0x1F, 0x42, 0xE6, 0x24, +0x1F, 0x53, 0x0E, 0x46, 0x0C, 0x4A, 0x0D, 0x4B, 0xB0, 0x13, 0x0A, 0x2B, +0x47, 0x4C, 0x4C, 0x93, 0xD3, 0x23, 0x1F, 0x42, 0xE6, 0x24, 0xFF, 0x40, +0x3A, 0x00, 0x00, 0x00, 0x0C, 0x46, 0x1C, 0x53, 0xB0, 0x13, 0xD8, 0x2F, +0xCB, 0x3F, 0x56, 0x17, 0x10, 0x01, 0xC2, 0x43, 0x12, 0x24, 0xC2, 0x43, +0x11, 0x24, 0xC2, 0x43, 0x00, 0x24, 0xC2, 0x43, 0x01, 0x24, 0xC2, 0x43, +0x3C, 0x09, 0xF2, 0x43, 0x02, 0x24, 0xF2, 0x43, 0x04, 0x24, 0xC2, 0x43, +0x10, 0x24, 0x7E, 0x40, 0x80, 0x00, 0xC2, 0x4E, 0x21, 0x09, 0xC2, 0x4E, +0x23, 0x09, 0xF2, 0x40, 0x8C, 0x00, 0x20, 0x09, 0xF2, 0x40, 0x8C, 0x00, +0x22, 0x09, 0xF2, 0x40, 0x03, 0x00, 0x2F, 0x09, 0xF2, 0x40, 0x03, 0x00, +0x2E, 0x09, 0xC2, 0x4E, 0xC8, 0x23, 0xF2, 0x40, 0x10, 0x00, 0xC9, 0x23, +0xC2, 0x4E, 0xCA, 0x23, 0xC2, 0x4E, 0xCE, 0x23, 0xF2, 0x40, 0x40, 0x00, +0xCF, 0x23, 0xC2, 0x4E, 0x88, 0x23, 0xC2, 0x43, 0x89, 0x23, 0xC2, 0x43, +0x8A, 0x23, 0xF2, 0x40, 0x40, 0x00, 0x8F, 0x23, 0xF2, 0x40, 0x40, 0x00, +0x3C, 0x09, 0xC2, 0x43, 0x3E, 0x09, 0xC2, 0xCE, 0x3E, 0x09, 0x10, 0x01, +0x5E, 0x42, 0x02, 0x24, 0x7E, 0x93, 0x2B, 0x24, 0x7E, 0x90, 0x09, 0x00, +0x06, 0x28, 0x7E, 0x42, 0xF2, 0x82, 0x02, 0x24, 0xD2, 0x43, 0x10, 0x24, +0x14, 0x3C, 0x7E, 0x92, 0x05, 0x2C, 0xF2, 0x43, 0x02, 0x24, 0xC2, 0x43, +0x10, 0x24, 0x0D, 0x3C, 0x7E, 0x42, 0xD2, 0x93, 0x0E, 0x24, 0x05, 0x20, +0xC2, 0x43, 0x02, 0x24, 0xD2, 0x43, 0x10, 0x24, 0x04, 0x3C, 0xF2, 0x43, +0x02, 0x24, 0xC2, 0x43, 0x10, 0x24, 0x4F, 0x43, 0x07, 0x3C, 0x1D, 0x42, +0x06, 0x24, 0xEF, 0x4D, 0x78, 0x23, 0x92, 0x53, 0x06, 0x24, 0x5F, 0x53, +0x4F, 0x9E, 0xF7, 0x2B, 0xC2, 0x4E, 0x21, 0x09, 0x10, 0x01, 0xC2, 0x43, +0x10, 0x24, 0x10, 0x01, 0xF2, 0xB0, 0x0F, 0x00, 0x84, 0x23, 0x0F, 0x20, +0xC2, 0x93, 0x84, 0x23, 0x06, 0x34, 0x5E, 0x42, 0x20, 0x09, 0x7E, 0xF2, +0xC2, 0x4E, 0xEA, 0x24, 0x14, 0x3C, 0x5E, 0x42, 0x22, 0x09, 0x7E, 0xF2, +0xC2, 0x4E, 0xEA, 0x24, 0x0E, 0x3C, 0xC2, 0x93, 0x84, 0x23, 0x06, 0x34, +0x5E, 0x42, 0xC8, 0x23, 0x7E, 0xF2, 0xC2, 0x4E, 0xEA, 0x24, 0x05, 0x3C, +0x5E, 0x42, 0x88, 0x23, 0x7E, 0xF2, 0xC2, 0x4E, 0xEA, 0x24, 0x5E, 0x42, +0xEA, 0x24, 0x42, 0x19, 0x4E, 0x10, 0xC2, 0x4E, 0xEA, 0x24, 0xB0, 0x13, +0xBE, 0x30, 0xE2, 0x43, 0x02, 0x24, 0x3C, 0x40, 0xEA, 0x24, 0x80, 0x00, +0x2A, 0x2E, 0x7B, 0x15, 0x0A, 0x4C, 0x0B, 0x4D, 0x06, 0x4E, 0x08, 0x4F, +0xB0, 0x13, 0x76, 0x25, 0xB2, 0x43, 0x54, 0x01, 0x04, 0x4A, 0x05, 0x4B, +0x07, 0x3C, 0x15, 0x15, 0x0F, 0x16, 0x6E, 0x4F, 0xC2, 0x4E, 0x52, 0x01, +0x14, 0x53, 0x05, 0x63, 0x0E, 0x4A, 0x0F, 0x4B, 0x0E, 0x56, 0x0F, 0x63, +0x05, 0x9F, 0x03, 0x28, 0x08, 0x20, 0x04, 0x9E, 0x06, 0x2C, 0xB2, 0x90, +0xA5, 0xA5, 0x16, 0x24, 0xEC, 0x27, 0x2C, 0x42, 0x04, 0x3C, 0x98, 0x42, +0x54, 0x01, 0x00, 0x00, 0x0C, 0x43, 0x74, 0x17, 0x10, 0x01, 0x3B, 0x15, +0x0A, 0x4C, 0x0B, 0x4D, 0x09, 0x4E, 0x08, 0x4F, 0xB0, 0x13, 0x76, 0x25, +0x0E, 0x4A, 0x0F, 0x4B, 0x0E, 0x59, 0x0F, 0x63, 0x3E, 0x53, 0x3F, 0x63, +0x0B, 0x3C, 0x1F, 0x15, 0x0D, 0x16, 0x69, 0x4D, 0x0C, 0x4E, 0x0C, 0x8A, +0x0D, 0x48, 0x0D, 0x5C, 0xCD, 0x49, 0x00, 0x00, 0x3E, 0x53, 0x3F, 0x63, +0x0F, 0x9B, 0x09, 0x28, 0x02, 0x20, 0x0E, 0x9A, 0x06, 0x28, 0xB2, 0x90, +0xA5, 0xA5, 0x16, 0x24, 0xEC, 0x27, 0x6C, 0x42, 0x01, 0x3C, 0x4C, 0x43, +0x38, 0x17, 0x10, 0x01, 0x5E, 0x42, 0x3E, 0x09, 0x2E, 0xB2, 0x02, 0x28, +0x80, 0x00, 0x22, 0x2C, 0xA2, 0xB3, 0x08, 0x09, 0x02, 0x28, 0x80, 0x00, +0x22, 0x2F, 0xA2, 0xB2, 0x08, 0x09, 0x02, 0x28, 0x80, 0x00, 0x80, 0x30, +0xD2, 0xB3, 0x30, 0x09, 0x02, 0x28, 0x80, 0x00, 0x4C, 0x2E, 0x4E, 0x93, +0x02, 0x34, 0x80, 0x00, 0x7A, 0x29, 0x3E, 0xB0, 0x40, 0x00, 0x02, 0x28, +0x80, 0x00, 0x50, 0x2F, 0x3E, 0xB0, 0x20, 0x00, 0x02, 0x28, 0xB0, 0x13, +0xFC, 0x2F, 0x10, 0x01, 0x21, 0x83, 0x81, 0x43, 0x00, 0x00, 0xB2, 0x40, +0x28, 0x96, 0x00, 0x09, 0x92, 0x42, 0x14, 0x24, 0x12, 0x09, 0xB2, 0x40, +0x00, 0x03, 0x10, 0x09, 0x82, 0x43, 0x14, 0x09, 0x3F, 0x40, 0x4C, 0x01, +0x3F, 0x53, 0xFE, 0x2F, 0x2F, 0x41, 0x0E, 0x4F, 0x1E, 0x53, 0x81, 0x4E, +0x00, 0x00, 0x3F, 0x90, 0xE9, 0x03, 0x05, 0x2C, 0x82, 0x93, 0x14, 0x09, +0xEF, 0x23, 0x92, 0xD3, 0x02, 0x09, 0x21, 0x53, 0x10, 0x01, 0xB2, 0x90, +0xA5, 0xA5, 0x16, 0x24, 0x1A, 0x20, 0x4C, 0x43, 0x92, 0xB3, 0x44, 0x01, +0xFD, 0x2F, 0x92, 0x42, 0x18, 0x24, 0x44, 0x01, 0x1D, 0x42, 0x18, 0x24, +0x2D, 0x53, 0x82, 0x4D, 0x40, 0x01, 0x1F, 0x15, 0x0D, 0x16, 0xCD, 0x43, +0x00, 0x00, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x1F, 0x42, 0x18, 0x24, +0x3F, 0x50, 0x10, 0x00, 0x82, 0x4F, 0x44, 0x01, 0x10, 0x01, 0x6C, 0x42, +0x10, 0x01, 0xF2, 0xD0, 0x10, 0x00, 0x3C, 0x09, 0xF2, 0x40, 0x80, 0x00, +0x23, 0x09, 0x03, 0x3C, 0xF2, 0xF0, 0xFA, 0x00, 0x3E, 0x09, 0xC2, 0x43, +0x10, 0x24, 0x82, 0x43, 0xEA, 0x24, 0xB0, 0x13, 0x3A, 0x27, 0x34, 0x40, +0x80, 0x00, 0x82, 0xC4, 0x20, 0x09, 0x82, 0xC4, 0x22, 0x09, 0xE2, 0xC2, +0x3E, 0x09, 0x82, 0xD4, 0x20, 0x09, 0x82, 0xD4, 0x22, 0x09, 0xD2, 0xB3, +0x3E, 0x09, 0xE8, 0x2F, 0x10, 0x01, 0x21, 0x83, 0x0F, 0x41, 0x0F, 0x53, +0xB0, 0x13, 0xBA, 0x2A, 0x2C, 0x92, 0x04, 0x20, 0x6C, 0x42, 0xB0, 0x13, +0xC2, 0x2E, 0x12, 0x3C, 0x1F, 0x42, 0xE6, 0x24, 0xFF, 0x40, 0x3A, 0x00, +0x00, 0x00, 0x1F, 0x42, 0xE6, 0x24, 0xEF, 0x41, 0x01, 0x00, 0x1F, 0x42, +0xE6, 0x24, 0xDF, 0x41, 0x01, 0x00, 0x02, 0x00, 0x3C, 0x40, 0x03, 0x00, +0xB0, 0x13, 0xD8, 0x2F, 0x21, 0x53, 0x10, 0x01, 0x0A, 0x12, 0x7E, 0x40, +0x3F, 0x00, 0xC2, 0x93, 0xCA, 0x23, 0x12, 0x34, 0xC2, 0x4E, 0x80, 0x1C, +0x3D, 0x40, 0x81, 0x1C, 0x4F, 0x43, 0x06, 0x3C, 0x0A, 0x4C, 0x0A, 0x5F, +0xED, 0x4A, 0x00, 0x00, 0x1D, 0x53, 0x5F, 0x53, 0x4F, 0x9E, 0xF8, 0x2B, +0xF2, 0x40, 0x40, 0x00, 0xCA, 0x23, 0x01, 0x3C, 0x4E, 0x43, 0x4C, 0x4E, +0x3A, 0x41, 0x10, 0x01, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x92, 0x42, +0x18, 0x24, 0x44, 0x01, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x1F, 0x42, +0x18, 0x24, 0x3F, 0x50, 0x06, 0x00, 0x82, 0x4F, 0x40, 0x01, 0xC2, 0x43, +0xE0, 0xFF, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x1F, 0x42, 0x18, 0x24, +0x3F, 0x50, 0x10, 0x00, 0x82, 0x4F, 0x44, 0x01, 0x4C, 0x43, 0x10, 0x01, +0x1B, 0x15, 0xB2, 0x90, 0xA5, 0xA5, 0x16, 0x24, 0x12, 0x20, 0x4F, 0x43, +0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x1D, 0x15, 0x0A, 0x16, 0xCA, 0x4E, +0x00, 0x00, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x1D, 0x15, 0x0A, 0x16, +0x6B, 0x4A, 0x4E, 0x9B, 0x03, 0x24, 0x5F, 0x43, 0x01, 0x3C, 0x6F, 0x42, +0x4C, 0x4F, 0x1A, 0x17, 0x10, 0x01, 0x1B, 0x15, 0xB2, 0x90, 0xA5, 0xA5, +0x16, 0x24, 0x12, 0x20, 0x4F, 0x43, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, +0x1D, 0x15, 0x0A, 0x16, 0x8A, 0x4E, 0x00, 0x00, 0x92, 0xB3, 0x44, 0x01, +0xFD, 0x2F, 0x1D, 0x15, 0x0A, 0x16, 0x2B, 0x4A, 0x0E, 0x9B, 0x03, 0x24, +0x5F, 0x43, 0x01, 0x3C, 0x6F, 0x42, 0x4C, 0x4F, 0x1A, 0x17, 0x10, 0x01, +0x3B, 0x15, 0x0A, 0x4C, 0x48, 0x4F, 0xB0, 0x13, 0x48, 0x30, 0x4C, 0x93, +0x0B, 0x20, 0xB2, 0x90, 0x05, 0x00, 0xE8, 0x24, 0x07, 0x28, 0x0F, 0x4E, +0x1E, 0x42, 0xE8, 0x24, 0x2E, 0x82, 0x0C, 0x4A, 0xB0, 0x13, 0xE6, 0x27, +0x48, 0x93, 0x02, 0x20, 0xB0, 0x13, 0xC2, 0x2E, 0xB0, 0x13, 0x3A, 0x2F, +0x38, 0x17, 0x10, 0x01, 0xC2, 0x93, 0x82, 0x23, 0x11, 0x20, 0x5E, 0x42, +0x84, 0x23, 0x7E, 0xF0, 0x0F, 0x00, 0x0A, 0x24, 0x5E, 0x93, 0x0C, 0x20, +0xC2, 0x93, 0x84, 0x23, 0x03, 0x34, 0xF2, 0xD2, 0xC8, 0x23, 0x02, 0x3C, +0xF2, 0xD2, 0x88, 0x23, 0x80, 0x00, 0x3A, 0x30, 0xB0, 0x13, 0x8C, 0x30, +0x10, 0x01, 0x5E, 0x42, 0x84, 0x23, 0x7E, 0xF0, 0x0F, 0x00, 0x0C, 0x24, +0x5E, 0x93, 0x0C, 0x20, 0xC2, 0x93, 0x84, 0x23, 0x04, 0x34, 0xF2, 0xF0, +0xD7, 0x00, 0xC8, 0x23, 0x03, 0x3C, 0xF2, 0xF0, 0xD7, 0x00, 0x88, 0x23, +0xB0, 0x13, 0x3A, 0x30, 0x10, 0x01, 0xB2, 0x90, 0xA5, 0xA5, 0x16, 0x24, +0x0C, 0x20, 0x4C, 0x43, 0x1F, 0x42, 0x44, 0x01, 0x3F, 0xF0, 0x10, 0x00, +0x1F, 0x52, 0x18, 0x24, 0x3F, 0x50, 0x40, 0x00, 0x82, 0x4F, 0x44, 0x01, +0x10, 0x01, 0x6C, 0x42, 0x10, 0x01, 0x82, 0x4C, 0x06, 0x24, 0x1E, 0x42, +0x86, 0x23, 0x5F, 0x42, 0x02, 0x24, 0x0F, 0x9E, 0x05, 0x28, 0xC2, 0x4E, +0x02, 0x24, 0xC2, 0x43, 0x0E, 0x24, 0x02, 0x3C, 0xD2, 0x43, 0x0E, 0x24, +0x80, 0x00, 0xF8, 0x29, 0xF2, 0xD0, 0x10, 0x00, 0x3C, 0x09, 0xC2, 0x43, +0x23, 0x09, 0xD2, 0x93, 0x10, 0x24, 0x03, 0x20, 0xB0, 0x13, 0xF8, 0x29, +0x02, 0x3C, 0xF2, 0xD2, 0x20, 0x09, 0xD2, 0xC3, 0x30, 0x09, 0x10, 0x01, +0x1B, 0x15, 0x0A, 0x4C, 0x0B, 0x4D, 0xB2, 0x90, 0xA5, 0xA5, 0x16, 0x24, +0x06, 0x20, 0xB0, 0x13, 0x76, 0x25, 0xB0, 0x13, 0xCA, 0x30, 0x4C, 0x43, +0x01, 0x3C, 0x6C, 0x42, 0x1A, 0x17, 0x10, 0x01, 0x1C, 0x42, 0xE4, 0x24, +0x1C, 0x53, 0xB0, 0x13, 0x96, 0x30, 0x4C, 0x93, 0x03, 0x20, 0x4C, 0x43, +0x80, 0x00, 0xC2, 0x2E, 0x7C, 0x40, 0x05, 0x00, 0x80, 0x00, 0xC2, 0x2E, +0xB0, 0x13, 0xBE, 0x30, 0xE2, 0x43, 0x02, 0x24, 0xC2, 0x43, 0xEA, 0x24, +0xD2, 0x42, 0x01, 0x24, 0xEB, 0x24, 0x3C, 0x40, 0xEA, 0x24, 0x80, 0x00, +0x2A, 0x2E, 0x1F, 0x42, 0xE6, 0x24, 0xFF, 0x40, 0x3B, 0x00, 0x00, 0x00, +0x1F, 0x42, 0xE6, 0x24, 0xCF, 0x4C, 0x01, 0x00, 0x2C, 0x43, 0x80, 0x00, +0xD8, 0x2F, 0xB0, 0x13, 0x66, 0x2F, 0xB0, 0x13, 0xC6, 0x2F, 0xB0, 0x13, +0x70, 0x28, 0x5C, 0xB3, 0xFC, 0x2B, 0xB0, 0x13, 0x76, 0x26, 0xF9, 0x3F, +0x03, 0x43, 0xB2, 0x40, 0x28, 0x96, 0x00, 0x09, 0xA2, 0xC3, 0x02, 0x09, +0xB2, 0xC0, 0x00, 0x04, 0x08, 0x09, 0xB2, 0x40, 0x00, 0x96, 0x00, 0x09, +0x10, 0x01, 0xB2, 0x40, 0x28, 0x96, 0x00, 0x09, 0x82, 0x43, 0x02, 0x09, +0xB2, 0xC0, 0x00, 0x01, 0x10, 0x09, 0xB2, 0x40, 0x00, 0x96, 0x00, 0x09, +0x10, 0x01, 0xB0, 0x13, 0xA0, 0x30, 0xB0, 0x13, 0xA0, 0x2B, 0xB0, 0x13, +0x7A, 0x29, 0xB2, 0xF0, 0xF9, 0xFF, 0x08, 0x09, 0xA2, 0xD3, 0x02, 0x09, +0x10, 0x01, 0x92, 0x42, 0x18, 0x24, 0x40, 0x01, 0x1F, 0x42, 0x18, 0x24, +0x3F, 0x50, 0x10, 0x00, 0x82, 0x4F, 0x44, 0x01, 0x4C, 0x43, 0x10, 0x01, +0xD2, 0x43, 0x11, 0x24, 0xF2, 0xD0, 0x10, 0x00, 0x3C, 0x09, 0xF2, 0xC0, +0x40, 0x00, 0x3E, 0x09, 0x82, 0x43, 0x10, 0x09, 0x10, 0x01, 0x82, 0x43, +0xDE, 0x24, 0x82, 0x43, 0xE0, 0x24, 0x82, 0x43, 0xDA, 0x24, 0x82, 0x43, +0xDC, 0x24, 0x82, 0x43, 0xE2, 0x24, 0x10, 0x01, 0xB0, 0x13, 0xB8, 0x30, +0xD2, 0x42, 0x82, 0x23, 0x00, 0x24, 0xB0, 0x13, 0x3A, 0x30, 0xD2, 0x43, +0x12, 0x24, 0x10, 0x01, 0xB0, 0x13, 0xBE, 0x30, 0xF2, 0x40, 0x09, 0x00, +0x02, 0x24, 0x3C, 0x40, 0x5E, 0x25, 0x80, 0x00, 0x2A, 0x2E, 0xB0, 0x13, +0xBE, 0x30, 0xF2, 0x40, 0x29, 0x00, 0x02, 0x24, 0x3C, 0x40, 0x4C, 0x25, +0x80, 0x00, 0x2A, 0x2E, 0x4C, 0x43, 0xC2, 0x93, 0x8A, 0x23, 0x04, 0x34, +0x5C, 0x42, 0x8A, 0x23, 0x7C, 0xF0, 0x7F, 0x00, 0x10, 0x01, 0x32, 0xC2, +0x03, 0x43, 0xB2, 0x40, 0x02, 0x1C, 0xE4, 0x24, 0xB2, 0x40, 0x1B, 0x24, +0xE6, 0x24, 0x10, 0x01, 0xC2, 0x4C, 0x1A, 0x24, 0x3C, 0x40, 0x1A, 0x24, +0xB0, 0x13, 0xA0, 0x2C, 0x4C, 0x93, 0xFA, 0x27, 0x10, 0x01, 0xB0, 0x13, +0xBE, 0x30, 0xF2, 0x40, 0x12, 0x00, 0x02, 0x24, 0x3C, 0x40, 0x16, 0x25, +0x80, 0x00, 0x2A, 0x2E, 0xB0, 0x13, 0xA0, 0x2B, 0xF2, 0xF0, 0x9F, 0x00, +0x3E, 0x09, 0xC2, 0x43, 0x11, 0x24, 0x10, 0x01, 0xB0, 0x13, 0xBE, 0x30, +0xD2, 0x43, 0x02, 0x24, 0x3C, 0x40, 0x00, 0x24, 0x80, 0x00, 0x2A, 0x2E, +0xB0, 0x13, 0xBE, 0x30, 0xE2, 0x43, 0x02, 0x24, 0x3C, 0x40, 0xEA, 0x24, +0x80, 0x00, 0x2A, 0x2E, 0xB0, 0x13, 0xB8, 0x30, 0xD2, 0x42, 0x84, 0x23, +0x01, 0x24, 0x80, 0x00, 0x3A, 0x30, 0xF2, 0x43, 0x02, 0x24, 0xC2, 0x43, +0x10, 0x24, 0xC2, 0x43, 0x21, 0x09, 0x10, 0x01, 0x6C, 0x42, 0xB2, 0x90, +0xA5, 0xA5, 0x16, 0x24, 0x01, 0x20, 0x4C, 0x43, 0x10, 0x01, 0xF2, 0x40, +0x24, 0x00, 0x02, 0x24, 0x3C, 0x40, 0x28, 0x25, 0x80, 0x00, 0x2A, 0x2E, +0xB2, 0x40, 0x80, 0x5A, 0x5C, 0x01, 0x32, 0xC2, 0x03, 0x43, 0x0C, 0x43, +0x10, 0x01, 0xB0, 0x13, 0xB8, 0x30, 0xD2, 0x42, 0x82, 0x23, 0x3F, 0x09, +0x80, 0x00, 0x3A, 0x30, 0xB0, 0x13, 0xA0, 0x30, 0xB2, 0x40, 0x04, 0xA5, +0x20, 0x01, 0x10, 0x01, 0xF2, 0xD2, 0x20, 0x09, 0xF2, 0xD2, 0x22, 0x09, +0x10, 0x01, 0xB2, 0x40, 0xA5, 0xA5, 0x16, 0x24, 0x4C, 0x43, 0x10, 0x01, +0x3F, 0x40, 0xDF, 0x2E, 0x3F, 0x53, 0xFE, 0x2F, 0x10, 0x01, 0xB0, 0x13, +0xE2, 0x2B, 0x80, 0x00, 0xC2, 0x2E, 0x3C, 0x40, 0x3E, 0x00, 0x10, 0x01, +0xF2, 0xD2, 0x22, 0x09, 0x10, 0x01, 0xC2, 0x43, 0x23, 0x09, 0x10, 0x01, +0xC2, 0x43, 0x8A, 0x23, 0x10, 0x01, 0x1B, 0x15, 0x10, 0x01, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, +}; + +const uint32_t RAM_BSL_FLASH_MODE_MSP_FETImage_address[] = +{ +0x00002500, +}; +const uint32_t RAM_BSL_FLASH_MODE_MSP_FETImage_length_of_sections[] = +{ +0x00000D00, +}; +const uint32_t RAM_BSL_FLASH_MODE_MSP_FETImage_sections = 0x00000001; +const uint32_t RAM_BSL_FLASH_MODE_MSP_FETImage_termination = 0x00000000; +const uint32_t RAM_BSL_FLASH_MODE_MSP_FETImage_start = 0x00002500; +const uint32_t RAM_BSL_FLASH_MODE_MSP_FETImage_finish = 0x00003200; +const uint32_t RAM_BSL_FLASH_MODE_MSP_FETImage_length = 0x00000D00; + +#define RAM_BSL_FLASH_MODE_MSP_FETIMAGE_TERMINATION 0x00000000 +#define RAM_BSL_FLASH_MODE_MSP_FETIMAGE_START 0x00002500 +#define RAM_BSL_FLASH_MODE_MSP_FETIMAGE_FINISH 0x00003200 +#define RAM_BSL_FLASH_MODE_MSP_FETIMAGE_LENGTH 0x00000D00 +#define RAM_BSL_FLASH_MODE_MSP_FETIMAGE_SECTIONS 0x00000001 diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_eZ_FET.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_eZ_FET.h new file mode 100644 index 0000000..a1ae144 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Utility_Classes/RAM_BSL_FLASH_MODE_eZ_FET.h @@ -0,0 +1,302 @@ +/* http://srecord.sourceforge.net/ */ +const uint8_t RAM_BSL_FLASH_MODE_eZ_FETImage[] = +{ +0x54, 0x07, 0x08, 0x40, 0x31, 0x40, 0x90, 0x33, 0xB0, 0x13, 0x16, 0x2F, +0x0C, 0x93, 0x00, 0x24, 0xB0, 0x13, 0x6E, 0x2C, 0xFF, 0x3F, 0x12, 0x01, +0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x47, 0x20, 0x03, 0x02, 0x08, 0x01, +0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0xFF, 0x09, 0x01, 0xA1, 0x01, 0x85, +0x3F, 0x95, 0x3F, 0x75, 0x08, 0x25, 0x01, 0x15, 0x01, 0x09, 0x01, 0x81, +0x02, 0x85, 0x3F, 0x95, 0x3F, 0x75, 0x08, 0x25, 0x01, 0x15, 0x01, 0x09, +0x01, 0x91, 0x02, 0xC0, 0x09, 0x02, 0x29, 0x00, 0x01, 0x01, 0x00, 0x80, +0x32, 0x09, 0x04, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x09, 0x21, +0x01, 0x01, 0x00, 0x01, 0x22, 0x24, 0x00, 0x07, 0x05, 0x81, 0x03, 0x40, +0x00, 0x01, 0x07, 0x05, 0x01, 0x03, 0x40, 0x00, 0x01, 0xFF, 0xF2, 0xB0, +0x0F, 0x00, 0x84, 0x23, 0x09, 0x20, 0xC2, 0x93, 0x84, 0x23, 0x03, 0x34, +0x5E, 0x42, 0x20, 0x09, 0x0B, 0x3C, 0x5E, 0x42, 0x22, 0x09, 0x08, 0x3C, +0xC2, 0x93, 0x84, 0x23, 0x03, 0x34, 0x5E, 0x42, 0xC8, 0x23, 0x02, 0x3C, +0x5E, 0x42, 0x88, 0x23, 0x7E, 0xF2, 0xC2, 0x4E, 0xEA, 0x24, 0x5E, 0x42, +0xEA, 0x24, 0x42, 0x19, 0x4E, 0x10, 0xC2, 0x4E, 0xEA, 0x24, 0xB0, 0x13, +0x30, 0x2F, 0x3C, 0x40, 0xEA, 0x24, 0x80, 0x00, 0x7A, 0x2E, 0xF2, 0x43, +0x02, 0x24, 0xC2, 0x43, 0x10, 0x24, 0xC2, 0x43, 0x21, 0x09, 0x10, 0x01, +0xC2, 0x93, 0x82, 0x23, 0x11, 0x20, 0x5E, 0x42, 0x84, 0x23, 0x7E, 0xF0, +0x0F, 0x00, 0x0A, 0x24, 0x5E, 0x93, 0x0E, 0x20, 0xC2, 0x93, 0x84, 0x23, +0x03, 0x34, 0xF2, 0xD2, 0xC8, 0x23, 0x02, 0x3C, 0xF2, 0xD2, 0x88, 0x23, +0x80, 0x00, 0xBE, 0x25, 0xF2, 0xD2, 0x20, 0x09, 0xF2, 0xD2, 0x22, 0x09, +0x10, 0x01, 0xC2, 0x93, 0x80, 0x23, 0x04, 0x34, 0x1F, 0x43, 0xD2, 0xD3, +0x3C, 0x09, 0x03, 0x3C, 0x0F, 0x43, 0xD2, 0xC3, 0x3C, 0x09, 0x5E, 0x42, +0x80, 0x23, 0x7E, 0xB0, 0x60, 0x00, 0x8F, 0x20, 0x5D, 0x42, 0x81, 0x23, +0x4D, 0x83, 0x80, 0x24, 0x5D, 0x83, 0x6B, 0x24, 0x6D, 0x83, 0x67, 0x24, +0x6D, 0x83, 0x45, 0x24, 0x5D, 0x83, 0x09, 0x24, 0x6D, 0x83, 0x52, 0x24, +0x5D, 0x83, 0x46, 0x24, 0x5D, 0x83, 0x33, 0x24, 0x5D, 0x83, 0x54, 0x24, +0x7A, 0x3C, 0x1F, 0xB3, 0x78, 0x28, 0x5E, 0x42, 0x83, 0x23, 0x5E, 0x83, +0x08, 0x24, 0x5E, 0x83, 0x0F, 0x24, 0x7E, 0x80, 0x1F, 0x00, 0x1C, 0x24, +0x5E, 0x83, 0x13, 0x24, 0x6C, 0x3C, 0xC2, 0x43, 0x23, 0x09, 0xF2, 0x40, +0x12, 0x00, 0x02, 0x24, 0x3C, 0x40, 0x16, 0x25, 0x80, 0x00, 0x7A, 0x2E, +0xC2, 0x43, 0x23, 0x09, 0xF2, 0x40, 0x29, 0x00, 0x02, 0x24, 0x3C, 0x40, +0x4C, 0x25, 0x80, 0x00, 0x7A, 0x2E, 0xF2, 0x40, 0x24, 0x00, 0x02, 0x24, +0x3C, 0x40, 0x28, 0x25, 0x80, 0x00, 0x7A, 0x2E, 0xC2, 0x43, 0x23, 0x09, +0xF2, 0x40, 0x09, 0x00, 0x02, 0x24, 0x3C, 0x40, 0x5E, 0x25, 0x80, 0x00, +0x7A, 0x2E, 0x1F, 0xB3, 0x48, 0x28, 0xB0, 0x13, 0x30, 0x2F, 0xC2, 0x43, +0xEA, 0x24, 0xD2, 0x42, 0x01, 0x24, 0xEB, 0x24, 0x3A, 0x3C, 0xF2, 0xD2, +0x22, 0x09, 0xD2, 0x42, 0x82, 0x23, 0x3F, 0x09, 0x80, 0x00, 0xBE, 0x25, +0xF2, 0xD2, 0x22, 0x09, 0xD2, 0x42, 0x82, 0x23, 0x00, 0x24, 0xB0, 0x13, +0xBE, 0x25, 0xD2, 0x43, 0x12, 0x24, 0x10, 0x01, 0xC2, 0x43, 0x23, 0x09, +0xD2, 0x43, 0x02, 0x24, 0x3C, 0x40, 0x00, 0x24, 0x80, 0x00, 0x7A, 0x2E, +0xF2, 0xD2, 0x22, 0x09, 0xD2, 0x42, 0x84, 0x23, 0x01, 0x24, 0x80, 0x00, +0xBE, 0x25, 0x80, 0x00, 0xCC, 0x25, 0x5E, 0x42, 0x84, 0x23, 0x7E, 0xF0, +0x0F, 0x00, 0x0C, 0x24, 0x5E, 0x93, 0x1B, 0x20, 0xC2, 0x93, 0x84, 0x23, +0x04, 0x34, 0xF2, 0xF0, 0xD7, 0x00, 0xC8, 0x23, 0x03, 0x3C, 0xF2, 0xF0, +0xD7, 0x00, 0x88, 0x23, 0x80, 0x00, 0xBE, 0x25, 0x7E, 0x90, 0x80, 0x00, +0x03, 0x20, 0xB0, 0x13, 0x30, 0x2F, 0x43, 0x3F, 0x7E, 0x90, 0x82, 0x00, +0x02, 0x20, 0x80, 0x00, 0x76, 0x25, 0xF2, 0xD2, 0x20, 0x09, 0xF2, 0xD2, +0x22, 0x09, 0x10, 0x01, 0x3B, 0x15, 0x4C, 0x43, 0x3D, 0x40, 0x5A, 0x24, +0xB0, 0x13, 0x44, 0x2F, 0x8D, 0x20, 0x1E, 0x42, 0xDA, 0x24, 0x1F, 0x42, +0xDC, 0x24, 0x7E, 0xB0, 0x7F, 0x00, 0x36, 0x20, 0xB2, 0x90, 0x80, 0x00, +0xE2, 0x24, 0x32, 0x20, 0xB0, 0x13, 0x4C, 0x2F, 0xB2, 0x40, 0x00, 0xA5, +0x44, 0x01, 0xB2, 0x40, 0xC0, 0xA5, 0x40, 0x01, 0x0D, 0x3C, 0x3A, 0x4D, +0x3B, 0x4D, 0x1F, 0x15, 0x08, 0x16, 0x88, 0x4A, 0x00, 0x00, 0x88, 0x4B, +0x02, 0x00, 0xB2, 0xB2, 0x44, 0x01, 0xFD, 0x2B, 0x2E, 0x52, 0x0F, 0x63, +0x1A, 0x42, 0xDA, 0x24, 0x1B, 0x42, 0xDC, 0x24, 0x3A, 0x50, 0x80, 0x00, +0x0B, 0x63, 0x0F, 0x9B, 0xEA, 0x2B, 0x02, 0x20, 0x0E, 0x9A, 0xE7, 0x2B, +0x92, 0x42, 0x18, 0x24, 0x40, 0x01, 0xB0, 0x13, 0x5A, 0x2C, 0x82, 0x43, +0xDA, 0x24, 0x82, 0x43, 0xDC, 0x24, 0x82, 0x43, 0xDE, 0x24, 0x82, 0x43, +0xE0, 0x24, 0x82, 0x43, 0xE2, 0x24, 0x51, 0x3C, 0x92, 0x42, 0x18, 0x24, +0x44, 0x01, 0x1B, 0x42, 0x18, 0x24, 0x3B, 0x50, 0x40, 0x00, 0x82, 0x4B, +0x40, 0x01, 0x08, 0x3C, 0x6C, 0x42, 0x2D, 0x53, 0x1E, 0x53, 0x0F, 0x63, +0x4C, 0x93, 0x41, 0x20, 0x1E, 0x53, 0x0F, 0x63, 0x1A, 0x42, 0xE2, 0x24, +0x0B, 0x43, 0x1A, 0x52, 0xDA, 0x24, 0x1B, 0x62, 0xDC, 0x24, 0x0F, 0x9B, +0x03, 0x28, 0xD9, 0x23, 0x0E, 0x9A, 0xD7, 0x2F, 0x92, 0xB3, 0xDA, 0x24, +0x06, 0x2C, 0x3A, 0x53, 0x3B, 0x63, 0x0E, 0x9A, 0x18, 0x20, 0x0F, 0x9B, +0x16, 0x20, 0x6A, 0x4D, 0xB0, 0x13, 0x44, 0x2F, 0x0F, 0x20, 0xB0, 0x13, +0x3A, 0x2F, 0x1F, 0x15, 0x0B, 0x16, 0xCB, 0x4A, 0x00, 0x00, 0xB0, 0x13, +0x4C, 0x2F, 0x1F, 0x15, 0x0B, 0x16, 0x68, 0x4B, 0x4A, 0x98, 0x03, 0x24, +0x5C, 0x43, 0x01, 0x3C, 0x6C, 0x42, 0x1D, 0x53, 0xD1, 0x3F, 0x2B, 0x4D, +0xB0, 0x13, 0x44, 0x2F, 0xC9, 0x23, 0xB0, 0x13, 0x3A, 0x2F, 0x1F, 0x15, +0x0A, 0x16, 0x8A, 0x4B, 0x00, 0x00, 0xB0, 0x13, 0x4C, 0x2F, 0x1F, 0x15, +0x0A, 0x16, 0x28, 0x4A, 0x0B, 0x98, 0xBD, 0x27, 0x5C, 0x43, 0xBB, 0x3F, +0x6C, 0x42, 0x38, 0x17, 0x10, 0x01, 0x1B, 0x15, 0x1E, 0x42, 0xE4, 0x24, +0x5D, 0x4E, 0x03, 0x00, 0x5F, 0x4E, 0x01, 0x00, 0x5A, 0x4E, 0x02, 0x00, +0x8A, 0x10, 0x0A, 0xDF, 0x0B, 0x4D, 0x6F, 0x4E, 0x7F, 0x80, 0x10, 0x00, +0x20, 0x24, 0x5F, 0x83, 0x12, 0x24, 0x5F, 0x83, 0x35, 0x24, 0x5F, 0x83, +0x39, 0x24, 0x6F, 0x83, 0x1E, 0x24, 0x5F, 0x83, 0x46, 0x24, 0x5F, 0x83, +0x0C, 0x24, 0x5F, 0x83, 0x47, 0x24, 0x5F, 0x83, 0x48, 0x24, 0x6F, 0x83, +0x4D, 0x20, 0x5F, 0x43, 0x0D, 0x3C, 0xB2, 0x40, 0xA5, 0xA5, 0x16, 0x24, +0x1F, 0x3C, 0xB0, 0x13, 0x44, 0x2F, 0x33, 0x20, 0xB0, 0x13, 0x44, 0x27, +0xB0, 0x13, 0x54, 0x2F, 0x17, 0x3C, 0x4F, 0x43, 0x2E, 0x52, 0x0C, 0x4A, +0xB0, 0x13, 0xC0, 0x2D, 0x3D, 0x3C, 0xB0, 0x13, 0x4C, 0x2F, 0x92, 0x42, +0x18, 0x24, 0x44, 0x01, 0xB0, 0x13, 0x4C, 0x2F, 0x1F, 0x42, 0x18, 0x24, +0x3F, 0x50, 0x06, 0x00, 0x82, 0x4F, 0x40, 0x01, 0xC2, 0x43, 0xE0, 0xFF, +0xB0, 0x13, 0x5A, 0x2C, 0x4C, 0x43, 0x28, 0x3C, 0x0E, 0x4A, 0x0F, 0x4D, +0x4C, 0x43, 0xB0, 0x13, 0xA2, 0x2C, 0x22, 0x3C, 0xB0, 0x13, 0x44, 0x2F, +0x0C, 0x20, 0x4C, 0x43, 0x1F, 0x42, 0x44, 0x01, 0x3F, 0xF0, 0x10, 0x00, +0x1F, 0x52, 0x18, 0x24, 0x3F, 0x50, 0x40, 0x00, 0x82, 0x4F, 0x44, 0x01, +0x13, 0x3C, 0x6C, 0x42, 0x11, 0x3C, 0xB0, 0x13, 0x06, 0x2F, 0xB0, 0x13, +0x6A, 0x2B, 0x0E, 0x3C, 0xB0, 0x13, 0x06, 0x2F, 0x04, 0x3C, 0x2E, 0x42, +0x3C, 0x40, 0x00, 0x25, 0x0D, 0x43, 0xB0, 0x13, 0xE4, 0x2B, 0x04, 0x3C, +0x7C, 0x40, 0x07, 0x00, 0xB0, 0x13, 0xBC, 0x2E, 0x1A, 0x17, 0x10, 0x01, +0x82, 0x43, 0xE8, 0x24, 0xC2, 0x43, 0x8A, 0x23, 0xB0, 0x13, 0x6A, 0x2A, +0xD2, 0x93, 0x12, 0x24, 0x0F, 0x20, 0xF2, 0xD2, 0x02, 0x02, 0xC2, 0x93, +0x11, 0x24, 0x0A, 0x20, 0x4F, 0x43, 0xC2, 0x93, 0x8A, 0x23, 0x04, 0x34, +0x5F, 0x42, 0x8A, 0x23, 0x7F, 0xF0, 0x7F, 0x00, 0x82, 0x4F, 0xE8, 0x24, +0x82, 0x93, 0xE8, 0x24, 0xE9, 0x27, 0xE2, 0xE2, 0x02, 0x02, 0x5F, 0x42, +0x01, 0x1C, 0x82, 0x4F, 0xE8, 0x24, 0x1F, 0x42, 0xE4, 0x24, 0xFF, 0x90, +0x53, 0x00, 0x00, 0x00, 0x1C, 0x20, 0xB2, 0x40, 0x28, 0x96, 0x00, 0x09, +0xA2, 0xC3, 0x02, 0x09, 0xB2, 0xC0, 0x00, 0x04, 0x08, 0x09, 0xB0, 0x13, +0xDA, 0x2E, 0xB2, 0x40, 0x28, 0x96, 0x00, 0x09, 0x82, 0x43, 0x02, 0x09, +0xB2, 0xC0, 0x00, 0x01, 0x10, 0x09, 0xB0, 0x13, 0xDA, 0x2E, 0xB2, 0xD0, +0x00, 0x01, 0x6C, 0x01, 0xB2, 0x40, 0x04, 0xA5, 0x20, 0x01, 0x4C, 0x43, +0x10, 0x01, 0x5C, 0x43, 0x10, 0x01, 0x7B, 0x15, 0x0A, 0x4C, 0x0B, 0x4D, +0x04, 0x4E, 0x06, 0x4F, 0x47, 0x43, 0x25, 0x3C, 0x82, 0x4A, 0xDA, 0x24, +0x82, 0x4B, 0xDC, 0x24, 0x08, 0x4A, 0x09, 0x4B, 0x08, 0x54, 0x09, 0x63, +0x82, 0x48, 0xDE, 0x24, 0x82, 0x49, 0xE0, 0x24, 0x08, 0x43, 0x09, 0x43, +0x3D, 0x40, 0x5A, 0x24, 0x1D, 0x52, 0xE2, 0x24, 0x09, 0x93, 0x24, 0x20, +0x08, 0x94, 0x22, 0x2C, 0xFD, 0x46, 0x00, 0x00, 0x92, 0x53, 0xE2, 0x24, +0x1A, 0x53, 0x0B, 0x63, 0x18, 0x53, 0x09, 0x63, 0x1D, 0x53, 0x7A, 0xB0, +0x7F, 0x00, 0xF0, 0x23, 0xB0, 0x13, 0x44, 0x27, 0x04, 0x88, 0xB0, 0x13, +0x44, 0x2F, 0x0F, 0x20, 0x1F, 0x42, 0xDA, 0x24, 0x1F, 0xD2, 0xDC, 0x24, +0x0F, 0x93, 0xD2, 0x27, 0x82, 0x9A, 0xDE, 0x24, 0x03, 0x20, 0x82, 0x9B, +0xE0, 0x24, 0xD0, 0x27, 0xB0, 0x13, 0x44, 0x27, 0xEE, 0x3F, 0x67, 0x42, +0x4C, 0x47, 0x74, 0x17, 0x10, 0x01, 0x5E, 0x42, 0x3E, 0x09, 0x2E, 0xB2, +0x02, 0x28, 0x80, 0x00, 0x00, 0x2E, 0xA2, 0xB3, 0x08, 0x09, 0x02, 0x28, +0x80, 0x00, 0x9C, 0x2E, 0xA2, 0xB2, 0x08, 0x09, 0x08, 0x28, 0x3F, 0x40, +0xDF, 0x2E, 0x3F, 0x53, 0xFE, 0x2F, 0xB2, 0x40, 0x04, 0xA5, 0x20, 0x01, +0x10, 0x01, 0xD2, 0xB3, 0x30, 0x09, 0x10, 0x28, 0xF2, 0xD0, 0x10, 0x00, +0x3C, 0x09, 0xC2, 0x43, 0x23, 0x09, 0xD2, 0x93, 0x10, 0x24, 0x03, 0x20, +0xB0, 0x13, 0xCC, 0x2C, 0x02, 0x3C, 0xF2, 0xD2, 0x20, 0x09, 0xD2, 0xC3, +0x30, 0x09, 0x10, 0x01, 0x4E, 0x93, 0x02, 0x34, 0x80, 0x00, 0xEC, 0x2A, +0x3E, 0xB0, 0x40, 0x00, 0x0B, 0x28, 0xD2, 0x43, 0x11, 0x24, 0xF2, 0xD0, +0x10, 0x00, 0x3C, 0x09, 0xF2, 0xC0, 0x40, 0x00, 0x3E, 0x09, 0x82, 0x43, +0x10, 0x09, 0x10, 0x01, 0x3E, 0xB0, 0x20, 0x00, 0x02, 0x28, 0xB0, 0x13, +0xF2, 0x2E, 0x10, 0x01, 0xC2, 0x43, 0x12, 0x24, 0xC2, 0x43, 0x11, 0x24, +0xC2, 0x43, 0x00, 0x24, 0xC2, 0x43, 0x01, 0x24, 0xC2, 0x43, 0x3C, 0x09, +0xF2, 0x43, 0x02, 0x24, 0xF2, 0x43, 0x04, 0x24, 0xC2, 0x43, 0x10, 0x24, +0x7E, 0x40, 0x80, 0x00, 0xC2, 0x4E, 0x21, 0x09, 0xC2, 0x4E, 0x23, 0x09, +0xF2, 0x40, 0x8C, 0x00, 0x20, 0x09, 0xF2, 0x40, 0x8C, 0x00, 0x22, 0x09, +0xF2, 0x40, 0x03, 0x00, 0x2F, 0x09, 0xF2, 0x40, 0x03, 0x00, 0x2E, 0x09, +0xC2, 0x4E, 0xC8, 0x23, 0xF2, 0x40, 0x10, 0x00, 0xC9, 0x23, 0xC2, 0x4E, +0xCA, 0x23, 0xC2, 0x4E, 0xCE, 0x23, 0xF2, 0x40, 0x40, 0x00, 0xCF, 0x23, +0xC2, 0x4E, 0x88, 0x23, 0xC2, 0x43, 0x89, 0x23, 0xC2, 0x43, 0x8A, 0x23, +0xF2, 0x40, 0x40, 0x00, 0x8F, 0x23, 0xF2, 0x40, 0x40, 0x00, 0x3C, 0x09, +0xC2, 0x43, 0x3E, 0x09, 0xC2, 0xCE, 0x3E, 0x09, 0x10, 0x01, 0x3B, 0x15, +0x0A, 0x4C, 0x0B, 0x4D, 0x08, 0x4E, 0xB0, 0x13, 0x44, 0x27, 0xB2, 0x43, +0x54, 0x01, 0x0C, 0x4A, 0x0D, 0x4B, 0x0C, 0x58, 0x0D, 0x63, 0x0B, 0x9D, +0x03, 0x28, 0x11, 0x20, 0x0A, 0x9C, 0x0F, 0x2C, 0xB0, 0x13, 0x44, 0x2F, +0x24, 0x20, 0x1B, 0x15, 0x0F, 0x16, 0x6E, 0x4F, 0xC2, 0x4E, 0x52, 0x01, +0x1A, 0x53, 0x0B, 0x63, 0x0B, 0x9D, 0xF4, 0x2B, 0x02, 0x20, 0x0A, 0x9C, +0xF1, 0x2B, 0x1E, 0x42, 0x54, 0x01, 0x1F, 0x42, 0xE6, 0x24, 0xFF, 0x40, +0x3A, 0x00, 0x00, 0x00, 0x1F, 0x42, 0xE6, 0x24, 0xCF, 0x4E, 0x01, 0x00, +0x8E, 0x10, 0x1F, 0x42, 0xE6, 0x24, 0xCF, 0x4E, 0x02, 0x00, 0xF2, 0x40, +0x03, 0x00, 0x1A, 0x24, 0xB0, 0x13, 0x24, 0x2F, 0xFD, 0x27, 0x38, 0x17, +0x10, 0x01, 0x6C, 0x42, 0xB0, 0x13, 0xBC, 0x2E, 0xFA, 0x3F, 0x03, 0x43, +0x5B, 0x15, 0x0A, 0x4C, 0x0B, 0x4D, 0x08, 0x4C, 0x09, 0x4D, 0x08, 0x5E, +0x09, 0x63, 0x47, 0x43, 0x04, 0x3C, 0xB0, 0x13, 0xBC, 0x2E, 0x0A, 0x56, +0x0B, 0x63, 0x0B, 0x99, 0x03, 0x28, 0x29, 0x20, 0x0A, 0x98, 0x27, 0x2C, +0x47, 0x93, 0x25, 0x20, 0x0E, 0x48, 0x0F, 0x49, 0x0E, 0x8A, 0x0F, 0x7B, +0x03, 0x20, 0x3E, 0x90, 0x3E, 0x00, 0x03, 0x28, 0x36, 0x40, 0x3D, 0x00, +0x02, 0x3C, 0x06, 0x48, 0x06, 0x8A, 0x1F, 0x42, 0xE6, 0x24, 0x1F, 0x53, +0x0E, 0x46, 0x0C, 0x4A, 0x0D, 0x4B, 0xB0, 0x13, 0x2A, 0x2D, 0x47, 0x4C, +0x4C, 0x93, 0xDD, 0x23, 0x1F, 0x42, 0xE6, 0x24, 0xFF, 0x40, 0x3A, 0x00, +0x00, 0x00, 0x4E, 0x46, 0x5E, 0x53, 0xC2, 0x4E, 0x1A, 0x24, 0xB0, 0x13, +0x24, 0x2F, 0xD3, 0x23, 0xFC, 0x3F, 0x56, 0x17, 0x10, 0x01, 0x92, 0xB3, +0x44, 0x01, 0xFD, 0x2F, 0x1F, 0x42, 0x18, 0x24, 0x3F, 0x50, 0x10, 0x00, +0x82, 0x4F, 0x44, 0x01, 0x10, 0x01, 0x82, 0x43, 0xDE, 0x24, 0x82, 0x43, +0xE0, 0x24, 0x82, 0x43, 0xDA, 0x24, 0x82, 0x43, 0xDC, 0x24, 0x82, 0x43, +0xE2, 0x24, 0x32, 0xC2, 0x03, 0x43, 0xB2, 0x40, 0x02, 0x1C, 0xE4, 0x24, +0xB2, 0x40, 0x1B, 0x24, 0xE6, 0x24, 0xB0, 0x13, 0x5C, 0x29, 0x5C, 0xB3, +0xFC, 0x2B, 0xB0, 0x13, 0x72, 0x28, 0xF9, 0x3F, 0x03, 0x43, 0xB0, 0x13, +0x44, 0x2F, 0x10, 0x20, 0xB0, 0x13, 0x3A, 0x2F, 0x92, 0x42, 0x18, 0x24, +0x44, 0x01, 0x1D, 0x42, 0x18, 0x24, 0x2D, 0x53, 0x82, 0x4D, 0x40, 0x01, +0x1F, 0x15, 0x0D, 0x16, 0xCD, 0x43, 0x00, 0x00, 0x80, 0x00, 0x5A, 0x2C, +0x6C, 0x42, 0x10, 0x01, 0x5E, 0x42, 0x02, 0x24, 0x7E, 0x93, 0x28, 0x24, +0x7E, 0x90, 0x09, 0x00, 0x03, 0x28, 0x7F, 0x42, 0x7E, 0x82, 0x09, 0x3C, +0x7E, 0x92, 0x02, 0x2C, 0x4F, 0x4E, 0x07, 0x3C, 0x7F, 0x42, 0xD2, 0x93, +0x0E, 0x24, 0x03, 0x20, 0x4E, 0x43, 0x5D, 0x43, 0x02, 0x3C, 0x7E, 0x43, +0x4D, 0x43, 0xC2, 0x4D, 0x10, 0x24, 0xC2, 0x4E, 0x02, 0x24, 0x4F, 0x93, +0x0C, 0x24, 0x3E, 0x40, 0x78, 0x23, 0x4D, 0x4F, 0x1C, 0x42, 0x06, 0x24, +0xEE, 0x4C, 0x00, 0x00, 0x92, 0x53, 0x06, 0x24, 0x1E, 0x53, 0x7D, 0x53, +0xF7, 0x23, 0xC2, 0x4F, 0x21, 0x09, 0x10, 0x01, 0xC2, 0x43, 0x10, 0x24, +0x10, 0x01, 0x3B, 0x15, 0x0A, 0x4C, 0x0B, 0x4D, 0x09, 0x4E, 0x08, 0x4F, +0xB0, 0x13, 0x44, 0x27, 0x0E, 0x4A, 0x0F, 0x4B, 0x0E, 0x59, 0x0F, 0x63, +0x3E, 0x53, 0x3F, 0x63, 0x0F, 0x9B, 0x16, 0x28, 0x02, 0x20, 0x0E, 0x9A, +0x13, 0x28, 0xB0, 0x13, 0x44, 0x2F, 0x13, 0x20, 0x1F, 0x15, 0x0D, 0x16, +0x69, 0x4D, 0x0C, 0x4E, 0x0C, 0x8A, 0x0D, 0x48, 0x0D, 0x5C, 0xCD, 0x49, +0x00, 0x00, 0x3E, 0x53, 0x3F, 0x63, 0x0F, 0x9B, 0x03, 0x28, 0xEF, 0x23, +0x0E, 0x9A, 0xED, 0x2F, 0x4C, 0x43, 0x38, 0x17, 0x10, 0x01, 0x6C, 0x42, +0xFC, 0x3F, 0x03, 0x43, 0x81, 0x43, 0x04, 0x00, 0xB2, 0x40, 0x28, 0x96, +0x00, 0x09, 0x92, 0x42, 0x14, 0x24, 0x12, 0x09, 0xB2, 0x40, 0x00, 0x03, +0x10, 0x09, 0x82, 0x43, 0x14, 0x09, 0x3F, 0x40, 0x4C, 0x01, 0x3F, 0x53, +0xFE, 0x2F, 0x1F, 0x41, 0x04, 0x00, 0x0E, 0x4F, 0x1E, 0x53, 0x81, 0x4E, +0x04, 0x00, 0x3F, 0x90, 0xE9, 0x03, 0x05, 0x2C, 0x82, 0x93, 0x14, 0x09, +0xEE, 0x23, 0x92, 0xD3, 0x02, 0x09, 0x10, 0x01, 0x0A, 0x12, 0x4A, 0x4F, +0x6F, 0x42, 0xB0, 0x13, 0x44, 0x2F, 0x01, 0x20, 0x4F, 0x43, 0x4F, 0x93, +0x0B, 0x20, 0xB2, 0x90, 0x05, 0x00, 0xE8, 0x24, 0x07, 0x28, 0x0F, 0x4E, +0x1E, 0x42, 0xE8, 0x24, 0x2E, 0x82, 0xB0, 0x13, 0xE6, 0x29, 0x4F, 0x4C, +0x4A, 0x93, 0x03, 0x20, 0x4C, 0x4F, 0xB0, 0x13, 0xBC, 0x2E, 0x92, 0x42, +0x18, 0x24, 0x40, 0x01, 0xB0, 0x13, 0x60, 0x2C, 0x3A, 0x41, 0x10, 0x01, +0xF2, 0xD0, 0x10, 0x00, 0x3C, 0x09, 0xF2, 0x40, 0x80, 0x00, 0x23, 0x09, +0x03, 0x3C, 0xF2, 0xF0, 0xFA, 0x00, 0x3E, 0x09, 0xC2, 0x43, 0x10, 0x24, +0x82, 0x43, 0xEA, 0x24, 0xB0, 0x13, 0xFE, 0x25, 0x34, 0x40, 0x80, 0x00, +0x82, 0xC4, 0x20, 0x09, 0x82, 0xC4, 0x22, 0x09, 0xE2, 0xC2, 0x3E, 0x09, +0x82, 0xD4, 0x20, 0x09, 0x82, 0xD4, 0x22, 0x09, 0xD2, 0xB3, 0x3E, 0x09, +0xE8, 0x2F, 0x10, 0x01, 0x7E, 0x40, 0x3F, 0x00, 0xC2, 0x93, 0xCA, 0x23, +0x15, 0x34, 0xC2, 0x4E, 0x80, 0x1C, 0x3F, 0x40, 0x81, 0x1C, 0x0D, 0x4C, +0x0D, 0x5E, 0xFF, 0x4C, 0x00, 0x00, 0x1F, 0x53, 0xFF, 0x4C, 0x00, 0x00, +0x1F, 0x53, 0xFF, 0x4C, 0x00, 0x00, 0x1F, 0x53, 0x0C, 0x9D, 0xF5, 0x23, +0xF2, 0x40, 0x40, 0x00, 0xCA, 0x23, 0x01, 0x3C, 0x4E, 0x43, 0x4C, 0x4E, +0x10, 0x01, 0x82, 0x4C, 0x06, 0x24, 0x1E, 0x42, 0x86, 0x23, 0x5F, 0x42, +0x02, 0x24, 0x0F, 0x9E, 0x04, 0x28, 0xC2, 0x4E, 0x02, 0x24, 0x4E, 0x43, +0x01, 0x3C, 0x5E, 0x43, 0xC2, 0x4E, 0x0E, 0x24, 0x80, 0x00, 0xCC, 0x2C, +0x21, 0x83, 0x3F, 0x40, 0xDF, 0x2E, 0x3F, 0x53, 0xFE, 0x2F, 0xB0, 0x13, +0x80, 0x2D, 0xB0, 0x13, 0xEC, 0x2A, 0xB2, 0xF0, 0xF9, 0xFF, 0x08, 0x09, +0xA2, 0xD3, 0x02, 0x09, 0x21, 0x53, 0x10, 0x01, 0x1F, 0x42, 0xE6, 0x24, +0xFF, 0x40, 0x3B, 0x00, 0x00, 0x00, 0x1F, 0x42, 0xE6, 0x24, 0xCF, 0x4C, +0x01, 0x00, 0xE2, 0x43, 0x1A, 0x24, 0xB0, 0x13, 0x24, 0x2F, 0xFD, 0x27, +0x10, 0x01, 0xB2, 0x40, 0x00, 0x96, 0x00, 0x09, 0x03, 0x43, 0x3F, 0x40, +0x7E, 0x84, 0x3E, 0x40, 0x1E, 0x00, 0x3F, 0x53, 0x3E, 0x63, 0xFD, 0x2F, +0x10, 0x01, 0x21, 0x83, 0xB0, 0x13, 0x80, 0x2D, 0xF2, 0xF0, 0x9F, 0x00, +0x3E, 0x09, 0xC2, 0x43, 0x11, 0x24, 0x21, 0x53, 0x10, 0x01, 0x5F, 0x4E, +0x04, 0x00, 0x5E, 0x4E, 0x05, 0x00, 0x8E, 0x10, 0x0E, 0xDF, 0x0C, 0x4A, +0x10, 0x01, 0xB2, 0x40, 0x80, 0x5A, 0x5C, 0x01, 0x32, 0xC2, 0x03, 0x43, +0x0C, 0x43, 0x10, 0x01, 0x3C, 0x40, 0x1A, 0x24, 0xB0, 0x13, 0x40, 0x2E, +0x4C, 0x93, 0x10, 0x01, 0xC2, 0x43, 0x23, 0x09, 0xE2, 0x43, 0x02, 0x24, +0x10, 0x01, 0x4C, 0x43, 0x92, 0xB3, 0x44, 0x01, 0xFD, 0x2F, 0x10, 0x01, +0xB2, 0x90, 0xA5, 0xA5, 0x16, 0x24, 0x10, 0x01, 0x92, 0xB3, 0x44, 0x01, +0xFD, 0x2F, 0x10, 0x01, 0x1B, 0x15, 0x10, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +0xFF, 0xFF, 0xFF, 0xFF, +}; + +const uint32_t RAM_BSL_FLASH_MODE_eZ_FETImage_address[] = +{ +0x00002500, +}; +const uint32_t RAM_BSL_FLASH_MODE_eZ_FETImage_length_of_sections[] = +{ +0x00000D00, +}; +const uint32_t RAM_BSL_FLASH_MODE_eZ_FETImage_sections = 0x00000001; +const uint32_t RAM_BSL_FLASH_MODE_eZ_FETImage_termination = 0x00000000; +const uint32_t RAM_BSL_FLASH_MODE_eZ_FETImage_start = 0x00002500; +const uint32_t RAM_BSL_FLASH_MODE_eZ_FETImage_finish = 0x00003200; +const uint32_t RAM_BSL_FLASH_MODE_eZ_FETImage_length = 0x00000D00; + +#define RAM_BSL_FLASH_MODE_EZ_FETIMAGE_TERMINATION 0x00000000 +#define RAM_BSL_FLASH_MODE_EZ_FETIMAGE_START 0x00002500 +#define RAM_BSL_FLASH_MODE_EZ_FETIMAGE_FINISH 0x00003200 +#define RAM_BSL_FLASH_MODE_EZ_FETIMAGE_LENGTH 0x00000D00 +#define RAM_BSL_FLASH_MODE_EZ_FETIMAGE_SECTIONS 0x00000001 diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/pch.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/pch.cpp new file mode 100644 index 0000000..c86338a --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/pch.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2013 - 2014 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pch.h" diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/pch.h b/ThirdParty/BSL430_DLL/BSL430_DLL/pch.h new file mode 100644 index 0000000..2c26038 --- /dev/null +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/pch.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2013 - 2014 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#if defined(_WIN32) || defined(_WIN64) +#define WIN32_LEAN_AND_MEAN +#define VC_EXTRALEAN +#define NOMINMAX +#define _CRT_SECURE_NO_WARNINGS +#define _WIN32_WINNT 0x0501 +#include +#endif + +#include +#include +#include +#include +#include + +#define BOOST_DATE_TIME_NO_LIB +#define BOOST_REGEX_NO_LIB + +#include diff --git a/ThirdParty/BSL430_DLL/Makefile b/ThirdParty/BSL430_DLL/Makefile new file mode 100644 index 0000000..1dc8684 --- /dev/null +++ b/ThirdParty/BSL430_DLL/Makefile @@ -0,0 +1,71 @@ +CXXFLAGS := -fPIC -std=c++0x -fvisibility=hidden -fvisibility-inlines-hidden + +PCH_HEADER := ./BSL430_DLL/pch.h +PCH_COMPILED := ./BSL430_DLL/pch.h.gch + +DEFINES := -DUNIX + +ifdef DEBUG +CXXFLAGS += -g -O0 +else +CXXFLAGS += -Os +DEFINES += -DNDEBUG +endif + +MAKE_PCH := -x c++-header +USE_PCH := -include $(PCH_HEADER) + +INCLUDES := \ + -I../include \ + -I./BSL430_DLL \ + -I./BSL430_DLL/Utility_Classes \ + -I./BSL430_DLL/Physical_Interfaces \ + -I./BSL430_DLL/Packet_Handlers \ + -I./BSL430_DLL/Connections + +SRC := \ + ./BSL430_DLL/MSPBSL_Factory.cpp \ + $(wildcard ./BSL430_DLL/Connections/*.cpp) \ + $(wildcard ./BSL430_DLL/Physical_Interfaces/*.cpp) \ + $(wildcard ./BSL430_DLL/Packet_Handlers/*.cpp) \ + $(wildcard ./BSL430_DLL/Utility_Classes/*.cpp) + +OBJS := $(patsubst %.cpp, %.o, $(SRC)) + +OUTPUT := ../lib64/libbsl430.a + +PLATFORM := $(shell uname -s) +ifeq ($(PLATFORM),Linux) + CXX:= g++ + + ifdef BIT32 + CXXFLAGS += -m32 + OUTPUT := ../lib/libbsl430.a + endif + + ifdef BOOST_DIR + INCLUDES += -I$(BOOST_DIR) + endif +else + CXX:= clang++ + + ifdef BOOST_DIR + INCLUDES += -I$(BOOST_DIR)/include + endif +endif + +all: $(OBJS) + ar -cq $(OUTPUT) $(OBJS) + +$(PCH_COMPILED): $(PCH_HEADER) + $(CXX) $(MAKE_PCH) -c -o $@ $< $(CXXFLAGS) $(INCLUDES) $(DEFINES) + +%.o: %.cpp $(PCH_COMPILED) + $(CXX) -c -o $@ $< $(USE_PCH) $(CXXFLAGS) $(INCLUDES) $(DEFINES) + +install: + cp $(OUTPUT) /usr/lib/ + +clean: + @for i in $(OBJS); do rm -f $$i; done + @rm -f $(OUTPUT) $(PCH_HEADER).?ch build.log diff --git a/ThirdParty/BSL430_Firmware/BSL.ewd b/ThirdParty/BSL430_Firmware/BSL.ewd new file mode 100644 index 0000000..2bf69f8 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL.ewd @@ -0,0 +1,384 @@ + + + + 2 + + 430FET + 1 + 1 + 3.3 + 1 + 1 + + $TOOLKIT_DIR$\config\MSP430F6638.ddf + 3.3 + + $TOOLKIT_DIR$\CONFIG\test.psp.config + $TOOLKIT_DIR$\config\MSP430F5528.ddf + Automatic + RAM_BASED_BSL_FLASH_MODE_eZ_FET + + MSP430 + + 1 + + C-SPY + 4 + + 25 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 430FET + 1 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SIM430 + 1 + + 4 + 1 + 1 + + + + + + + + + + + $TOOLKIT_DIR$\plugins\Lcd\lcd.ewplugin + 1 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin + 1 + + + + diff --git a/ThirdParty/BSL430_Firmware/BSL.ewp b/ThirdParty/BSL430_Firmware/BSL.ewp new file mode 100644 index 0000000..95229fd --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL.ewp @@ -0,0 +1,4027 @@ + + + + 2 + + RAM_WRITE_ONLY_BSL_MSP_FET + + MSP430 + + 1 + + General + 12 + + 28 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICC430 + 4 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A430 + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 4 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 4 + + 0 + 1 + 1 + + + + + + + ULP430 + 1 + + 1 + 1 + 1 + + + + + + + + + BILINK + 0 + + + + + RAM_BASED_BSL_FLASH_MODE_MSP_FET + + MSP430 + + 1 + + General + 12 + + 28 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICC430 + 4 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A430 + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + $PROJ_DIR$\tools\convertBsl.bat $PROJ_DIR$ RAM_BSL_FLASH_MODE_MSP_FET + + + + XLINK + 4 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 4 + + 0 + 1 + 1 + + + + + + + ULP430 + 1 + + 1 + 1 + 1 + + + + + + + + + BILINK + 0 + + + + + RAM_WRITE_ONLY_BSL_eZ_FET + + MSP430 + + 1 + + General + 12 + + 28 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICC430 + 4 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A430 + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + XLINK + 4 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 4 + + 0 + 1 + 1 + + + + + + + ULP430 + 1 + + 1 + 1 + 1 + + + + + + + + + BILINK + 0 + + + + + RAM_BASED_BSL_FLASH_MODE_eZ_FET + + MSP430 + + 1 + + General + 12 + + 28 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICC430 + 4 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A430 + 5 + + 14 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CUSTOM + 3 + + + + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + $PROJ_DIR$\tools\convertBsl.bat $PROJ_DIR$ RAM_BSL_FLASH_MODE_eZ_FET + + + + XLINK + 4 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + XAR + 4 + + 0 + 1 + 1 + + + + + + + ULP430 + 1 + + 1 + 1 + 1 + + + + + + + + + BILINK + 0 + + + + + RAM_WRITE_ONLY_BSL_MSP_FET + RAM_BASED_BSL_FLASH_MODE_MSP_FET + RAM_WRITE_ONLY_BSL_eZ_FET + RAM_BASED_BSL_FLASH_MODE_eZ_FET + + + USB-Headers + + $PROJ_DIR$\defUSB.h + + + $PROJ_DIR$\descriptor.h + + + $PROJ_DIR$\descriptors.h + + + $PROJ_DIR$\device.h + + + $PROJ_DIR$\hal_UCS.h + + + $PROJ_DIR$\Proj_Settings.h + + + $PROJ_DIR$\types.h + + + $PROJ_DIR$\usb.h + + + $PROJ_DIR$\usbapi.h + + + $PROJ_DIR$\UsbHidReq.h + + + $PROJ_DIR$\UsbIsr.h + + + + USB-Source + + $PROJ_DIR$\descriptors.c + + + $PROJ_DIR$\hal_UCS.c + + + $PROJ_DIR$\usb.c + + + $PROJ_DIR$\UsbApi.c + + + $PROJ_DIR$\UsbHidReq.c + + + $PROJ_DIR$\UsbIsr.c + + + + $PROJ_DIR$\BSL430_API.c + + + $PROJ_DIR$\BSL430_Command_Interpreter.c + + + $PROJ_DIR$\BSL430_Low_Level_Init.s43 + + RAM_BASED_BSL_FLASH_MODE_MSP_FET + RAM_BASED_BSL_FLASH_MODE_eZ_FET + + + + $PROJ_DIR$\BSL430_USB_PI.c + + + $PROJ_DIR$\cstartup.s43 + + diff --git a/ThirdParty/BSL430_Firmware/BSL.eww b/ThirdParty/BSL430_Firmware/BSL.eww new file mode 100644 index 0000000..5873d49 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL.eww @@ -0,0 +1,8 @@ + + + + + $WS_DIR$\BSL.ewp + + + diff --git a/ThirdParty/BSL430_Firmware/BSL430_API.c b/ThirdParty/BSL430_Firmware/BSL430_API.c new file mode 100644 index 0000000..b522174 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_API.c @@ -0,0 +1,674 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "BSL_Device_File.h" +#include "BSL430_API.h" +#include "BSL430_Command_Definitions.h" + +/******************************************************************************* +* Change Log: +* 2.2.09 LCW removed RAM erase +* Changed mass erase and info segments +* 2.2.09 LCW worked on RAM Loader function +* Changed Password to XOR +* Changed Password addr to 0xFFE0 +* -------------------------------------------------------------------------------- +* Version 3 work begins +* 07.08.09 LCW Removed info erase +* 11.08.09 LCW bugfix in CRC algorithm +* -------------------------------------------------------------------------------- +* Version 4 work begins +* 21.12.09 LCW Removed VPE check +* 15.03.10 LCW Misc comment cleanup for source release +* -------------------------------------------------------------------------------- +* Version 4.1 (no output change, source/comment modified) +* 15.04.10 LCW Changed Version defines to remove warning +* -------------------------------------------------------------------------------- +* Version 5 work begins +* 18.02.11 LCW Added USB BSL Buffering for block write +* disabled GIE at startup +* uncrustified +* VPE check removed from word write +* 13.04.11 LCW Made length varibles unsigned +* -------------------------------------------------------------------------------- +* Version 6 work begins +* 30.10.12 LCW Cleared Lock IO on startup +*******************************************************************************/ +#ifdef RAM_BASED_BSL +# ifdef RAM_WRITE_ONLY_BSL +# error Can NOT have RAM write and RAM based BSL +# endif +# define DEFAULT_STATE (UNLOCKED) +#else +# define DEFAULT_STATE (LOCKED) +#endif + +#ifdef RAM_BASED_BSL +char flushBuffer(void); // buffer flush routine, internal for USB only + +# pragma data_alignment=2 +__no_init unsigned char BlockBuffer[128]; +__no_init unsigned long int BlockBufferStart; +__no_init unsigned long int BlockBufferNext; +__no_init unsigned int BlockBufferPtr; +#endif + +#pragma location = 0x2416 +__no_init volatile unsigned int LockedStatus; + +#pragma location = 0x2418 +__no_init int FwRamKey; + +#define API_VERSION (0x08) +#ifdef RAM_WRITE_ONLY_BSL +# define API_V (API_VERSION + RAM_WRITE_ONLY_BSL) +#else +# define API_V API_VERSION +#endif +const unsigned char BSL430_API_Version @ "BSL430_VERSION_API" = API_V; +#pragma required=BSL430_API_Version + +/******************************************************************************* +* *Function: __low_level_init +* *Description: function used to erase the RAM in device and stop WDT +*******************************************************************************/ +#if __VER__ <= 420 +void +#else +int +#endif +__low_level_init(void) +{ + WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer + __disable_interrupt(); // disable interrupts +#if __VER__ > 420 + return 0; // do not initialize +#endif +} + +/******************************************************************************* +* *Function: BSL430_API_init +* *Description: sets the key for writing to flash, sets device state +*******************************************************************************/ + +void BSL430_API_init() +{ +#ifdef RAM_WRITE_ONLY_BSL + LockedStatus = UNLOCKED; + FwRamKey = FWKEY; +#endif + +#ifdef RAM_BASED_BSL + BlockBufferNext = 0; + BlockBufferStart = 0; + BlockBufferPtr = 0; +#endif +} + +/******************************************************************************* +* *Function: BSL430_lock_BSL +* *Description: Locks the BSL +* *Returns: +* SUCCESSFUL_OPERATION BSL Locked +*******************************************************************************/ + +char BSL430_lock_BSL() +{ + LockedStatus = LOCKED; + return SUCCESSFUL_OPERATION; +} + +/******************************************************************************* +* *Function: BSL430_unlock_BSL +* *Description: Causes the BSL to compare the data buffer against the BSL password +* BSL state will be UNLOCKED if successful +* *Parameters: +* char* data A pointer to an array containing the password +* *Returns: +* SUCCESSFUL_OPERATION All data placed into data array successfully +* BSL_PASSWORD_ERROR Correct Password was not given +*******************************************************************************/ + +char BSL430_unlock_BSL(char* data) +{ + /*int i; + int retValue = 0; + char *interrupts = (char*)INTERRUPT_VECTOR_START; + + for (i = 0; i <= (INTERRUPT_VECTOR_END - INTERRUPT_VECTOR_START); i++, interrupts++) + { + retValue |= *interrupts ^ data[i]; + } + if (retValue == 0) + { +#ifndef RAM_WRITE_ONLY_BSL + volatile int i; + for (i = MASS_ERASE_DELAY - 1; i > 0; i--) ; +#endif*/ + + LockedStatus = UNLOCKED; + return SUCCESSFUL_OPERATION; + + /*} + else + { + BSL430_massErase(); + return BSL_PASSWORD_ERROR; + }*/ +} + +/******************************************************************************* +* *Function: BSL430_toggleInfoLock +* *Description: Toggles the LOCKA bit for writing/erasing info A segment +* *Returns: +* SUCCESSFUL_OPERATION Info A is now open for writing or erasing. +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +char BSL430_toggleInfoLock() +{ + char exceptions; + + if (LockedStatus == UNLOCKED) + { + exceptions = SUCCESSFUL_OPERATION; + FCTL3 = FwRamKey + LOCKA + (FCTL3 & LOCK); // toggle LOCKA bit + } + else + { + exceptions = BSL_LOCKED; + } + return exceptions; +} + +/******************************************************************************* +* *Function: BSL430_openMemory +* *Description: Unlocks the Flash for writing +* *Returns: +* SUCCESSFUL_OPERATION Flash is now open for writing. +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +char BSL430_openMemory() +{ + char exceptions = BSL_LOCKED; + + if (LockedStatus == UNLOCKED) + { + exceptions = SUCCESSFUL_OPERATION; +#ifndef RAM_BASED_BSL + FCTL3 = FwRamKey; // Clear Lock bit + FCTL1 = FwRamKey + WRT; // Set write bit +#endif + } + return exceptions; +} + +/******************************************************************************* +* *Function: BSL430_closeMemory +* *Description: Locks the Flash against writing +* *Returns: +* SUCCESSFUL_OPERATION Flash is now locked. +*******************************************************************************/ + +char BSL430_closeMemory(void) +{ + FCTL1 = FwRamKey; // Clear WRT bit + FCTL3 = FwRamKey + LOCK; // Set LOCK bit + + return SUCCESSFUL_OPERATION; +} + +/******************************************************************************* +* *Function: BSL430_readMemory +* *Description: Reads an array of bytes from memory into a supplied array +* *Parameters: +* unsigned long addr The address from which the read should begin +* char length The amount of bytes to read +* char* data The array into which the data will be saved +* *Returns: +* SUCCESSFUL_OPERATION All Data placed into data array successfully +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +char BSL430_readMemory(unsigned long addr, unsigned int length, char* data) +{ + unsigned long i; + +#ifdef RAM_BASED_BSL + flushBuffer(); +#endif + char exceptions = SUCCESSFUL_OPERATION; + + for (i = addr + length - 1; i >= addr; i--) + { + if (LockedStatus == UNLOCKED) + { + data[i - addr] = __data20_read_char(i); + } + else + { + return BSL_LOCKED; + } + } + return exceptions; +} + +/******************************************************************************* +* *Function: BSL430_crcCheck +* *Description: return a CRC check on the memory specified +* *Parameters: +* unsigned long addr The address from which to start the check +* int length The length of the data area to check +* int* return variable in which to put the return value +* *Returns: +* SUCCESSFUL_OPERATION CRC check done correctly +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +int BSL430_crcCheck(unsigned long addr, unsigned int length, int* result) +{ + unsigned long i; + +#ifdef RAM_BASED_BSL + flushBuffer(); +#endif + CRCINIRES = 0xFFFF; + for (i = addr; i < addr + length; i++) + { + if (LockedStatus == UNLOCKED) + { + CRCDIRB_L = __data20_read_char(i); + } + else + { + return BSL_LOCKED; + } + } + *result = CRCINIRES; + return SUCCESSFUL_OPERATION; + +} + +/******************************************************************************* +* *Function: BSL430_callAddress +* *Description: Loads the Program Counter with the supplied address +* *Parameters: +* unsigned long addr The address to which the function call should go +* *Returns: +* SUCCESSFUL_OPERATION Called location has returned +* BSL_LOCKED Correct Password has not yet been given +* *Note: +* If successful, this function does not return. +*******************************************************************************/ + +char BSL430_callAddress(unsigned long addr) +{ + if (LockedStatus == UNLOCKED) + { +#ifdef RAM_BASED_BSL + flushBuffer(); +#endif + ((void (*)())addr)(); // type cast addr to + // function ptr, call + return SUCCESSFUL_OPERATION; + } + return BSL_LOCKED; // can only be reached if + // BSL is locked +} + +/******************************************************************************* +* *Function: flushBuffer +* *Description: Flushes any remaining data in the buffer +* *Returns: +* SUCCESSFUL_OPERATION Flash is now locked. +*******************************************************************************/ +#ifdef RAM_BASED_BSL +char flushBuffer(void) +{ + unsigned long i; + char exceptions = SUCCESSFUL_OPERATION; + unsigned char* data = &BlockBuffer[0]; + + if (LockedStatus == UNLOCKED) + { + if (((BlockBufferStart & 0x7F) == 0) && (BlockBufferPtr == 128)) //Buffer is full and + // aligned + { + while (FCTL3 & BUSY) ; + FCTL3 = FWKEY; // Clear Lock bit + FCTL1 = FWKEY + BLKWRT + WRT; // Set write/block bit + + for (i = BlockBufferStart; i < BlockBufferStart + 128; i += 4) + { + __data20_write_long(i, *((long*)data)); + data += 4; + while ((FCTL3 & WAIT) == 0) ; + } // for + FCTL1 = FwRamKey; + while (FCTL3 & BUSY) ; + FCTL3 = FwRamKey + LOCK; + } // if + else + { + FCTL3 = FwRamKey; // Clear Lock bit + FCTL1 = FwRamKey + WRT; // Set write bit + for (i = BlockBufferStart; i < BlockBufferStart + BlockBufferPtr; i++) + { + if ((BlockBufferStart & 0x01) || i == BlockBufferStart + BlockBufferPtr - 1) + { + exceptions = BSL430_writeByte(i, *data); + data += 1; + } + else + { + exceptions = BSL430_writeWord(i, *(int *)data); + data += 2; + i++; + } + if (exceptions != SUCCESSFUL_OPERATION) + { + return exceptions; + } // if + } // for + } // else + BlockBufferStart = 0; + BlockBufferNext = 0; + BlockBufferPtr = 0; + } + else + { + exceptions = BSL_LOCKED; + } + return exceptions; +} + +#endif + +/******************************************************************************* +* *Function: BSL430_writeMemory +* *Description: Writes a byte array starting at a given address. +* Note: the function will write in word mode if possible +* (when start address is even) +* *Parameters: +* unsigned long startAddr The address to which the write should begin +* int size The number of bytes to write +* char* data The array of bytes to write (must be even aligned) +* *Returns: +* SUCCESSFUL_OPERATION Bytes written successfully +* MEMORY_WRITE_CHECK_FAILED A byte in data location post-write does not match data +* *parameter +* Note: write stops immediatly after a byte check fails +* BSL_LOCKED Correct Password has not yet been given +* VOLTAGE_CHANGE_DURING_PROGRAM Voltage changed during write (of a single byte/word) +*******************************************************************************/ + +char BSL430_writeMemory(unsigned long startAddr, unsigned int size, char* data) +{ + unsigned long i; + char exceptions = SUCCESSFUL_OPERATION; + + // Note: this function compiles quite differently based on whether the + // BSL is based out of RAM, or not. RAM based BSLs can use buffering + // and perform a block long word write. This is primarily used for + // USB BSLs for performance increase. + // Flash based BSLs will use the second second of code, below + +#ifdef RAM_BASED_BSL + if (LockedStatus == UNLOCKED) + { + if ((BlockBufferStart == 0) || BlockBufferNext == startAddr) + { + // if we are starting, or continuing a block... + if (BlockBufferStart == 0) + { + BlockBufferStart = startAddr; // if starting a new block, reset + // start addr + } + BlockBufferNext = startAddr + size; // always update the next addr for + // streaming + for (i = 0; i < size;) + { + BlockBuffer[BlockBufferPtr++] = *data; // add the incoming data to the buffer + data++; + startAddr++; + i++; // i incrimented here for check below + if (((startAddr) & 0x7F) == 0x00) // we've crossed a 128 byte block + // boundary + { + flushBuffer(); // flush out old buffer, writing... + // begin write on block boundary + return BSL430_writeMemory(startAddr, (size - i), data); + } // if + } // for + } // if buffer start + else + { + // for when data exists in the buffer, but we are jumping to a new place to write... + flushBuffer(); // flush out old buffer, writing.. + return BSL430_writeMemory(startAddr, size, data); // begin buffering new data + } + } // if unlocked + else + { + exceptions = BSL_LOCKED; + } + // Below is the writeMemory function compiled with Flash based BSLs. +#else + for (i = startAddr; i < startAddr + size; i++) + { +# ifndef RAM_WRITE_ONLY_BSL + // if the start address is odd, or we're 1 byte from end... + if ((startAddr & 0x01) || i == startAddr + size - 1) +# endif + { + exceptions = BSL430_writeByte(i, *data); + data += 1; + } +# ifndef RAM_WRITE_ONLY_BSL + // else, we're on an even addr, and have at least 1 word left.. + else + { + exceptions = BSL430_writeWord(i, *(int *)data); + data += 2; + i++; + } + if (exceptions != SUCCESSFUL_OPERATION) + { + return exceptions; + } // if +# endif + } // for +#endif + return exceptions; +} + +/******************************************************************************* +* *Function: BSL430_writeByte +* *Description: Writes a byte at a given address +* *Parameters: +* unsigned long addr The address to which the byte should be written +* char data The byte to write +* *Returns: +* SUCCESSFUL_OPERATION Byte written successfully +* MEMORY_WRITE_CHECK_FAILED Byte in data location post-write does not match data +* *parameter +* VOLTAGE_CHANGE_DURING_PROGRAM Voltage changed during write +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +char BSL430_writeByte(unsigned long addr, char data) +{ + char exceptions; + + if (LockedStatus == UNLOCKED) + { + exceptions = SUCCESSFUL_OPERATION; +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + __data20_write_char(addr, data); +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + if (data != __data20_read_char(addr)) + { + exceptions = MEMORY_WRITE_CHECK_FAILED; + } +#ifndef RAM_WRITE_ONLY_BSL +# ifndef DO_NOT_CHECK_VPE + if (FCTL4 & VPE) + { + exceptions = VOLTAGE_CHANGE_DURING_PROGRAM; + } +# endif +#endif + } + else + { + exceptions = BSL_LOCKED; + } + return exceptions; +} + +/******************************************************************************* +* *Function: BSL430_writeWord +* *Description: Writes a word at a given address +* *Parameters: +* unsigned long addr The address to which the word should be written +* int data The byte to write +* *Returns: +* SUCCESSFUL_OPERATION Word written successfully +* MEMORY_WRITE_CHECK_FAILED Word in data location post-write does not match data +* *parameter +* VOLTAGE_CHANGE_DURING_PROGRAM Voltage changed during write +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +char BSL430_writeWord(unsigned long addr, int data) +{ + char exceptions; + + if (LockedStatus == UNLOCKED) + { + exceptions = SUCCESSFUL_OPERATION; +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + __data20_write_short(addr, data); +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + if (data != __data20_read_short(addr)) + { + exceptions = MEMORY_WRITE_CHECK_FAILED; + } +#ifndef DO_NOT_CHECK_VPE + if (FCTL4 & VPE) + { + exceptions = VOLTAGE_CHANGE_DURING_PROGRAM; + } +#endif + } + else + { + exceptions = BSL_LOCKED; + } + return exceptions; +} + +/******************************************************************************* +* *Function: BSL430_eraseLocation +* *Description: Erases a memory segment which contains a given address +* *Parameters: +* char block_erase currently unused 1: erase block 0: erase segment +* unsigned long addr An address which is within the segment to be erased +* *Returns: +* SUCCESSFUL_OPERATION Segment erased +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +char BSL430_eraseLocation(char block_erase, unsigned long addr) +{ + char exceptions; + + if (LockedStatus == UNLOCKED) + { + exceptions = SUCCESSFUL_OPERATION; +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + FCTL3 = FwRamKey; // Clear Lock bit + FCTL1 = FwRamKey + ERASE; // Set Erase bit + __data20_write_char(addr, 0); // Dummy write to erase Flash seg +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + FCTL3 = FwRamKey + LOCK; // Set LOCK bit + } + else + { + exceptions = BSL_LOCKED; + } + return exceptions; +} + +/******************************************************************************* +* *Function: BSL430_massErase +* *Description: Mass erases the entire MSP430 device +* *Returns: +* SUCCESSFUL_OPERATION Flash erased +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ + +char BSL430_massErase() +{ + char exceptions = SUCCESSFUL_OPERATION; + volatile char *Flash_ptr; // Flash pointer + +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + FCTL3 = FwRamKey; +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + Flash_ptr = (char *)INTERRUPT_VECTOR_START; // Initialize Flash pointer + FCTL1 = FwRamKey + MERAS + ERASE; // Set Mass Erase bit + *Flash_ptr = 0; // Dummy write to erase main flash +#ifdef RAM_BASED_BSL + while (FCTL3 & BUSY) ; +#endif + FCTL3 = FwRamKey + LOCK; // Set LOCK bit + + return exceptions; +} diff --git a/ThirdParty/BSL430_Firmware/BSL430_API.h b/ThirdParty/BSL430_Firmware/BSL430_API.h new file mode 100644 index 0000000..84e4bc7 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_API.h @@ -0,0 +1,209 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef BSL_430_API_H +#define BSL_430_API_H + +#define LOCKED 0x00 +#define UNLOCKED 0xA5A5 + +// flags for mass erase call +#define MAIN_ONLY 0x00 // normal +#define ERASE_RAM 0x01 // unused in default +#define ERASE_INFO 0x02 // + +// Version definitions +#define FRAM_MEMORY 0x30 + +/******************************************************************************* +* *Function: BSL430_API_init +* *Description: sets the key for writing to flash, sets device state +*******************************************************************************/ +void BSL430_API_init(); + +/******************************************************************************* +* *Function: BSL430_lock_BSL +* *Description: Locks the BSL +* *Returns: +* SUCCESSFUL_OPERATION BSL Locked +*******************************************************************************/ +char BSL430_lock_BSL(); + +/******************************************************************************* +* *Function: BSL430_unlock_BSL +* *Description: Causes the BSL to compare the data buffer against the BSL password +* BSL state will be UNLOCKED if successful +*******************************Parameters: +* char* data A pointer to an array containing the password +*******************************Returns: +* SUCCESSFUL_OPERATION All data placed into data array successfully +* BSL_PASSWORD_ERROR Correct Password was not given +*******************************************************************************/ +char BSL430_unlock_BSL(char* data); + +/******************************************************************************* +* *Function: BSL430_toggleInfoLock +* *Description: Toggles the LOCKA bit for writing/erasing info A segment +* *Returns: +* SUCCESSFUL_OPERATION Info A is now open for writing or erasing. +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +char BSL430_toggleInfoLock(void); + +/******************************************************************************* +* *Function: BSL430_openMemory +* *Description: Unlocks the Flash for writing +* *Returns: +* SUCCESSFUL_OPERATION Flash is now open for writing. +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +char BSL430_openMemory(void); + +/******************************************************************************* +* *Function: BSL430_closeMemory +* *Description: Locks the Flash against writing +* *Returns: +* SUCCESSFUL_OPERATION Flash is now locked. +*******************************************************************************/ +char BSL430_closeMemory(void); + +/******************************************************************************* +* *Function: BSL430_readMemory +* *Description: Reads an array of bytes from memory into a supplied array +* *Parameters: +* unsigned long addr The address from which the read should begin +* char length The amount of bytes to read +* char* data The array into which the data will be saved +*******************************Returns: +* SUCCESSFUL_OPERATION All Data placed into data array successfully +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +char BSL430_readMemory(unsigned long addr, unsigned int length, char* data); + +/******************************************************************************* +* *Function: BSL430_crcCheck +* *Description: return a CRC check on the memory specified +* *Parameters: +* unsigned long addr The address from which to start the check +* int length The length of the data area to check +* int* return variable in which to put the return value +*******************************Returns: +* SUCCESSFUL_OPERATION CRC check done correctly +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +int BSL430_crcCheck(unsigned long addr, unsigned int length, int* result); + +/******************************************************************************* +* *Function: BSL430_callAddress +* *Description: Loads the Program Counter with the supplied address +* *Parameters: +* unsigned long addr The address to which the function call should go +*******************************Returns: +* SUCCESSFUL_OPERATION Called location has returned +* BSL_LOCKED Correct Password has not yet been given +*******************************Note: +* If successful, this function does not return. +*******************************************************************************/ +char BSL430_callAddress(unsigned long addr); + +/******************************************************************************* +* *Function: BSL430_writeMemory +* *Description: Writes a byte array starting at a given address. +* Note: the function will write in word mode if possible +* (when start address is even) +*******************************Parameters: +* unsigned long startAddr The address to which the write should begin +* int size The number of bytes to write +* char* data The array of bytes to write (must be even aligned) +*******************************Returns: +* SUCCESSFUL_OPERATION Bytes written successfully +* MEMORY_WRITE_CHECK_FAILED A byte in data location post-write does not match data +*******************************parameter +* Note: write stops immediatly after a byte check fails +* BSL_LOCKED Correct Password has not yet been given +* VOLTAGE_CHANGE_DURING_PROGRAM Voltage changed during write (of a single byte/word) +*******************************************************************************/ +char BSL430_writeMemory(unsigned long startAddr, unsigned int size, char* data); + +/******************************************************************************* +* *Function: BSL430_writeByte +* *Description: Writes a byte at a given address +* *Parameters: +* unsigned long addr The address to which the byte should be written +* char data The byte to write +*******************************Returns: +* SUCCESSFUL_OPERATION Byte written successfully +* MEMORY_WRITE_CHECK_FAILED Byte in data location post-write does not match data +*******************************parameter +* VOLTAGE_CHANGE_DURING_PROGRAM Voltage changed during write +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +char BSL430_writeByte(unsigned long addr, char data); + +/******************************************************************************* +* *Function: BSL430_writeWord +* *Description: Writes a word at a given address +* *Parameters: +* unsigned long addr The address to which the word should be written +* int data The byte to write +*******************************Returns: +* SUCCESSFUL_OPERATION Word written successfully +* MEMORY_WRITE_CHECK_FAILED Word in data location post-write does not match data +*******************************parameter +* VOLTAGE_CHANGE_DURING_PROGRAM Voltage changed during write +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +char BSL430_writeWord(unsigned long addr, int data); + +/******************************************************************************* +* *Function: BSL430_eraseLocation +* *Description: Erases a memory segment which contains a given address +* *Parameters: +* char block_erase currently unused 1: erase block 0: erase segment +* unsigned long addr An address which is within the segment to be erased +*******************************Returns: +* SUCCESSFUL_OPERATION Segment erased +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +char BSL430_eraseLocation(char block_erase, unsigned long addr); + +/******************************************************************************* +* *Function: BSL430_massErase +* *Description: Mass erases the entire MSP430 device +* *Returns: +* SUCCESSFUL_OPERATION Flash erased +* BSL_LOCKED Correct Password has not yet been given +*******************************************************************************/ +char BSL430_massErase(); + +#endif diff --git a/ThirdParty/BSL430_Firmware/BSL430_Command_Definitions.h b/ThirdParty/BSL430_Firmware/BSL430_Command_Definitions.h new file mode 100644 index 0000000..6bfe779 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_Command_Definitions.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef BSL_COMMAND_DEFINITIONS_H +#define BSL_COMMAND_DEFINITIONS_H + +//Received commands +#define RX_DATA_BLOCK 0x10 +#define RX_PASSWORD 0x11 +#define ERASE_SEGMENT 0x12 +#define TOGGLE_INFO 0x13 +#define ERASE_BLOCK 0x14 +#define MASS_ERASE 0x15 +#define CRC_CHECK 0x16 +#define LOAD_PC 0x17 +#define TX_DATA_BLOCK 0x18 +#define TX_BSL_VERSION 0x19 +#define TX_BUFFER_SIZE 0x1A +#define RX_DATA_BLOCK_FAST 0x1B + +//Responses +#define BSL_DATA_REPLY 0x3A +#define BSL_MESSAGE_REPLY 0x3B +#define ACK SUCCESSFUL_OPERATION + +// Error Codes +// - From the API +#define SUCCESSFUL_OPERATION 0x00 +#define NO_EXCEPTIONS 0x00 +#define MEMORY_WRITE_CHECK_FAILED 0x01 +#define FLASH_FAIL_BIT_SET 0x02 +#define VOLTAGE_CHANGE_DURING_PROGRAM 0x03 +#define BSL_LOCKED 0x04 +#define BSL_PASSWORD_ERROR 0x05 +#define BYTE_WRITE_FORBIDDEN 0x06 +// - From the Command Interpreter +#define UNKNOWN_COMMAND 0x07 +#define LENGTH_TOO_BIG_FOR_BUFFER 0x08 + +#endif diff --git a/ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.c b/ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.c new file mode 100644 index 0000000..1e41ce6 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.c @@ -0,0 +1,343 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "BSL430_Command_Interpreter.h" +#include "BSL430_Command_Definitions.h" +#include "BSL430_API.h" +#include "BSL430_PI.h" +#include "BSL_Device_File.h" + +/******************************************************************************* +* Change Log: +* 2.2.09 LCW worked on RAM Loader function +* -------------------------------------------------------------------------------- +* Version 3 work begins +* 07.08.09 LCW Removed parameter from mass erase +* -------------------------------------------------------------------------------- +* Version 4 work begins +* 23.11.09 LCW Changed to more generic API function calls +* -------------------------------------------------------------------------------- +* Version 5 work begins +* 10.03.10 LCW 'Off by one' error with sending Data fixed +* 15.03.10 LCW Misc comment cleanup for source release +* -------------------------------------------------------------------------------- +* Version 5.1 (no output change, source/comment modified) +* 15.04.10 LCW Changed receiveDataBlock to remove warning +* -------------------------------------------------------------------------------- +* Version 6.0 +* 15.04.10 LCW Made Buffer_Size an unsigned int +* -------------------------------------------------------------------------------- +* Version 6.1 (no output change, source/comment modified) +* 28.02.11 LCW Ran Uncrustify +* -------------------------------------------------------------------------------- +* Version 7.0 +* 13.04.11 LCW Made read length variables an unsigned int, several others as well +*******************************************************************************/ + +void interpretCommand(); +void receiveDataBlock(unsigned long addr, char* data, char fastWrite); +void receivePassword(); +void eraseLocation(char block_erase, unsigned long addr); +void CRC_Check(unsigned long addr, unsigned int length); +void sendDataBlock(unsigned long addr, unsigned int length); +void sendMessage(char message); + +extern __no_init char* BSL430_ReceiveBuffer; +extern __no_init char* BSL430_SendBuffer; +extern __no_init unsigned int BSL430_BufferSize; + +const unsigned char BSL430_Vendor_Version @ "BSL430_VERSION_VENDOR" = 0x54; // Uppercase T in ASCII +const unsigned char BSL430_CI_Version @ "BSL430_VERSION_CI" = 0x07; + +/******************************************************************************* +* *Function: main +* *Description: Initializes the BSL Command Interpreter and begins listening for +* incoming packets +*******************************************************************************/ +#pragma required=BSL430_Vendor_Version +#pragma required=BSL430_CI_Version +void main(void) +{ + unsigned char eventFlags = 0; + volatile int i, ii; + + BSL430_API_init(); + PI_init(); + + while (1) + { + eventFlags = PI_receivePacket(); + if (eventFlags & DATA_RECEIVED) + { + interpretCommand(); + } + } +} + +/******************************************************************************* +* *Function: interpretCommand +* *Description: Interprets the command contained in the data buffer and +* calls the appropriate BSL api function +*******************************************************************************/ + +void interpretCommand() +{ + unsigned char command = BSL430_ReceiveBuffer[0]; + unsigned long addr = BSL430_ReceiveBuffer[1]; + + addr |= ((unsigned long)BSL430_ReceiveBuffer[2]) << 8; + addr |= ((unsigned long)BSL430_ReceiveBuffer[3]) << 16; + switch (command) + { +#ifdef SUPPORTS_RX_DATA_BLOCK_FAST + case RX_DATA_BLOCK_FAST: + receiveDataBlock(addr, &BSL430_ReceiveBuffer[4], 1); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_RX_PASSWORD + case RX_PASSWORD: // Receive password + receivePassword(); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_LOAD_PC + case LOAD_PC: // Load PC + sendMessage(BSL430_callAddress(addr)); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_RX_DATA_BLOCK + case RX_DATA_BLOCK: // Receive data block + receiveDataBlock(addr, &BSL430_ReceiveBuffer[4], 0); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_MASS_ERASE + case MASS_ERASE: // Mass Erase + sendMessage(BSL430_massErase()); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_ERASE_SEGMENT + case ERASE_SEGMENT: // Erase segment + eraseLocation(0, addr); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_TOGGLE_INFO + case TOGGLE_INFO: // Toggle Info lock + sendMessage(BSL430_toggleInfoLock()); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_ERASE_BLOCK + case ERASE_BLOCK: // Erase Block + eraseLocation(1, addr); + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_CRC_CHECK + case CRC_CHECK: // CRC Check + { + unsigned int length; + length = BSL430_ReceiveBuffer[4]; + length |= ((unsigned long)BSL430_ReceiveBuffer[5]) << 8; + CRC_Check(addr, length); + } + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_TX_DATA_BLOCK + case TX_DATA_BLOCK: // Transmit Data Block + { + unsigned int length; + length = BSL430_ReceiveBuffer[4]; + length |= BSL430_ReceiveBuffer[5] << 8; + sendDataBlock(addr, length); + } + break; +#endif + /*----------------------------------------------------------------------------*/ +#ifdef SUPPORTS_TX_BSL_VERSION + case TX_BSL_VERSION: // Transmit BSL Version array + sendDataBlock((unsigned long)(&BSL430_Vendor_Version), 4); + break; +#endif + /*----------------------------------------------------------------------------*/ + default: // unknown command + sendMessage(UNKNOWN_COMMAND); + } +} + +/******************************************************************************* +* *Function: receiveDataBlock +* *Description: Calls the API to write a data block to a given memory location +* *Parameters: +* unsigned long addr Address to which the data should be written +* char* data Pointer to an array of data to write +* char FastWrite If 1, do not send a reply message +*******************************************************************************/ + +void receiveDataBlock(unsigned long addr, char* data, char fastWrite) +{ +#ifndef RAM_WRITE_ONLY_BSL + char returnValue; + returnValue = BSL430_openMemory(); + if ((returnValue == SUCCESSFUL_OPERATION) & (BSL430_BufferSize > 4)) +#endif + { +#ifndef RAM_WRITE_ONLY_BSL + returnValue = BSL430_writeMemory(addr, BSL430_BufferSize - 4, data); +#else + BSL430_writeMemory(addr, BSL430_BufferSize - 4, data); +#endif + } +#ifndef RAM_WRITE_ONLY_BSL + if (!fastWrite) + { + sendMessage(returnValue); + } + BSL430_closeMemory(); +#endif +} + +/******************************************************************************* +* *Function: receivePassword +* *Description: Calls the API to unlock the BSL +*******************************************************************************/ + +void receivePassword() +{ + if (BSL430_unlock_BSL(&BSL430_ReceiveBuffer[1]) == SUCCESSFUL_OPERATION) + { + sendMessage(ACK); + } + else + { + sendMessage(BSL_PASSWORD_ERROR); + } +} + +/******************************************************************************* +* *Function: eraseSegment +* *Description: Calls the API to erase a segment containing the given address +* *Parameters: +* char block_erase If 1, the entire block should be erased +* unsigned long addr Address in the segment to be erased. +*******************************************************************************/ + +void eraseLocation(char block_erase, unsigned long addr) +{ + sendMessage(BSL430_eraseLocation(block_erase, addr)); +} + +/******************************************************************************* +* *Function: CRC_Check +* *Description: Calls the API to perform a CRC check over a given addr+length of data +* *Parameters: +* unsigned long addr Start Addr of CRC +* unsigned int length number of bytes in the CRC +*******************************************************************************/ + +void CRC_Check(unsigned long addr, unsigned int length) +{ + int crcResult; + int crcStatus; + + crcStatus = BSL430_crcCheck(addr, length, &crcResult); + if (crcStatus == BSL_LOCKED) + { + sendMessage(BSL_LOCKED); + } + else + { + BSL430_SendBuffer[0] = BSL_DATA_REPLY; + BSL430_SendBuffer[1] = (char)(crcResult & 0xFF); + BSL430_SendBuffer[2] = (char)((crcResult >> 8) & 0xFF); + PI_sendData(3); + } +} + +/******************************************************************************* +* *Function: sendDataBlock +* *Description: Fills the SendBuffer array with bytes from the given parameters +* Sends the data by calling the PI, or sends an error +* *Parameters: +* unsigned long addr The address from which to begin reading the block +* int length The number of bytes to read +*******************************************************************************/ + +void sendDataBlock(unsigned long addr, unsigned int length) +{ + unsigned long endAddr = addr + length; + unsigned int bytes; + char returnValue = SUCCESSFUL_OPERATION; + + while ((addr < endAddr) & (returnValue == SUCCESSFUL_OPERATION)) + { + if ((endAddr - addr) > PI_getBufferSize() - 1) + { + bytes = PI_getBufferSize() - 1; + } + else + { + bytes = (endAddr - addr); + } + returnValue = BSL430_readMemory(addr, bytes, &BSL430_SendBuffer[1]); + if (returnValue == SUCCESSFUL_OPERATION) + { + BSL430_SendBuffer[0] = BSL_DATA_REPLY; + PI_sendData(bytes + 1); + } + else + { + sendMessage(returnValue); + } + addr += bytes; + } +} + +/******************************************************************************* +* *Function: sendMessage +* *Description: Sends a Reply message with attached information +* *Parameters: +* char message the message to send +*******************************************************************************/ + +void sendMessage(char message) +{ + BSL430_SendBuffer[0] = BSL_MESSAGE_REPLY; + BSL430_SendBuffer[1] = message; + PI_sendData(2); +} diff --git a/ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.h b/ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.h new file mode 100644 index 0000000..44fbeb5 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_Command_Interpreter.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef BSL_COMMAND_INTERPRETER_H +#define BSL_COMMAND_INTERPRETER_H + +// Empty file for possible future use + +#endif diff --git a/ThirdParty/BSL430_Firmware/BSL430_Low_Level_Init.s43 b/ThirdParty/BSL430_Firmware/BSL430_Low_Level_Init.s43 new file mode 100644 index 0000000..88b0f1a --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_Low_Level_Init.s43 @@ -0,0 +1,164 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +//************************************************************** +// BSL SW low level functions +//************************************************************** +#include "BSL_Device_File.h" + +#define ARG1 R12 +#define ARG2 R13 +#define ARG3 R14 +#define ARG4 R15 + +#define RET_low R12 +#define RET_high r13 + +EXTERN version_array +EXTERN __program_start + + COMMON ZAREA +;-------------------------------------------------------------- + ;BSL Z-Area +;-------------------------------------------------------------- +BSL_Entry_JMP JMP __program_start ; BSL ENTRY AREA + JMP BSL_ACTION0 + JMP $ ;BSL_ACTION1 unused + JMP $ ;BSL_ACTION2 unused + JMP $ ;BSL_ACTION3 unused + JMP $ ;BSL_ACTION4 unused + JMP $ ;BSL_ACTION5 unused + JMP $ ;BSL_ACTION6 unused + + RSEG ZAREA_CODE +//************************************************************** +// Name :BSL_ACTION0 +// Function :BSL Action 0 is a function caller +// Arguments :r15, Function ID +// - 0: Get Software ID +// - 1: Unlock BSL Flash area +// Returns :r14, Low Word +// :r15, High Word +//************************************************************** +BSL_ACTION0: + CMP #0xDEAD, ARG2 + JNE RETURN_ERROR + CMP #0xBEEF, ARG3 + JNE RETURN_ERROR + JMP RETURN_TO_BSL ; 2 == return to BSL +RETURN_ERROR + CLR RET_low + CLR RET_high + RETA + +//************************************************************** +// Name :RETURN_TO_BSL +// Function :Returns to a BSL function after that function has made +// :an external function call +// Arguments none +// Returns :none +//************************************************************** +RETURN_TO_BSL + POP.W RET_low ; remove first word from return addr + POP.W RET_high ; remove second word from return addr + + RETA ; should now return to the BSL location + +;-------------------------------------------------------------- + ;BSL Signature Area +;-------------------------------------------------------------- + PUBLIC BslEntryLoc ;location of BSL Entry Address + PUBLIC BslProtectVecLoc ;location of BSL_Protect() vector + PUBLIC PBSLSigLoc ;location of primary BSL signature + PUBLIC SBSLSigLoc ;location of secondary BSL signature + PUBLIC PJTAGLOCK_KEY ;location of primary JTAG Lock Key + PUBLIC SJTAGLOCK_KEY ;location of secondary JTAG Lock Key + + PUBLIC BSL_REQ_JTAG_OPEN + PUBLIC BSL_REQ_APP_CALL + +//************************************************************** +// Name :BSL_Protect +// Function :Protects the BSL memory and protects the SYS module +// Arguments :none +// Returns :0 in R12.0 for lock (keep JTAGLOCK_KEY state) +// :1 in R12.0 for unlock (overwrite JTAGLOCK_KEY) : BSL_REQ_JTAG_OPEN +// :0 in R12.1 for no appended call +// :1 in R12.1 for appended call via BSLENTRY : BSL_REQ_APP_CALL +//************************************************************** +BSL_REQ_JTAG_OPEN EQU 0x0001 ;Return Value for BSLUNLOCK Function to open JTAG +BSL_REQ_APP_CALL EQU 0x0002 ;Return Value for BSLUNLOCK Function to Call BSL again + +BSL_Protect: + CLR.W RET_low ; clears JTAG_OPEN, keeping KEY state + BIS #SYSBSLPE+SYSBSLSIZE0+SYSBSLSIZE1 , &SYSBSLC ; protects BSL + mov.w #0x9628, &USBKEYPID + bis.w #PSEIEN, &USBPHYCTL + bit.w #PUR_IN, &USBCNF + jnz REQUEST_BSL ; if PUR_IN set, request BSL + cmp.w #0xFFFF, &0xFFFE ; otherwise, test for blank RESET + jne JUST_RETA ; if not blank, skip delay and start + ;--------------------------------------------------------------------- + ; Delay for USB power-up + mov.w #300, R11 +DELAY_LOOP dec.w R11 + jnz DELAY_LOOP + ;--------------------------------------------------------------------- + bit.w #USBBGVBV, &USBPWRCTL ; test for USB power + jz JUST_RETA ; no power, jump to just start +REQUEST_BSL BIS.W #BSL_REQ_APP_CALL, RET_low +JUST_RETA bic.w #PSEIEN, &USBPHYCTL +#ifdef LOCK_USB_CORRECTLY + mov.w #0x0000, &USBKEYPID ; lock USB Correctly +#else + #ifdef LOCK_USB_LEGACY + mov.b #0x00, &USBKEY + #else + #error "define either legacy or correct USB module closing" + #endif +#endif + RETA + + COMMON BSLSIG + DW 0xFFFF +BslProtectVecLoc DW BSL_Protect ;adress of function +PBSLSigLoc DW 03CA5h ;1st BSL signature +SBSLSigLoc DW 0C35Ah ;2nd BSL signature + DW 0xFFFF +BslEntryLoc DW BSL_Entry_JMP + + COMMON JTAGLOCK_KEY +PJTAGLOCK_KEY DW 0xFFFF ; Primary Key Location +SJTAGLOCK_KEY DW 0xFFFF ; Secondary Key Location + ; set default unlock JTAG with option to lock with writting + ; a value <> 0x0000 or 0xFFFF + END diff --git a/ThirdParty/BSL430_Firmware/BSL430_PI.h b/ThirdParty/BSL430_Firmware/BSL430_PI.h new file mode 100644 index 0000000..3069fca --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_PI.h @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef BSL_PI_H +#define BSL_PI_H + +#define RX_PACKET_ONGOING 0x00 +#define DATA_RECEIVED BIT0 +#define RX_ERROR_RECOVERABLE BIT1 +#define RX_ERROR_REINIT BIT2 +#define RX_ERROR_FATAL BIT3 +#define PI_DATA_RECEIVED BIT4 + +#define PI_COMMAND_UPPER 0x50 + +//PI version Signifiers +#define BSL430_TIMER_A_PI 0x00 +#define BSL430_USB_PI 0x30 +#define BSL430_USCIA_PI 0x50 +#define BSL430_eUSCIA_PI 0x70 +#define BSL430_USCIB_I2C_PI 0x090 +#define BSL430_eUSCIB_I2C_PI 0x0A0 +#define BSL430_eUSCI_I2C_UART_PI 0xB0 +/******************************************************************************* +* *Function: init +* *Description: Initialize the peripheral and ports to begin TX/RX +*******************************************************************************/ +void PI_init(); + +/******************************************************************************* +* *Function: PI_receivePacket +* *Description: Reads an entire packet, verifies it, and sends it to the core to be interpreted +* *Returns: +* DATA_RECEIVED A packet has been received and can be processed +* RX_ERROR_RECOVERABLE An error has occured, the function can be called again to +* receive a new packet +*******************************************************************************/ +char PI_receivePacket(); + +/******************************************************************************* +* *Function: PI_sendData +* *Description: Sends the data in the data buffer +* *Parameters: +* int bufSize - the number of bytes to send +*******************************************************************************/ +void PI_sendData(int bufSize); + +/******************************************************************************* +* *Function: PI_getBufferSize +* *Description: Returns the max Data Buffer Size for this PI +* *Returns: max buffer size +*******************************************************************************/ +int PI_getBufferSize(); + +#endif diff --git a/ThirdParty/BSL430_Firmware/BSL430_USB_PI.c b/ThirdParty/BSL430_Firmware/BSL430_USB_PI.c new file mode 100644 index 0000000..d6f66e5 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL430_USB_PI.c @@ -0,0 +1,287 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "BSL_Device_File.h" +#include "types.h" // Basic Type declarations +#include "Proj_Settings.h" +#include "usb.h" // USB-specific Data Structures +#include "hal_UCS.h" +#include "USBAPI.h" +#include "USBAPI.h" +#include "BSL430_Command_Interpreter.h" +#include "BSL430_PI.h" +#include "BSL430_API.h" + +void interpretPI_Command(); +#define MAX_BUFFER_SIZE 62 +extern __no_init BYTE bFunctionSuspended; +__no_init char *BSL430_ReceiveBuffer; +__no_init char *BSL430_SendBuffer; +__no_init unsigned int BSL430_BufferSize; +char RAM_Buf[MAX_BUFFER_SIZE+1]; + +// TA PI Commands +#define USBDISCONNECT (PI_COMMAND_UPPER + 0x03) + +#ifndef USBKEYPID_STARTUP_BUGFIX +#error ERROR: Ensure that the USBKEYPID is closed correctly in the low level init file! +#endif + +/******************************************************************************* +Change Log: +-------------------------------------------------------------------------------- +Version 6 work begins +11.10.12 LCW USB bugfixes + Reintroduced USB conf lock bug to keep device behavior the same +-------------------------------------------------------------------------------- +Version 5 work begins +02.03.12 LCW Correctly lock USB conf registers in low level init + LCW Added bugfix check to C file to ensure other devices get fix +-------------------------------------------------------------------------------- +Version 4 work begins +16.03.10 LCW DCORSEL_3 -> DCORSEL_4 + Inlined XT2 startup code + Source code cleanup +*******************************************************************************/ + +#define USB_PI 0x30 +#define USB_PI_VERSION 0x10 +#define PI_VERSION (USB_PI+USB_PI_VERSION) // 0x36 +const unsigned char BSL430_PI_Version @ "BSL430_VERSION_PI" = PI_VERSION; +/******************************************************************************* +*Function: init +*Description: Initialize the peripheral and ports to begin TX/RX +*******************************************************************************/ +#pragma required=BSL430_PI_Version +void PI_init() +{ +#ifdef RAM_BASED_BSL + __disable_interrupt(); + BSL430_ReceiveBuffer = (char*)(ReceiveBuffer)+1; + BSL430_SendBuffer = &RAM_Buf[1]; +#else + volatile unsigned short timeOut = 0; + __disable_interrupt(); + + // Init Leds + GREEN_LED_PORT_DIR |= GREEN_LED; + RED_LED_PORT_DIR |= RED_LED; + + GREEN_LED_PORT &= ~GREEN_LED; + RED_LED_PORT &= ~RED_LED; + + BSL430_ReceiveBuffer = (char*)(ReceiveBuffer)+1; + BSL430_SendBuffer = &RAM_Buf[1]; + + //Set VCore for 1.8 Volt - required by USB module! + + // Open PMM registers for write access + PMMCTL0_H = 0xA5; + + unsigned short level = PMMCTL0_L & (PMMCOREV1 | PMMCOREV0); + while(level < 4) + { + // Set SVM highside to new level and check if a VCore increase is possible + SVSMHCTL = SVMHE | SVSHE | (SVSMHRRL0 * level); + // Wait until SVM highside is settled + while ((PMMIFG & SVSMHDLYIFG) == 0); + // Clear flag + PMMIFG &= ~SVSMHDLYIFG; + // Set also SVS highside to new level + // Vcc is high enough for a Vcore increase + SVSMHCTL |= (SVSHRVL0 * level); + // Wait until SVM highside is settled + while ((PMMIFG & SVSMHDLYIFG) == 0); + // Clear flag + PMMIFG &= ~SVSMHDLYIFG; + //**************flow change for errata workaround ************ + // Set VCore to new level + PMMCTL0_L = PMMCOREV0 * level; + // Set SVM, SVS low side to new level + SVSMLCTL = SVMLE | (SVSMLRRL0 * level)| SVSLE | (SVSLRVL0 * level); + // Wait until SVM, SVS low side is settled + while ((PMMIFG & SVSMLDLYIFG) == 0); + // Clear flag + PMMIFG &= ~SVSMLDLYIFG; + //**************flow change for errata workaround ************ + + // Increment next VCore level + level++; + } + // Lock PMM registers for write access + PMMCTL0_H = 0x00; + + //XT2 Startup + XT2SEL_PORT |= XT2SEL_PINS; + UCSCTL6 |= XT1OFF; + + UCSCTL6 &= ~(XT2OFF + XT2DRIVE0 + XT2DRIVE1); // enalbe XT2 even if not used + while (UCSCTL7 & (DCOFFG + XT2OFFG) && timeOut++ < TIME_OUT_COUNT) + { + UCSCTL7 &= ~(DCOFFG + XT2OFFG); // Clear OSC flaut Flags fault flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } + while(timeOut >= TIME_OUT_COUNT) + { + GREEN_LED_PORT ^= GREEN_LED; + RED_LED_PORT ^= RED_LED; + __delay_cycles(800000); + } + + UCSCTL3 = SELREF__REFOCLK; // REFO for FLL reference + UCSCTL4 = SELA__REFOCLK + SELS__XT2CLK + SELM__DCOCLK; // ACLK = REFOCLK, SMCLK = XT2 ?? used??, MCLK = DCO + UCSCTL5 = DIVA_2; // ACLK/4 + __delay_cycles(800000); + + wUSBPLL = USBPLL_SETCLK_4_0; + + UCSCTL0 = 0x000; // Set DCO to lowest Tap + UCSCTL2= FLLD__2 | ((DCO_SPEED/ACLK_SPEED) - 1); + UCSCTL1= DCORSEL_4; + UCSCTL4 = SELM__DCOCLKDIV + SELS__DCOCLKDIV + SELA__REFOCLK; + + //init USB + USB_init(); + + if (USBPWRCTL & USBBGVBV) + { + USB_enable(); + USB_reset(); + USBCNF |= PUR_EN; // generate rising edge on DP -> the host enumerates our device as full speed device + } +#endif + +} +#ifdef RAM_BASED_BSL +void USB_disconnect() +{ + USBKEYPID = 0x9628; //set KEY and PID to 0x9628 -> access to + //configuration registers enabled + USBCNF &= ~PUR_EN; //disconnect pull up resistor - logical + //disconnect from HOST + USBPWRCTL &= ~VBOFFIE; //disable interrupt VUSBoff + USBKEYPID = 0x9600; //access to configuration registers disabled +} + +void USB_disable() +{ + USBKEYPID = 0x9628; //set KEY and PID to 0x9628 -> access to + //configuration registers enabled + USBCNF = 0; //disable USB module + USBPLLCTL &= ~UPLLEN; //disable PLL + USBKEYPID = 0x9600; //access to configuration registers disabled +} +#endif + +/******************************************************************************* +*Function: PI_receivePacket +*Description: Reads an entire packet, verifies it, and sends it to the core to be interpreted +*Returns: +* DATA_RECEIVED A packet has been received and can be processed +* RX_ERROR_RECOVERABLE An error has occured, the function can be called again to +* receive a new packet +*******************************************************************************/ +char PI_receivePacket() +{ + BSL430_BufferSize = 0; + UsbClearReceiveBuffer(); + while( BSL430_BufferSize == 0 ) + { + UsbHandler(); + if (bEnumerationStatus == ENUMERATION_COMPLETE) // if enumeration completed + { + GREEN_LED_PORT |= GREEN_LED; // turn on Green LED with enumeration + + if (bFunctionSuspended == FALSE) // and device not suspended + { + BSL430_BufferSize = UsbReceiveHID(); + } + } + } + if( BSL430_BufferSize > 0 ) + { + + RED_LED_PORT ^= RED_LED; // Toggle RED LED with each packet RX + + BSL430_BufferSize = *ReceiveBuffer; // first byte is size + if( (BSL430_ReceiveBuffer[0]) == USBDISCONNECT) + { + #ifdef RAM_BASED_BSL + USB_disconnect(); + __delay_cycles(8000001); + USB_disable(); + __delay_cycles(8000001); + UCSCTL6 |= XT2OFF; // Switch off XT2 oscillator + #else + USBKEYPID = 0x9628; // set KEY and PID to 0x9628 -> access to configuration registers enabled + USBPWRCTL = 0; //~VBOFFIE+~UPLLEN; // disable interrupt VUSBoff + USBCNF = 0; + UCSCTL6 |= XT2OFF; // Switch off XT2 oscillator + #endif + PMMCTL0 = PMMPW | PMMSWBOR; // generate BOR for reseting device + } + else + { + return DATA_RECEIVED; + } + } + return 0x00; +} +/******************************************************************************* +*Function: interpretPI_Command +*Description: interprets a PI command +*Parameters: + none +*******************************************************************************/ +void interpretPI_Command() +{} + +/******************************************************************************* +*Function: PI_sendData +*Description: Sends the data in the data buffer +*Parameters: + int bufSize - the number of bytes to send +*******************************************************************************/ +void PI_sendData(int bufSize) +{ + RAM_Buf[0] = bufSize; + while( UsbSendHID((BYTE const*)RAM_Buf) == 0 ); +} +/******************************************************************************* +*Function: PI_getBufferSize +*Description: Returns the max Data Buffer Size for this PI (size of BSL430_SendBuffer) +*Returns: size in bytes of BSL430_SendBuffer +*******************************************************************************/ +int PI_getBufferSize() +{ + return MAX_BUFFER_SIZE; +} diff --git a/ThirdParty/BSL430_Firmware/BSL_Device_File.h b/ThirdParty/BSL430_Firmware/BSL_Device_File.h new file mode 100644 index 0000000..d58c155 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/BSL_Device_File.h @@ -0,0 +1,175 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "msp430.h" + +// Vendor ID (VID) for device, TI (MSP430)=0x2047 +// You can use is only in this example. +// You can order your own VID at www.usb.org +#define USB_VID 0x2047 // Vendor ID, 0x2047 for Texas Instruments Incorporated (MSP430 Group) + +#ifdef MSP_FET + #define USB_PID 0x0204 // Product ID (PID), 0x0203 ez-FET, 0x0204 MSP FET +#endif + +#ifdef eZ_FET + #define USB_PID 0x0203 // Product ID (PID), 0x0203 ez-FET, 0x0204 MSP FET +#endif + +// The following defines are here so that the supported crystals can be +// both easily seen, and changed without having to recompute any TBCCR6 values +// When changing these values, be sure to also change the matching SPEED_x_PLL values +// NOTE: Speeds must be in order from highest to lowest! +// NOTE: If only one external frequency is used, +// all SPEED_x_PLL values must be changed to that value! + +//24MHz will be detected +#define SPEED_1 24000000 +#define SPEED_1_PLL USBPLL_SETCLK_24_0; + +//12MHz will be detected +#define SPEED_2 12000000 +#define SPEED_2_PLL USBPLL_SETCLK_12_0; + +//8MHz will be detected +#define SPEED_3 8000000 +#define SPEED_3_PLL USBPLL_SETCLK_8_0; + +//4MHz will be detected +#define SPEED_4 4000000 +#define SPEED_4_PLL USBPLL_SETCLK_4_0; + + +//Device Specific Definitions +#define MASS_ERASE_DELAY 0x8000 +#define INTERRUPT_VECTOR_START 0xFFE0 +#define INTERRUPT_VECTOR_END 0xFFFF +#define SECURE_RAM_START 0x2400 + +//******************* CHANGE BASED ON RAM/FLASH +#define DCO_SPEED 8000000 +#define ACLK_SPEED 32768 + +#define TIMER_CTL TBCTL +#define TIMER_CTL_SETTINGS TBSSEL_2 + MC_2 +#define TIMER_CTL_CLR TBCLR + +#define TIMER_CCTL TBCCTL6 +#define TIMER_CCTL_SETTINGS CM_1 + CCIS_1+ CAP +#define TIMER_CCTL_IFG CCIFG +#define TIMER_CCTL_CM CM_1 + +#define TIMER_CCR TBCCR6 + + +#ifdef MSP_FET + //define xt2 pins fo fets + #define XT2SEL_PORT P7SEL + #define XT2SEL_PINS (BIT2 + BIT3) + + //define LEDS pins fo fets + #define GREEN_LED BIT3 + #define GREEN_LED_PORT P5OUT + #define GREEN_LED_PORT_DIR P5DIR + + #define RED_LED BIT7 + #define RED_LED_PORT P6OUT + #define RED_LED_PORT_DIR P6DIR + + #define TIME_OUT_COUNT 1000 +#endif + +#ifdef eZ_FET + //define xt2 pins fo fets + #define XT2SEL_PORT P5SEL + #define XT2SEL_PINS (BIT2 + BIT3) + + //define LEDS pins fo fets + #define GREEN_LED BIT3 + #define GREEN_LED_PORT P1OUT + #define GREEN_LED_PORT_DIR P1DIR + + #define RED_LED BIT2 + #define RED_LED_PORT P1OUT + #define RED_LED_PORT_DIR P1DIR + + #define TIME_OUT_COUNT 1000 +#endif + +//Device Specific Definitions + +//Device Specific Definitions for commands and bugs +#ifdef RAM_WRITE_ONLY_BSL_DEF + #define RAM_WRITE_ONLY_BSL 0x80 +#endif + +#ifdef FLASH_WRITE_BSL + #define FULL_FLASH_BSL + #define RAM_BASED_BSL 1 +#endif + +#define DO_NOT_CHECK_VPE +#define USBKEYPID_STARTUP_BUGFIX +#define LOCK_USB_CORRECTLY +// Bugfix not implimented, but left in on purpose + +// standard command includes +#ifdef RAM_WRITE_ONLY_BSL + #define SUPPORTS_RX_DATA_BLOCK_FAST + #define SUPPORTS_RX_PASSWORD + #define SUPPORTS_LOAD_PC +#endif + +#ifdef FULL_FLASH_BSL + #define FULL_GENERIC_COMMANDS + #define FLASH_COMMANDS +#endif + +#ifdef FULL_FRAM_BSL + #define FULL_GENERIC_COMMANDS +#endif + +#ifdef FULL_GENERIC_COMMANDS + #define SUPPORTS_RX_DATA_BLOCK_FAST + #define SUPPORTS_RX_PASSWORD + #define SUPPORTS_LOAD_PC + #define SUPPORTS_RX_DATA_BLOCK + #define SUPPORTS_MASS_ERASE + #define SUPPORTS_CRC_CHECK + #define SUPPORTS_TX_DATA_BLOCK + #define SUPPORTS_TX_BSL_VERSION +#endif + +#ifdef FLASH_COMMANDS + #define SUPPORTS_ERASE_SEGMENT + #define SUPPORTS_TOGGLE_INFO +#endif diff --git a/ThirdParty/BSL430_Firmware/CONFIG/lnk430F5509_RAM_AREA.xcl b/ThirdParty/BSL430_Firmware/CONFIG/lnk430F5509_RAM_AREA.xcl new file mode 100644 index 0000000..5c3f9bb --- /dev/null +++ b/ThirdParty/BSL430_Firmware/CONFIG/lnk430F5509_RAM_AREA.xcl @@ -0,0 +1,183 @@ +//***************************************************************** +// +// XLINK command file for IAR Embedded Workbench for MSP430. +// +// This file should be used with the MSP430F5438 microprocessor. +// +// Copyright 1996-2007 IAR Systems. All rights reserved. +// +// Usage: xlink your_file(s) -f lnk430f5438 library +// +// $Revision: 1.30 $ +// +//***************************************************************** + +//***************************************************************** +// +// The memory areas of the MSP430F5438 microprocessor: +// +// Peripheral units: 0 - 01FF +// +// Information memory (FLASH): 1800 - 19FF +// +// Read-write memory (RAM): 1C00 - 5BFF +// +// Read-only memory (FLASH): 5C00 - FF7F +// 10000-45BFF +// +//***************************************************************** + +//***************************************************************** +// +// The following segments are defined in this linker command file: +// +// Data read/write segments (RAM) +// ============================== +// +// segment Restrictions Usage +// ------- ------------ -------------------------- +// DATA16_I < 10000 Data16 initialized variables +// DATA16_Z < 10000 Data16 zero initialized variables +// DATA16_N < 10000 Data16 uninitialized variables +// DATA16_HEAP < 10000 Data16 heap used by malloc and free +// DATA20_I Data20 initialized variables +// DATA20_Z Data20 zero initialized variables +// DATA20_N Data20 uninitialized variables +// DATA20_HEAP Data20 heap used by malloc and free +// CSTACK < 10000 Runtime stack +// +// +// Program and data read-only segments (FLASH) +// =========================================== +// +// segment Restrictions Usage +// ------- ------------ -------------------------- +// INFO Information memory +// CSTART < 10000 Program startup code +// CODE Program code +// ISR_CODE < 10000 Program code for interrupt service routines +// DATA16_C < 10000 Data16 constant data and string literals +// DATA16_ID < 10000 Data16 initializers for DATA16_I +// DATA20_C Data20 constant data and string literals +// DATA20_ID Data20 initializers for DATA20_I +// DIFUNCT < 10000 Dynamic initialization vector used by C++ +// CHECKSUM Checksum byte(s) generated by the -J option +// INTVEC FF80-FFFF Interrupt vectors +// RESET FFFE-FFFF The reset vector +// +//***************************************************************** + + +// --------------------------------------------------------- +// Stack and heap sizes. +// --------------------------------------------------------- + +// Uncomment for command line use +//-D_STACK_SIZE=80 +//-D_DATA16_HEAP_SIZE=80 +//-D_DATA20_HEAP_SIZE=80 + + +// --------------------------------------------------------- +// Define cpu. +// --------------------------------------------------------- + +-cmsp430 + +// --------------------------------------------------------- +// Version Info + +-Z(CONST)BSL430_VERSION_VENDOR=2500-2500 +-Z(CONST)BSL430_VERSION_CI=2501-2501 +-Z(CONST)BSL430_VERSION_API=2502-2502 +-Z(CONST)BSL430_VERSION_PI=2503-2503 + +// --------------------------------------------------------- +// Read-write memory. +// --------------------------------------------------------- + +-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=2400-24FF +-Z(DATA)DATA20_I,DATA20_Z,DATA20_N,DATA20_HEAP+_DATA20_HEAP_SIZE +-Z(DATA)CSTACK+_STACK_SIZE=3200-3400 + + +// --------------------------------------------------------- +// Read only memory + + +// --------------------------------------------------------- +// Information memory +// --------------------------------------------------------- + +-Z(CODE)INFO=1800-19FF +-Z(CODE)INFOA=1980-19FF +-Z(CODE)INFOB=1900-197F +-Z(CODE)INFOC=1880-18FF +-Z(CODE)INFOD=1800-187F + +// ------------------------------------------------------------------- +// BSL Memory +// ------------------------------------------------------------------- +-Z(CODE)ZAREA=1000-100F +-Z(CODE)ZAREA_CODE=1010-1100 +-Z(CODE)BSL0=1010-11FF +-Z(CODE)BSL1=1200-13FF +-Z(CODE)BSL2=1400-15FF +-Z(CODE)BSL3=1600-17FF + +// --------------------------------------------------------- +// Low memory 0 - 0xFFFF +// --------------------------------------------------------- + +// --------------------------------------------------------- +// Code + +-Z(CODE)CSTART,ISR_CODE=2504-31FF + +// --------------------------------------------------------- +// Constant data + +-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=2504-31FF + + +// --------------------------------------------------------- +// All memory 0 - 0xFFFFF +// --------------------------------------------------------- + +// --------------------------------------------------------- +// Code + +-P(CODE)CODE=2504-31FF +//-P(CODE)CODE=1070-17AB +//-P(CODE)VCORE=17AC-17EF + +// --------------------------------------------------------- +// Constant data +-Z(CONST)DATA20_C,DATA20_ID=2504-31FF +//-Z(CONST)DATA20_C,DATA20_ID=1070-17AB + + +// --------------------------------------------------------- +// Interrupt vectors +// --------------------------------------------------------- + +-Z(CODE)INTVEC=FF80-FFFF +-Z(CODE)RESET=FFFE-FFFF + + +// BSL Signatures +-Z(CONST)BSLSIG=0x17F0-17FB + // contains: + // BSL Start Vector 0x17F4 + // BSL Unlock Function Vector 0x17F6 + // BSL Unlock Signature 1 0x17F8 + // BSL Unlock Signature 2 0x17FA +-Z(CONST)JTAGLOCK_KEY=0x17FC-17FF + // if it contains: + // 0x0000 0x0000 or + // 0xFFFF 0xFFFF the JTAG will be unlocked otherwise JTAG is locked + + +// --------------------------------------------------------- +// The end +// --------------------------------------------------------- diff --git a/ThirdParty/BSL430_Firmware/CONFIG/lnk430_BSL_AREA_RAM_2400-33FF.xcl b/ThirdParty/BSL430_Firmware/CONFIG/lnk430_BSL_AREA_RAM_2400-33FF.xcl new file mode 100644 index 0000000..7b9f9b8 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/CONFIG/lnk430_BSL_AREA_RAM_2400-33FF.xcl @@ -0,0 +1,105 @@ +//***************************************************************** +// +// XLINK command file for IAR Embedded Workbench for MSP430. +// +// This file describes the BSL memory locations, and RAM +//***************************************************************** + + +// --------------------------------------------------------- +// Stack and heap sizes. +// --------------------------------------------------------- + +// Uncomment for command line use +//-D_STACK_SIZE=80 +//-D_DATA16_HEAP_SIZE=80 +//-D_DATA20_HEAP_SIZE=80 + + +// --------------------------------------------------------- +// Define cpu. +// --------------------------------------------------------- + +-cmsp430 + +// --------------------------------------------------------- +// Read-write memory. +// --------------------------------------------------------- + +-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=2400-33FF +-Z(DATA)DATA20_I,DATA20_Z,DATA20_N,DATA20_HEAP+_DATA20_HEAP_SIZE +-Z(DATA)CSTACK+_STACK_SIZE# + + +// --------------------------------------------------------- +// Read only memory +// --------------------------------------------------------- + +// --------------------------------------------------------- +// Version Info + +-Z(CONST)BSL430_VERSION_VENDOR=1010-1010 +-Z(CONST)BSL430_VERSION_CI=1011-1011 +-Z(CONST)BSL430_VERSION_API=1012-1012 +-Z(CONST)BSL430_VERSION_PI=1013-1013 + +// BSL Signatures +-Z(CONST)BSLSIG=0x17F0-17FB + // contains: + // BSL Start Vector + // BSL Unlock Function Vector + // BSL Unlock Signature 1 + // BSL Unlock Signature 2 +-Z(CONST)JTAGLOCK_KEY=0x17FC-17FF + // if it contains: + // 0x0000 0x0000 or + // 0xFFFF 0xFFFF the JTAG will be unlocked otherwise JTAG is locked + + +// --------------------------------------------------------- +// Code + +-Z(CODE)CSTART,ISR_CODE=1010-17EF + +// --------------------------------------------------------- +// Constant data + +-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT=1010-17EF + + +// --------------------------------------------------------- +// All memory 0 - 0xFFFFF +// --------------------------------------------------------- + +// ------------------------------------------------------------------- +// BSL Memory +// ------------------------------------------------------------------- +-Z(CODE)ZAREA=1000-100F +-Z(CODE)ZAREA_CODE=1010-17FF +-Z(CODE)BSL0=1010-11FF +-Z(CODE)BSL1=1200-13FF +-Z(CODE)BSL2=1400-15FF +-Z(CODE)BSL3=1600-17EF + +// --------------------------------------------------------- +// Code + +-P(CODE)CODE=1010-17EF +//-P(CODE)CODE=1070-17AB +//-P(CODE)VCORE=17AC-17EF + +// --------------------------------------------------------- +// Constant data +-Z(CONST)DATA20_C,DATA20_ID=1010-17EF + + +// --------------------------------------------------------- +// Interrupt vectors +// --------------------------------------------------------- + +-Z(CODE)INTVEC=FF80-FFFF +-Z(CODE)RESET=FFAE-FFAF + +// --------------------------------------------------------- +// The end +// --------------------------------------------------------- diff --git a/ThirdParty/BSL430_Firmware/Proj_Settings.h b/ThirdParty/BSL430_Firmware/Proj_Settings.h new file mode 100644 index 0000000..3bf3b05 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/Proj_Settings.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + \par Documents and books: + \n - Universal Serial Bus Specification Vers. 1.1, www.Usb.org + \n - Device Class Definition for Human Interface Devices (HID) Vers. 1.1, www.Usb.org + \n - Universal Serial Bus Class Definitions for Communication Devices Vers. 1.1, www.Usb.org + \n - USB 2.0 Handbuch fuer Entwickler(German) or USB 2.0 complete(English), Jan Axelson, www.lvr.com + \n - Universal Serial Bus System Architecture, Don Anderson + \n - http://www.microsoft.com/whdc/device/input/HID_HWID.mspx, Hardware IDs for HID Devices + \n - http://msdn2.microsoft.com/en-us/library/aa475772.aspx, USB Interface Association Descriptor + \n - http://msdn2.microsoft.com/en-us/library/aa476422.aspx, Support for Interface Collections + \n - http://msdn2.microsoft.com/en-us/library/aa476412.aspx, Handling CDC and WMCDC Interface Collections + + \par Development tools: + \n - Usb descriptor viewer, www.USB.org, UVCView.x86.exe + \n - Hid device viewer, WindowsDDK, HClient.exe + \n - Usb complience test, www.USB.org, USBCV13.exe + \n - TI USB EEPROM Burner, www.TI.com, sllc259a.zip, + \n - TI TUSB3410 USB I2C Header Generator, www.TI.com, sllc293.zip + \n - TI Apploader Driver, www.TI.com, sllc160.zip +*/ + +#ifndef _Proj_Settings_H_ +#define _Proj_Settings_H_ + +#include "msp430.h" +#include "defUSB.h" + +#ifdef __cplusplus +extern "C" +{ +#endif + +/*----------------------------------------------------------------------------+ +| Firmware Version | +|How to detect version number of the FW running on MSP430? | +|Open ControlPanel->Systems->Hardware->DeviceManager->Ports->Msp430-> | +| ->ApplicationUART->Details | ++----------------------------------------------------------------------------*/ + +#define VER_FW_H 0x01 +#define VER_FW_L 0x08 + +/*----------------------------------------------------------------------------+ +| Switches for different versions | ++----------------------------------------------------------------------------*/ +#define _HID_ // Needed for HID interface +//#define _USE_PLL_ // If defined the PLL is used, otherwise a 48MHz clock needs to be provided at XT2IN +//#define _PLL_USES_XT_ 2 // defines which XT is used by PLL (1 or 2) + +#define _NO_ISR // Do not use USB interrupt, handles it by polling + +#ifdef __cplusplus +} +#endif +#endif /* _Proj_Settings_H_ */ diff --git a/ThirdParty/BSL430_Firmware/UsbApi.c b/ThirdParty/BSL430_Firmware/UsbApi.c new file mode 100644 index 0000000..15c3eee --- /dev/null +++ b/ThirdParty/BSL430_Firmware/UsbApi.c @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*----------------------------------------------------------------------------+ +| Include files | ++----------------------------------------------------------------------------*/ +#include "types.h" // Basic Type declarations +#include "usb.h" // USB-specific Data Structures +#include "descriptors.h" +#include "Proj_Settings.h" +#include "USBAPI.h" + +/*----------------------------------------------------------------------------+ +| Global Variables | ++----------------------------------------------------------------------------*/ + +#define ReceiveBuffer (const unsigned char*)(OEP1_X_BUFFER_ADDRESS + 1) + +extern __no_init tEDB0 tEndPoint0DescriptorBlock; +extern __no_init tEDB tInputEndPointDescriptorBlock[]; +extern __no_init tEDB tOutputEndPointDescriptorBlock[]; + + + +//This functin always sends 64 bytes: 1 byte is 0x3f, 2..64byte are data +//returns how many bytes was sent +// +BYTE UsbSendHID(const BYTE* data) +{ + BYTE byte_count; + byte_count = EP_MAX_PACKET_SIZE - 1; + + if(tInputEndPointDescriptorBlock[0].bEPBCTX & EPBCNT_NAK) + { + BYTE i; + BYTE *p; + p = (unsigned char*)IEP1_X_BUFFER_ADDRESS; + *p = EP_MAX_PACKET_SIZE - 1; + p++; + for (i=0; i pointer to buffer with received data +// returned value: how many bytes received (should be always 64) +//BYTE UsbReceiveHID(BYTE **data) +BYTE UsbReceiveHID(VOID) +{ + BYTE byte_count = 0; + if (tOutputEndPointDescriptorBlock[0].bEPBCTX & EPBCNT_NAK) + { + //*data = (unsigned char*)(OEP1_X_BUFFER_ADDRESS + 1); + byte_count = tOutputEndPointDescriptorBlock[0].bEPBCTX & 0x7f; + } + + return byte_count; +} + +//should be called after successed UsbReceiveHID() to make receive buffer ready to receive next data packet +VOID UsbClearReceiveBuffer(VOID) +{ + tOutputEndPointDescriptorBlock[0].bEPBCTX = 0x00; // Clear EP1 X buffer counter, and reset NACK-bit to receive new data +} + +/*----------------------------------------------------------------------------+ +| End of source file | ++----------------------------------------------------------------------------*/ +/*------------------------ Nothing Below This Line --------------------------*/ diff --git a/ThirdParty/BSL430_Firmware/UsbHidReq.c b/ThirdParty/BSL430_Firmware/UsbHidReq.c new file mode 100644 index 0000000..85dbd2c --- /dev/null +++ b/ThirdParty/BSL430_Firmware/UsbHidReq.c @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "msp430.h" +#include "types.h" // Basic Type declarations +#include "usb.h" // USB-specific Data Structures +#include "descriptors.h" +#include "Proj_Settings.h" + + +VOID usbClearOEP0ByteCount(VOID); +VOID usbSendDataPacketOnEP0(PBYTE pbBuffer); +VOID usbReceiveDataPacketOnEP0(PBYTE pbBuffer); + + +VOID usbGetHidDescriptor(VOID) +{ + usbClearOEP0ByteCount(); + wBytesRemainingOnIEP0 = 9; + usbSendDataPacketOnEP0((PBYTE)&abromConfigurationDescriptorGroup[startHidDescriptor]); +} + +//---------------------------------------------------------------------------- + +VOID usbGetReportDescriptor(VOID) +{ + wBytesRemainingOnIEP0 = SIZEOF_REPORT_DESCRIPTOR; + usbSendDataPacketOnEP0((PBYTE)&abromReportDescriptor); +} diff --git a/ThirdParty/BSL430_Firmware/UsbHidReq.h b/ThirdParty/BSL430_Firmware/UsbHidReq.h new file mode 100644 index 0000000..55e41b7 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/UsbHidReq.h @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _UsbHidReq_H_ +#define _UsbHidReq_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + + +/** +\fn VOID usbGetHidDescriptor(VOID); + +\brief Return Hid descriptor to host over control endpoint +*/ +VOID usbGetHidDescriptor(VOID); + +/** +\fn VOID usbGetReportDescriptor(VOID); + +\brief Return HID report descriptor to host over control endpoint +*/ +VOID usbGetReportDescriptor(VOID); + +/** +\fn VOID usbSetReport(VOID); + +\brief Receive Out-report from host +*/ +VOID usbSetReport(VOID); + +/** +\fn VOID usbGetReport(VOID); + +\brief Return In-report or In-feature-report to host over interrupt endpoint +*/ +VOID usbGetReport(VOID); + +#ifdef __cplusplus +} +#endif +#endif //_UsbHidReq_H_ diff --git a/ThirdParty/BSL430_Firmware/UsbIsr.c b/ThirdParty/BSL430_Firmware/UsbIsr.c new file mode 100644 index 0000000..4572875 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/UsbIsr.c @@ -0,0 +1,178 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/*----------------------------------------------------------------------------+ +| Include files | ++----------------------------------------------------------------------------*/ +#include "msp430.h" +#include "defUSB.h" +#include "types.h" // Basic Type declarations +#include "usb.h" +#include "UsbIsr.h" +#include "Proj_Settings.h" +#include "USBAPI.h" +#include + +/*----------------------------------------------------------------------------+ +| External Variables | ++----------------------------------------------------------------------------*/ +extern __no_init BYTE bFunctionSuspended; + +extern volatile BYTE *pbBytesRemainingOnOEP1; + +extern __no_init tEDB0 tEndPoint0DescriptorBlock; +extern __no_init tEDB tInputEndPointDescriptorBlock[]; +extern __no_init tEDB tOutputEndPointDescriptorBlock[]; + +extern __no_init BYTE bStatusAction; + +/*----------------------------------------------------------------------------+ +| General Subroutines | ++----------------------------------------------------------------------------*/ + +VOID UsbHandler(VOID) +{ + unsigned int localUSBIFG = USBIFG; + + //Check if the setup interrupt is pending. + //We need to check it before other interrupt requests, + //to work around that the Setup Int has lower prio then Input Endp0 + if (localUSBIFG & SETUPIFG) + SetupPacketInterruptHandler(); + else if (USBPWRCTL & VBONIFG) + PWRVBUSonHandler(); + else if (USBPWRCTL & VBOFFIFG) + PWRVBUSoffHandler(); + else if (USBIEPIFG & BIT0) // IEPIFG0 flag = BIT0 + IEP0InterruptHandler(); + else if (localUSBIFG & RSTRIFG) + USB_reset(); + else if (localUSBIFG & SUSRIFG) + USB_suspend(); + else if (localUSBIFG & RESRIFG) + USB_resume(); +} + +/*----------------------------------------------------------------------------+ +| Interrupt Sub-routines | ++----------------------------------------------------------------------------*/ + +VOID SetupPacketInterruptHandler(VOID) +{ + USBCTL |= FRSTE; // Function Reset Connection Enable + + // NAK both input and output endpoints + tEndPoint0DescriptorBlock.bOEPBCNT = EPBCNT_NAK; + + usbProcessNewSetupPacket: + + bStatusAction = STATUS_ACTION_NOTHING; + + // clear out return data buffer + *((unsigned int*)abUsbRequestReturnData) = 0x0000; + + // decode and process the request + usbDecodeAndProcessUsbRequest(); + // Workaround for BUG2145 + asm("mov.w #0x80,R4"); + asm("bic.w R4,&0920h"); + asm("bic.w R4,&0922h"); + + USBIFG &= ~SETUPIFG; // clear the interrupt bit + // Workaround for BUG2145 + asm("bis.w R4,&0920h"); + asm("bis.w R4,&0922h"); + + // check if there is another setup packet pending + // if it is, abandon current one by NAKing both data endpoint 0 + if((USBIFG & STPOWIFG) != 0x00) + { + USBIFG &= ~(STPOWIFG | SETUPIFG); + goto usbProcessNewSetupPacket; + } +} + +//---------------------------------------------------------------------------- +VOID IntDelay(VOID) +{ + __delay_cycles(36002); // delay for 8000 cycles ~1 ms at 8 MHz +} + +//---------------------------------------------------------------------------- +VOID PWRVBUSoffHandler(VOID) +{ + IntDelay(); //delay before reset. Needed to avoid the device started again + // after it loosing power + + //reset device if USB cable plagged off + PMMCTL0 = PMMPW | PMMSWBOR; // generate BOR for reseting device +} + +//---------------------------------------------------------------------------- + +VOID PWRVBUSonHandler(VOID) +{ + IntDelay(); + USB_enable(); + USB_reset(); + + USBPWRCTL &= ~(VBONIFG|VBOFFIFG); // clean pending VBUS ON and OFF interrupts, if any + USBCNF |= PUR_EN; // generate rising edge on DP -> the host enumerates our device as full speed device +} + +//---------------------------------------------------------------------------- +VOID IEP0InterruptHandler(VOID) +{ + USBCTL |= FRSTE; // Function Reset Connection Enable + tEndPoint0DescriptorBlock.bOEPBCNT = 0x00; + + if(bStatusAction == STATUS_ACTION_DATA_IN) + { + usbSendNextPacketOnIEP0(); + } + else + { + tEndPoint0DescriptorBlock.bIEPCNFG |= EPCNF_STALL; // no more data + } + USBIEPIFG &= ~BIT0; //clear interrupt request flag +} + +/*----------------------------------------------------------------------------+ +| Interrupt Service Routines | ++----------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------------+ +| Main Routine | ++----------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------------+ +| End of source file | ++----------------------------------------------------------------------------*/ +/*------------------------ Nothing Below This Line --------------------------*/ diff --git a/ThirdParty/BSL430_Firmware/UsbIsr.h b/ThirdParty/BSL430_Firmware/UsbIsr.h new file mode 100644 index 0000000..ec9b850 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/UsbIsr.h @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _USBISR_H_ +#define _USBISR_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +//values of USBVECINT when USB-interrupt occured +#define VECINT_NO_INTERRUPT 0x00 +#define VECINT_PWR_DROP_INTERRUPT 0x02 +#define VECINT_PLL_LOCK_INTERRUPT 0x04 +#define VECINT_PLL_SIGNAL_INTERRUPT 0x06 +#define VECINT_PLL_RANGE_INTERRUPT 0x08 +#define VECINT_PWR_VBUSOn_INTERRUPT 0x0A +#define VECINT_PWR_VBUSOff_INTERRUPT 0x0C +#define VECINT_USB_TIMESTAMP_INTERRUPT 0x10 +#define VECINT_INPUT_ENDPOINT0 0x12 +#define VECINT_OUTPUT_ENDPOINT0 0x14 +#define VECINT_RSTR_INTERRUPT 0x16 +#define VECINT_SUSR_INTERRUPT 0x18 +#define VECINT_RESR_INTERRUPT 0x1A +#define VECINT_SETUP_PACKET_RECEIVED 0x20 +#define VECINT_STPOW_PACKET_RECEIVED 0x22 +#define VECINT_INPUT_ENDPOINT1 0x24 +#define VECINT_INPUT_ENDPOINT2 0x26 +#define VECINT_INPUT_ENDPOINT3 0x28 +#define VECINT_INPUT_ENDPOINT4 0x2A +#define VECINT_INPUT_ENDPOINT5 0x2C +#define VECINT_INPUT_ENDPOINT6 0x2E +#define VECINT_INPUT_ENDPOINT7 0x30 +#define VECINT_OUTPUT_ENDPOINT1 0x32 +#define VECINT_OUTPUT_ENDPOINT2 0x34 +#define VECINT_OUTPUT_ENDPOINT3 0x36 +#define VECINT_OUTPUT_ENDPOINT4 0x38 +#define VECINT_OUTPUT_ENDPOINT5 0x3A +#define VECINT_OUTPUT_ENDPOINT6 0x3C +#define VECINT_OUTPUT_ENDPOINT7 0x3E + + +/** +\fn VOID SetupPacketInterruptHandler(VOID); + +\brief Handle incoming setup packet. + +*/ +VOID SetupPacketInterruptHandler(VOID); + +/** +\fn VOID PWRVBUSonHandler(VOID); + +\brief Handle VBuss on signal. + +*/ +VOID PWRVBUSonHandler(VOID); + +/** +\fn VOID PWRVBUSoffHandler(VOID); + +\brief Handle VBuss off signal. + +*/ +VOID PWRVBUSoffHandler(VOID); + +/** +\fn VOID IEP0InterruptHandler(VOID); + +\brief Handle In-requests from control pipe. + +*/ +VOID IEP0InterruptHandler(VOID); + +/** +\fn VOID OEP0InterruptHandler(VOID); + +\brief Handle Out-requests from control pipe. + +*/ +VOID OEP0InterruptHandler(VOID); + + +#ifdef __cplusplus +} +#endif +#endif /* _USBISR_H_ */ diff --git a/ThirdParty/BSL430_Firmware/cstartup.s43 b/ThirdParty/BSL430_Firmware/cstartup.s43 new file mode 100644 index 0000000..900a2e8 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/cstartup.s43 @@ -0,0 +1,343 @@ +/* -------------------------------------------------------------------------- +* Copyright 2012, IAR Systems AB. +* +* This source code is the property of IAR Systems. The source code may only +* be used together with the IAR Embedded Workbench. Redistribution and use +* in source and binary forms, with or without modification, is permitted +* provided that the following conditions are met: +* +* - Redistributions of source code, in whole or in part, must retain the +* above copyright notice, this list of conditions and the disclaimer below. +* +* - IAR Systems name may not be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +* +* +* $Revision: 5271 $ +* ------------------------------------------------------------------------*/ +// +// Please define one of the following preprocessor symbols in order to +// customize the system initialization process. +// +// IGNORE_SEG_INIT -- To remove segment initialization. +// IGNORE_DATA16_DATA -- To remove segment initialization for DATA16 data. +// +// Note: In the current version the symbols "IGNORE_SEG_INIT" and +// "IGNORE_DATA16_DATA" will perform the same task. However, both are +// supported in order to be compatible with other IAR Compilers. +// + +#include "macros.m43" +#include "cfi.m43" + +#define XRSEGCSTART RSEG CSTART:CODE:NOROOT(1) + + XCFI_NAMES libNames + XCFI_COMMON libCommon, libNames + + +// --------------------------------------------------------- +// Define reset vector. +// + + MODULE ?reset_vector + + RSEG RESET:CONST:NOROOT(1) + PUBLIC ?reset_vector + EXTERN __program_start + +?reset_vector: + DC16 __program_start + + ENDMOD + + +// --------------------------------------------------------- +// The cstartup code -- call __low_level_init, perform initialization, +// call constructors and call main. If main returns the exit system +// is started. +// + MODULE ?cstart + +// +// Ensure that this is build with the same "positions independent +// code" settings as the compiler uses. +// + + XPICRTMODEL + + +// +// Forward declarations of segments. +// + + RSEG HEAP:DATA:NOROOT(1) + RSEG CSTACK:DATA:NOROOT + + RSEG DATA16_Z:DATA:NOROOT + RSEG DATA16_I:DATA:NOROOT + RSEG DATA16_ID:DATA:NOROOT +#if __CORE__==__430X_CORE__ + RSEG DATA20_Z:DATA:NOROOT + RSEG DATA20_I:DATA:NOROOT + RSEG DATA20_ID:DATA:NOROOT +#endif + +// --------------------------------------------------------- +// System initialization. +// + + XRSEGCSTART + PUBLIC __program_start + + EXTERN ?reset_vector + REQUIRE ?reset_vector + +__program_start: + + PUBLIC ?cstart_begin +?cstart_begin: + + // -------------------- + // Turn off the watchdog. + // + // Note: by default, this is disabled. Remove the "#if 0" and + // "#endif" lines to enable it. + // + +#if 0 + +#define WDTPW (0x5A00) +#define WDTHOLD (0x0080) +#define WDTCTL (0x0120) + + MOV #WDTPW + WDTHOLD, &WDTCTL +#endif + + // -------------------- + // Initialize SP to point to the top of the stack. + // + MOV #SFE(CSTACK), SP + + // + // Ensure that main is called. + // + REQUIRE ?cstart_call_main + + +// ----------------------------------------------- +// Call __low_level_init to perform initialization before initializing +// segments and calling main. If the function returns 0 no segment +// initialization should take place. +// +// Link with your own version of __low_level_init to override the +// default action: to do nothing but return 1. +// + + XRSEGCSTART + + PUBLIC ?cstart_call_low_level_init + EXTERN __low_level_init + +?cstart_call_low_level_init: + XCALL #__low_level_init + CMP #0, W0 + JEQ ?cstart_call_main + + +// ----------------------------------------------- +// Segment initialization: +// +// xxx_Z -- uninitialized data that are filled with zeros. +// xxx_I -- initialized data that gets the values from the corresponding +// xxx_ID segment. +// + +#ifndef IGNORE_SEG_INIT + +#ifndef IGNORE_DATA16_DATA + + // + // Clear DATA16_Z. + // + + XRSEGCSTART + PUBLIC ?cstart_init_zero + //EXTERN __data16_memzero + +?cstart_init_zero: + //MOV #SFB DATA16_Z, CW0 + //MOV #sizeof DATA16_Z, CW1 + + //XCALL #__data16_memzero + + + // + // Copy DATA16_ID to DATA16_I + // + + XRSEGCSTART + PUBLIC ?cstart_init_copy + EXTERN __data16_memcpy + +?cstart_init_copy: + MOV #SFB DATA16_I, CW0 + MOV #SFB DATA16_ID, CW1 + +#if CALLING_CONVENTION == 1 + PUSH.W #sizeof DATA16_I + + XCALL #__data16_memcpy + + ADD #2, SP +#else + MOV #sizeof DATA16_I, CW2 + + XCALL #__data16_memcpy +#endif // CALLING_CONVENTION + +#endif // IGNORE_DATA16_DATA + +#if __CORE__==__430X_CORE__ + +#ifndef IGNORE_DATA20_DATA + + // + // Clear DATA20_Z. + // + + XRSEGCSTART + PUBLIC ?cstart_init_zero20 + EXTERN __data20_memzero + +?cstart_init_zero20: + MOVA #SFB DATA20_Z,W0 + MOV.W #LWRD(sizeof DATA20_Z), L1L + MOV.W #HWRD(sizeof DATA20_Z), L1H + + XCALL #__data20_memzero + + + // + // Copy DATA20_ID to DATA20_I + // + + XRSEGCSTART + PUBLIC ?cstart_init_copy20 + EXTERN __data20_memcpy + +?cstart_init_copy20: + MOVA #SFB DATA20_I, CW0 + MOVA #SFB DATA20_ID, CW1 +#if CALLING_CONVENTION == 1 + PUSHX.A #sizeof DATA20_I + + XCALL #__data20_memcpy + + ADD #4, SP +#else + MOV.W #LWRD(sizeof DATA20_I), L1L + MOV.W #HWRD(sizeof DATA20_I), L1H + + XCALL #__data20_memcpy +#endif + +#endif // IGNORE_DATA16_DATA + +#endif + +#endif // IGNORE_SEG_INIT + + + +// ----------------------------------------------- +// Call constructors of static objects. +// + + RSEG DIFUNCT:CONST:NOROOT(1) + XRSEGCSTART + PUBLIC ?cstart_call_ctors + + EXTERN __call_ctors + +?cstart_call_ctors: + +#ifdef REGISTER_MODEL_REG20 + + MOVA #SFB DIFUNCT, CW0 + MOVA #SFE DIFUNCT, CW1 + +#else /* REGISTER_MODEL_REG20 */ + + MOV.W #SFB DIFUNCT, CW0 + MOV.W #SFE DIFUNCT, CW1 + +#endif /* REGISTER_MODEL_REG20 */ + + XCALL #__call_ctors + + +// ----------------------------------------------- +// Call main() with no arguments and then exit using the return value +// of main as the parameter. +// + + XRSEGCSTART + PUBLIC ?cstart_call_main + + EXTERN main + EXTERN exit + +?cstart_call_main: + XCALL #main + jmp $ + // XCALL #exit + + PUBLIC ?cstart_end +?cstart_end: + + // Note: "ENDMOD label" means code that this module is the + // start of the application. + ENDMOD __program_start + + + + +// --------------------------------------------------------- +// __low_level_init +// +// The only action of this default version of __low_level_init is to +// return 1. By doing so it signals that normal initialization of data +// segments should be done. +// +// A customized version of __low_level_init may be created in order to +// perform initialization before initializing segments and calling main +// and/or to skip initialization of data segments under certain +// circumstances. +// +// For further details see sample file lowinit.c +// + + + MODULE lowinit + + PUBLIC __low_level_init + + RSEG CODE:CODE:NOROOT(1) + +__low_level_init: + MOV #1, W0 // By returning 1 this function + XRET // indicates that the normal + // initialization should take place + + ENDMOD + + END diff --git a/ThirdParty/BSL430_Firmware/defUSB.h b/ThirdParty/BSL430_Firmware/defUSB.h new file mode 100644 index 0000000..fdf102b --- /dev/null +++ b/ThirdParty/BSL430_Firmware/defUSB.h @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _defTC0701_H +#define _defTC0701_H + +#include "types.h" + +/*----------------------------------------------------------------------------+ +| Constant Definitions | ++----------------------------------------------------------------------------*/ +#define YES 1 +#define NO 0 + +#define TRUE 1 +#define FALSE 0 + +#define NOERR 0 +#define ERR 1 + +#define NO_ERROR 0 +#define ERROR 1 + +#define DISABLE 0 +#define ENABLE 1 + +/*----------------------------------------------------------------------------+ +| Memory Definitions | ++----------------------------------------------------------------------------*/ +//#define USB_MEMORY_START 0x01C00 +//#define USB_MEMORY_END 0x023FF + +//addresses of USB memory in RAM +#define START_OF_USB_MEMORY 0x1C00 +#define END_OF_USB_MEMORY 0x23FF + +/*----------------------------------------------------------------------------+ +| USB Constants, Type Definition & Macro | ++----------------------------------------------------------------------------*/ + +// USB related Constant +#define MAX_ENDPOINT_NUMBER 0x07 // A maximum of 7 endpoints is available +#define EP0_MAX_PACKET_SIZE 0x08 +#define EP0_PACKET_SIZE 0x08 +#define EP_MAX_PACKET_SIZE 0x40 + +// Base addresses of transmit and receive buffers +#define OEP1_X_BUFFER_ADDRESS 0x1C00 // Input Endpoint 1 X Buffer Base-address +#define OEP1_Y_BUFFER_ADDRESS 0x1C40 // Input Endpoint 1 Y Buffer Base-address +#define IEP1_X_BUFFER_ADDRESS 0x1C80 // Output Endpoint 1 X Buffer Base-address +#define IEP1_Y_BUFFER_ADDRESS 0x1CC0 // Output Endpoint 1 Y Buffer Base-address + +#define OEP2_X_BUFFER_ADDRESS 0x1D00 // Input Endpoint 2 X Buffer Base-address +#define OEP2_Y_BUFFER_ADDRESS 0x1D40 // Input Endpoint 2 Y Buffer Base-address +#define IEP2_X_BUFFER_ADDRESS 0x1D80 // Output Endpoint 2 X Buffer Base-address +#define IEP2_Y_BUFFER_ADDRESS 0x1DC0 // Output Endpoint 2 Y Buffer Base-address + +#define OEP3_X_BUFFER_ADDRESS 0x1E00 // Input Endpoint 2 X Buffer Base-address +#define OEP3_Y_BUFFER_ADDRESS 0x1E40 // Input Endpoint 2 Y Buffer Base-address +#define IEP3_X_BUFFER_ADDRESS 0x1E80 // Output Endpoint 2 X Buffer Base-address +#define IEP3_Y_BUFFER_ADDRESS 0x1EC0 // Output Endpoint 2 Y Buffer Base-address + +#define OEP4_X_BUFFER_ADDRESS 0x1F00 // Input Endpoint 2 X Buffer Base-address +#define OEP4_Y_BUFFER_ADDRESS 0x1F40 // Input Endpoint 2 Y Buffer Base-address +#define IEP4_X_BUFFER_ADDRESS 0x1F80 // Output Endpoint 2 X Buffer Base-address +#define IEP4_Y_BUFFER_ADDRESS 0x1FC0 // Output Endpoint 2 Y Buffer Base-address + +#define OEP5_X_BUFFER_ADDRESS 0x2000 // Input Endpoint 2 X Buffer Base-address +#define OEP5_Y_BUFFER_ADDRESS 0x2040 // Input Endpoint 2 Y Buffer Base-address +#define IEP5_X_BUFFER_ADDRESS 0x2080 // Output Endpoint 2 X Buffer Base-address +#define IEP5_Y_BUFFER_ADDRESS 0x20C0 // Output Endpoint 2 Y Buffer Base-address + +#define OEP6_X_BUFFER_ADDRESS 0x2100 // Input Endpoint 2 X Buffer Base-address +#define OEP6_Y_BUFFER_ADDRESS 0x2140 // Input Endpoint 2 Y Buffer Base-address +#define IEP6_X_BUFFER_ADDRESS 0x2180 // Output Endpoint 2 X Buffer Base-address +#define IEP6_Y_BUFFER_ADDRESS 0x21C0 // Output Endpoint 2 Y Buffer Base-address + +#define OEP7_X_BUFFER_ADDRESS 0x2200 // Input Endpoint 2 X Buffer Base-address +#define OEP7_Y_BUFFER_ADDRESS 0x2240 // Input Endpoint 2 Y Buffer Base-address +#define IEP7_X_BUFFER_ADDRESS 0x2280 // Output Endpoint 2 X Buffer Base-address +#define IEP7_Y_BUFFER_ADDRESS 0x22C0 // Output Endpoint 2 Y Buffer Base-address + +#define X_BUFFER 0 +#define Y_BUFFER 1 + +// addresses of pipes for endpoints +#define EP1_ADDR 0x01 //address for endpoint 1 +#define EP2_ADDR 0x02 //address for endpoint 2 +#define EP3_ADDR 0x03 //address for endpoint 3 +#define EP4_ADDR 0x04 //address for endpoint 4 +#define EP5_ADDR 0x05 //address for endpoint 5 +#define EP6_ADDR 0x06 //address for endpoint 6 +#define EP7_ADDR 0x07 //address for endpoint 7 + +// EDB Data Structure +typedef struct _tEDB +{ + BYTE bEPCNF; // Endpoint Configuration + BYTE bEPBBAX; // Endpoint X Buffer Base Address + BYTE bEPBCTX; // Endpoint X Buffer byte Count + BYTE bSPARE0; // no used + BYTE bSPARE1; // no used + BYTE bEPBBAY; // Endpoint Y Buffer Base Address + BYTE bEPBCTY; // Endpoint Y Buffer byte Count + BYTE bEPSIZXY; // Endpoint XY Buffer Size +} tEDB, *tpEDB; + +typedef struct _tEDB0 +{ + BYTE bIEPCNFG; // Input Endpoint 0 Configuration Register + BYTE bIEPBCNT; // Input Endpoint 0 Buffer Byte Count + BYTE bOEPCNFG; // Output Endpoint 0 Configuration Register + BYTE bOEPBCNT; // Output Endpoint 0 Buffer Byte Count +} tEDB0, *tpEDB0; + +// EndPoint Desciptor Block Bits +#define EPCNF_USBIE 0x04 // USB Interrupt on Transaction Completion. Set By MCU + // 0:No Interrupt, 1:Interrupt on completion +#define EPCNF_STALL 0x08 // USB Stall Condition Indication. Set by UBM + // 0: No Stall, 1:USB Install Condition +#define EPCNF_DBUF 0x10 // Double Buffer Enable. Set by MCU + // 0: Primary Buffer Only(x-buffer only), 1:Toggle Bit Selects Buffer + +#define EPCNF_TOGGLE 0x20 // USB Toggle bit. This bit reflects the toggle sequence bit of DATA0 and DATA1. + +#define EPCNF_UBME 0x80 // UBM Enable or Disable bit. Set or Clear by MCU. + // 0:UBM can't use this endpoint + // 1:UBM can use this endpoint +#define EPBCNT_BYTECNT_MASK 0x7F // MASK for Buffer Byte Count +#define EPBCNT_NAK 0x80 // NAK, 0:No Valid in buffer, 1:Valid packet in buffer + +//definitions for TC0701 USB-module (missed in MSP430TC0701.h) + +#define START_OF_USB_BUFFER 0x1C00 + +// input and output buffers for EP0 +#define USBIEP0BUF 0x2378 +#define USBOEP0BUF 0x2370 + +#endif /*_defTC0701_H */ diff --git a/ThirdParty/BSL430_Firmware/descriptor.h b/ThirdParty/BSL430_Firmware/descriptor.h new file mode 100644 index 0000000..d113c89 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/descriptor.h @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// device descriptor structure +typedef struct _tDEVICE_DESCRIPTOR +{ + BYTE bLength; // Length of this descriptor (12h bytes) + BYTE bDescriptorType; // Type code of this descriptor (01h) + WORD bcdUsb; // Release of USB spec (0210h = rev 2.10) + BYTE bDeviceClass; // Device's base class code + BYTE bDeviceSubClass; // Device's sub class code + BYTE bDeviceProtocol; // Device's protocol type code + BYTE bMaxPacketSize0; // End point 0's max packet size (8/16/32/64) + WORD wIdVendor; // Vendor ID for device + WORD wIdProduct; // Product ID for device + WORD wBcdDevice; // Revision level of device + BYTE wManufacturer; // Index of manufacturer name string desc + BYTE wProduct; // Index of product name string desc + BYTE wSerialNumber; // Index of serial number string desc + BYTE bNumConfigurations; // Number of configurations supported +} tDEVICE_DESCRIPTOR, *ptDEVICE_DESCRIPTOR; + +// configuration descriptor structure +typedef struct _tCONFIG_DESCRIPTOR +{ + BYTE bLength; // Length of this descriptor (9h bytes) + BYTE bDescriptorType; // Type code of this descriptor (02h) + WORD wTotalLength; // Size of this config desc plus all interface, + // endpoint, class, and vendor descriptors + BYTE bNumInterfaces; // Number of interfaces in this config + BYTE bConfigurationValue; // Value to use in SetConfiguration command + BYTE bConfiguration; // Index of string desc describing this config + BYTE bAttributes; // See CFG_DESC_ATTR_xxx values below + BYTE bMaxPower; // Power used by this config in 2mA units +} tCONFIG_DESCRIPTOR, *ptCONFIG_DESCRIPTOR; + +// interface descriptor structure +typedef struct _tINTERFACE_DESCRIPTOR +{ + BYTE bLength; // Length of this descriptor (9h bytes) + BYTE bDescriptorType; // Type code of this descriptor (04h) + BYTE bInterfaceNumber; // Zero based index of interface in the configuration + BYTE bAlternateSetting; // Alternate setting number of this interface + BYTE bNumEndpoints; // Number of endpoints in this interface + BYTE bInterfaceClass; // Interface's base class code + BYTE bInterfaceSubClass; // Interface's sub class code + BYTE bInterfaceProtocol; // Interface's protocol type code + BYTE bInterface; // Index of string desc describing this interface +} tINTERFACE_DESCRIPTOR, *ptINTERFACE_DESCRIPTOR; + +// endpoint descriptor structure +typedef struct _tENDPOINT_DESCRIPTOR +{ + BYTE bLength; // Length of this descriptor (7h bytes) + BYTE bDescriptorType; // Type code of this descriptor (05h) + BYTE bEndpointAddress; // See EP_DESC_ADDR_xxx values below + BYTE bAttributes; // See EP_DESC_ATTR_xxx value below + WORD wMaxPacketSize; // Max packet size of endpoint + BYTE bInterval; // Polling interval of endpoint in milliseconds +} tENDPOINT_DESCRIPTOR, *tpENDPOINT_DESCRIPTOR; diff --git a/ThirdParty/BSL430_Firmware/descriptors.c b/ThirdParty/BSL430_Firmware/descriptors.c new file mode 100644 index 0000000..8ee0574 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/descriptors.c @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*----------------------------------------------------------------------------+ +| Include files | ++----------------------------------------------------------------------------*/ + +#include "BSL_Device_File.h" +#include "defUSB.h" +#include "types.h" // Basic Type declarations +#include "usb.h" // USB-specific Data Structures +#include "descriptors.h" +#include "Proj_Settings.h" + +/*----------------------------------------------------------------------------+ +| Internal Type Definition & Macro | ++----------------------------------------------------------------------------*/ + +#ifndef RAM_BASED_BSL +BYTE const abromDeviceDescriptor[SIZEOF_DEVICE_DESCRIPTOR] @ 0x107C = { +#endif +#ifdef RAM_BASED_BSL +BYTE const abromDeviceDescriptor[SIZEOF_DEVICE_DESCRIPTOR] @ 0x2516 = { +#endif + SIZEOF_DEVICE_DESCRIPTOR, // Length of this descriptor (12h bytes) + DESC_TYPE_DEVICE, // Type code of this descriptor (01h) + 0x00,0x02, // Release of USB spec (Rev 2.0) + 0x00, // Device's base class code + 0, // Device's sub class code + 0, // Device's protocol type code + EP0_PACKET_SIZE, // End point 0's packet size = 8 + USB_VID&0xFF, USB_VID>>8, // Vendor ID for device, TI=0x0451 + // this is Texas Instruments VID + // you can use is only in this example. + // You can order your own VID at www.usb.org + USB_PID&0xFF, USB_PID>>8, // Product ID for device, + // this ID is to only with this example + VER_FW_L, VER_FW_H, // Revision level of device, Rev=1.00 + 0,// 1, // Index of manufacturer name string desc + 0,// 2, // Index of product name string desc + 0, // No serial number for this device + 1 // Number of configurations supported +}; + + + +BYTE const abromReportDescriptor[SIZEOF_REPORT_DESCRIPTOR]= +//BYTE const abromReportDescriptor[]= +{ + 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1) + 0x09, 0x01, // USAGE (Vendor Usage 1) + 0xa1, 0x01, // COLLECTION (Application) + + 0x85, 0x3F, // Report ID + 0x95, 0x3F, // REPORT_COUNT () + 0x75, 0x08, // REPORT_SIZE (8) + 0x25, 0x01, + 0x15, 0x01, + 0x09, 0x01, // USAGE (Vendor Usage 1) + 0x81, 0x02, // INPUT (Data,Var,Abs) + + //--------------------------------------------------------------------------- + 0x85, 0x3F, // Report ID + 0x95, 0x3F, // REPORT_COUNT () + 0x75, 0x08, // REPORT_SIZE (8) + 0x25, 0x01, + 0x15, 0x01, + 0x09, 0x01, // USAGE (Vendor Usage 1) + 0x91, 0x02, // OUTPUT (Data,Var,Abs) + + 0xC0 // end Application Collection +}; + +//#define SIZEOF_REPORT_DESCRIPTOR1 sizeof(abromReportDescriptor) + +BYTE const abromConfigurationDescriptorGroup[wTotalLength] = +{ + // CONFIGURATION DESCRIPTOR (9 bytes) + SIZEOF_CONFIG_DESCRIPTOR, // bLength + DESC_TYPE_CONFIG, // bDescriptorType: 2 + wTotalLength,0x00, // wTotalLength + USB_NUM_CONFIGURATIONS, // bNumInterfaces + 0x01, // bConfigurationValue + 0x00, // iConfiguration Description offset + USB_SUPPORT_BUS_POWERED | USB_SUPPORT_REM_WAKE, // bmAttributes, bus power, remote wakeup + 0x32, // Max. Power Consumption at 2mA unit + + //-------- Descriptor for HID class device ------------------------------------- + // INTERFACE DESCRIPTOR (9 bytes) + SIZEOF_INTERFACE_DESCRIPTOR, // bLength + DESC_TYPE_INTERFACE, // bDescriptorType: 4 + bInterfaceNumberHid, // bInterfaceNumber + 0x00, // bAlternateSetting + 2,//2, // bNumEndpoints + 0x03, // bInterfaceClass: 3 = HID Device + 0, // bInterfaceSubClass: + 0, // bInterfaceProtocol: + 0,//4, // iInterface:1 + + + // HID DESCRIPTOR (9 bytes) + 0x09, // bLength of HID descriptor + 0x21, // HID Descriptor Type: 0x21 + 0x01,0x01, // HID Revision number 1.01 + 0x00, // Target country, nothing specified (00h) + 0x01,//1 // Number of HID classes to follow + 0x22, // bDescriptorType, Report descriptor type + (SIZEOF_REPORT_DESCRIPTOR& 0x0ff), // Total length of report descriptor + (SIZEOF_REPORT_DESCRIPTOR >>8), + + + // ENDPOINT #81 INPUT DESCRIPTOR, (7 bytes) + SIZEOF_ENDPOINT_DESCRIPTOR, // bLength + DESC_TYPE_ENDPOINT, // bDescriptorType + 0x81, //0x81 // bEndpointAddress; bit7=1 for IN, bits 3-0=1 for ep1 + EP_DESC_ATTR_TYPE_INT, // bmAttributes, interrupt transfers + 0x40, 0x00, //0x40, 0x00, // wMaxPacketSize, 8 bytes + 0x1, //1 // bInterval + + + // ENDPOINT #1 OUTPUT DESCRIPTOR, (7 bytes) + SIZEOF_ENDPOINT_DESCRIPTOR, // bLength + DESC_TYPE_ENDPOINT, // bDescriptorType + 0x01, // bEndpointAddress; bit7=1 for IN, bits 3-0=1 for ep1 + EP_DESC_ATTR_TYPE_INT, // bmAttributes, interrupt transfers + 0x40, 0x00, //0x40, 0x00, // wMaxPacketSize, 8 bytes + 0x1, //1 // bInterval + +}; + + +/*----------------------------------------------------------------------------+ +| End of source file | ++----------------------------------------------------------------------------*/ +/*------------------------ Nothing Below This Line --------------------------*/ diff --git a/ThirdParty/BSL430_Firmware/descriptors.h b/ThirdParty/BSL430_Firmware/descriptors.h new file mode 100644 index 0000000..ea93bea --- /dev/null +++ b/ThirdParty/BSL430_Firmware/descriptors.h @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*----------------------------------------------------------------------------+ +| Include files | ++----------------------------------------------------------------------------*/ +#include "Proj_Settings.h" + +#define startHidDescriptor 18 + +#define MAX_PACKET_SIZE 0x40 + +//#define USB_STR_INDEX_SERNUM 1 // set to 0 if not SerialNumber String descriptor will be used + // or set to 1 if the serial number from TLV structure should be used + +//Controls whether the remote wakeup feature is supported by this device. +// A value of 0x20 indicates that is it supported (this value is the mask for +// the bmAttributes field in the configuration descriptor). +// A value of zero indicates remote wakeup is not supported. +// Other values are undefined, as they will interfere with bmAttributes. +#define USB_SUPPORT_REM_WAKE 0 //CFG_DESC_ATTR_REMOTE_WAKE + +//Controls whether the application is BUS powered +// (gets the current for its functionality from USB bus) or SELF powered. +// Set 0x80 for BUS powered device +// or set to 0x40 for self powered device +#define USB_SUPPORT_BUS_POWERED CFG_DESC_ATTR_BUS_POWERED + +//#define wTotalLength 53 // wTotalLength, CDC +#define wTotalLength 41 // wTotalLength, HID +#define USB_NUM_CONFIGURATIONS 1 // Number of implemented interfaces +//#define bInterfaceNumberCdc 0 +#define bInterfaceNumberHid 0 + + +#define SIZEOF_REPORT_DESCRIPTOR 64-28 + +extern BYTE const abromDeviceDescriptor[SIZEOF_DEVICE_DESCRIPTOR]; + +extern BYTE const abromConfigurationDescriptorGroup[wTotalLength]; + +extern BYTE const abromReportDescriptor[]; + + +/*------------------------ Nothing Below This Line --------------------------*/ diff --git a/ThirdParty/BSL430_Firmware/hal_UCS.c b/ThirdParty/BSL430_Firmware/hal_UCS.c new file mode 100644 index 0000000..d6b131b --- /dev/null +++ b/ThirdParty/BSL430_Firmware/hal_UCS.c @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + + +#include "msp430.h" +#include "hal_UCS.h" + +//==================================================================== +/** + * Startup routine for XT2 + * +*/ +void XT2_Start(void) +{ + P5SEL |= 0x0C; // XT2IN/OUT = on + UCSCTL6 &= ~XT2OFF; // enalbe XT2 even if not used + + //while (SFRIFG1 & OFIFG) { // check OFIFG fault flag + while (UCSCTL7 & (DCOFFG /*+XT1LFOFFG+XT1HFOFFG*/ +XT2OFFG)) + { + UCSCTL7 &= ~(DCOFFG+XT1LFOFFG /*+XT1HFOFFG*/ +XT2OFFG); // Clear OSC flaut Flags fault flags + SFRIFG1 &= ~OFIFG; // Clear OFIFG fault flag + } + +} + +//==================================================================== +/** + * Initializes FLL of the UCS + * + * \param fsystem required system frequency (MCLK) in kHz + * \param ratio ratio between fsystem and FLLREFCLK + */ +void Init_FLL(const unsigned int fsystem, const unsigned int ratio) +{ + unsigned int d, dco_div_bits; + // /\ Prevent variables from being "optimized". + + d = ratio; + + dco_div_bits = FLLD__2; // Have at least a divider of 2 + + UCSCTL0 = 0x000; // Set DCO to lowest Tap + + UCSCTL2 &= ~(0x3FF); // Reset FN bits + UCSCTL2= dco_div_bits | (d - 1); + + UCSCTL1= DCORSEL_5 ; + + UCSCTL4 = (UCSCTL4 & ~(SELM_7 + SELS_7)) | (SELM__DCOCLKDIV + SELS__DCOCLKDIV); // selcet DCODIVCLK + +} // End of fll_init() diff --git a/ThirdParty/BSL430_Firmware/hal_UCS.h b/ThirdParty/BSL430_Firmware/hal_UCS.h new file mode 100644 index 0000000..eb68d3a --- /dev/null +++ b/ThirdParty/BSL430_Firmware/hal_UCS.h @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#ifndef __hal_UCS +#define __hal_UCS + +#define XT1_TO_MCLK UCSCTL4 = (UCSCTL4 & ~(SELM_7)) | (SELM__XT1CLK) /*Select XT1 for MCLK */ +#define XT2_TO_MCLK UCSCTL4 = (UCSCTL4 & ~(SELM_7)) | (SELM__XT2CLK) /* Select XT2 for MCLK */ +#define XT1_TO_SMCLK UCSCTL4 = (UCSCTL4 & ~(SELS_7)) | (SELS__XT1CLK) /* Select XT1 for SMCLK */ +#define XT2_TO_SMCLK UCSCTL4 = (UCSCTL4 & ~(SELS_7)) | (SELS__XT2CLK) /* Select XT2 for SMCLK */ + +//#define MCLK_DIV_1 UCSCTL5 = (UCSCTL5 & ~(DIVM_7)) | (DIVM_0) /* set MCLK/1 */ +//#define MCLK_DIV_2 UCSCTL5 = (UCSCTL5 & ~(DIVM_7)) | (DIVM_1) /* set MCLK/2 */ +//#define SMCLK_DIV_1 UCSCTL5 = (UCSCTL5 & ~(DIVS_7)) | (DIVS_0) /* set SMCLK/1 */ +//#define SMCLK_DIV_2 UCSCTL5 = (UCSCTL5 & ~(DIVS_7)) | (DIVS_1) /* set SMCLK/2 */ + +#define MCLK_DIV(x) UCSCTL5 = (UCSCTL5 & ~(DIVM_7)) | (DIVM__##x) /* set MCLK/x */ +#define SMCLK_DIV(x) UCSCTL5 = (UCSCTL5 & ~(DIVS_7)) | (DIVS__##x) /* set SMCLK/x */ + + +//==================================================================== +/** + * Startup routine for 32kHz Cristal on LFXT1 + * +*/ +void LFXT_Start(void); + +//==================================================================== +/** + * Startup routine for XT1 + * +*/ +void XT1_Start(void); + +//==================================================================== +/** + * Use XT1 in Bypasss mode + * +*/ +void XT1Bypass(void); + +//==================================================================== +/** + * Startup routine for XT2 + * +*/ +void XT2_Start(void); + +//==================================================================== +/** + * Use XT2 in Bypasss mode for MCLK + * +*/ +void XT2Bypass(void); + + +//==================================================================== +/** + * Initializes FLL of the UCS + * + * \param fsystem required system frequency (MCLK) in kHz + * \param ratio ratio between fsystem and FLLREFCLK + */ +void Init_FLL(const unsigned int fsystem, const unsigned int ratio); + + +#endif /* __hal_UCS */ diff --git a/ThirdParty/BSL430_Firmware/tools/convertBsl.bat b/ThirdParty/BSL430_Firmware/tools/convertBsl.bat new file mode 100644 index 0000000..e20208c --- /dev/null +++ b/ThirdParty/BSL430_Firmware/tools/convertBsl.bat @@ -0,0 +1,49 @@ +REM convertBsl.bat +REM +REM Copyright (C) 2007 - 2013 Texas Instruments Incorporated - http://www.ti.com/ +REM +REM +REM Redistribution and use in source and binary forms, with or without +REM modification, are permitted provided that the following conditions +REM are met: +REM +REM Redistributions of source code must retain the above copyright +REM notice, this list of conditions and the following disclaimer. +REM +REM Redistributions in binary form must reproduce the above copyright +REM notice, this list of conditions and the following disclaimer in the +REM documentation and/or other materials provided with the +REM distribution. +REM +REM Neither the name of Texas Instruments Incorporated nor the names of +REM its contributors may be used to endorse or promote products derived +REM from this software without specific prior written permission. +REM +REM THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +REM "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +REM LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +REM A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +REM OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +REM SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +REM LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +REM DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +REM THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +REM (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +REM OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set "TMP=%1%\tools\tmp" +set "SED=%1%\..\..\Bios\tools\sed.exe" +set "SRC=%1\objects\image\%2.txt" +set "DST=%1\..\BSL430_DLL\BSL430_DLL\Utility_Classes\%2.h" +set "TMP_TXT=%TMP%\%2_tmp.txt" +set "TMP_HEADER=%TMP%\%2_tmp.h" + +if not exist %TMP% mkdir %TMP% +%1\..\..\Bios\tools\srec_cat.exe %SRC% -guess -fill 0xFF -within %SRC% -guess -range-padding 2 -exclude 0xFFFE 0x10000 -o %TMP_TXT% -ti_txt +%1\..\..\Bios\tools\srec_cat.exe %TMP_TXT% -guess -o %TMP_HEADER% -ca %2%Image -c_comp + +%SED% -i "s/unsigned char/uint8_t/g;s/unsigned short/uint16_t/g;s/unsigned long/uint32_t/g" %TMP_HEADER% +copy %TMP_HEADER% %DST% + +del %TMP_TXT% +del %TMP_HEADER% diff --git a/ThirdParty/BSL430_Firmware/types.h b/ThirdParty/BSL430_Firmware/types.h new file mode 100644 index 0000000..c4e1550 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/types.h @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef _TYPES_H_ +#define _TYPES_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +/*----------------------------------------------------------------------------+ +| Include files | ++----------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------------+ +| Function Prototype | ++----------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------------+ +| Type Definition & Macro | ++----------------------------------------------------------------------------*/ +typedef char CHAR; +typedef unsigned char UCHAR; +typedef int INT; +typedef unsigned int UINT; +typedef short SHORT; +typedef unsigned short USHORT; +typedef long LONG; +typedef unsigned long ULONG; +typedef void VOID; +typedef unsigned long HANDLE; +typedef char * PSTR; +typedef int BOOL; +typedef double DOUBLE; +typedef unsigned char BYTE; +typedef unsigned char* PBYTE; +typedef unsigned int WORD; +typedef unsigned long DWORD; +typedef unsigned long* PDWORD; +#define VOID void + +// DEVICE_REQUEST Structure +typedef struct _tDEVICE_REQUEST +{ + BYTE bmRequestType; // See bit definitions below + BYTE bRequest; // See value definitions below + WORD wValue; // Meaning varies with request type + WORD wIndex; // Meaning varies with request type + WORD wLength; // Number of bytes of data to transfer +} tDEVICE_REQUEST, *ptDEVICE_REQUEST; + + +//---------------------------------------------------------------------------- +typedef enum +{ + STATUS_ACTION_NOTHING, + STATUS_ACTION_DATA_IN, + STATUS_ACTION_DATA_OUT +} tSTATUS_ACTION_LIST; + +typedef enum +{ + DISABLE, + ENABLE +} tSTATUS_EN_DISABLED; + +typedef enum +{ + FALSE, + TRUE +} tBOOL; + +/*----------------------------------------------------------------------------+ +| Constant Definition | ++----------------------------------------------------------------------------*/ + + +/*----------------------------------------------------------------------------+ +| End of header file | ++----------------------------------------------------------------------------*/ +#ifdef __cplusplus +} +#endif +#endif /* _TYPES_H_ */ +/*------------------------ Nothing Below This Line --------------------------*/ diff --git a/ThirdParty/BSL430_Firmware/usb.c b/ThirdParty/BSL430_Firmware/usb.c new file mode 100644 index 0000000..3b6c797 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/usb.c @@ -0,0 +1,630 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/*----------------------------------------------------------------------------+ +| Include files | ++----------------------------------------------------------------------------*/ +#include "types.h" // Basic Type declarations +#include "usb.h" // USB-specific Data Structures +#include "UsbHidReq.h" +#include "descriptors.h" +#include "Proj_Settings.h" + +/*----------------------------------------------------------------------------+ +| Internal Constant Definition | ++----------------------------------------------------------------------------*/ +#define NO_MORE_DATA 0xFF + +/*----------------------------------------------------------------------------+ +| Internal Variables | ++----------------------------------------------------------------------------*/ + +#pragma location = 0x2400 +__no_init BYTE bConfigurationNumber; // Set to 1 when USB device has been + // configured, set to 0 when unconfigured +#pragma location = 0x2401 +__no_init BYTE bInterfaceNumber; // interface number + +#pragma location = 0x2402 +__no_init BYTE wBytesRemainingOnIEP0; // For endpoint zero transmitter only + // Holds count of bytes remaining to be + // transmitted by endpoint 0. A value + // of 0 means that a 0-length data packet + // A value of 0xFFFF means that transfer + // is complete. + +#pragma location = 0x2404 +__no_init BYTE wBytesRemainingOnOEP0; // For endpoint zero transmitter only + // Holds count of bytes remaining to be + // received by endpoint 0. A value + // of 0 means that a 0-length data packet + // A value of 0xFFFF means that transfer + // is complete. + +#pragma location = 0x2406 +__no_init PBYTE pbIEP0Buffer; // A buffer pointer to input end point 0 + // Data sent back to host is copied from + // this pointed memory location + +//#pragma location = 0x240A +__no_init PBYTE pbOEP0Buffer; // A buffer pointer to output end point 0 + // Data sent from host is copied to + // this pointed memory location + +#pragma location = 0x240E +__no_init BYTE bHostAskMoreDataThanAvailable; + +__no_init BYTE abUsbRequestReturnData[USB_RETURN_DATA_LENGTH]; +__no_init BYTE abUsbRequestIncomingData[USB_RETURN_DATA_LENGTH]; + +#pragma location = 0x2410 +__no_init BYTE bStatusAction; + +#pragma location = 0x2411 +__no_init BYTE bFunctionSuspended; // TRUE if function is suspended + +#pragma location = 0x2412 +__no_init BYTE bEnumerationStatus; // will be set to '1' when the USB addr will be assigned + +#pragma location = 0x2414 +__no_init WORD wUSBPLL; // clock settings for PLL + + +/*----------------------------------------------------------------------------+ +| Global Variables | ++----------------------------------------------------------------------------*/ +/*----------------------------------------------------------------------------+ +| Hardware Related Structure Definition | ++----------------------------------------------------------------------------*/ + +#pragma location = 0x2380 +__no_init tDEVICE_REQUEST tSetupPacket; + +#pragma location = 0x0920 +__no_init tEDB0 tEndPoint0DescriptorBlock; + +#pragma location = 0x23C8 +__no_init tEDB tInputEndPointDescriptorBlock[7]; + +#pragma location = 0x2388 +__no_init tEDB tOutputEndPointDescriptorBlock[7]; + +#pragma location = 0x2378 +__no_init BYTE abIEP0Buffer[EP0_MAX_PACKET_SIZE]; + +#pragma location = 0x2370 +__no_init BYTE abOEP0Buffer[EP0_MAX_PACKET_SIZE]; + +#pragma location = OEP1_X_BUFFER_ADDRESS + __no_init BYTE pbXBufferAddressEp1[EP_MAX_PACKET_SIZE]; + +#pragma location = OEP1_Y_BUFFER_ADDRESS + __no_init BYTE pbYBufferAddressEp1[EP_MAX_PACKET_SIZE]; + +#pragma location = IEP1_X_BUFFER_ADDRESS + __no_init BYTE pbXBufferAddressEp81[EP_MAX_PACKET_SIZE]; + +//---------------------------------------------------------------------------- + + +VOID IntDelay(VOID); + +VOID USB_init(VOID) +{ + //initialize RAM variables + bHostAskMoreDataThanAvailable = 0; + bFunctionSuspended = FALSE; + + // configuration of USB module + USBKEYPID = 0x9628; // set KEY and PID to 0x9628 -> access to configuration registers enabled + USBPWRCTL = 0; // Workaround for USB9 + __no_operation(); // for workaround USB9 + USBPWRCTL = VUSBEN + SLDOEN + SLDOAON /*+ VBOFFIE + VBONIE*/; // keep primary and secondary LDO (3.3 and 1.8 V) enabled + USBPHYCTL = PUSEL; // use DP and DM as USB terminals (not needed because an external PHY is connected to port 9) + IntDelay(); + bEnumerationStatus = 0x00; // Device not enumerated yet +} + +//---------------------------------------------------------------------------- +VOID USB_enable() +{ + volatile unsigned int i; + volatile unsigned int j = 0; + + USBKEYPID = 0x9628; // set KEY and PID to 0x9628 -> access to configuration registers enabled + + USBPLLDIVB = wUSBPLL; // Settings desired frequency + USBPLLCTL = UPFDEN + UPLLEN; // Enable PLL, Phase Freq. Discriminator enable + + //Wait some time till PLL is settled + do { + USBPLLIR = 0x0000; // make sure no interrupts can occur on PLL-module + + __delay_cycles(1001); // For lowest code size use a cycle count that is 3*n + 2 + // where n is any integer greater than 4 (IAR uses other + // instructions when n is less than 5). + if (j++ > 1000) + return ; + }while (USBPLLIR != 0); + USBCNF |= USB_EN; // enable USB module +} + +//---------------------------------------------------------------------------- + +VOID USB_reset(VOID) +{ + bEnumerationStatus = 0x00; // Device not enumerated yet + bFunctionSuspended = FALSE; // Device is not in suspend mode + + bConfigurationNumber = 0x00; // device unconfigured + bInterfaceNumber = 0x00; + + USBCTL = 0; // Function Reset Connection disable + + wBytesRemainingOnIEP0 = NO_MORE_DATA; + wBytesRemainingOnOEP0 = NO_MORE_DATA; + bStatusAction = STATUS_ACTION_NOTHING; + + /* Set settings for EP0 */ + // NAK both 0 endpoints and enable endpoint 0 interrupt + tEndPoint0DescriptorBlock.bIEPBCNT = EPBCNT_NAK; + tEndPoint0DescriptorBlock.bOEPBCNT = EPBCNT_NAK; + tEndPoint0DescriptorBlock.bIEPCNFG = EPCNF_USBIE | EPCNF_UBME | EPCNF_STALL; // 8 byte data packet + tEndPoint0DescriptorBlock.bOEPCNFG = EPCNF_USBIE | EPCNF_UBME | EPCNF_STALL; // 8 byte data packet + + USBOEPIE = BIT0 | BIT1; // enable EP0 and EP1 output IRQ + USBIEPIE = BIT0 | BIT1; // enable EP0 and EP1 input IRQ + + /* Set settings for IEP1 */ + // enable endpoint 1 interrupt, input + tInputEndPointDescriptorBlock[0].bEPCNF = EPCNF_UBME; //single buffering + tInputEndPointDescriptorBlock[0].bEPBBAX = (BYTE)(((IEP1_X_BUFFER_ADDRESS - START_OF_USB_BUFFER) >> 3) & 0x00ff); + tInputEndPointDescriptorBlock[0].bEPBCTX = EPBCNT_NAK; + tInputEndPointDescriptorBlock[0].bEPBCTY = EPBCNT_NAK; + tInputEndPointDescriptorBlock[0].bEPSIZXY = MAX_PACKET_SIZE; + + /* Set settings for OEP1 */ + // enable endpoint 1 interrupt, output + tOutputEndPointDescriptorBlock[0].bEPCNF = EPCNF_UBME ; //no double buffering + tOutputEndPointDescriptorBlock[0].bEPBBAX = (BYTE)(((OEP1_X_BUFFER_ADDRESS - START_OF_USB_BUFFER) >> 3) & 0x00ff); + tOutputEndPointDescriptorBlock[0].bEPBCTX = 0x00; + tOutputEndPointDescriptorBlock[0].bEPSIZXY = MAX_PACKET_SIZE; + + USBCTL = FEN; // enable function + USBIFG = 0; // make sure no interrupts are pending + USBIFG &= ~RSTRIFG; //clear interrupt request flag +} + +//---------------------------------------------------------------------------- + +VOID USB_suspend(VOID) +{ + bFunctionSuspended = TRUE; + USBCTL |= FRSTE; // Function Reset Connection Enable + USBIFG &= ~SUSRIFG; // clear interrupt flag + USBPLLCTL = 0; // disable PLL +} + +//---------------------------------------------------------------------------- + +VOID USB_resume(VOID) +{ + USB_enable(); // enable PLL + USBIFG &= ~(RESRIFG | SUSRIFG); // clear interrupt flags + bFunctionSuspended = FALSE; +} + +//---------------------------------------------------------------------------- + +VOID usbStallEndpoint0(VOID) +{ + tEndPoint0DescriptorBlock.bIEPCNFG |= EPCNF_STALL; + tEndPoint0DescriptorBlock.bOEPCNFG |= EPCNF_STALL; +} + +//---------------------------------------------------------------------------- + +VOID usbClearOEP0ByteCount(VOID) +{ + tEndPoint0DescriptorBlock.bOEPBCNT = 0x00; +} + +//---------------------------------------------------------------------------- + + +VOID usbStallOEP0(VOID) +{ + // in standard USB request, there is not control write request with data stage + // control write, stall output endpoint 0 + // wLength should be 0 in all cases + tEndPoint0DescriptorBlock.bOEPCNFG |= EPCNF_STALL; +} + +//---------------------------------------------------------------------------- + +VOID usbSendNextPacketOnIEP0(VOID) +{ + BYTE bPacketSize,bIndex; + + // First check if there are bytes remaining to be transferred + if(wBytesRemainingOnIEP0 != NO_MORE_DATA){ + if(wBytesRemainingOnIEP0 > EP0_PACKET_SIZE){ + // More bytes are remaining than will fit in one packet + // there will be More IN Stage + bPacketSize = EP0_PACKET_SIZE; + wBytesRemainingOnIEP0 -= EP0_PACKET_SIZE; + bStatusAction = STATUS_ACTION_DATA_IN; + + }else if (wBytesRemainingOnIEP0 < EP0_PACKET_SIZE){ + // The remaining data will fit in one packet. + // This case will properly handle wBytesRemainingOnIEP0 == 0 + bPacketSize = (BYTE)wBytesRemainingOnIEP0; + wBytesRemainingOnIEP0 = NO_MORE_DATA; // No more data need to be Txed + bStatusAction = STATUS_ACTION_NOTHING; + + }else{ + bPacketSize = EP0_PACKET_SIZE; + if(bHostAskMoreDataThanAvailable == TRUE){ + wBytesRemainingOnIEP0 = 0; + bStatusAction = STATUS_ACTION_DATA_IN; + }else{ + wBytesRemainingOnIEP0 = NO_MORE_DATA; + bStatusAction = STATUS_ACTION_NOTHING; + } + } + + for(bIndex=0; bIndex= bTemp) + { + wBytesRemainingOnIEP0 = bTemp; + bHostAskMoreDataThanAvailable = FALSE; + } + else + { + bHostAskMoreDataThanAvailable = TRUE; + } + usbSendNextPacketOnIEP0(); +} + +//---------------------------------------------------------------------------- + +VOID usbSendZeroLengthPacketOnIEP0(VOID) +{ + wBytesRemainingOnIEP0 = NO_MORE_DATA; + bStatusAction = STATUS_ACTION_NOTHING; + tEndPoint0DescriptorBlock.bIEPBCNT = 0x00; +} + +//---------------------------------------------------------------------------- + +VOID usbClearEndpointFeature(VOID) +{ + BYTE bEndpointNumber; + + // EP is from EP1 to EP7 while C language start from 0 + bEndpointNumber = (tSetupPacket.wIndex & EP_DESC_ADDR_EP_NUM); + if(bEndpointNumber == 0x00) usbSendZeroLengthPacketOnIEP0(); + else{ + if(bEndpointNumber == 1){ + if((tSetupPacket.wIndex & EP_DESC_ADDR_DIR_IN) == EP_DESC_ADDR_DIR_IN) + { + // input endpoint + tInputEndPointDescriptorBlock[0].bEPCNF &= ~(EPCNF_STALL | EPCNF_TOGGLE); + } + else + { + // output endpoint + tOutputEndPointDescriptorBlock[0].bEPCNF &= ~(EPCNF_STALL | EPCNF_TOGGLE); + } + usbSendZeroLengthPacketOnIEP0(); + } + } +} + +//---------------------------------------------------------------------------- + +VOID usbGetConfiguration(VOID) +{ + usbClearOEP0ByteCount(); // for status stage + wBytesRemainingOnIEP0 = 1; + usbSendDataPacketOnEP0((PBYTE)&bConfigurationNumber); +} + +//---------------------------------------------------------------------------- + +VOID usbGetDeviceDescriptor(VOID) +{ + usbClearOEP0ByteCount(); + wBytesRemainingOnIEP0 = SIZEOF_DEVICE_DESCRIPTOR; + usbSendDataPacketOnEP0((PBYTE) &abromDeviceDescriptor); +} + +//---------------------------------------------------------------------------- + +VOID usbGetConfigurationDescriptor(VOID) +{ + usbClearOEP0ByteCount(); + wBytesRemainingOnIEP0 = sizeof(abromConfigurationDescriptorGroup); + usbSendDataPacketOnEP0((PBYTE)&abromConfigurationDescriptorGroup); +} + +//---------------------------------------------------------------------------- + +VOID usbGetInterface(VOID) +{ + // not fully supported, return one byte, zero + usbClearOEP0ByteCount(); // for status stage + wBytesRemainingOnIEP0 = 0x02; + abUsbRequestReturnData[0] = 0x00; // changed to report alternative setting byte + abUsbRequestReturnData[1] = bInterfaceNumber; + usbSendDataPacketOnEP0((PBYTE)&abUsbRequestReturnData[0]); +} + +//---------------------------------------------------------------------------- + +VOID usbGetDeviceStatus(VOID) +{ + /* for Self Powerd USB device + if((abromConfigurationDescriptorGroup[OFFSET_CONFIG_DESCRIPTOR_POWER] & + CFG_DESC_ATTR_SELF_POWERED) == CFG_DESC_ATTR_SELF_POWERED) + abUsbRequestReturnData[0] = DEVICE_STATUS_SELF_POWER; + */ + + usbClearOEP0ByteCount(); // for status stage + + // Return self power status and remote wakeup status + wBytesRemainingOnIEP0 = 2; + usbSendDataPacketOnEP0((PBYTE)&abUsbRequestReturnData[0]); +} + +//---------------------------------------------------------------------------- + +VOID usbGetEndpointStatus(VOID) +{ + BYTE bEndpointNumber; + + // Endpoint number is bIndexL + bEndpointNumber = tSetupPacket.wIndex & EP_DESC_ADDR_EP_NUM; + + if(bEndpointNumber == 0x00){ + if((tSetupPacket.wIndex & EP_DESC_ADDR_DIR_IN) == EP_DESC_ADDR_DIR_IN){ + // input endpoint 0 + abUsbRequestReturnData[0] = (BYTE)(tEndPoint0DescriptorBlock.bIEPCNFG & EPCNF_STALL); + }else{ + // output endpoint 0 + abUsbRequestReturnData[0] = (BYTE)(tEndPoint0DescriptorBlock.bOEPCNFG & EPCNF_STALL); + } + abUsbRequestReturnData[0] = abUsbRequestReturnData[0] >> 3; // STALL is on bit 3 + usbClearOEP0ByteCount(); // for status stage + wBytesRemainingOnIEP0 = 0x02; + usbSendDataPacketOnEP0((PBYTE)&abUsbRequestReturnData[0]); + }else{ + // EP is from EP1 to EP7 while C language start from 0 + // Firmware should NOT response if specified endpoint is not supported. (charpter 8) + if(tSetupPacket.wIndex & EP_DESC_ADDR_DIR_IN){ + // input endpoint + abUsbRequestReturnData[0] = (BYTE)(tInputEndPointDescriptorBlock[0].bEPCNF & EPCNF_STALL); + }else{ + // output endpoint + abUsbRequestReturnData[0] = (BYTE)(tOutputEndPointDescriptorBlock[0].bEPCNF & EPCNF_STALL); + } + abUsbRequestReturnData[0] = abUsbRequestReturnData[0] >> 3; // STALL is on bit 3 + usbClearOEP0ByteCount(); + wBytesRemainingOnIEP0 = 0x02; + usbSendDataPacketOnEP0((PBYTE)&abUsbRequestReturnData[0]); + } +} + +//---------------------------------------------------------------------------- +VOID usbSetAddress(VOID) +{ + usbStallOEP0(); // control write without data stage + + // bValueL contains device address + // waving verification (Rosty) if(tSetupPacket.wValue < 128){ + // hardware will update the address after status stage + // therefore, firmware can set the address now. + + USBFUNADR = tSetupPacket.wValue; + usbSendZeroLengthPacketOnIEP0(); + + // waving verification (Rosty) }else usbStallEndpoint0(); +} + +//---------------------------------------------------------------------------- + +VOID usbSetConfiguration(VOID) +{ + usbStallOEP0(); // control write without data stage + + // configuration number is in bValueL + // change the code if more than one configuration is supported + bConfigurationNumber = tSetupPacket.wValue; + usbSendZeroLengthPacketOnIEP0(); + + bEnumerationStatus = ENUMERATION_COMPLETE; // set device as enumerated +} + +//---------------------------------------------------------------------------- + +VOID usbSetEndpointFeature(VOID) +{ + BYTE bEndpointNumber; + + // wValue contains feature selector + // bIndexL contains endpoint number + // Endpoint number is in low byte of wIndex + if((tSetupPacket.wValue&0xff) == FEATURE_ENDPOINT_STALL) + { + bEndpointNumber = (BYTE)(tSetupPacket.wIndex) & EP_DESC_ADDR_EP_NUM; + if(bEndpointNumber == 0x00) usbSendZeroLengthPacketOnIEP0(); // do nothing for endpoint 0 + else + { + // Firmware should NOT response if specified endpoint is not supported. (charpter 8) + if(bEndpointNumber == 1 ) + { + if ((BYTE)(tSetupPacket.wIndex) & EP_DESC_ADDR_DIR_IN){ + // input endpoint + tInputEndPointDescriptorBlock[0].bEPCNF |= EPCNF_STALL; + }else{ + // output endpoint + tOutputEndPointDescriptorBlock[0].bEPCNF |= EPCNF_STALL; + } + usbSendZeroLengthPacketOnIEP0(); + } // no response if endpoint is not supported. + } + } + else + { + usbStallEndpoint0(); + } +} + +//---------------------------------------------------------------------------- + +VOID usbSetInterface(VOID) +{ + // bValueL contains alternative setting + // bIndexL contains interface number + // change code if more than one interface is supported + usbStallOEP0(); // control write without data stage + bInterfaceNumber = tSetupPacket.wIndex; + usbSendZeroLengthPacketOnIEP0(); +} + +//---------------------------------------------------------------------------- +VOID usbDecodeAndProcessUsbRequest(VOID) +{ + BOOL InTransaction; + + // copy the MSB of bmRequestType to DIR bit of USBCTL + if((tSetupPacket.bmRequestType & USB_REQ_TYPE_INPUT) != 0x00) + { + InTransaction = TRUE; + USBCTL |= DIR; + } + else + { + InTransaction = FALSE; + USBCTL &= ~DIR; + } + + //decode request + if ((tSetupPacket.bmRequestType & USB_REQ_TYPE_MASK) == USB_REQ_TYPE_STANDARD) + { + switch (tSetupPacket.bRequest) + { + case USB_REQ_GET_DESCRIPTOR: + if (InTransaction == FALSE) break; //exit and stall + switch (tSetupPacket.wValue>>8) + { + case DESC_TYPE_DEVICE: + usbGetDeviceDescriptor(); + return; + case DESC_TYPE_CONFIG: + usbGetConfigurationDescriptor(); + return; + + case DESC_TYPE_REPORT: + usbGetReportDescriptor(); + return; + case DESC_TYPE_HID: + usbGetHidDescriptor(); + return; + } //switch (tSetupPacket.wValue>>8 + break; //USB_REQ_GET_DESCRIPTOR + + case USB_REQ_GET_INTERFACE: + if (InTransaction == FALSE) break; //exit and stall + usbGetInterface(); + return; + case USB_REQ_SET_ADDRESS: + usbSetAddress(); + return; + case USB_REQ_SET_CONFIGURATION: + usbSetConfiguration(); + return; + case USB_REQ_GET_CONFIGURATION: + usbGetConfiguration(); + return; + case USB_REQ_SET_INTERFACE: + usbSetInterface(); + return; + case USB_REQ_SET_FEATURE: + usbSetEndpointFeature(); + return; + case USB_REQ_CLEAR_FEATURE: + usbClearEndpointFeature(); + return; + case USB_REQ_GET_STATUS: + if (tSetupPacket.bmRequestType == (USB_REQ_TYPE_INPUT | USB_REQ_TYPE_STANDARD | USB_REQ_TYPE_DEVICE)) + { + usbGetDeviceStatus(); + return; + } + + //USB_REQ_TYPE_INPUT | USB_REQ_TYPE_STANDARD | USB_REQ_TYPE_INTERFACE, + //usbGetInterfaceStatus(); + + if (tSetupPacket.bmRequestType == (USB_REQ_TYPE_INPUT | USB_REQ_TYPE_STANDARD | USB_REQ_TYPE_ENDPOINT)) + { + usbGetEndpointStatus(); + return; + } + }//switch (tSetupPacket.bRequest) + } + usbStallEndpoint0(); +} + + +/*----------------------------------------------------------------------------+ +| End of source file | ++----------------------------------------------------------------------------*/ +/*------------------------ Nothing Below This Line --------------------------*/ diff --git a/ThirdParty/BSL430_Firmware/usb.h b/ThirdParty/BSL430_Firmware/usb.h new file mode 100644 index 0000000..5ffd48a --- /dev/null +++ b/ThirdParty/BSL430_Firmware/usb.h @@ -0,0 +1,317 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#ifndef _USB_H_ +#define _USB_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include "types.h" +#include "msp430.h" + +/*----------------------------------------------------------------------------+ +| Constant Definition | ++----------------------------------------------------------------------------*/ +#define USB_RETURN_DATA_LENGTH 8 +#define SIZEOF_DEVICE_REQUEST 0x08 + +// Bit definitions for DEVICE_REQUEST.bmRequestType +// Bit 7: Data direction +#define USB_REQ_TYPE_OUTPUT 0x00 // 0 = Host sending data to device +#define USB_REQ_TYPE_INPUT 0x80 // 1 = Device sending data to host + +// Bit 6-5: Type +#define USB_REQ_TYPE_MASK 0x60 // Mask value for bits 6-5 +#define USB_REQ_TYPE_STANDARD 0x00 // 00 = Standard USB request +#define USB_REQ_TYPE_CLASS 0x20 // 01 = Class specific +#define USB_REQ_TYPE_VENDOR 0x40 // 10 = Vendor specific + +// Bit 4-0: Recipient +#define USB_REQ_TYPE_RECIP_MASK 0x1F // Mask value for bits 4-0 +#define USB_REQ_TYPE_DEVICE 0x00 // 00000 = Device +#define USB_REQ_TYPE_INTERFACE 0x01 // 00001 = Interface +#define USB_REQ_TYPE_ENDPOINT 0x02 // 00010 = Endpoint +#define USB_REQ_TYPE_OTHER 0x03 // 00011 = Other + +// Values for DEVICE_REQUEST.bRequest +// Standard Device Requests +#define USB_REQ_GET_STATUS 0 +#define USB_REQ_CLEAR_FEATURE 1 +#define USB_REQ_SET_FEATURE 3 +#define USB_REQ_SET_ADDRESS 5 +#define USB_REQ_GET_DESCRIPTOR 6 +#define USB_REQ_SET_DESCRIPTOR 7 +#define USB_REQ_GET_CONFIGURATION 8 +#define USB_REQ_SET_CONFIGURATION 9 +#define USB_REQ_GET_INTERFACE 10 +#define USB_REQ_SET_INTERFACE 11 +#define USB_REQ_SYNCH_FRAME 12 + +// CDC CLASS Requests +#define USB_CDC_GET_LINE_CODING 0x21 +#define USB_CDC_SET_LINE_CODING 0x20 +#define USB_CDC_SET_CONTROL_LINE_STATE 0x22 + +// HID CLASS Requests +#define USB_HID_REQ 0x81 +#define USB_REQ_GET_REPORT 0x01 +#define USB_REQ_GET_IDLE 0x02 +#define USB_REQ_SET_REPORT 0x09 +#define USB_REQ_SET_IDLE 0x0A +#define USB_REQ_SET_PROTOCOL 0x0B +#define USB_REQ_GET_PROTOCOL 0x03 + +//HID Values for HID Report Types (tSetup.bValueH) +#define USB_REQ_HID_INPUT 0x01 +#define USB_REQ_HID_OUTPUT 0x02 +#define USB_REQ_HID_FEATURE 0x03 + +// Descriptor Type Values +#define DESC_TYPE_DEVICE 1 // Device Descriptor (Type 1) +#define DESC_TYPE_CONFIG 2 // Configuration Descriptor (Type 2) +#define DESC_TYPE_STRING 3 // String Descriptor (Type 3) +#define DESC_TYPE_INTERFACE 4 // Interface Descriptor (Type 4) +#define DESC_TYPE_ENDPOINT 5 // Endpoint Descriptor (Type 5) +#define DESC_TYPE_DEVICE_QUALIFIER 6 // Endpoint Descriptor (Type 6) +#define DESC_TYPE_HUB 0x29 // Hub Descriptor (Type 6) +#define DESC_TYPE_HID 0x21 // HID Descriptor +#define DESC_TYPE_REPORT 0x22 // Report Descriptor +#define DESC_TYPE_PHYSICAL 0x23 // Physical Descriptor + +// Feature Selector Values +#define FEATURE_REMOTE_WAKEUP 1 // Remote wakeup (Type 1) +#define FEATURE_ENDPOINT_STALL 0 // Endpoint stall (Type 0) + +// Device Status Values +#define DEVICE_STATUS_REMOTE_WAKEUP 0x02 +#define DEVICE_STATUS_SELF_POWER 0x01 + +// Maximum descriptor size +#define MAX_DESC_SIZE 256 + +// DEVICE_DESCRIPTOR structure +#define SIZEOF_DEVICE_DESCRIPTOR 0x12 +#define OFFSET_DEVICE_DESCRIPTOR_VID_L 0x08 +#define OFFSET_DEVICE_DESCRIPTOR_VID_H 0x09 +#define OFFSET_DEVICE_DESCRIPTOR_PID_L 0x0A +#define OFFSET_DEVICE_DESCRIPTOR_PID_H 0x0B +#define OFFSET_CONFIG_DESCRIPTOR_POWER 0x07 +#define OFFSET_CONFIG_DESCRIPTOR_CURT 0x08 + +// CONFIG_DESCRIPTOR structure +#define SIZEOF_CONFIG_DESCRIPTOR 0x09 + +// HID DESCRIPTOR structure +#define SIZEOF_HID_DESCRIPTOR 0x09 + +// Bit definitions for CONFIG_DESCRIPTOR.bmAttributes +#define CFG_DESC_ATTR_SELF_POWERED 0x40 // Bit 6: If set, device is self powered +#define CFG_DESC_ATTR_BUS_POWERED 0x80 // Bit 7: If set, device is bus powered +#define CFG_DESC_ATTR_REMOTE_WAKE 0x20 // Bit 5: If set, device supports remote wakeup + +// INTERFACE_DESCRIPTOR structure +#define SIZEOF_INTERFACE_DESCRIPTOR 0x09 + +// ENDPOINT_DESCRIPTOR structure +#define SIZEOF_ENDPOINT_DESCRIPTOR 0x07 + +// Bit definitions for EndpointDescriptor.EndpointAddr +#define EP_DESC_ADDR_EP_NUM 0x0F // Bit 3-0: Endpoint number +#define EP_DESC_ADDR_DIR_IN 0x80 // Bit 7: Direction of endpoint, 1/0 = In/Out + +// Bit definitions for EndpointDescriptor.EndpointFlags +#define EP_DESC_ATTR_TYPE_MASK 0x03 // Mask value for bits 1-0 +#define EP_DESC_ATTR_TYPE_CONT 0x00 // Bit 1-0: 00 = Endpoint does control transfers +#define EP_DESC_ATTR_TYPE_ISOC 0x01 // Bit 1-0: 01 = Endpoint does isochronous transfers +#define EP_DESC_ATTR_TYPE_BULK 0x02 // Bit 1-0: 10 = Endpoint does bulk transfers +#define EP_DESC_ATTR_TYPE_INT 0x03 // Bit 1-0: 11 = Endpoint does interrupt transfers + + +extern __no_init tDEVICE_REQUEST tSetupPacket; +/*extern __no_init tEDB0 tEndPoint0DescriptorBlock; +extern __no_init tEDB* tInputEndPointDescriptorBlock; +extern __no_init tEDB* tOutputEndPointDescriptorBlock;*/ +extern __no_init BYTE abIEP0Buffer[]; +extern __no_init BYTE abOEP0Buffer[]; +extern __no_init BYTE pbXBufferAddressEp1[]; +extern __no_init BYTE pbYBufferAddressEp1[]; +extern __no_init BYTE pbXBufferAddressEp81[]; +extern __no_init BYTE pbYBufferAddressEp81[]; +extern __no_init BYTE pbXBufferAddressEp2[]; +extern __no_init BYTE pbYBufferAddressEp2[]; +extern __no_init BYTE pbXBufferAddressEp82[]; +extern __no_init BYTE pbYBufferAddressEp82[]; + +extern __no_init BYTE wBytesRemainingOnIEP0; + +extern __no_init BYTE abUsbRequestReturnData[]; +extern __no_init BYTE abUsbRequestIncomingData[]; +extern __no_init BYTE bEnumerationStatus; + + +extern __no_init WORD wUSBPLL; // clock settings for PLL + +/** +\fn VOID Init_USB(VOID); + +\brief Init the USB HW interface. + +*/ +VOID USB_init(VOID); + +/** +\fn VOID USB_Enable(WORD freq); + +\brief Init and start the USB PLL. + +*/ +VOID USB_enable(); + +/** +\fn VOID Reset_USB(VOID); + +\brief Reset USB-SIE and global variables. + +*/ +VOID USB_reset(VOID); + +/** +\fn VOID Suspend_USB(VOID); + +\brief Suspend USB. + +*/ +VOID USB_suspend(VOID); + +/** +\fn VOID Resume_USB(VOID); + +\brief Resume USB. + +*/ +VOID USB_resume(VOID); + +/** +\fn VOID usbStallEndpoint0(VOID); + +\brief Send stall handshake for in- and out-endpoint0 (control pipe) + +*/ +VOID usbStallEndpoint0(VOID); + +/** +\fn VOID usbClearOEP0ByteCount(VOID); + +\brief Clear byte counter for endpoint0 (control pipe) + +*/ +VOID usbClearOEP0ByteCount(VOID); + +/** +\fn VOID usbStallOEP0(VOID); + +\brief Send stall handshake for out-endpoint0 (control pipe) + +*/ +VOID usbStallOEP0(VOID); + +/** +\fn VOID usbSendNextPacketOnIEP0(VOID); + +\brief Send further data over control pipe if needed. +\n Function is called from control-in IRQ. Do not call from user application + +*/ +VOID usbSendNextPacketOnIEP0(VOID); + +/** +\fn VOID usbSendDataPacketOnEP0(PBYTE pbBuffer); + +\brief Send data over control pipe to host. +\n Number of bytes to transmit should be set with +\n global varible "wBytesRemainingOnIEP0" before function is called. + +*/ +VOID usbSendDataPacketOnEP0(PBYTE pbBuffer); + +/** +\fn VOID usbReceiveNextPacketOnOEP0(VOID); + +\brief Receive further data from control pipe if needed. +\n Function is called from control-out IRQ. Do not call from user application + +*/ +VOID usbReceiveNextPacketOnOEP0(VOID); + +/** +\fn VOID usbReceiveDataPacketOnEP0(PBYTE pbBuffer); + +\brief Receive data from control pipe. +\n Number of bytes to receive should be set with +\n global varible "wBytesRemainingOnOEP0" before function is called. + +*/ +VOID usbReceiveDataPacketOnEP0(PBYTE pbBuffer); + +/** +\fn VOID usbSendZeroLengthPacketOnIEP0(VOID); + +\brief Send zero length packet on control pipe. + +*/ +VOID usbSendZeroLengthPacketOnIEP0(VOID); + +/** +\fn VOID usbDecodeAndProcessUsbRequest(VOID); + +\brief Decode incoming usb setup packet and call corresponding function +\n usbDecodeAndProcessUsbRequest is called from IRQ. Do not call from user application + +*/ +VOID usbDecodeAndProcessUsbRequest(VOID); + + +#define ENUMERATION_COMPLETE 0x01 + +/*----------------------------------------------------------------------------+ +| End of header file | ++----------------------------------------------------------------------------*/ +#ifdef __cplusplus +} +#endif +#endif /* _USB_H */ +/*------------------------ Nothing Below This Line --------------------------*/ diff --git a/ThirdParty/BSL430_Firmware/usbapi.h b/ThirdParty/BSL430_Firmware/usbapi.h new file mode 100644 index 0000000..4ef3016 --- /dev/null +++ b/ThirdParty/BSL430_Firmware/usbapi.h @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ + * + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the + * distribution. + * + * Neither the name of Texas Instruments Incorporated nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// send function +BYTE UsbSendHID(const BYTE* data); + +// global pointer to buffer with received data +//extern const BYTE *ReceiveBuffer; +#define ReceiveBuffer (const unsigned char*)(OEP1_X_BUFFER_ADDRESS + 1) + +// Returns: +// gReceiveBuffer -> global pointer to buffer with received data +// returned value: how many bytes received (should be always 64) +BYTE UsbReceiveHID(VOID); + +//should be called after successed UsbReceiveHID() to make receive buffer ready to receive next data packet +VOID UsbClearReceiveBuffer(VOID); + +// This functin shold be called asap in the loop: +// no delay longer then 2 ms during enumeartion and +// no delay longer then 40 ms after enumeration +VOID UsbHandler(VOID); diff --git a/ThirdParty/include/pugiconfig.hpp b/ThirdParty/include/pugiconfig.hpp new file mode 100644 index 0000000..8f610c7 --- /dev/null +++ b/ThirdParty/include/pugiconfig.hpp @@ -0,0 +1,74 @@ +/** + * pugixml parser - version 1.7 + * -------------------------------------------------------- + * Copyright (C) 2006-2015, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at http://pugixml.org/ + * + * This library is distributed under the MIT License. See notice at the end + * of this file. + * + * This work is based on the pugxml parser, which is: + * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) + */ + +#ifndef HEADER_PUGICONFIG_HPP +#define HEADER_PUGICONFIG_HPP + +// Uncomment this to enable wchar_t mode +// #define PUGIXML_WCHAR_MODE + +// Uncomment this to enable compact mode +// #define PUGIXML_COMPACT + +// Uncomment this to disable XPath +// #define PUGIXML_NO_XPATH + +// Uncomment this to disable STL +// #define PUGIXML_NO_STL + +// Uncomment this to disable exceptions +// #define PUGIXML_NO_EXCEPTIONS + +// Set this to control attributes for public classes/functions, i.e.: +// #define PUGIXML_API __declspec(dllexport) // to export all public symbols from DLL +// #define PUGIXML_CLASS __declspec(dllimport) // to import all classes from DLL +// #define PUGIXML_FUNCTION __fastcall // to set calling conventions to all public functions to fastcall +// In absence of PUGIXML_CLASS/PUGIXML_FUNCTION definitions PUGIXML_API is used instead + +// Tune these constants to adjust memory-related behavior +// #define PUGIXML_MEMORY_PAGE_SIZE 32768 +// #define PUGIXML_MEMORY_OUTPUT_STACK 10240 +// #define PUGIXML_MEMORY_XPATH_PAGE_SIZE 4096 + +// Uncomment this to switch to header-only version +// #define PUGIXML_HEADER_ONLY + +// Uncomment this to enable long long support +// #define PUGIXML_HAS_LONG_LONG + +#endif + +/** + * Copyright (c) 2006-2015 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/ThirdParty/include/pugixml.hpp b/ThirdParty/include/pugixml.hpp new file mode 100644 index 0000000..3d5b2bc --- /dev/null +++ b/ThirdParty/include/pugixml.hpp @@ -0,0 +1,1400 @@ +/** + * pugixml parser - version 1.7 + * -------------------------------------------------------- + * Copyright (C) 2006-2015, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at http://pugixml.org/ + * + * This library is distributed under the MIT License. See notice at the end + * of this file. + * + * This work is based on the pugxml parser, which is: + * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) + */ + +#ifndef PUGIXML_VERSION +// Define version macro; evaluates to major * 100 + minor so that it's safe to use in less-than comparisons +# define PUGIXML_VERSION 170 +#endif + +// Include user configuration file (this can define various configuration macros) +#include "pugiconfig.hpp" + +#ifndef HEADER_PUGIXML_HPP +#define HEADER_PUGIXML_HPP + +// Include stddef.h for size_t and ptrdiff_t +#include + +// Include exception header for XPath +#if !defined(PUGIXML_NO_XPATH) && !defined(PUGIXML_NO_EXCEPTIONS) +# include +#endif + +// Include STL headers +#ifndef PUGIXML_NO_STL +# include +# include +# include +#endif + +// Macro for deprecated features +#ifndef PUGIXML_DEPRECATED +# if defined(__GNUC__) +# define PUGIXML_DEPRECATED __attribute__((deprecated)) +# elif defined(_MSC_VER) && _MSC_VER >= 1300 +# define PUGIXML_DEPRECATED __declspec(deprecated) +# else +# define PUGIXML_DEPRECATED +# endif +#endif + +// If no API is defined, assume default +#ifndef PUGIXML_API +# define PUGIXML_API +#endif + +// If no API for classes is defined, assume default +#ifndef PUGIXML_CLASS +# define PUGIXML_CLASS PUGIXML_API +#endif + +// If no API for functions is defined, assume default +#ifndef PUGIXML_FUNCTION +# define PUGIXML_FUNCTION PUGIXML_API +#endif + +// If the platform is known to have long long support, enable long long functions +#ifndef PUGIXML_HAS_LONG_LONG +# if __cplusplus >= 201103 +# define PUGIXML_HAS_LONG_LONG +# elif defined(_MSC_VER) && _MSC_VER >= 1400 +# define PUGIXML_HAS_LONG_LONG +# endif +#endif + +// Character interface macros +#ifdef PUGIXML_WCHAR_MODE +# define PUGIXML_TEXT(t) L ## t +# define PUGIXML_CHAR wchar_t +#else +# define PUGIXML_TEXT(t) t +# define PUGIXML_CHAR char +#endif + +namespace pugi +{ + // Character type used for all internal storage and operations; depends on PUGIXML_WCHAR_MODE + typedef PUGIXML_CHAR char_t; + +#ifndef PUGIXML_NO_STL + // String type used for operations that work with STL string; depends on PUGIXML_WCHAR_MODE + typedef std::basic_string, std::allocator > string_t; +#endif +} + +// The PugiXML namespace +namespace pugi +{ + // Tree node types + enum xml_node_type + { + node_null, // Empty (null) node handle + node_document, // A document tree's absolute root + node_element, // Element tag, i.e. '' + node_pcdata, // Plain character data, i.e. 'text' + node_cdata, // Character data, i.e. '' + node_comment, // Comment tag, i.e. '' + node_pi, // Processing instruction, i.e. '' + node_declaration, // Document declaration, i.e. '' + node_doctype // Document type declaration, i.e. '' + }; + + // Parsing options + + // Minimal parsing mode (equivalent to turning all other flags off). + // Only elements and PCDATA sections are added to the DOM tree, no text conversions are performed. + const unsigned int parse_minimal = 0x0000; + + // This flag determines if processing instructions (node_pi) are added to the DOM tree. This flag is off by default. + const unsigned int parse_pi = 0x0001; + + // This flag determines if comments (node_comment) are added to the DOM tree. This flag is off by default. + const unsigned int parse_comments = 0x0002; + + // This flag determines if CDATA sections (node_cdata) are added to the DOM tree. This flag is on by default. + const unsigned int parse_cdata = 0x0004; + + // This flag determines if plain character data (node_pcdata) that consist only of whitespace are added to the DOM tree. + // This flag is off by default; turning it on usually results in slower parsing and more memory consumption. + const unsigned int parse_ws_pcdata = 0x0008; + + // This flag determines if character and entity references are expanded during parsing. This flag is on by default. + const unsigned int parse_escapes = 0x0010; + + // This flag determines if EOL characters are normalized (converted to #xA) during parsing. This flag is on by default. + const unsigned int parse_eol = 0x0020; + + // This flag determines if attribute values are normalized using CDATA normalization rules during parsing. This flag is on by default. + const unsigned int parse_wconv_attribute = 0x0040; + + // This flag determines if attribute values are normalized using NMTOKENS normalization rules during parsing. This flag is off by default. + const unsigned int parse_wnorm_attribute = 0x0080; + + // This flag determines if document declaration (node_declaration) is added to the DOM tree. This flag is off by default. + const unsigned int parse_declaration = 0x0100; + + // This flag determines if document type declaration (node_doctype) is added to the DOM tree. This flag is off by default. + const unsigned int parse_doctype = 0x0200; + + // This flag determines if plain character data (node_pcdata) that is the only child of the parent node and that consists only + // of whitespace is added to the DOM tree. + // This flag is off by default; turning it on may result in slower parsing and more memory consumption. + const unsigned int parse_ws_pcdata_single = 0x0400; + + // This flag determines if leading and trailing whitespace is to be removed from plain character data. This flag is off by default. + const unsigned int parse_trim_pcdata = 0x0800; + + // This flag determines if plain character data that does not have a parent node is added to the DOM tree, and if an empty document + // is a valid document. This flag is off by default. + const unsigned int parse_fragment = 0x1000; + + // The default parsing mode. + // Elements, PCDATA and CDATA sections are added to the DOM tree, character/reference entities are expanded, + // End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules. + const unsigned int parse_default = parse_cdata | parse_escapes | parse_wconv_attribute | parse_eol; + + // The full parsing mode. + // Nodes of all types are added to the DOM tree, character/reference entities are expanded, + // End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules. + const unsigned int parse_full = parse_default | parse_pi | parse_comments | parse_declaration | parse_doctype; + + // These flags determine the encoding of input data for XML document + enum xml_encoding + { + encoding_auto, // Auto-detect input encoding using BOM or < / class xml_object_range + { + public: + typedef It const_iterator; + typedef It iterator; + + xml_object_range(It b, It e): _begin(b), _end(e) + { + } + + It begin() const { return _begin; } + It end() const { return _end; } + + private: + It _begin, _end; + }; + + // Writer interface for node printing (see xml_node::print) + class PUGIXML_CLASS xml_writer + { + public: + virtual ~xml_writer() {} + + // Write memory chunk into stream/file/whatever + virtual void write(const void* data, size_t size) = 0; + }; + + // xml_writer implementation for FILE* + class PUGIXML_CLASS xml_writer_file: public xml_writer + { + public: + // Construct writer from a FILE* object; void* is used to avoid header dependencies on stdio + xml_writer_file(void* file); + + virtual void write(const void* data, size_t size); + + private: + void* file; + }; + + #ifndef PUGIXML_NO_STL + // xml_writer implementation for streams + class PUGIXML_CLASS xml_writer_stream: public xml_writer + { + public: + // Construct writer from an output stream object + xml_writer_stream(std::basic_ostream >& stream); + xml_writer_stream(std::basic_ostream >& stream); + + virtual void write(const void* data, size_t size); + + private: + std::basic_ostream >* narrow_stream; + std::basic_ostream >* wide_stream; + }; + #endif + + // A light-weight handle for manipulating attributes in DOM tree + class PUGIXML_CLASS xml_attribute + { + friend class xml_attribute_iterator; + friend class xml_node; + + private: + xml_attribute_struct* _attr; + + typedef void (*unspecified_bool_type)(xml_attribute***); + + public: + // Default constructor. Constructs an empty attribute. + xml_attribute(); + + // Constructs attribute from internal pointer + explicit xml_attribute(xml_attribute_struct* attr); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators (compares wrapped attribute pointers) + bool operator==(const xml_attribute& r) const; + bool operator!=(const xml_attribute& r) const; + bool operator<(const xml_attribute& r) const; + bool operator>(const xml_attribute& r) const; + bool operator<=(const xml_attribute& r) const; + bool operator>=(const xml_attribute& r) const; + + // Check if attribute is empty + bool empty() const; + + // Get attribute name/value, or "" if attribute is empty + const char_t* name() const; + const char_t* value() const; + + // Get attribute value, or the default value if attribute is empty + const char_t* as_string(const char_t* def = PUGIXML_TEXT("")) const; + + // Get attribute value as a number, or the default value if conversion did not succeed or attribute is empty + int as_int(int def = 0) const; + unsigned int as_uint(unsigned int def = 0) const; + double as_double(double def = 0) const; + float as_float(float def = 0) const; + + #ifdef PUGIXML_HAS_LONG_LONG + long long as_llong(long long def = 0) const; + unsigned long long as_ullong(unsigned long long def = 0) const; + #endif + + // Get attribute value as bool (returns true if first character is in '1tTyY' set), or the default value if attribute is empty + bool as_bool(bool def = false) const; + + // Set attribute name/value (returns false if attribute is empty or there is not enough memory) + bool set_name(const char_t* rhs); + bool set_value(const char_t* rhs); + + // Set attribute value with type conversion (numbers are converted to strings, boolean is converted to "true"/"false") + bool set_value(int rhs); + bool set_value(unsigned int rhs); + bool set_value(double rhs); + bool set_value(float rhs); + bool set_value(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + bool set_value(long long rhs); + bool set_value(unsigned long long rhs); + #endif + + // Set attribute value (equivalent to set_value without error checking) + xml_attribute& operator=(const char_t* rhs); + xml_attribute& operator=(int rhs); + xml_attribute& operator=(unsigned int rhs); + xml_attribute& operator=(double rhs); + xml_attribute& operator=(float rhs); + xml_attribute& operator=(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + xml_attribute& operator=(long long rhs); + xml_attribute& operator=(unsigned long long rhs); + #endif + + // Get next/previous attribute in the attribute list of the parent node + xml_attribute next_attribute() const; + xml_attribute previous_attribute() const; + + // Get hash value (unique for handles to the same object) + size_t hash_value() const; + + // Get internal pointer + xml_attribute_struct* internal_object() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_attribute& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_attribute& lhs, bool rhs); +#endif + + // A light-weight handle for manipulating nodes in DOM tree + class PUGIXML_CLASS xml_node + { + friend class xml_attribute_iterator; + friend class xml_node_iterator; + friend class xml_named_node_iterator; + + protected: + xml_node_struct* _root; + + typedef void (*unspecified_bool_type)(xml_node***); + + public: + // Default constructor. Constructs an empty node. + xml_node(); + + // Constructs node from internal pointer + explicit xml_node(xml_node_struct* p); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators (compares wrapped node pointers) + bool operator==(const xml_node& r) const; + bool operator!=(const xml_node& r) const; + bool operator<(const xml_node& r) const; + bool operator>(const xml_node& r) const; + bool operator<=(const xml_node& r) const; + bool operator>=(const xml_node& r) const; + + // Check if node is empty. + bool empty() const; + + // Get node type + xml_node_type type() const; + + // Get node name, or "" if node is empty or it has no name + const char_t* name() const; + + // Get node value, or "" if node is empty or it has no value + // Note: For text node.value() does not return "text"! Use child_value() or text() methods to access text inside nodes. + const char_t* value() const; + + // Get attribute list + xml_attribute first_attribute() const; + xml_attribute last_attribute() const; + + // Get children list + xml_node first_child() const; + xml_node last_child() const; + + // Get next/previous sibling in the children list of the parent node + xml_node next_sibling() const; + xml_node previous_sibling() const; + + // Get parent node + xml_node parent() const; + + // Get root of DOM tree this node belongs to + xml_node root() const; + + // Get text object for the current node + xml_text text() const; + + // Get child, attribute or next/previous sibling with the specified name + xml_node child(const char_t* name) const; + xml_attribute attribute(const char_t* name) const; + xml_node next_sibling(const char_t* name) const; + xml_node previous_sibling(const char_t* name) const; + + // Get attribute, starting the search from a hint (and updating hint so that searching for a sequence of attributes is fast) + xml_attribute attribute(const char_t* name, xml_attribute& hint) const; + + // Get child value of current node; that is, value of the first child node of type PCDATA/CDATA + const char_t* child_value() const; + + // Get child value of child with specified name. Equivalent to child(name).child_value(). + const char_t* child_value(const char_t* name) const; + + // Set node name/value (returns false if node is empty, there is not enough memory, or node can not have name/value) + bool set_name(const char_t* rhs); + bool set_value(const char_t* rhs); + + // Add attribute with specified name. Returns added attribute, or empty attribute on errors. + xml_attribute append_attribute(const char_t* name); + xml_attribute prepend_attribute(const char_t* name); + xml_attribute insert_attribute_after(const char_t* name, const xml_attribute& attr); + xml_attribute insert_attribute_before(const char_t* name, const xml_attribute& attr); + + // Add a copy of the specified attribute. Returns added attribute, or empty attribute on errors. + xml_attribute append_copy(const xml_attribute& proto); + xml_attribute prepend_copy(const xml_attribute& proto); + xml_attribute insert_copy_after(const xml_attribute& proto, const xml_attribute& attr); + xml_attribute insert_copy_before(const xml_attribute& proto, const xml_attribute& attr); + + // Add child node with specified type. Returns added node, or empty node on errors. + xml_node append_child(xml_node_type type = node_element); + xml_node prepend_child(xml_node_type type = node_element); + xml_node insert_child_after(xml_node_type type, const xml_node& node); + xml_node insert_child_before(xml_node_type type, const xml_node& node); + + // Add child element with specified name. Returns added node, or empty node on errors. + xml_node append_child(const char_t* name); + xml_node prepend_child(const char_t* name); + xml_node insert_child_after(const char_t* name, const xml_node& node); + xml_node insert_child_before(const char_t* name, const xml_node& node); + + // Add a copy of the specified node as a child. Returns added node, or empty node on errors. + xml_node append_copy(const xml_node& proto); + xml_node prepend_copy(const xml_node& proto); + xml_node insert_copy_after(const xml_node& proto, const xml_node& node); + xml_node insert_copy_before(const xml_node& proto, const xml_node& node); + + // Move the specified node to become a child of this node. Returns moved node, or empty node on errors. + xml_node append_move(const xml_node& moved); + xml_node prepend_move(const xml_node& moved); + xml_node insert_move_after(const xml_node& moved, const xml_node& node); + xml_node insert_move_before(const xml_node& moved, const xml_node& node); + + // Remove specified attribute + bool remove_attribute(const xml_attribute& a); + bool remove_attribute(const char_t* name); + + // Remove specified child + bool remove_child(const xml_node& n); + bool remove_child(const char_t* name); + + // Parses buffer as an XML document fragment and appends all nodes as children of the current node. + // Copies/converts the buffer, so it may be deleted or changed after the function returns. + // Note: append_buffer allocates memory that has the lifetime of the owning document; removing the appended nodes does not immediately reclaim that memory. + xml_parse_result append_buffer(const void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Find attribute using predicate. Returns first attribute for which predicate returned true. + template xml_attribute find_attribute(Predicate pred) const + { + if (!_root) return xml_attribute(); + + for (xml_attribute attrib = first_attribute(); attrib; attrib = attrib.next_attribute()) + if (pred(attrib)) + return attrib; + + return xml_attribute(); + } + + // Find child node using predicate. Returns first child for which predicate returned true. + template xml_node find_child(Predicate pred) const + { + if (!_root) return xml_node(); + + for (xml_node node = first_child(); node; node = node.next_sibling()) + if (pred(node)) + return node; + + return xml_node(); + } + + // Find node from subtree using predicate. Returns first node from subtree (depth-first), for which predicate returned true. + template xml_node find_node(Predicate pred) const + { + if (!_root) return xml_node(); + + xml_node cur = first_child(); + + while (cur._root && cur._root != _root) + { + if (pred(cur)) return cur; + + if (cur.first_child()) cur = cur.first_child(); + else if (cur.next_sibling()) cur = cur.next_sibling(); + else + { + while (!cur.next_sibling() && cur._root != _root) cur = cur.parent(); + + if (cur._root != _root) cur = cur.next_sibling(); + } + } + + return xml_node(); + } + + // Find child node by attribute name/value + xml_node find_child_by_attribute(const char_t* name, const char_t* attr_name, const char_t* attr_value) const; + xml_node find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const; + + #ifndef PUGIXML_NO_STL + // Get the absolute node path from root as a text string. + string_t path(char_t delimiter = '/') const; + #endif + + // Search for a node by path consisting of node names and . or .. elements. + xml_node first_element_by_path(const char_t* path, char_t delimiter = '/') const; + + // Recursively traverse subtree with xml_tree_walker + bool traverse(xml_tree_walker& walker); + + #ifndef PUGIXML_NO_XPATH + // Select single node by evaluating XPath query. Returns first node from the resulting node set. + xpath_node select_node(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node select_node(const xpath_query& query) const; + + // Select node set by evaluating XPath query + xpath_node_set select_nodes(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node_set select_nodes(const xpath_query& query) const; + + // (deprecated: use select_node instead) Select single node by evaluating XPath query. + xpath_node select_single_node(const char_t* query, xpath_variable_set* variables = 0) const; + xpath_node select_single_node(const xpath_query& query) const; + + #endif + + // Print subtree using a writer object + void print(xml_writer& writer, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto, unsigned int depth = 0) const; + + #ifndef PUGIXML_NO_STL + // Print subtree to stream + void print(std::basic_ostream >& os, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto, unsigned int depth = 0) const; + void print(std::basic_ostream >& os, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, unsigned int depth = 0) const; + #endif + + // Child nodes iterators + typedef xml_node_iterator iterator; + + iterator begin() const; + iterator end() const; + + // Attribute iterators + typedef xml_attribute_iterator attribute_iterator; + + attribute_iterator attributes_begin() const; + attribute_iterator attributes_end() const; + + // Range-based for support + xml_object_range children() const; + xml_object_range children(const char_t* name) const; + xml_object_range attributes() const; + + // Get node offset in parsed file/string (in char_t units) for debugging purposes + ptrdiff_t offset_debug() const; + + // Get hash value (unique for handles to the same object) + size_t hash_value() const; + + // Get internal pointer + xml_node_struct* internal_object() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_node& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_node& lhs, bool rhs); +#endif + + // A helper for working with text inside PCDATA nodes + class PUGIXML_CLASS xml_text + { + friend class xml_node; + + xml_node_struct* _root; + + typedef void (*unspecified_bool_type)(xml_text***); + + explicit xml_text(xml_node_struct* root); + + xml_node_struct* _data_new(); + xml_node_struct* _data() const; + + public: + // Default constructor. Constructs an empty object. + xml_text(); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Check if text object is empty + bool empty() const; + + // Get text, or "" if object is empty + const char_t* get() const; + + // Get text, or the default value if object is empty + const char_t* as_string(const char_t* def = PUGIXML_TEXT("")) const; + + // Get text as a number, or the default value if conversion did not succeed or object is empty + int as_int(int def = 0) const; + unsigned int as_uint(unsigned int def = 0) const; + double as_double(double def = 0) const; + float as_float(float def = 0) const; + + #ifdef PUGIXML_HAS_LONG_LONG + long long as_llong(long long def = 0) const; + unsigned long long as_ullong(unsigned long long def = 0) const; + #endif + + // Get text as bool (returns true if first character is in '1tTyY' set), or the default value if object is empty + bool as_bool(bool def = false) const; + + // Set text (returns false if object is empty or there is not enough memory) + bool set(const char_t* rhs); + + // Set text with type conversion (numbers are converted to strings, boolean is converted to "true"/"false") + bool set(int rhs); + bool set(unsigned int rhs); + bool set(double rhs); + bool set(float rhs); + bool set(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + bool set(long long rhs); + bool set(unsigned long long rhs); + #endif + + // Set text (equivalent to set without error checking) + xml_text& operator=(const char_t* rhs); + xml_text& operator=(int rhs); + xml_text& operator=(unsigned int rhs); + xml_text& operator=(double rhs); + xml_text& operator=(float rhs); + xml_text& operator=(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + xml_text& operator=(long long rhs); + xml_text& operator=(unsigned long long rhs); + #endif + + // Get the data node (node_pcdata or node_cdata) for this object + xml_node data() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_text& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_text& lhs, bool rhs); +#endif + + // Child node iterator (a bidirectional iterator over a collection of xml_node) + class PUGIXML_CLASS xml_node_iterator + { + friend class xml_node; + + private: + mutable xml_node _wrap; + xml_node _parent; + + xml_node_iterator(xml_node_struct* ref, xml_node_struct* parent); + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_node value_type; + typedef xml_node* pointer; + typedef xml_node& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_node_iterator(); + + // Construct an iterator which points to the specified node + xml_node_iterator(const xml_node& node); + + // Iterator operators + bool operator==(const xml_node_iterator& rhs) const; + bool operator!=(const xml_node_iterator& rhs) const; + + xml_node& operator*() const; + xml_node* operator->() const; + + const xml_node_iterator& operator++(); + xml_node_iterator operator++(int); + + const xml_node_iterator& operator--(); + xml_node_iterator operator--(int); + }; + + // Attribute iterator (a bidirectional iterator over a collection of xml_attribute) + class PUGIXML_CLASS xml_attribute_iterator + { + friend class xml_node; + + private: + mutable xml_attribute _wrap; + xml_node _parent; + + xml_attribute_iterator(xml_attribute_struct* ref, xml_node_struct* parent); + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_attribute value_type; + typedef xml_attribute* pointer; + typedef xml_attribute& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_attribute_iterator(); + + // Construct an iterator which points to the specified attribute + xml_attribute_iterator(const xml_attribute& attr, const xml_node& parent); + + // Iterator operators + bool operator==(const xml_attribute_iterator& rhs) const; + bool operator!=(const xml_attribute_iterator& rhs) const; + + xml_attribute& operator*() const; + xml_attribute* operator->() const; + + const xml_attribute_iterator& operator++(); + xml_attribute_iterator operator++(int); + + const xml_attribute_iterator& operator--(); + xml_attribute_iterator operator--(int); + }; + + // Named node range helper + class PUGIXML_CLASS xml_named_node_iterator + { + friend class xml_node; + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_node value_type; + typedef xml_node* pointer; + typedef xml_node& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_named_node_iterator(); + + // Construct an iterator which points to the specified node + xml_named_node_iterator(const xml_node& node, const char_t* name); + + // Iterator operators + bool operator==(const xml_named_node_iterator& rhs) const; + bool operator!=(const xml_named_node_iterator& rhs) const; + + xml_node& operator*() const; + xml_node* operator->() const; + + const xml_named_node_iterator& operator++(); + xml_named_node_iterator operator++(int); + + const xml_named_node_iterator& operator--(); + xml_named_node_iterator operator--(int); + + private: + mutable xml_node _wrap; + xml_node _parent; + const char_t* _name; + + xml_named_node_iterator(xml_node_struct* ref, xml_node_struct* parent, const char_t* name); + }; + + // Abstract tree walker class (see xml_node::traverse) + class PUGIXML_CLASS xml_tree_walker + { + friend class xml_node; + + private: + int _depth; + + protected: + // Get current traversal depth + int depth() const; + + public: + xml_tree_walker(); + virtual ~xml_tree_walker(); + + // Callback that is called when traversal begins + virtual bool begin(xml_node& node); + + // Callback that is called for each node traversed + virtual bool for_each(xml_node& node) = 0; + + // Callback that is called when traversal ends + virtual bool end(xml_node& node); + }; + + // Parsing status, returned as part of xml_parse_result object + enum xml_parse_status + { + status_ok = 0, // No error + + status_file_not_found, // File was not found during load_file() + status_io_error, // Error reading from file/stream + status_out_of_memory, // Could not allocate memory + status_internal_error, // Internal error occurred + + status_unrecognized_tag, // Parser could not determine tag type + + status_bad_pi, // Parsing error occurred while parsing document declaration/processing instruction + status_bad_comment, // Parsing error occurred while parsing comment + status_bad_cdata, // Parsing error occurred while parsing CDATA section + status_bad_doctype, // Parsing error occurred while parsing document type declaration + status_bad_pcdata, // Parsing error occurred while parsing PCDATA section + status_bad_start_element, // Parsing error occurred while parsing start element tag + status_bad_attribute, // Parsing error occurred while parsing element attribute + status_bad_end_element, // Parsing error occurred while parsing end element tag + status_end_element_mismatch,// There was a mismatch of start-end tags (closing tag had incorrect name, some tag was not closed or there was an excessive closing tag) + + status_append_invalid_root, // Unable to append nodes since root type is not node_element or node_document (exclusive to xml_node::append_buffer) + + status_no_document_element // Parsing resulted in a document without element nodes + }; + + // Parsing result + struct PUGIXML_CLASS xml_parse_result + { + // Parsing status (see xml_parse_status) + xml_parse_status status; + + // Last parsed offset (in char_t units from start of input data) + ptrdiff_t offset; + + // Source document encoding + xml_encoding encoding; + + // Default constructor, initializes object to failed state + xml_parse_result(); + + // Cast to bool operator + operator bool() const; + + // Get error description + const char* description() const; + }; + + // Document class (DOM tree root) + class PUGIXML_CLASS xml_document: public xml_node + { + private: + char_t* _buffer; + + char _memory[192]; + + // Non-copyable semantics + xml_document(const xml_document&); + xml_document& operator=(const xml_document&); + + void create(); + void destroy(); + + public: + // Default constructor, makes empty document + xml_document(); + + // Destructor, invalidates all node/attribute handles to this document + ~xml_document(); + + // Removes all nodes, leaving the empty document + void reset(); + + // Removes all nodes, then copies the entire contents of the specified document + void reset(const xml_document& proto); + + #ifndef PUGIXML_NO_STL + // Load document from stream. + xml_parse_result load(std::basic_istream >& stream, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + xml_parse_result load(std::basic_istream >& stream, unsigned int options = parse_default); + #endif + + // (deprecated: use load_string instead) Load document from zero-terminated string. No encoding conversions are applied. + xml_parse_result load(const char_t* contents, unsigned int options = parse_default); + + // Load document from zero-terminated string. No encoding conversions are applied. + xml_parse_result load_string(const char_t* contents, unsigned int options = parse_default); + + // Load document from file + xml_parse_result load_file(const char* path, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + xml_parse_result load_file(const wchar_t* path, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer. Copies/converts the buffer, so it may be deleted or changed after the function returns. + xml_parse_result load_buffer(const void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer, using the buffer for in-place parsing (the buffer is modified and used for storage of document data). + // You should ensure that buffer data will persist throughout the document's lifetime, and free the buffer memory manually once document is destroyed. + xml_parse_result load_buffer_inplace(void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer, using the buffer for in-place parsing (the buffer is modified and used for storage of document data). + // You should allocate the buffer with pugixml allocation function; document will free the buffer when it is no longer needed (you can't use it anymore). + xml_parse_result load_buffer_inplace_own(void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Save XML document to writer (semantics is slightly different from xml_node::print, see documentation for details). + void save(xml_writer& writer, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + + #ifndef PUGIXML_NO_STL + // Save XML document to stream (semantics is slightly different from xml_node::print, see documentation for details). + void save(std::basic_ostream >& stream, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + void save(std::basic_ostream >& stream, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default) const; + #endif + + // Save XML to file + bool save_file(const char* path, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + bool save_file(const wchar_t* path, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + + // Get document element + xml_node document_element() const; + }; + +#ifndef PUGIXML_NO_XPATH + // XPath query return type + enum xpath_value_type + { + xpath_type_none, // Unknown type (query failed to compile) + xpath_type_node_set, // Node set (xpath_node_set) + xpath_type_number, // Number + xpath_type_string, // String + xpath_type_boolean // Boolean + }; + + // XPath parsing result + struct PUGIXML_CLASS xpath_parse_result + { + // Error message (0 if no error) + const char* error; + + // Last parsed offset (in char_t units from string start) + ptrdiff_t offset; + + // Default constructor, initializes object to failed state + xpath_parse_result(); + + // Cast to bool operator + operator bool() const; + + // Get error description + const char* description() const; + }; + + // A single XPath variable + class PUGIXML_CLASS xpath_variable + { + friend class xpath_variable_set; + + protected: + xpath_value_type _type; + xpath_variable* _next; + + xpath_variable(xpath_value_type type); + + // Non-copyable semantics + xpath_variable(const xpath_variable&); + xpath_variable& operator=(const xpath_variable&); + + public: + // Get variable name + const char_t* name() const; + + // Get variable type + xpath_value_type type() const; + + // Get variable value; no type conversion is performed, default value (false, NaN, empty string, empty node set) is returned on type mismatch error + bool get_boolean() const; + double get_number() const; + const char_t* get_string() const; + const xpath_node_set& get_node_set() const; + + // Set variable value; no type conversion is performed, false is returned on type mismatch error + bool set(bool value); + bool set(double value); + bool set(const char_t* value); + bool set(const xpath_node_set& value); + }; + + // A set of XPath variables + class PUGIXML_CLASS xpath_variable_set + { + private: + xpath_variable* _data[64]; + + void _assign(const xpath_variable_set& rhs); + void _swap(xpath_variable_set& rhs); + + xpath_variable* _find(const char_t* name) const; + + static bool _clone(xpath_variable* var, xpath_variable** out_result); + static void _destroy(xpath_variable* var); + + public: + // Default constructor/destructor + xpath_variable_set(); + ~xpath_variable_set(); + + // Copy constructor/assignment operator + xpath_variable_set(const xpath_variable_set& rhs); + xpath_variable_set& operator=(const xpath_variable_set& rhs); + + #if __cplusplus >= 201103 + // Move semantics support + xpath_variable_set(xpath_variable_set&& rhs); + xpath_variable_set& operator=(xpath_variable_set&& rhs); + #endif + + // Add a new variable or get the existing one, if the types match + xpath_variable* add(const char_t* name, xpath_value_type type); + + // Set value of an existing variable; no type conversion is performed, false is returned if there is no such variable or if types mismatch + bool set(const char_t* name, bool value); + bool set(const char_t* name, double value); + bool set(const char_t* name, const char_t* value); + bool set(const char_t* name, const xpath_node_set& value); + + // Get existing variable by name + xpath_variable* get(const char_t* name); + const xpath_variable* get(const char_t* name) const; + }; + + // A compiled XPath query object + class PUGIXML_CLASS xpath_query + { + private: + void* _impl; + xpath_parse_result _result; + + typedef void (*unspecified_bool_type)(xpath_query***); + + // Non-copyable semantics + xpath_query(const xpath_query&); + xpath_query& operator=(const xpath_query&); + + public: + // Construct a compiled object from XPath expression. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on compilation errors. + explicit xpath_query(const char_t* query, xpath_variable_set* variables = 0); + + // Constructor + xpath_query(); + + // Destructor + ~xpath_query(); + + #if __cplusplus >= 201103 + // Move semantics support + xpath_query(xpath_query&& rhs); + xpath_query& operator=(xpath_query&& rhs); + #endif + + // Get query expression return type + xpath_value_type return_type() const; + + // Evaluate expression as boolean value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + bool evaluate_boolean(const xpath_node& n) const; + + // Evaluate expression as double value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + double evaluate_number(const xpath_node& n) const; + + #ifndef PUGIXML_NO_STL + // Evaluate expression as string value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + string_t evaluate_string(const xpath_node& n) const; + #endif + + // Evaluate expression as string value in the specified context; performs type conversion if necessary. + // At most capacity characters are written to the destination buffer, full result size is returned (includes terminating zero). + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty set instead. + size_t evaluate_string(char_t* buffer, size_t capacity, const xpath_node& n) const; + + // Evaluate expression as node set in the specified context. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on type mismatch and std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty node set instead. + xpath_node_set evaluate_node_set(const xpath_node& n) const; + + // Evaluate expression as node set in the specified context. + // Return first node in document order, or empty node if node set is empty. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on type mismatch and std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty node instead. + xpath_node evaluate_node(const xpath_node& n) const; + + // Get parsing result (used to get compilation errors in PUGIXML_NO_EXCEPTIONS mode) + const xpath_parse_result& result() const; + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + }; + + #ifndef PUGIXML_NO_EXCEPTIONS + // XPath exception class + class PUGIXML_CLASS xpath_exception: public std::exception + { + private: + xpath_parse_result _result; + + public: + // Construct exception from parse result + explicit xpath_exception(const xpath_parse_result& result); + + // Get error message + virtual const char* what() const throw(); + + // Get parse result + const xpath_parse_result& result() const; + }; + #endif + + // XPath node class (either xml_node or xml_attribute) + class PUGIXML_CLASS xpath_node + { + private: + xml_node _node; + xml_attribute _attribute; + + typedef void (*unspecified_bool_type)(xpath_node***); + + public: + // Default constructor; constructs empty XPath node + xpath_node(); + + // Construct XPath node from XML node/attribute + xpath_node(const xml_node& node); + xpath_node(const xml_attribute& attribute, const xml_node& parent); + + // Get node/attribute, if any + xml_node node() const; + xml_attribute attribute() const; + + // Get parent of contained node/attribute + xml_node parent() const; + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators + bool operator==(const xpath_node& n) const; + bool operator!=(const xpath_node& n) const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xpath_node& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xpath_node& lhs, bool rhs); +#endif + + // A fixed-size collection of XPath nodes + class PUGIXML_CLASS xpath_node_set + { + public: + // Collection type + enum type_t + { + type_unsorted, // Not ordered + type_sorted, // Sorted by document order (ascending) + type_sorted_reverse // Sorted by document order (descending) + }; + + // Constant iterator type + typedef const xpath_node* const_iterator; + + // We define non-constant iterator to be the same as constant iterator so that various generic algorithms (i.e. boost foreach) work + typedef const xpath_node* iterator; + + // Default constructor. Constructs empty set. + xpath_node_set(); + + // Constructs a set from iterator range; data is not checked for duplicates and is not sorted according to provided type, so be careful + xpath_node_set(const_iterator begin, const_iterator end, type_t type = type_unsorted); + + // Destructor + ~xpath_node_set(); + + // Copy constructor/assignment operator + xpath_node_set(const xpath_node_set& ns); + xpath_node_set& operator=(const xpath_node_set& ns); + + #if __cplusplus >= 201103 + // Move semantics support + xpath_node_set(xpath_node_set&& rhs); + xpath_node_set& operator=(xpath_node_set&& rhs); + #endif + + // Get collection type + type_t type() const; + + // Get collection size + size_t size() const; + + // Indexing operator + const xpath_node& operator[](size_t index) const; + + // Collection iterators + const_iterator begin() const; + const_iterator end() const; + + // Sort the collection in ascending/descending order by document order + void sort(bool reverse = false); + + // Get first node in the collection by document order + xpath_node first() const; + + // Check if collection is empty + bool empty() const; + + private: + type_t _type; + + xpath_node _storage; + + xpath_node* _begin; + xpath_node* _end; + + void _assign(const_iterator begin, const_iterator end, type_t type); + void _move(xpath_node_set& rhs); + }; +#endif + +#ifndef PUGIXML_NO_STL + // Convert wide string to UTF8 + std::basic_string, std::allocator > PUGIXML_FUNCTION as_utf8(const wchar_t* str); + std::basic_string, std::allocator > PUGIXML_FUNCTION as_utf8(const std::basic_string, std::allocator >& str); + + // Convert UTF8 to wide string + std::basic_string, std::allocator > PUGIXML_FUNCTION as_wide(const char* str); + std::basic_string, std::allocator > PUGIXML_FUNCTION as_wide(const std::basic_string, std::allocator >& str); +#endif + + // Memory allocation function interface; returns pointer to allocated memory or NULL on failure + typedef void* (*allocation_function)(size_t size); + + // Memory deallocation function interface + typedef void (*deallocation_function)(void* ptr); + + // Override default memory management functions. All subsequent allocations/deallocations will be performed via supplied functions. + void PUGIXML_FUNCTION set_memory_management_functions(allocation_function allocate, deallocation_function deallocate); + + // Get current memory management functions + allocation_function PUGIXML_FUNCTION get_memory_allocation_function(); + deallocation_function PUGIXML_FUNCTION get_memory_deallocation_function(); +} + +#if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC)) +namespace std +{ + // Workarounds for (non-standard) iterator category detection for older versions (MSVC7/IC8 and earlier) + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_node_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_attribute_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_named_node_iterator&); +} +#endif + +#if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC) +namespace std +{ + // Workarounds for (non-standard) iterator category detection + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_node_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_attribute_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_named_node_iterator&); +} +#endif + +#endif + +// Make sure implementation is included in header-only mode +// Use macro expansion in #include to work around QMake (QTBUG-11923) +#if defined(PUGIXML_HEADER_ONLY) && !defined(PUGIXML_SOURCE) +# define PUGIXML_SOURCE "pugixml.cpp" +# include PUGIXML_SOURCE +#endif + +/** + * Copyright (c) 2006-2015 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/ThirdParty/include/tinfl.c b/ThirdParty/include/tinfl.c new file mode 100644 index 0000000..d00addf --- /dev/null +++ b/ThirdParty/include/tinfl.c @@ -0,0 +1,592 @@ +/* tinfl.c v1.11 - public domain inflate with zlib header parsing/adler32 checking (inflate-only subset of miniz.c) + See "unlicense" statement at the end of this file. + Rich Geldreich , last updated May 20, 2011 + Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt + + The entire decompressor coroutine is implemented in tinfl_decompress(). The other functions are optional high-level helpers. +*/ +#ifndef TINFL_HEADER_INCLUDED +#define TINFL_HEADER_INCLUDED + +#include + +typedef unsigned char mz_uint8; +typedef signed short mz_int16; +typedef unsigned short mz_uint16; +typedef unsigned int mz_uint32; +typedef unsigned int mz_uint; +typedef unsigned long long mz_uint64; + +#if defined(_M_IX86) || defined(_M_X64) +// Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 if integer loads and stores to unaligned addresses are acceptable on the target platform (slightly faster). +#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 +// Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian. +#define MINIZ_LITTLE_ENDIAN 1 +#endif + +#if defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) +// Set MINIZ_HAS_64BIT_REGISTERS to 1 if the processor has 64-bit general purpose registers (enables 64-bit bitbuffer in inflator) +#define MINIZ_HAS_64BIT_REGISTERS 1 +#endif + +// Works around MSVC's spammy "warning C4127: conditional expression is constant" message. +#ifdef _MSC_VER + #define MZ_MACRO_END while (0, 0) +#else + #define MZ_MACRO_END while (0) +#endif + +// Decompression flags used by tinfl_decompress(). +// TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a valid zlib stream). Otherwise, the input is a raw deflate stream. +// TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer. If clear, the input buffer contains all remaining input. +// TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB). +// TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes. +enum +{ + TINFL_FLAG_PARSE_ZLIB_HEADER = 1, + TINFL_FLAG_HAS_MORE_INPUT = 2, + TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4, + TINFL_FLAG_COMPUTE_ADLER32 = 8 +}; + +// High level decompression functions: +// tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc(). +// On entry: +// pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress. +// On return: +// Function returns a pointer to the decompressed data, or NULL on failure. +// *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible data. +// The caller must free() the returned block when it's no longer needed. +void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags); + +// tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory. +// Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success. +#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1)) +size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags); + +// tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided callback function will be called to flush the buffer. +// Returns 1 on success or 0 on failure. +typedef int (*tinfl_put_buf_func_ptr)(const void* pBuf, int len, void *pUser); +int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); + +struct tinfl_decompressor_tag; typedef struct tinfl_decompressor_tag tinfl_decompressor; + +// Max size of LZ dictionary. +#define TINFL_LZ_DICT_SIZE 32768 + +// Return status. +typedef enum +{ + TINFL_STATUS_BAD_PARAM = -3, + TINFL_STATUS_ADLER32_MISMATCH = -2, + TINFL_STATUS_FAILED = -1, + TINFL_STATUS_DONE = 0, + TINFL_STATUS_NEEDS_MORE_INPUT = 1, + TINFL_STATUS_HAS_MORE_OUTPUT = 2 +} tinfl_status; + +// Initializes the decompressor to its initial state. +#define tinfl_init(r) do { (r)->m_state = 0; } MZ_MACRO_END +#define tinfl_get_adler32(r) (r)->m_check_adler32 + +// Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the other functions are just high-level helpers for improved usability. +// This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API. In the limit case, it can be called once per every byte input or output. +tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags); + +// Internal/private bits follow. +enum +{ + TINFL_MAX_HUFF_TABLES = 3, TINFL_MAX_HUFF_SYMBOLS_0 = 288, TINFL_MAX_HUFF_SYMBOLS_1 = 32, TINFL_MAX_HUFF_SYMBOLS_2 = 19, + TINFL_FAST_LOOKUP_BITS = 10, TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS +}; + +typedef struct +{ + mz_uint8 m_code_size[TINFL_MAX_HUFF_SYMBOLS_0]; + mz_int16 m_look_up[TINFL_FAST_LOOKUP_SIZE], m_tree[TINFL_MAX_HUFF_SYMBOLS_0 * 2]; +} tinfl_huff_table; + +#if MINIZ_HAS_64BIT_REGISTERS + #define TINFL_USE_64BIT_BITBUF 1 +#endif + +#if TINFL_USE_64BIT_BITBUF + typedef mz_uint64 tinfl_bit_buf_t; + #define TINFL_BITBUF_SIZE (64) +#else + typedef mz_uint32 tinfl_bit_buf_t; + #define TINFL_BITBUF_SIZE (32) +#endif + +struct tinfl_decompressor_tag +{ + mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter, m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES]; + tinfl_bit_buf_t m_bit_buf; + size_t m_dist_from_out_buf_start; + tinfl_huff_table m_tables[TINFL_MAX_HUFF_TABLES]; + mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137]; +}; + +#endif // #ifdef TINFL_HEADER_INCLUDED + +// ------------------- End of Header: Implementation follows. (If you only want the header, define MINIZ_HEADER_FILE_ONLY.) + +#ifndef TINFL_HEADER_FILE_ONLY + +#include + +// MZ_MALLOC, etc. are only used by the optional high-level helper functions. +#ifdef MINIZ_NO_MALLOC + #define MZ_MALLOC(x) NULL + #define MZ_FREE(x) x, ((void)0) + #define MZ_REALLOC(p, x) NULL +#else + #define MZ_MALLOC(x) malloc(x) + #define MZ_FREE(x) free(x) + #define MZ_REALLOC(p, x) realloc(p, x) +#endif + +#define MZ_MAX(a,b) (((a)>(b))?(a):(b)) +#define MZ_MIN(a,b) (((a)<(b))?(a):(b)) +#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj)) + +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN + #define MZ_READ_LE16(p) *((const mz_uint16 *)(p)) + #define MZ_READ_LE32(p) *((const mz_uint32 *)(p)) +#else + #define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U)) + #define MZ_READ_LE32(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | ((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) +#endif + +#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l) +#define TINFL_MEMSET(p, c, l) memset(p, c, l) + +#define TINFL_CR_BEGIN switch(r->m_state) { case 0: +#define TINFL_CR_RETURN(state_index, result) do { status = result; r->m_state = state_index; goto common_exit; case state_index:; } MZ_MACRO_END +#define TINFL_CR_RETURN_FOREVER(state_index, result) do { for ( ; ; ) { TINFL_CR_RETURN(state_index, result); } } MZ_MACRO_END +#define TINFL_CR_FINISH } + +// TODO: If the caller has indicated that there's no more input, and we attempt to read beyond the input buf, then something is wrong with the input because the inflator never +// reads ahead more than it needs to. Currently TINFL_GET_BYTE() pads the end of the stream with 0's in this scenario. +#define TINFL_GET_BYTE(state_index, c) do { \ + if (pIn_buf_cur >= pIn_buf_end) { \ + for ( ; ; ) { \ + if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) { \ + TINFL_CR_RETURN(state_index, TINFL_STATUS_NEEDS_MORE_INPUT); \ + if (pIn_buf_cur < pIn_buf_end) { \ + c = *pIn_buf_cur++; \ + break; \ + } \ + } else { \ + c = 0; \ + break; \ + } \ + } \ + } else c = *pIn_buf_cur++; } MZ_MACRO_END + +#define TINFL_NEED_BITS(state_index, n) do { mz_uint c; TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; } while (num_bits < (mz_uint)(n)) +#define TINFL_SKIP_BITS(state_index, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END +#define TINFL_GET_BITS(state_index, b, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } b = bit_buf & ((1 << (n)) - 1); bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END + +// TINFL_HUFF_BITBUF_FILL() is only used rarely, when the number of bytes remaining in the input buffer falls below 2. +// It reads just enough bytes from the input stream that are needed to decode the next Huffman code (and absolutely no more). It works by trying to fully decode a +// Huffman code by using whatever bits are currently present in the bit buffer. If this fails, it reads another byte, and tries again until it succeeds or until the +// bit buffer contains >=15 bits (deflate's max. Huffman code size). +#define TINFL_HUFF_BITBUF_FILL(state_index, pHuff) \ + do { \ + temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]; \ + if (temp >= 0) { \ + code_len = temp >> 9; \ + if ((code_len) && (num_bits >= code_len)) \ + break; \ + } else if (num_bits > TINFL_FAST_LOOKUP_BITS) { \ + code_len = TINFL_FAST_LOOKUP_BITS; \ + do { \ + temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ + } while ((temp < 0) && (num_bits >= (code_len + 1))); if (temp >= 0) break; \ + } TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; \ + } while (num_bits < 15); + +// TINFL_HUFF_DECODE() decodes the next Huffman coded symbol. It's more complex than you would initially expect because the zlib API expects the decompressor to never read +// beyond the final byte of the deflate stream. (In other words, when this macro wants to read another byte from the input, it REALLY needs another byte in order to fully +// decode the next Huffman code.) Handling this properly is particularly important on raw deflate (non-zlib) streams, which aren't followed by a byte aligned adler-32. +// The slow path is only executed at the very end of the input buffer. +#define TINFL_HUFF_DECODE(state_index, sym, pHuff) do { \ + int temp; mz_uint code_len, c; \ + if (num_bits < 15) { \ + if ((pIn_buf_end - pIn_buf_cur) < 2) { \ + TINFL_HUFF_BITBUF_FILL(state_index, pHuff); \ + } else { \ + bit_buf |= (((tinfl_bit_buf_t)pIn_buf_cur[0]) << num_bits) | (((tinfl_bit_buf_t)pIn_buf_cur[1]) << (num_bits + 8)); pIn_buf_cur += 2; num_bits += 16; \ + } \ + } \ + if ((temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) \ + code_len = temp >> 9, temp &= 511; \ + else { \ + code_len = TINFL_FAST_LOOKUP_BITS; do { temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; } while (temp < 0); \ + } sym = temp; bit_buf >>= code_len; num_bits -= code_len; } MZ_MACRO_END + +tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) +{ + static const int s_length_base[31] = { 3,4,5,6,7,8,9,10,11,13, 15,17,19,23,27,31,35,43,51,59, 67,83,99,115,131,163,195,227,258,0,0 }; + static const int s_length_extra[31]= { 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + static const int s_dist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, 257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + static const int s_dist_extra[32] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + static const mz_uint8 s_length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + static const int s_min_table_sizes[3] = { 257, 1, 4 }; + + tinfl_status status = TINFL_STATUS_FAILED; mz_uint32 num_bits, dist, counter, num_extra; tinfl_bit_buf_t bit_buf; + const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size; + mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size; + size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start; + + // Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter). + if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) { *pIn_buf_size = *pOut_buf_size = 0; return TINFL_STATUS_BAD_PARAM; } + + num_bits = r->m_num_bits; bit_buf = r->m_bit_buf; dist = r->m_dist; counter = r->m_counter; num_extra = r->m_num_extra; dist_from_out_buf_start = r->m_dist_from_out_buf_start; + TINFL_CR_BEGIN + + bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; r->m_z_adler32 = r->m_check_adler32 = 1; + if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) + { + TINFL_GET_BYTE(1, r->m_zhdr0); TINFL_GET_BYTE(2, r->m_zhdr1); + counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8)); + if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4))))); + if (counter) { TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); } + } + + do + { + TINFL_GET_BITS(3, r->m_final, 3); r->m_type = r->m_final >> 1; + if (r->m_type == 0) + { + TINFL_SKIP_BITS(5, num_bits & 7); + for (counter = 0; counter < 4; ++counter) { if (num_bits) TINFL_GET_BITS(6, r->m_raw_header[counter], 8); else TINFL_GET_BYTE(7, r->m_raw_header[counter]); } + if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) { TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); } + while ((counter) && (num_bits)) + { + TINFL_GET_BITS(51, dist, 8); + while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); } + *pOut_buf_cur++ = (mz_uint8)dist; + counter--; + } + while (counter) + { + size_t n; while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); } + while (pIn_buf_cur >= pIn_buf_end) + { + if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) + { + TINFL_CR_RETURN(38, TINFL_STATUS_NEEDS_MORE_INPUT); + } + else + { + TINFL_CR_RETURN_FOREVER(40, TINFL_STATUS_FAILED); + } + } + n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter); + TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); pIn_buf_cur += n; pOut_buf_cur += n; counter -= (mz_uint)n; + } + } + else if (r->m_type == 3) + { + TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED); + } + else + { + if (r->m_type == 1) + { + mz_uint8 *p = r->m_tables[0].m_code_size; mz_uint i; + r->m_table_sizes[0] = 288; r->m_table_sizes[1] = 32; TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32); + for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8; + } + else + { + for (counter = 0; counter < 3; counter++) { TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); r->m_table_sizes[counter] += s_min_table_sizes[counter]; } + MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); for (counter = 0; counter < r->m_table_sizes[2]; counter++) { mz_uint s; TINFL_GET_BITS(14, s, 3); r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; } + r->m_table_sizes[2] = 19; + } + for ( ; (int)r->m_type >= 0; r->m_type--) + { + int tree_next, tree_cur; tinfl_huff_table *pTable; + mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; pTable = &r->m_tables[r->m_type]; MZ_CLEAR_OBJ(total_syms); MZ_CLEAR_OBJ(pTable->m_look_up); MZ_CLEAR_OBJ(pTable->m_tree); + for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) total_syms[pTable->m_code_size[i]]++; + used_syms = 0, total = 0; next_code[0] = next_code[1] = 0; + for (i = 1; i <= 15; ++i) { used_syms += total_syms[i]; next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); } + if ((65536 != total) && (used_syms > 1)) + { + TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED); + } + for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index) + { + mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; if (!code_size) continue; + cur_code = next_code[code_size]++; for (l = code_size; l > 0; l--, cur_code >>= 1) rev_code = (rev_code << 1) | (cur_code & 1); + if (code_size <= TINFL_FAST_LOOKUP_BITS) { mz_int16 k = (mz_int16)((code_size << 9) | sym_index); while (rev_code < TINFL_FAST_LOOKUP_SIZE) { pTable->m_look_up[rev_code] = k; rev_code += (1 << code_size); } continue; } + if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) { pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } + rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1); + for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--) + { + tree_cur -= ((rev_code >>= 1) & 1); + if (!pTable->m_tree[-tree_cur - 1]) { pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } else tree_cur = pTable->m_tree[-tree_cur - 1]; + } + tree_cur -= ((rev_code >>= 1) & 1); pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index; + } + if (r->m_type == 2) + { + for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]); ) + { + mz_uint s; TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); if (dist < 16) { r->m_len_codes[counter++] = (mz_uint8)dist; continue; } + if ((dist == 16) && (!counter)) + { + TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED); + } + num_extra = "\02\03\07"[dist - 16]; TINFL_GET_BITS(18, s, num_extra); s += "\03\03\013"[dist - 16]; + TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); counter += s; + } + if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter) + { + TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED); + } + TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]); + } + } + for ( ; ; ) + { + mz_uint8 *pSrc; + for ( ; ; ) + { + if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2)) + { + TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]); + if (counter >= 256) + break; + while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); } + *pOut_buf_cur++ = (mz_uint8)counter; + } + else + { + int sym2; mz_uint code_len; +#if TINFL_USE_64BIT_BITBUF + if (num_bits < 30) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); pIn_buf_cur += 4; num_bits += 32; } +#else + if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; } +#endif + if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) + code_len = sym2 >> 9; + else + { + code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0); + } + counter = sym2; bit_buf >>= code_len; num_bits -= code_len; + if (counter & 256) + break; + +#if !TINFL_USE_64BIT_BITBUF + if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; } +#endif + if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) + code_len = sym2 >> 9; + else + { + code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0); + } + bit_buf >>= code_len; num_bits -= code_len; + + pOut_buf_cur[0] = (mz_uint8)counter; + if (sym2 & 256) + { + pOut_buf_cur++; + counter = sym2; + break; + } + pOut_buf_cur[1] = (mz_uint8)sym2; + pOut_buf_cur += 2; + } + } + if ((counter &= 511) == 256) break; + + num_extra = s_length_extra[counter - 257]; counter = s_length_base[counter - 257]; + if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(25, extra_bits, num_extra); counter += extra_bits; } + + TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]); + num_extra = s_dist_extra[dist]; dist = s_dist_base[dist]; + if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(27, extra_bits, num_extra); dist += extra_bits; } + + dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start; + if ((dist > dist_from_out_buf_start) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) + { + TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED); + } + + pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask); + + if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end) + { + while (counter--) + { + while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); } + *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask]; + } + continue; + } +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES + else if ((counter >= 9) && (counter <= dist)) + { + const mz_uint8 *pSrc_end = pSrc + (counter & ~7); + do + { + ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0]; + ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1]; + pOut_buf_cur += 8; + } while ((pSrc += 8) < pSrc_end); + if ((counter &= 7) < 3) + { + if (counter) + { + pOut_buf_cur[0] = pSrc[0]; + if (counter > 1) + pOut_buf_cur[1] = pSrc[1]; + pOut_buf_cur += counter; + } + continue; + } + } +#endif + do + { + pOut_buf_cur[0] = pSrc[0]; + pOut_buf_cur[1] = pSrc[1]; + pOut_buf_cur[2] = pSrc[2]; + pOut_buf_cur += 3; pSrc += 3; + } while ((int)(counter -= 3) > 2); + if ((int)counter > 0) + { + pOut_buf_cur[0] = pSrc[0]; + if ((int)counter > 1) + pOut_buf_cur[1] = pSrc[1]; + pOut_buf_cur += counter; + } + } + } + } while (!(r->m_final & 1)); + if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) + { + TINFL_SKIP_BITS(32, num_bits & 7); for (counter = 0; counter < 4; ++counter) { mz_uint s; if (num_bits) TINFL_GET_BITS(41, s, 8); else TINFL_GET_BYTE(42, s); r->m_z_adler32 = (r->m_z_adler32 << 8) | s; } + } + TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE); + TINFL_CR_FINISH + +common_exit: + r->m_num_bits = num_bits; r->m_bit_buf = bit_buf; r->m_dist = dist; r->m_counter = counter; r->m_num_extra = num_extra; r->m_dist_from_out_buf_start = dist_from_out_buf_start; + *pIn_buf_size = pIn_buf_cur - pIn_buf_next; *pOut_buf_size = pOut_buf_cur - pOut_buf_next; + if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0)) + { + const mz_uint8 *ptr = pOut_buf_next; size_t buf_len = *pOut_buf_size; + mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; size_t block_len = buf_len % 5552; + while (buf_len) + { + for (i = 0; i + 7 < block_len; i += 8, ptr += 8) + { + s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1; + s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1; + } + for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1; + s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552; + } + r->m_check_adler32 = (s2 << 16) + s1; if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) status = TINFL_STATUS_ADLER32_MISMATCH; + } + return status; +} + +// Higher level helper functions. +void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) +{ + tinfl_decompressor decomp; void *pBuf = NULL, *pNew_buf; size_t src_buf_ofs = 0, out_buf_capacity = 0; + *pOut_len = 0; + tinfl_init(&decomp); + for ( ; ; ) + { + size_t src_buf_size = src_buf_len - src_buf_ofs, dst_buf_size = out_buf_capacity - *pOut_len, new_out_buf_capacity; + tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8*)pBuf, pBuf ? (mz_uint8*)pBuf + *pOut_len : NULL, &dst_buf_size, + (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); + if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT)) + { + MZ_FREE(pBuf); *pOut_len = 0; return NULL; + } + src_buf_ofs += src_buf_size; + *pOut_len += dst_buf_size; + if (status == TINFL_STATUS_DONE) break; + new_out_buf_capacity = out_buf_capacity * 2; if (new_out_buf_capacity < 128) new_out_buf_capacity = 128; + pNew_buf = MZ_REALLOC(pBuf, new_out_buf_capacity); + if (!pNew_buf) + { + MZ_FREE(pBuf); *pOut_len = 0; return NULL; + } + pBuf = pNew_buf; out_buf_capacity = new_out_buf_capacity; + } + return pBuf; +} + +size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) +{ + tinfl_decompressor decomp; tinfl_status status; tinfl_init(&decomp); + status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf, &src_buf_len, (mz_uint8*)pOut_buf, (mz_uint8*)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); + return (status != TINFL_STATUS_DONE) ? TINFL_DECOMPRESS_MEM_TO_MEM_FAILED : out_buf_len; +} + +int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) +{ + int result = 0; + tinfl_decompressor decomp; + mz_uint8 *pDict = (mz_uint8*)MZ_MALLOC(TINFL_LZ_DICT_SIZE); size_t in_buf_ofs = 0, dict_ofs = 0; + if (!pDict) + return TINFL_STATUS_FAILED; + tinfl_init(&decomp); + for ( ; ; ) + { + size_t in_buf_size = *pIn_buf_size - in_buf_ofs, dst_buf_size = TINFL_LZ_DICT_SIZE - dict_ofs; + tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size, + (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); + in_buf_ofs += in_buf_size; + if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user))) + break; + if (status != TINFL_STATUS_HAS_MORE_OUTPUT) + { + result = (status == TINFL_STATUS_DONE); + break; + } + dict_ofs = (dict_ofs + dst_buf_size) & (TINFL_LZ_DICT_SIZE - 1); + } + MZ_FREE(pDict); + *pIn_buf_size = in_buf_ofs; + return result; +} + +#endif // #ifndef TINFL_HEADER_FILE_ONLY + +/* + This is free and unencumbered software released into the public domain. + + Anyone is free to copy, modify, publish, use, compile, sell, or + distribute this software, either in source code form or as a compiled + binary, for any purpose, commercial or non-commercial, and by any + means. + + In jurisdictions that recognize copyright laws, the author or authors + of this software dedicate any and all copyright interest in the + software to the public domain. We make this dedication for the benefit + of the public at large and to the detriment of our heirs and + successors. We intend this dedication to be an overt act of + relinquishment in perpetuity of all present and future rights to this + software under copyright law. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + For more information, please refer to +*/ diff --git a/ThirdParty/src/pugixml.cpp b/ThirdParty/src/pugixml.cpp new file mode 100644 index 0000000..854ff8c --- /dev/null +++ b/ThirdParty/src/pugixml.cpp @@ -0,0 +1,12444 @@ +/** + * pugixml parser - version 1.7 + * -------------------------------------------------------- + * Copyright (C) 2006-2015, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at http://pugixml.org/ + * + * This library is distributed under the MIT License. See notice at the end + * of this file. + * + * This work is based on the pugxml parser, which is: + * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) + */ + +#ifndef SOURCE_PUGIXML_CPP +#define SOURCE_PUGIXML_CPP + +#include "pugixml.hpp" + +#include +#include +#include +#include +#include + +#ifdef PUGIXML_WCHAR_MODE +# include +#endif + +#ifndef PUGIXML_NO_XPATH +# include +# include +# ifdef PUGIXML_NO_EXCEPTIONS +# include +# endif +#endif + +#ifndef PUGIXML_NO_STL +# include +# include +# include +#endif + +// For placement new +#include + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable: 4127) // conditional expression is constant +# pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +# pragma warning(disable: 4611) // interaction between '_setjmp' and C++ object destruction is non-portable +# pragma warning(disable: 4702) // unreachable code +# pragma warning(disable: 4996) // this function or variable may be unsafe +# pragma warning(disable: 4793) // function compiled as native: presence of '_setjmp' makes a function unmanaged +#endif + +#ifdef __INTEL_COMPILER +# pragma warning(disable: 177) // function was declared but never referenced +# pragma warning(disable: 279) // controlling expression is constant +# pragma warning(disable: 1478 1786) // function was declared "deprecated" +# pragma warning(disable: 1684) // conversion from pointer to same-sized integral type +#endif + +#if defined(__BORLANDC__) && defined(PUGIXML_HEADER_ONLY) +# pragma warn -8080 // symbol is declared but never used; disabling this inside push/pop bracket does not make the warning go away +#endif + +#ifdef __BORLANDC__ +# pragma option push +# pragma warn -8008 // condition is always false +# pragma warn -8066 // unreachable code +#endif + +#ifdef __SNC__ +// Using diag_push/diag_pop does not disable the warnings inside templates due to a compiler bug +# pragma diag_suppress=178 // function was declared but never referenced +# pragma diag_suppress=237 // controlling expression is constant +#endif + +// Inlining controls +#if defined(_MSC_VER) && _MSC_VER >= 1300 +# define PUGI__NO_INLINE __declspec(noinline) +#elif defined(__GNUC__) +# define PUGI__NO_INLINE __attribute__((noinline)) +#else +# define PUGI__NO_INLINE +#endif + +// Branch weight controls +#if defined(__GNUC__) +# define PUGI__UNLIKELY(cond) __builtin_expect(cond, 0) +#else +# define PUGI__UNLIKELY(cond) (cond) +#endif + +// Simple static assertion +#define PUGI__STATIC_ASSERT(cond) { static const char condition_failed[(cond) ? 1 : -1] = {0}; (void)condition_failed[0]; } + +// Digital Mars C++ bug workaround for passing char loaded from memory via stack +#ifdef __DMC__ +# define PUGI__DMC_VOLATILE volatile +#else +# define PUGI__DMC_VOLATILE +#endif + +// Borland C++ bug workaround for not defining ::memcpy depending on header include order (can't always use std::memcpy because some compilers don't have it at all) +#if defined(__BORLANDC__) && !defined(__MEM_H_USING_LIST) +using std::memcpy; +using std::memmove; +using std::memset; +#endif + +// In some environments MSVC is a compiler but the CRT lacks certain MSVC-specific features +#if defined(_MSC_VER) && !defined(__S3E__) +# define PUGI__MSVC_CRT_VERSION _MSC_VER +#endif + +#ifdef PUGIXML_HEADER_ONLY +# define PUGI__NS_BEGIN namespace pugi { namespace impl { +# define PUGI__NS_END } } +# define PUGI__FN inline +# define PUGI__FN_NO_INLINE inline +#else +# if defined(_MSC_VER) && _MSC_VER < 1300 // MSVC6 seems to have an amusing bug with anonymous namespaces inside namespaces +# define PUGI__NS_BEGIN namespace pugi { namespace impl { +# define PUGI__NS_END } } +# else +# define PUGI__NS_BEGIN namespace pugi { namespace impl { namespace { +# define PUGI__NS_END } } } +# endif +# define PUGI__FN +# define PUGI__FN_NO_INLINE PUGI__NO_INLINE +#endif + +// uintptr_t +#if !defined(_MSC_VER) || _MSC_VER >= 1600 +# include +#else +namespace pugi +{ +# ifndef _UINTPTR_T_DEFINED + typedef size_t uintptr_t; +# endif + + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; +} +#endif + +// Memory allocation +PUGI__NS_BEGIN + PUGI__FN void* default_allocate(size_t size) + { + return malloc(size); + } + + PUGI__FN void default_deallocate(void* ptr) + { + free(ptr); + } + + template + struct xml_memory_management_function_storage + { + static allocation_function allocate; + static deallocation_function deallocate; + }; + + // Global allocation functions are stored in class statics so that in header mode linker deduplicates them + // Without a template<> we'll get multiple definitions of the same static + template allocation_function xml_memory_management_function_storage::allocate = default_allocate; + template deallocation_function xml_memory_management_function_storage::deallocate = default_deallocate; + + typedef xml_memory_management_function_storage xml_memory; +PUGI__NS_END + +// String utilities +PUGI__NS_BEGIN + // Get string length + PUGI__FN size_t strlength(const char_t* s) + { + assert(s); + + #ifdef PUGIXML_WCHAR_MODE + return wcslen(s); + #else + return strlen(s); + #endif + } + + // Compare two strings + PUGI__FN bool strequal(const char_t* src, const char_t* dst) + { + assert(src && dst); + + #ifdef PUGIXML_WCHAR_MODE + return wcscmp(src, dst) == 0; + #else + return strcmp(src, dst) == 0; + #endif + } + + // Compare lhs with [rhs_begin, rhs_end) + PUGI__FN bool strequalrange(const char_t* lhs, const char_t* rhs, size_t count) + { + for (size_t i = 0; i < count; ++i) + if (lhs[i] != rhs[i]) + return false; + + return lhs[count] == 0; + } + + // Get length of wide string, even if CRT lacks wide character support + PUGI__FN size_t strlength_wide(const wchar_t* s) + { + assert(s); + + #ifdef PUGIXML_WCHAR_MODE + return wcslen(s); + #else + const wchar_t* end = s; + while (*end) end++; + return static_cast(end - s); + #endif + } +PUGI__NS_END + +// auto_ptr-like object for exception recovery +PUGI__NS_BEGIN + template struct auto_deleter + { + T* data; + D deleter; + + auto_deleter(T* data_, D deleter_): data(data_), deleter(deleter_) + { + } + + ~auto_deleter() + { + if (data) deleter(data); + } + + T* release() + { + T* result = data; + data = 0; + return result; + } + }; +PUGI__NS_END + +#ifdef PUGIXML_COMPACT +PUGI__NS_BEGIN + class compact_hash_table + { + public: + compact_hash_table(): _items(0), _capacity(0), _count(0) + { + } + + void clear() + { + if (_items) + { + xml_memory::deallocate(_items); + _items = 0; + _capacity = 0; + _count = 0; + } + } + + void** find(const void* key) + { + assert(key); + + if (_capacity == 0) return 0; + + size_t hashmod = _capacity - 1; + size_t bucket = hash(key) & hashmod; + + for (size_t probe = 0; probe <= hashmod; ++probe) + { + item_t& probe_item = _items[bucket]; + + if (probe_item.key == key) + return &probe_item.value; + + if (probe_item.key == 0) + return 0; + + // hash collision, quadratic probing + bucket = (bucket + probe + 1) & hashmod; + } + + assert(!"Hash table is full"); + return 0; + } + + void** insert(const void* key) + { + assert(key); + assert(_capacity != 0 && _count < _capacity - _capacity / 4); + + size_t hashmod = _capacity - 1; + size_t bucket = hash(key) & hashmod; + + for (size_t probe = 0; probe <= hashmod; ++probe) + { + item_t& probe_item = _items[bucket]; + + if (probe_item.key == 0) + { + probe_item.key = key; + _count++; + return &probe_item.value; + } + + if (probe_item.key == key) + return &probe_item.value; + + // hash collision, quadratic probing + bucket = (bucket + probe + 1) & hashmod; + } + + assert(!"Hash table is full"); + return 0; + } + + bool reserve() + { + if (_count + 16 >= _capacity - _capacity / 4) + return rehash(); + + return true; + } + + private: + struct item_t + { + const void* key; + void* value; + }; + + item_t* _items; + size_t _capacity; + + size_t _count; + + bool rehash(); + + static unsigned int hash(const void* key) + { + unsigned int h = static_cast(reinterpret_cast(key)); + + // MurmurHash3 32-bit finalizer + h ^= h >> 16; + h *= 0x85ebca6bu; + h ^= h >> 13; + h *= 0xc2b2ae35u; + h ^= h >> 16; + + return h; + } + }; + + PUGI__FN_NO_INLINE bool compact_hash_table::rehash() + { + compact_hash_table rt; + rt._capacity = (_capacity == 0) ? 32 : _capacity * 2; + rt._items = static_cast(xml_memory::allocate(sizeof(item_t) * rt._capacity)); + + if (!rt._items) + return false; + + memset(rt._items, 0, sizeof(item_t) * rt._capacity); + + for (size_t i = 0; i < _capacity; ++i) + if (_items[i].key) + *rt.insert(_items[i].key) = _items[i].value; + + if (_items) + xml_memory::deallocate(_items); + + _capacity = rt._capacity; + _items = rt._items; + + assert(_count == rt._count); + + return true; + } + +PUGI__NS_END +#endif + +PUGI__NS_BEGIN + static const size_t xml_memory_page_size = + #ifdef PUGIXML_MEMORY_PAGE_SIZE + PUGIXML_MEMORY_PAGE_SIZE + #else + 32768 + #endif + ; + +#ifdef PUGIXML_COMPACT + static const uintptr_t xml_memory_block_alignment = 4; + + static const uintptr_t xml_memory_page_alignment = sizeof(void*); +#else + static const uintptr_t xml_memory_block_alignment = sizeof(void*); + + static const uintptr_t xml_memory_page_alignment = 64; + static const uintptr_t xml_memory_page_pointer_mask = ~(xml_memory_page_alignment - 1); +#endif + + // extra metadata bits + static const uintptr_t xml_memory_page_contents_shared_mask = 32; + static const uintptr_t xml_memory_page_name_allocated_mask = 16; + static const uintptr_t xml_memory_page_value_allocated_mask = 8; + static const uintptr_t xml_memory_page_type_mask = 7; + + // combined masks for string uniqueness + static const uintptr_t xml_memory_page_name_allocated_or_shared_mask = xml_memory_page_name_allocated_mask | xml_memory_page_contents_shared_mask; + static const uintptr_t xml_memory_page_value_allocated_or_shared_mask = xml_memory_page_value_allocated_mask | xml_memory_page_contents_shared_mask; + +#ifdef PUGIXML_COMPACT + #define PUGI__GETPAGE_IMPL(header) (header).get_page() +#else + #define PUGI__GETPAGE_IMPL(header) reinterpret_cast((header) & impl::xml_memory_page_pointer_mask) +#endif + + #define PUGI__GETPAGE(n) PUGI__GETPAGE_IMPL((n)->header) + #define PUGI__NODETYPE(n) static_cast(((n)->header & impl::xml_memory_page_type_mask) + 1) + + struct xml_allocator; + + struct xml_memory_page + { + static xml_memory_page* construct(void* memory) + { + xml_memory_page* result = static_cast(memory); + + result->allocator = 0; + result->prev = 0; + result->next = 0; + result->busy_size = 0; + result->freed_size = 0; + + #ifdef PUGIXML_COMPACT + result->compact_string_base = 0; + result->compact_shared_parent = 0; + result->compact_page_marker = 0; + #endif + + return result; + } + + xml_allocator* allocator; + + xml_memory_page* prev; + xml_memory_page* next; + + size_t busy_size; + size_t freed_size; + + #ifdef PUGIXML_COMPACT + char_t* compact_string_base; + void* compact_shared_parent; + uint32_t* compact_page_marker; + #endif + }; + + struct xml_memory_string_header + { + uint16_t page_offset; // offset from page->data + uint16_t full_size; // 0 if string occupies whole page + }; + + struct xml_allocator + { + xml_allocator(xml_memory_page* root): _root(root), _busy_size(root->busy_size) + { + #ifdef PUGIXML_COMPACT + _hash = 0; + #endif + } + + xml_memory_page* allocate_page(size_t data_size) + { + size_t size = sizeof(xml_memory_page) + data_size; + + // allocate block with some alignment, leaving memory for worst-case padding + void* memory = xml_memory::allocate(size + xml_memory_page_alignment); + if (!memory) return 0; + + // align to next page boundary (note: this guarantees at least 1 usable byte before the page) + char* page_memory = reinterpret_cast((reinterpret_cast(memory) + xml_memory_page_alignment) & ~(xml_memory_page_alignment - 1)); + + // prepare page structure + xml_memory_page* page = xml_memory_page::construct(page_memory); + assert(page); + + page->allocator = _root->allocator; + + // record the offset for freeing the memory block + assert(page_memory > memory && page_memory - static_cast(memory) <= 127); + page_memory[-1] = static_cast(page_memory - static_cast(memory)); + + return page; + } + + static void deallocate_page(xml_memory_page* page) + { + char* page_memory = reinterpret_cast(page); + + xml_memory::deallocate(page_memory - page_memory[-1]); + } + + void* allocate_memory_oob(size_t size, xml_memory_page*& out_page); + + void* allocate_memory(size_t size, xml_memory_page*& out_page) + { + if (PUGI__UNLIKELY(_busy_size + size > xml_memory_page_size)) + return allocate_memory_oob(size, out_page); + + void* buf = reinterpret_cast(_root) + sizeof(xml_memory_page) + _busy_size; + + _busy_size += size; + + out_page = _root; + + return buf; + } + + #ifdef PUGIXML_COMPACT + void* allocate_object(size_t size, xml_memory_page*& out_page) + { + void* result = allocate_memory(size + sizeof(uint32_t), out_page); + if (!result) return 0; + + // adjust for marker + ptrdiff_t offset = static_cast(result) - reinterpret_cast(out_page->compact_page_marker); + + if (PUGI__UNLIKELY(static_cast(offset) >= 256 * xml_memory_block_alignment)) + { + // insert new marker + uint32_t* marker = static_cast(result); + + *marker = static_cast(reinterpret_cast(marker) - reinterpret_cast(out_page)); + out_page->compact_page_marker = marker; + + // since we don't reuse the page space until we reallocate it, we can just pretend that we freed the marker block + // this will make sure deallocate_memory correctly tracks the size + out_page->freed_size += sizeof(uint32_t); + + return marker + 1; + } + else + { + // roll back uint32_t part + _busy_size -= sizeof(uint32_t); + + return result; + } + } + #else + void* allocate_object(size_t size, xml_memory_page*& out_page) + { + return allocate_memory(size, out_page); + } + #endif + + void deallocate_memory(void* ptr, size_t size, xml_memory_page* page) + { + if (page == _root) page->busy_size = _busy_size; + + assert(ptr >= reinterpret_cast(page) + sizeof(xml_memory_page) && ptr < reinterpret_cast(page) + sizeof(xml_memory_page) + page->busy_size); + (void)!ptr; + + page->freed_size += size; + assert(page->freed_size <= page->busy_size); + + if (page->freed_size == page->busy_size) + { + if (page->next == 0) + { + assert(_root == page); + + // top page freed, just reset sizes + page->busy_size = 0; + page->freed_size = 0; + + #ifdef PUGIXML_COMPACT + // reset compact state to maximize efficiency + page->compact_string_base = 0; + page->compact_shared_parent = 0; + page->compact_page_marker = 0; + #endif + + _busy_size = 0; + } + else + { + assert(_root != page); + assert(page->prev); + + // remove from the list + page->prev->next = page->next; + page->next->prev = page->prev; + + // deallocate + deallocate_page(page); + } + } + } + + char_t* allocate_string(size_t length) + { + static const size_t max_encoded_offset = (1 << 16) * xml_memory_block_alignment; + + PUGI__STATIC_ASSERT(xml_memory_page_size <= max_encoded_offset); + + // allocate memory for string and header block + size_t size = sizeof(xml_memory_string_header) + length * sizeof(char_t); + + // round size up to block alignment boundary + size_t full_size = (size + (xml_memory_block_alignment - 1)) & ~(xml_memory_block_alignment - 1); + + xml_memory_page* page; + xml_memory_string_header* header = static_cast(allocate_memory(full_size, page)); + + if (!header) return 0; + + // setup header + ptrdiff_t page_offset = reinterpret_cast(header) - reinterpret_cast(page) - sizeof(xml_memory_page); + + assert(page_offset % xml_memory_block_alignment == 0); + assert(page_offset >= 0 && static_cast(page_offset) < max_encoded_offset); + header->page_offset = static_cast(static_cast(page_offset) / xml_memory_block_alignment); + + // full_size == 0 for large strings that occupy the whole page + assert(full_size % xml_memory_block_alignment == 0); + assert(full_size < max_encoded_offset || (page->busy_size == full_size && page_offset == 0)); + header->full_size = static_cast(full_size < max_encoded_offset ? full_size / xml_memory_block_alignment : 0); + + // round-trip through void* to avoid 'cast increases required alignment of target type' warning + // header is guaranteed a pointer-sized alignment, which should be enough for char_t + return static_cast(static_cast(header + 1)); + } + + void deallocate_string(char_t* string) + { + // this function casts pointers through void* to avoid 'cast increases required alignment of target type' warnings + // we're guaranteed the proper (pointer-sized) alignment on the input string if it was allocated via allocate_string + + // get header + xml_memory_string_header* header = static_cast(static_cast(string)) - 1; + assert(header); + + // deallocate + size_t page_offset = sizeof(xml_memory_page) + header->page_offset * xml_memory_block_alignment; + xml_memory_page* page = reinterpret_cast(static_cast(reinterpret_cast(header) - page_offset)); + + // if full_size == 0 then this string occupies the whole page + size_t full_size = header->full_size == 0 ? page->busy_size : header->full_size * xml_memory_block_alignment; + + deallocate_memory(header, full_size, page); + } + + bool reserve() + { + #ifdef PUGIXML_COMPACT + return _hash->reserve(); + #else + return true; + #endif + } + + xml_memory_page* _root; + size_t _busy_size; + + #ifdef PUGIXML_COMPACT + compact_hash_table* _hash; + #endif + }; + + PUGI__FN_NO_INLINE void* xml_allocator::allocate_memory_oob(size_t size, xml_memory_page*& out_page) + { + const size_t large_allocation_threshold = xml_memory_page_size / 4; + + xml_memory_page* page = allocate_page(size <= large_allocation_threshold ? xml_memory_page_size : size); + out_page = page; + + if (!page) return 0; + + if (size <= large_allocation_threshold) + { + _root->busy_size = _busy_size; + + // insert page at the end of linked list + page->prev = _root; + _root->next = page; + _root = page; + + _busy_size = size; + } + else + { + // insert page before the end of linked list, so that it is deleted as soon as possible + // the last page is not deleted even if it's empty (see deallocate_memory) + assert(_root->prev); + + page->prev = _root->prev; + page->next = _root; + + _root->prev->next = page; + _root->prev = page; + + page->busy_size = size; + } + + return reinterpret_cast(page) + sizeof(xml_memory_page); + } +PUGI__NS_END + +#ifdef PUGIXML_COMPACT +PUGI__NS_BEGIN + static const uintptr_t compact_alignment_log2 = 2; + static const uintptr_t compact_alignment = 1 << compact_alignment_log2; + + class compact_header + { + public: + compact_header(xml_memory_page* page, unsigned int flags) + { + PUGI__STATIC_ASSERT(xml_memory_block_alignment == compact_alignment); + + ptrdiff_t offset = (reinterpret_cast(this) - reinterpret_cast(page->compact_page_marker)); + assert(offset % compact_alignment == 0 && static_cast(offset) < 256 * compact_alignment); + + _page = static_cast(offset >> compact_alignment_log2); + _flags = static_cast(flags); + } + + void operator&=(uintptr_t mod) + { + _flags &= static_cast(mod); + } + + void operator|=(uintptr_t mod) + { + _flags |= static_cast(mod); + } + + uintptr_t operator&(uintptr_t mod) const + { + return _flags & mod; + } + + xml_memory_page* get_page() const + { + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + const char* page_marker = reinterpret_cast(this) - (_page << compact_alignment_log2); + const char* page = page_marker - *reinterpret_cast(static_cast(page_marker)); + + return const_cast(reinterpret_cast(static_cast(page))); + } + + private: + unsigned char _page; + unsigned char _flags; + }; + + PUGI__FN xml_memory_page* compact_get_page(const void* object, int header_offset) + { + const compact_header* header = reinterpret_cast(static_cast(object) - header_offset); + + return header->get_page(); + } + + template PUGI__FN_NO_INLINE T* compact_get_value(const void* object) + { + return static_cast(*compact_get_page(object, header_offset)->allocator->_hash->find(object)); + } + + template PUGI__FN_NO_INLINE void compact_set_value(const void* object, T* value) + { + *compact_get_page(object, header_offset)->allocator->_hash->insert(object) = value; + } + + template class compact_pointer + { + public: + compact_pointer(): _data(0) + { + } + + void operator=(const compact_pointer& rhs) + { + *this = rhs + 0; + } + + void operator=(T* value) + { + if (value) + { + // value is guaranteed to be compact-aligned; 'this' is not + // our decoding is based on 'this' aligned to compact alignment downwards (see operator T*) + // so for negative offsets (e.g. -3) we need to adjust the diff by compact_alignment - 1 to + // compensate for arithmetic shift rounding for negative values + ptrdiff_t diff = reinterpret_cast(value) - reinterpret_cast(this); + ptrdiff_t offset = ((diff + int(compact_alignment - 1)) >> compact_alignment_log2) - start; + + if (static_cast(offset) <= 253) + _data = static_cast(offset + 1); + else + { + compact_set_value(this, value); + + _data = 255; + } + } + else + _data = 0; + } + + operator T*() const + { + if (_data) + { + if (_data < 255) + { + uintptr_t base = reinterpret_cast(this) & ~(compact_alignment - 1); + + return reinterpret_cast(base + ((_data - 1 + start) << compact_alignment_log2)); + } + else + return compact_get_value(this); + } + else + return 0; + } + + T* operator->() const + { + return *this; + } + + private: + unsigned char _data; + }; + + template class compact_pointer_parent + { + public: + compact_pointer_parent(): _data(0) + { + } + + void operator=(const compact_pointer_parent& rhs) + { + *this = rhs + 0; + } + + void operator=(T* value) + { + if (value) + { + // value is guaranteed to be compact-aligned; 'this' is not + // our decoding is based on 'this' aligned to compact alignment downwards (see operator T*) + // so for negative offsets (e.g. -3) we need to adjust the diff by compact_alignment - 1 to + // compensate for arithmetic shift behavior for negative values + ptrdiff_t diff = reinterpret_cast(value) - reinterpret_cast(this); + ptrdiff_t offset = ((diff + int(compact_alignment - 1)) >> compact_alignment_log2) + 65533; + + if (static_cast(offset) <= 65533) + { + _data = static_cast(offset + 1); + } + else + { + xml_memory_page* page = compact_get_page(this, header_offset); + + if (PUGI__UNLIKELY(page->compact_shared_parent == 0)) + page->compact_shared_parent = value; + + if (page->compact_shared_parent == value) + { + _data = 65534; + } + else + { + compact_set_value(this, value); + + _data = 65535; + } + } + } + else + { + _data = 0; + } + } + + operator T*() const + { + if (_data) + { + if (_data < 65534) + { + uintptr_t base = reinterpret_cast(this) & ~(compact_alignment - 1); + + return reinterpret_cast(base + ((_data - 1 - 65533) << compact_alignment_log2)); + } + else if (_data == 65534) + return static_cast(compact_get_page(this, header_offset)->compact_shared_parent); + else + return compact_get_value(this); + } + else + return 0; + } + + T* operator->() const + { + return *this; + } + + private: + uint16_t _data; + }; + + template class compact_string + { + public: + compact_string(): _data(0) + { + } + + void operator=(const compact_string& rhs) + { + *this = rhs + 0; + } + + void operator=(char_t* value) + { + if (value) + { + xml_memory_page* page = compact_get_page(this, header_offset); + + if (PUGI__UNLIKELY(page->compact_string_base == 0)) + page->compact_string_base = value; + + ptrdiff_t offset = value - page->compact_string_base; + + if (static_cast(offset) < (65535 << 7)) + { + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + uint16_t* base = reinterpret_cast(static_cast(reinterpret_cast(this) - base_offset)); + + if (*base == 0) + { + *base = static_cast((offset >> 7) + 1); + _data = static_cast((offset & 127) + 1); + } + else + { + ptrdiff_t remainder = offset - ((*base - 1) << 7); + + if (static_cast(remainder) <= 253) + { + _data = static_cast(remainder + 1); + } + else + { + compact_set_value(this, value); + + _data = 255; + } + } + } + else + { + compact_set_value(this, value); + + _data = 255; + } + } + else + { + _data = 0; + } + } + + operator char_t*() const + { + if (_data) + { + if (_data < 255) + { + xml_memory_page* page = compact_get_page(this, header_offset); + + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + const uint16_t* base = reinterpret_cast(static_cast(reinterpret_cast(this) - base_offset)); + assert(*base); + + ptrdiff_t offset = ((*base - 1) << 7) + (_data - 1); + + return page->compact_string_base + offset; + } + else + { + return compact_get_value(this); + } + } + else + return 0; + } + + private: + unsigned char _data; + }; +PUGI__NS_END +#endif + +#ifdef PUGIXML_COMPACT +namespace pugi +{ + struct xml_attribute_struct + { + xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), namevalue_base(0) + { + PUGI__STATIC_ASSERT(sizeof(xml_attribute_struct) == 8); + } + + impl::compact_header header; + + uint16_t namevalue_base; + + impl::compact_string<4, 2> name; + impl::compact_string<5, 3> value; + + impl::compact_pointer prev_attribute_c; + impl::compact_pointer next_attribute; + }; + + struct xml_node_struct + { + xml_node_struct(impl::xml_memory_page* page, xml_node_type type): header(page, type - 1), namevalue_base(0) + { + PUGI__STATIC_ASSERT(sizeof(xml_node_struct) == 12); + } + + impl::compact_header header; + + uint16_t namevalue_base; + + impl::compact_string<4, 2> name; + impl::compact_string<5, 3> value; + + impl::compact_pointer_parent parent; + + impl::compact_pointer first_child; + + impl::compact_pointer prev_sibling_c; + impl::compact_pointer next_sibling; + + impl::compact_pointer first_attribute; + }; +} +#else +namespace pugi +{ + struct xml_attribute_struct + { + xml_attribute_struct(impl::xml_memory_page* page): header(reinterpret_cast(page)), name(0), value(0), prev_attribute_c(0), next_attribute(0) + { + } + + uintptr_t header; + + char_t* name; + char_t* value; + + xml_attribute_struct* prev_attribute_c; + xml_attribute_struct* next_attribute; + }; + + struct xml_node_struct + { + xml_node_struct(impl::xml_memory_page* page, xml_node_type type): header(reinterpret_cast(page) | (type - 1)), name(0), value(0), parent(0), first_child(0), prev_sibling_c(0), next_sibling(0), first_attribute(0) + { + } + + uintptr_t header; + + char_t* name; + char_t* value; + + xml_node_struct* parent; + + xml_node_struct* first_child; + + xml_node_struct* prev_sibling_c; + xml_node_struct* next_sibling; + + xml_attribute_struct* first_attribute; + }; +} +#endif + +PUGI__NS_BEGIN + struct xml_extra_buffer + { + char_t* buffer; + xml_extra_buffer* next; + }; + + struct xml_document_struct: public xml_node_struct, public xml_allocator + { + xml_document_struct(xml_memory_page* page): xml_node_struct(page, node_document), xml_allocator(page), buffer(0), extra_buffers(0) + { + #ifdef PUGIXML_COMPACT + _hash = &hash; + #endif + } + + const char_t* buffer; + + xml_extra_buffer* extra_buffers; + + #ifdef PUGIXML_COMPACT + compact_hash_table hash; + #endif + }; + + template inline xml_allocator& get_allocator(const Object* object) + { + assert(object); + + return *PUGI__GETPAGE(object)->allocator; + } + + template inline xml_document_struct& get_document(const Object* object) + { + assert(object); + + return *static_cast(PUGI__GETPAGE(object)->allocator); + } +PUGI__NS_END + +// Low-level DOM operations +PUGI__NS_BEGIN + inline xml_attribute_struct* allocate_attribute(xml_allocator& alloc) + { + xml_memory_page* page; + void* memory = alloc.allocate_object(sizeof(xml_attribute_struct), page); + if (!memory) return 0; + + return new (memory) xml_attribute_struct(page); + } + + inline xml_node_struct* allocate_node(xml_allocator& alloc, xml_node_type type) + { + xml_memory_page* page; + void* memory = alloc.allocate_object(sizeof(xml_node_struct), page); + if (!memory) return 0; + + return new (memory) xml_node_struct(page, type); + } + + inline void destroy_attribute(xml_attribute_struct* a, xml_allocator& alloc) + { + if (a->header & impl::xml_memory_page_name_allocated_mask) + alloc.deallocate_string(a->name); + + if (a->header & impl::xml_memory_page_value_allocated_mask) + alloc.deallocate_string(a->value); + + alloc.deallocate_memory(a, sizeof(xml_attribute_struct), PUGI__GETPAGE(a)); + } + + inline void destroy_node(xml_node_struct* n, xml_allocator& alloc) + { + if (n->header & impl::xml_memory_page_name_allocated_mask) + alloc.deallocate_string(n->name); + + if (n->header & impl::xml_memory_page_value_allocated_mask) + alloc.deallocate_string(n->value); + + for (xml_attribute_struct* attr = n->first_attribute; attr; ) + { + xml_attribute_struct* next = attr->next_attribute; + + destroy_attribute(attr, alloc); + + attr = next; + } + + for (xml_node_struct* child = n->first_child; child; ) + { + xml_node_struct* next = child->next_sibling; + + destroy_node(child, alloc); + + child = next; + } + + alloc.deallocate_memory(n, sizeof(xml_node_struct), PUGI__GETPAGE(n)); + } + + inline void append_node(xml_node_struct* child, xml_node_struct* node) + { + child->parent = node; + + xml_node_struct* head = node->first_child; + + if (head) + { + xml_node_struct* tail = head->prev_sibling_c; + + tail->next_sibling = child; + child->prev_sibling_c = tail; + head->prev_sibling_c = child; + } + else + { + node->first_child = child; + child->prev_sibling_c = child; + } + } + + inline void prepend_node(xml_node_struct* child, xml_node_struct* node) + { + child->parent = node; + + xml_node_struct* head = node->first_child; + + if (head) + { + child->prev_sibling_c = head->prev_sibling_c; + head->prev_sibling_c = child; + } + else + child->prev_sibling_c = child; + + child->next_sibling = head; + node->first_child = child; + } + + inline void insert_node_after(xml_node_struct* child, xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + child->parent = parent; + + if (node->next_sibling) + node->next_sibling->prev_sibling_c = child; + else + parent->first_child->prev_sibling_c = child; + + child->next_sibling = node->next_sibling; + child->prev_sibling_c = node; + + node->next_sibling = child; + } + + inline void insert_node_before(xml_node_struct* child, xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + child->parent = parent; + + if (node->prev_sibling_c->next_sibling) + node->prev_sibling_c->next_sibling = child; + else + parent->first_child = child; + + child->prev_sibling_c = node->prev_sibling_c; + child->next_sibling = node; + + node->prev_sibling_c = child; + } + + inline void remove_node(xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + if (node->next_sibling) + node->next_sibling->prev_sibling_c = node->prev_sibling_c; + else + parent->first_child->prev_sibling_c = node->prev_sibling_c; + + if (node->prev_sibling_c->next_sibling) + node->prev_sibling_c->next_sibling = node->next_sibling; + else + parent->first_child = node->next_sibling; + + node->parent = 0; + node->prev_sibling_c = 0; + node->next_sibling = 0; + } + + inline void append_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + xml_attribute_struct* head = node->first_attribute; + + if (head) + { + xml_attribute_struct* tail = head->prev_attribute_c; + + tail->next_attribute = attr; + attr->prev_attribute_c = tail; + head->prev_attribute_c = attr; + } + else + { + node->first_attribute = attr; + attr->prev_attribute_c = attr; + } + } + + inline void prepend_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + xml_attribute_struct* head = node->first_attribute; + + if (head) + { + attr->prev_attribute_c = head->prev_attribute_c; + head->prev_attribute_c = attr; + } + else + attr->prev_attribute_c = attr; + + attr->next_attribute = head; + node->first_attribute = attr; + } + + inline void insert_attribute_after(xml_attribute_struct* attr, xml_attribute_struct* place, xml_node_struct* node) + { + if (place->next_attribute) + place->next_attribute->prev_attribute_c = attr; + else + node->first_attribute->prev_attribute_c = attr; + + attr->next_attribute = place->next_attribute; + attr->prev_attribute_c = place; + place->next_attribute = attr; + } + + inline void insert_attribute_before(xml_attribute_struct* attr, xml_attribute_struct* place, xml_node_struct* node) + { + if (place->prev_attribute_c->next_attribute) + place->prev_attribute_c->next_attribute = attr; + else + node->first_attribute = attr; + + attr->prev_attribute_c = place->prev_attribute_c; + attr->next_attribute = place; + place->prev_attribute_c = attr; + } + + inline void remove_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + if (attr->next_attribute) + attr->next_attribute->prev_attribute_c = attr->prev_attribute_c; + else + node->first_attribute->prev_attribute_c = attr->prev_attribute_c; + + if (attr->prev_attribute_c->next_attribute) + attr->prev_attribute_c->next_attribute = attr->next_attribute; + else + node->first_attribute = attr->next_attribute; + + attr->prev_attribute_c = 0; + attr->next_attribute = 0; + } + + PUGI__FN_NO_INLINE xml_node_struct* append_new_node(xml_node_struct* node, xml_allocator& alloc, xml_node_type type = node_element) + { + if (!alloc.reserve()) return 0; + + xml_node_struct* child = allocate_node(alloc, type); + if (!child) return 0; + + append_node(child, node); + + return child; + } + + PUGI__FN_NO_INLINE xml_attribute_struct* append_new_attribute(xml_node_struct* node, xml_allocator& alloc) + { + if (!alloc.reserve()) return 0; + + xml_attribute_struct* attr = allocate_attribute(alloc); + if (!attr) return 0; + + append_attribute(attr, node); + + return attr; + } +PUGI__NS_END + +// Helper classes for code generation +PUGI__NS_BEGIN + struct opt_false + { + enum { value = 0 }; + }; + + struct opt_true + { + enum { value = 1 }; + }; +PUGI__NS_END + +// Unicode utilities +PUGI__NS_BEGIN + inline uint16_t endian_swap(uint16_t value) + { + return static_cast(((value & 0xff) << 8) | (value >> 8)); + } + + inline uint32_t endian_swap(uint32_t value) + { + return ((value & 0xff) << 24) | ((value & 0xff00) << 8) | ((value & 0xff0000) >> 8) | (value >> 24); + } + + struct utf8_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t ch) + { + // U+0000..U+007F + if (ch < 0x80) return result + 1; + // U+0080..U+07FF + else if (ch < 0x800) return result + 2; + // U+0800..U+FFFF + else return result + 3; + } + + static value_type high(value_type result, uint32_t) + { + // U+10000..U+10FFFF + return result + 4; + } + }; + + struct utf8_writer + { + typedef uint8_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + // U+0000..U+007F + if (ch < 0x80) + { + *result = static_cast(ch); + return result + 1; + } + // U+0080..U+07FF + else if (ch < 0x800) + { + result[0] = static_cast(0xC0 | (ch >> 6)); + result[1] = static_cast(0x80 | (ch & 0x3F)); + return result + 2; + } + // U+0800..U+FFFF + else + { + result[0] = static_cast(0xE0 | (ch >> 12)); + result[1] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + result[2] = static_cast(0x80 | (ch & 0x3F)); + return result + 3; + } + } + + static value_type high(value_type result, uint32_t ch) + { + // U+10000..U+10FFFF + result[0] = static_cast(0xF0 | (ch >> 18)); + result[1] = static_cast(0x80 | ((ch >> 12) & 0x3F)); + result[2] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + result[3] = static_cast(0x80 | (ch & 0x3F)); + return result + 4; + } + + static value_type any(value_type result, uint32_t ch) + { + return (ch < 0x10000) ? low(result, ch) : high(result, ch); + } + }; + + struct utf16_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t) + { + return result + 1; + } + + static value_type high(value_type result, uint32_t) + { + return result + 2; + } + }; + + struct utf16_writer + { + typedef uint16_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = static_cast(ch); + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + uint32_t msh = static_cast(ch - 0x10000) >> 10; + uint32_t lsh = static_cast(ch - 0x10000) & 0x3ff; + + result[0] = static_cast(0xD800 + msh); + result[1] = static_cast(0xDC00 + lsh); + + return result + 2; + } + + static value_type any(value_type result, uint32_t ch) + { + return (ch < 0x10000) ? low(result, ch) : high(result, ch); + } + }; + + struct utf32_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t) + { + return result + 1; + } + + static value_type high(value_type result, uint32_t) + { + return result + 1; + } + }; + + struct utf32_writer + { + typedef uint32_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + + static value_type any(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + }; + + struct latin1_writer + { + typedef uint8_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = static_cast(ch > 255 ? '?' : ch); + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + (void)ch; + + *result = '?'; + + return result + 1; + } + }; + + struct utf8_decoder + { + typedef uint8_t type; + + template static inline typename Traits::value_type process(const uint8_t* data, size_t size, typename Traits::value_type result, Traits) + { + const uint8_t utf8_byte_mask = 0x3f; + + while (size) + { + uint8_t lead = *data; + + // 0xxxxxxx -> U+0000..U+007F + if (lead < 0x80) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + + // process aligned single-byte (ascii) blocks + if ((reinterpret_cast(data) & 3) == 0) + { + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + while (size >= 4 && (*static_cast(static_cast(data)) & 0x80808080) == 0) + { + result = Traits::low(result, data[0]); + result = Traits::low(result, data[1]); + result = Traits::low(result, data[2]); + result = Traits::low(result, data[3]); + data += 4; + size -= 4; + } + } + } + // 110xxxxx -> U+0080..U+07FF + else if (static_cast(lead - 0xC0) < 0x20 && size >= 2 && (data[1] & 0xc0) == 0x80) + { + result = Traits::low(result, ((lead & ~0xC0) << 6) | (data[1] & utf8_byte_mask)); + data += 2; + size -= 2; + } + // 1110xxxx -> U+0800-U+FFFF + else if (static_cast(lead - 0xE0) < 0x10 && size >= 3 && (data[1] & 0xc0) == 0x80 && (data[2] & 0xc0) == 0x80) + { + result = Traits::low(result, ((lead & ~0xE0) << 12) | ((data[1] & utf8_byte_mask) << 6) | (data[2] & utf8_byte_mask)); + data += 3; + size -= 3; + } + // 11110xxx -> U+10000..U+10FFFF + else if (static_cast(lead - 0xF0) < 0x08 && size >= 4 && (data[1] & 0xc0) == 0x80 && (data[2] & 0xc0) == 0x80 && (data[3] & 0xc0) == 0x80) + { + result = Traits::high(result, ((lead & ~0xF0) << 18) | ((data[1] & utf8_byte_mask) << 12) | ((data[2] & utf8_byte_mask) << 6) | (data[3] & utf8_byte_mask)); + data += 4; + size -= 4; + } + // 10xxxxxx or 11111xxx -> invalid + else + { + data += 1; + size -= 1; + } + } + + return result; + } + }; + + template struct utf16_decoder + { + typedef uint16_t type; + + template static inline typename Traits::value_type process(const uint16_t* data, size_t size, typename Traits::value_type result, Traits) + { + while (size) + { + uint16_t lead = opt_swap::value ? endian_swap(*data) : *data; + + // U+0000..U+D7FF + if (lead < 0xD800) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + } + // U+E000..U+FFFF + else if (static_cast(lead - 0xE000) < 0x2000) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + } + // surrogate pair lead + else if (static_cast(lead - 0xD800) < 0x400 && size >= 2) + { + uint16_t next = opt_swap::value ? endian_swap(data[1]) : data[1]; + + if (static_cast(next - 0xDC00) < 0x400) + { + result = Traits::high(result, 0x10000 + ((lead & 0x3ff) << 10) + (next & 0x3ff)); + data += 2; + size -= 2; + } + else + { + data += 1; + size -= 1; + } + } + else + { + data += 1; + size -= 1; + } + } + + return result; + } + }; + + template struct utf32_decoder + { + typedef uint32_t type; + + template static inline typename Traits::value_type process(const uint32_t* data, size_t size, typename Traits::value_type result, Traits) + { + while (size) + { + uint32_t lead = opt_swap::value ? endian_swap(*data) : *data; + + // U+0000..U+FFFF + if (lead < 0x10000) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + } + // U+10000..U+10FFFF + else + { + result = Traits::high(result, lead); + data += 1; + size -= 1; + } + } + + return result; + } + }; + + struct latin1_decoder + { + typedef uint8_t type; + + template static inline typename Traits::value_type process(const uint8_t* data, size_t size, typename Traits::value_type result, Traits) + { + while (size) + { + result = Traits::low(result, *data); + data += 1; + size -= 1; + } + + return result; + } + }; + + template struct wchar_selector; + + template <> struct wchar_selector<2> + { + typedef uint16_t type; + typedef utf16_counter counter; + typedef utf16_writer writer; + typedef utf16_decoder decoder; + }; + + template <> struct wchar_selector<4> + { + typedef uint32_t type; + typedef utf32_counter counter; + typedef utf32_writer writer; + typedef utf32_decoder decoder; + }; + + typedef wchar_selector::counter wchar_counter; + typedef wchar_selector::writer wchar_writer; + + struct wchar_decoder + { + typedef wchar_t type; + + template static inline typename Traits::value_type process(const wchar_t* data, size_t size, typename Traits::value_type result, Traits traits) + { + typedef wchar_selector::decoder decoder; + + return decoder::process(reinterpret_cast(data), size, result, traits); + } + }; + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN void convert_wchar_endian_swap(wchar_t* result, const wchar_t* data, size_t length) + { + for (size_t i = 0; i < length; ++i) + result[i] = static_cast(endian_swap(static_cast::type>(data[i]))); + } +#endif +PUGI__NS_END + +PUGI__NS_BEGIN + enum chartype_t + { + ct_parse_pcdata = 1, // \0, &, \r, < + ct_parse_attr = 2, // \0, &, \r, ', " + ct_parse_attr_ws = 4, // \0, &, \r, ', ", \n, tab + ct_space = 8, // \r, \n, space, tab + ct_parse_cdata = 16, // \0, ], >, \r + ct_parse_comment = 32, // \0, -, >, \r + ct_symbol = 64, // Any symbol > 127, a-z, A-Z, 0-9, _, :, -, . + ct_start_symbol = 128 // Any symbol > 127, a-z, A-Z, _, : + }; + + static const unsigned char chartype_table[256] = + { + 55, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 63, 0, 0, // 0-15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16-31 + 8, 0, 6, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 96, 64, 0, // 32-47 + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 192, 0, 1, 0, 48, 0, // 48-63 + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 64-79 + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 0, 16, 0, 192, // 80-95 + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 96-111 + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 0, 0, 0, 0, // 112-127 + + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 128+ + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192 + }; + + enum chartypex_t + { + ctx_special_pcdata = 1, // Any symbol >= 0 and < 32 (except \t, \r, \n), &, <, > + ctx_special_attr = 2, // Any symbol >= 0 and < 32 (except \t), &, <, >, " + ctx_start_symbol = 4, // Any symbol > 127, a-z, A-Z, _ + ctx_digit = 8, // 0-9 + ctx_symbol = 16 // Any symbol > 127, a-z, A-Z, 0-9, _, -, . + }; + + static const unsigned char chartypex_table[256] = + { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 2, 3, 3, 2, 3, 3, // 0-15 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 16-31 + 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 16, 16, 0, // 32-47 + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 3, 0, 3, 0, // 48-63 + + 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 64-79 + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 20, // 80-95 + 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 96-111 + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, // 112-127 + + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 128+ + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 + }; + +#ifdef PUGIXML_WCHAR_MODE + #define PUGI__IS_CHARTYPE_IMPL(c, ct, table) ((static_cast(c) < 128 ? table[static_cast(c)] : table[128]) & (ct)) +#else + #define PUGI__IS_CHARTYPE_IMPL(c, ct, table) (table[static_cast(c)] & (ct)) +#endif + + #define PUGI__IS_CHARTYPE(c, ct) PUGI__IS_CHARTYPE_IMPL(c, ct, chartype_table) + #define PUGI__IS_CHARTYPEX(c, ct) PUGI__IS_CHARTYPE_IMPL(c, ct, chartypex_table) + + PUGI__FN bool is_little_endian() + { + unsigned int ui = 1; + + return *reinterpret_cast(&ui) == 1; + } + + PUGI__FN xml_encoding get_wchar_encoding() + { + PUGI__STATIC_ASSERT(sizeof(wchar_t) == 2 || sizeof(wchar_t) == 4); + + if (sizeof(wchar_t) == 2) + return is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + else + return is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + } + + PUGI__FN xml_encoding guess_buffer_encoding(uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3) + { + // look for BOM in first few bytes + if (d0 == 0 && d1 == 0 && d2 == 0xfe && d3 == 0xff) return encoding_utf32_be; + if (d0 == 0xff && d1 == 0xfe && d2 == 0 && d3 == 0) return encoding_utf32_le; + if (d0 == 0xfe && d1 == 0xff) return encoding_utf16_be; + if (d0 == 0xff && d1 == 0xfe) return encoding_utf16_le; + if (d0 == 0xef && d1 == 0xbb && d2 == 0xbf) return encoding_utf8; + + // look for <, (contents); + + PUGI__DMC_VOLATILE uint8_t d0 = data[0], d1 = data[1], d2 = data[2], d3 = data[3]; + + return guess_buffer_encoding(d0, d1, d2, d3); + } + + PUGI__FN bool get_mutable_buffer(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + size_t length = size / sizeof(char_t); + + if (is_mutable) + { + out_buffer = static_cast(const_cast(contents)); + out_length = length; + } + else + { + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + if (contents) + memcpy(buffer, contents, length * sizeof(char_t)); + else + assert(length == 0); + + buffer[length] = 0; + + out_buffer = buffer; + out_length = length + 1; + } + + return true; + } + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN bool need_endian_swap_utf(xml_encoding le, xml_encoding re) + { + return (le == encoding_utf16_be && re == encoding_utf16_le) || (le == encoding_utf16_le && re == encoding_utf16_be) || + (le == encoding_utf32_be && re == encoding_utf32_le) || (le == encoding_utf32_le && re == encoding_utf32_be); + } + + PUGI__FN bool convert_buffer_endian_swap(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + const char_t* data = static_cast(contents); + size_t length = size / sizeof(char_t); + + if (is_mutable) + { + char_t* buffer = const_cast(data); + + convert_wchar_endian_swap(buffer, data, length); + + out_buffer = buffer; + out_length = length; + } + else + { + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + convert_wchar_endian_swap(buffer, data, length); + buffer[length] = 0; + + out_buffer = buffer; + out_length = length + 1; + } + + return true; + } + + template PUGI__FN bool convert_buffer_generic(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, D) + { + const typename D::type* data = static_cast(contents); + size_t data_length = size / sizeof(typename D::type); + + // first pass: get length in wchar_t units + size_t length = D::process(data, data_length, 0, wchar_counter()); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf16 input to wchar_t + wchar_writer::value_type obegin = reinterpret_cast(buffer); + wchar_writer::value_type oend = D::process(data, data_length, obegin, wchar_writer()); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xml_encoding encoding, const void* contents, size_t size, bool is_mutable) + { + // get native encoding + xml_encoding wchar_encoding = get_wchar_encoding(); + + // fast path: no conversion required + if (encoding == wchar_encoding) + return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // only endian-swapping is required + if (need_endian_swap_utf(encoding, wchar_encoding)) + return convert_buffer_endian_swap(out_buffer, out_length, contents, size, is_mutable); + + // source encoding is utf8 + if (encoding == encoding_utf8) + return convert_buffer_generic(out_buffer, out_length, contents, size, utf8_decoder()); + + // source encoding is utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()); + } + + // source encoding is utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()); + } + + // source encoding is latin1 + if (encoding == encoding_latin1) + return convert_buffer_generic(out_buffer, out_length, contents, size, latin1_decoder()); + + assert(!"Invalid encoding"); + return false; + } +#else + template PUGI__FN bool convert_buffer_generic(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, D) + { + const typename D::type* data = static_cast(contents); + size_t data_length = size / sizeof(typename D::type); + + // first pass: get length in utf8 units + size_t length = D::process(data, data_length, 0, utf8_counter()); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf16 input to utf8 + uint8_t* obegin = reinterpret_cast(buffer); + uint8_t* oend = D::process(data, data_length, obegin, utf8_writer()); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN size_t get_latin1_7bit_prefix_length(const uint8_t* data, size_t size) + { + for (size_t i = 0; i < size; ++i) + if (data[i] > 127) + return i; + + return size; + } + + PUGI__FN bool convert_buffer_latin1(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + const uint8_t* data = static_cast(contents); + size_t data_length = size; + + // get size of prefix that does not need utf8 conversion + size_t prefix_length = get_latin1_7bit_prefix_length(data, data_length); + assert(prefix_length <= data_length); + + const uint8_t* postfix = data + prefix_length; + size_t postfix_length = data_length - prefix_length; + + // if no conversion is needed, just return the original buffer + if (postfix_length == 0) return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // first pass: get length in utf8 units + size_t length = prefix_length + latin1_decoder::process(postfix, postfix_length, 0, utf8_counter()); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert latin1 input to utf8 + memcpy(buffer, data, prefix_length); + + uint8_t* obegin = reinterpret_cast(buffer); + uint8_t* oend = latin1_decoder::process(postfix, postfix_length, obegin + prefix_length, utf8_writer()); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xml_encoding encoding, const void* contents, size_t size, bool is_mutable) + { + // fast path: no conversion required + if (encoding == encoding_utf8) + return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // source encoding is utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()); + } + + // source encoding is utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()); + } + + // source encoding is latin1 + if (encoding == encoding_latin1) + return convert_buffer_latin1(out_buffer, out_length, contents, size, is_mutable); + + assert(!"Invalid encoding"); + return false; + } +#endif + + PUGI__FN size_t as_utf8_begin(const wchar_t* str, size_t length) + { + // get length in utf8 characters + return wchar_decoder::process(str, length, 0, utf8_counter()); + } + + PUGI__FN void as_utf8_end(char* buffer, size_t size, const wchar_t* str, size_t length) + { + // convert to utf8 + uint8_t* begin = reinterpret_cast(buffer); + uint8_t* end = wchar_decoder::process(str, length, begin, utf8_writer()); + + assert(begin + size == end); + (void)!end; + (void)!size; + } + +#ifndef PUGIXML_NO_STL + PUGI__FN std::string as_utf8_impl(const wchar_t* str, size_t length) + { + // first pass: get length in utf8 characters + size_t size = as_utf8_begin(str, length); + + // allocate resulting string + std::string result; + result.resize(size); + + // second pass: convert to utf8 + if (size > 0) as_utf8_end(&result[0], size, str, length); + + return result; + } + + PUGI__FN std::basic_string as_wide_impl(const char* str, size_t size) + { + const uint8_t* data = reinterpret_cast(str); + + // first pass: get length in wchar_t units + size_t length = utf8_decoder::process(data, size, 0, wchar_counter()); + + // allocate resulting string + std::basic_string result; + result.resize(length); + + // second pass: convert to wchar_t + if (length > 0) + { + wchar_writer::value_type begin = reinterpret_cast(&result[0]); + wchar_writer::value_type end = utf8_decoder::process(data, size, begin, wchar_writer()); + + assert(begin + length == end); + (void)!end; + } + + return result; + } +#endif + + template + inline bool strcpy_insitu_allow(size_t length, const Header& header, uintptr_t header_mask, char_t* target) + { + // never reuse shared memory + if (header & xml_memory_page_contents_shared_mask) return false; + + size_t target_length = strlength(target); + + // always reuse document buffer memory if possible + if ((header & header_mask) == 0) return target_length >= length; + + // reuse heap memory if waste is not too great + const size_t reuse_threshold = 32; + + return target_length >= length && (target_length < reuse_threshold || target_length - length < target_length / 2); + } + + template + PUGI__FN bool strcpy_insitu(String& dest, Header& header, uintptr_t header_mask, const char_t* source, size_t source_length) + { + if (source_length == 0) + { + // empty string and null pointer are equivalent, so just deallocate old memory + xml_allocator* alloc = PUGI__GETPAGE_IMPL(header)->allocator; + + if (header & header_mask) alloc->deallocate_string(dest); + + // mark the string as not allocated + dest = 0; + header &= ~header_mask; + + return true; + } + else if (dest && strcpy_insitu_allow(source_length, header, header_mask, dest)) + { + // we can reuse old buffer, so just copy the new data (including zero terminator) + memcpy(dest, source, source_length * sizeof(char_t)); + dest[source_length] = 0; + + return true; + } + else + { + xml_allocator* alloc = PUGI__GETPAGE_IMPL(header)->allocator; + + if (!alloc->reserve()) return false; + + // allocate new buffer + char_t* buf = alloc->allocate_string(source_length + 1); + if (!buf) return false; + + // copy the string (including zero terminator) + memcpy(buf, source, source_length * sizeof(char_t)); + buf[source_length] = 0; + + // deallocate old buffer (*after* the above to protect against overlapping memory and/or allocation failures) + if (header & header_mask) alloc->deallocate_string(dest); + + // the string is now allocated, so set the flag + dest = buf; + header |= header_mask; + + return true; + } + } + + struct gap + { + char_t* end; + size_t size; + + gap(): end(0), size(0) + { + } + + // Push new gap, move s count bytes further (skipping the gap). + // Collapse previous gap. + void push(char_t*& s, size_t count) + { + if (end) // there was a gap already; collapse it + { + // Move [old_gap_end, new_gap_start) to [old_gap_start, ...) + assert(s >= end); + memmove(end - size, end, reinterpret_cast(s) - reinterpret_cast(end)); + } + + s += count; // end of current gap + + // "merge" two gaps + end = s; + size += count; + } + + // Collapse all gaps, return past-the-end pointer + char_t* flush(char_t* s) + { + if (end) + { + // Move [old_gap_end, current_pos) to [old_gap_start, ...) + assert(s >= end); + memmove(end - size, end, reinterpret_cast(s) - reinterpret_cast(end)); + + return s - size; + } + else return s; + } + }; + + PUGI__FN char_t* strconv_escape(char_t* s, gap& g) + { + char_t* stre = s + 1; + + switch (*stre) + { + case '#': // &#... + { + unsigned int ucsc = 0; + + if (stre[1] == 'x') // &#x... (hex code) + { + stre += 2; + + char_t ch = *stre; + + if (ch == ';') return stre; + + for (;;) + { + if (static_cast(ch - '0') <= 9) + ucsc = 16 * ucsc + (ch - '0'); + else if (static_cast((ch | ' ') - 'a') <= 5) + ucsc = 16 * ucsc + ((ch | ' ') - 'a' + 10); + else if (ch == ';') + break; + else // cancel + return stre; + + ch = *++stre; + } + + ++stre; + } + else // &#... (dec code) + { + char_t ch = *++stre; + + if (ch == ';') return stre; + + for (;;) + { + if (static_cast(static_cast(ch) - '0') <= 9) + ucsc = 10 * ucsc + (ch - '0'); + else if (ch == ';') + break; + else // cancel + return stre; + + ch = *++stre; + } + + ++stre; + } + + #ifdef PUGIXML_WCHAR_MODE + s = reinterpret_cast(wchar_writer::any(reinterpret_cast(s), ucsc)); + #else + s = reinterpret_cast(utf8_writer::any(reinterpret_cast(s), ucsc)); + #endif + + g.push(s, stre - s); + return stre; + } + + case 'a': // &a + { + ++stre; + + if (*stre == 'm') // &am + { + if (*++stre == 'p' && *++stre == ';') // & + { + *s++ = '&'; + ++stre; + + g.push(s, stre - s); + return stre; + } + } + else if (*stre == 'p') // &ap + { + if (*++stre == 'o' && *++stre == 's' && *++stre == ';') // ' + { + *s++ = '\''; + ++stre; + + g.push(s, stre - s); + return stre; + } + } + break; + } + + case 'g': // &g + { + if (*++stre == 't' && *++stre == ';') // > + { + *s++ = '>'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + case 'l': // &l + { + if (*++stre == 't' && *++stre == ';') // < + { + *s++ = '<'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + case 'q': // &q + { + if (*++stre == 'u' && *++stre == 'o' && *++stre == 't' && *++stre == ';') // " + { + *s++ = '"'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + default: + break; + } + + return stre; + } + + // Parser utilities + #define PUGI__ENDSWITH(c, e) ((c) == (e) || ((c) == 0 && endch == (e))) + #define PUGI__SKIPWS() { while (PUGI__IS_CHARTYPE(*s, ct_space)) ++s; } + #define PUGI__OPTSET(OPT) ( optmsk & (OPT) ) + #define PUGI__PUSHNODE(TYPE) { cursor = append_new_node(cursor, alloc, TYPE); if (!cursor) PUGI__THROW_ERROR(status_out_of_memory, s); } + #define PUGI__POPNODE() { cursor = cursor->parent; } + #define PUGI__SCANFOR(X) { while (*s != 0 && !(X)) ++s; } + #define PUGI__SCANWHILE(X) { while (X) ++s; } + #define PUGI__SCANWHILE_UNROLL(X) { for (;;) { char_t ss = s[0]; if (PUGI__UNLIKELY(!(X))) { break; } ss = s[1]; if (PUGI__UNLIKELY(!(X))) { s += 1; break; } ss = s[2]; if (PUGI__UNLIKELY(!(X))) { s += 2; break; } ss = s[3]; if (PUGI__UNLIKELY(!(X))) { s += 3; break; } s += 4; } } + #define PUGI__ENDSEG() { ch = *s; *s = 0; ++s; } + #define PUGI__THROW_ERROR(err, m) return error_offset = m, error_status = err, static_cast(0) + #define PUGI__CHECK_ERROR(err, m) { if (*s == 0) PUGI__THROW_ERROR(err, m); } + + PUGI__FN char_t* strconv_comment(char_t* s, char_t endch) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_comment)); + + if (*s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (s[0] == '-' && s[1] == '-' && PUGI__ENDSWITH(s[2], '>')) // comment ends here + { + *g.flush(s) = 0; + + return s + (s[2] == '>' ? 3 : 2); + } + else if (*s == 0) + { + return 0; + } + else ++s; + } + } + + PUGI__FN char_t* strconv_cdata(char_t* s, char_t endch) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_cdata)); + + if (*s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')) // CDATA ends here + { + *g.flush(s) = 0; + + return s + 1; + } + else if (*s == 0) + { + return 0; + } + else ++s; + } + } + + typedef char_t* (*strconv_pcdata_t)(char_t*); + + template struct strconv_pcdata_impl + { + static char_t* parse(char_t* s) + { + gap g; + + char_t* begin = s; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_pcdata)); + + if (*s == '<') // PCDATA ends here + { + char_t* end = g.flush(s); + + if (opt_trim::value) + while (end > begin && PUGI__IS_CHARTYPE(end[-1], ct_space)) + --end; + + *end = 0; + + return s + 1; + } + else if (opt_eol::value && *s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (*s == 0) + { + char_t* end = g.flush(s); + + if (opt_trim::value) + while (end > begin && PUGI__IS_CHARTYPE(end[-1], ct_space)) + --end; + + *end = 0; + + return s; + } + else ++s; + } + } + }; + + PUGI__FN strconv_pcdata_t get_strconv_pcdata(unsigned int optmask) + { + PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_trim_pcdata == 0x0800); + + switch (((optmask >> 4) & 3) | ((optmask >> 9) & 4)) // get bitmask for flags (eol escapes trim) + { + case 0: return strconv_pcdata_impl::parse; + case 1: return strconv_pcdata_impl::parse; + case 2: return strconv_pcdata_impl::parse; + case 3: return strconv_pcdata_impl::parse; + case 4: return strconv_pcdata_impl::parse; + case 5: return strconv_pcdata_impl::parse; + case 6: return strconv_pcdata_impl::parse; + case 7: return strconv_pcdata_impl::parse; + default: assert(false); return 0; // should not get here + } + } + + typedef char_t* (*strconv_attribute_t)(char_t*, char_t); + + template struct strconv_attribute_impl + { + static char_t* parse_wnorm(char_t* s, char_t end_quote) + { + gap g; + + // trim leading whitespaces + if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + char_t* str = s; + + do ++str; + while (PUGI__IS_CHARTYPE(*str, ct_space)); + + g.push(s, str - s); + } + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr_ws | ct_space)); + + if (*s == end_quote) + { + char_t* str = g.flush(s); + + do *str-- = 0; + while (PUGI__IS_CHARTYPE(*str, ct_space)); + + return s + 1; + } + else if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + *s++ = ' '; + + if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + char_t* str = s + 1; + while (PUGI__IS_CHARTYPE(*str, ct_space)) ++str; + + g.push(s, str - s); + } + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_wconv(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr_ws)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + if (*s == '\r') + { + *s++ = ' '; + + if (*s == '\n') g.push(s, 1); + } + else *s++ = ' '; + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_eol(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (*s == '\r') + { + *s++ = '\n'; + + if (*s == '\n') g.push(s, 1); + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_simple(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + }; + + PUGI__FN strconv_attribute_t get_strconv_attribute(unsigned int optmask) + { + PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_wconv_attribute == 0x40 && parse_wnorm_attribute == 0x80); + + switch ((optmask >> 4) & 15) // get bitmask for flags (wconv wnorm eol escapes) + { + case 0: return strconv_attribute_impl::parse_simple; + case 1: return strconv_attribute_impl::parse_simple; + case 2: return strconv_attribute_impl::parse_eol; + case 3: return strconv_attribute_impl::parse_eol; + case 4: return strconv_attribute_impl::parse_wconv; + case 5: return strconv_attribute_impl::parse_wconv; + case 6: return strconv_attribute_impl::parse_wconv; + case 7: return strconv_attribute_impl::parse_wconv; + case 8: return strconv_attribute_impl::parse_wnorm; + case 9: return strconv_attribute_impl::parse_wnorm; + case 10: return strconv_attribute_impl::parse_wnorm; + case 11: return strconv_attribute_impl::parse_wnorm; + case 12: return strconv_attribute_impl::parse_wnorm; + case 13: return strconv_attribute_impl::parse_wnorm; + case 14: return strconv_attribute_impl::parse_wnorm; + case 15: return strconv_attribute_impl::parse_wnorm; + default: assert(false); return 0; // should not get here + } + } + + inline xml_parse_result make_parse_result(xml_parse_status status, ptrdiff_t offset = 0) + { + xml_parse_result result; + result.status = status; + result.offset = offset; + + return result; + } + + struct xml_parser + { + xml_allocator alloc; + xml_allocator* alloc_state; + char_t* error_offset; + xml_parse_status error_status; + + xml_parser(xml_allocator* alloc_): alloc(*alloc_), alloc_state(alloc_), error_offset(0), error_status(status_ok) + { + } + + ~xml_parser() + { + *alloc_state = alloc; + } + + // DOCTYPE consists of nested sections of the following possible types: + // , , "...", '...' + // + // + // First group can not contain nested groups + // Second group can contain nested groups of the same type + // Third group can contain all other groups + char_t* parse_doctype_primitive(char_t* s) + { + if (*s == '"' || *s == '\'') + { + // quoted string + char_t ch = *s++; + PUGI__SCANFOR(*s == ch); + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s++; + } + else if (s[0] == '<' && s[1] == '?') + { + // + s += 2; + PUGI__SCANFOR(s[0] == '?' && s[1] == '>'); // no need for ENDSWITH because ?> can't terminate proper doctype + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s += 2; + } + else if (s[0] == '<' && s[1] == '!' && s[2] == '-' && s[3] == '-') + { + s += 4; + PUGI__SCANFOR(s[0] == '-' && s[1] == '-' && s[2] == '>'); // no need for ENDSWITH because --> can't terminate proper doctype + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s += 3; + } + else PUGI__THROW_ERROR(status_bad_doctype, s); + + return s; + } + + char_t* parse_doctype_ignore(char_t* s) + { + size_t depth = 0; + + assert(s[0] == '<' && s[1] == '!' && s[2] == '['); + s += 3; + + while (*s) + { + if (s[0] == '<' && s[1] == '!' && s[2] == '[') + { + // nested ignore section + s += 3; + depth++; + } + else if (s[0] == ']' && s[1] == ']' && s[2] == '>') + { + // ignore section end + s += 3; + + if (depth == 0) + return s; + + depth--; + } + else s++; + } + + PUGI__THROW_ERROR(status_bad_doctype, s); + } + + char_t* parse_doctype_group(char_t* s, char_t endch) + { + size_t depth = 0; + + assert((s[0] == '<' || s[0] == 0) && s[1] == '!'); + s += 2; + + while (*s) + { + if (s[0] == '<' && s[1] == '!' && s[2] != '-') + { + if (s[2] == '[') + { + // ignore + s = parse_doctype_ignore(s); + if (!s) return s; + } + else + { + // some control group + s += 2; + depth++; + } + } + else if (s[0] == '<' || s[0] == '"' || s[0] == '\'') + { + // unknown tag (forbidden), or some primitive group + s = parse_doctype_primitive(s); + if (!s) return s; + } + else if (*s == '>') + { + if (depth == 0) + return s; + + depth--; + s++; + } + else s++; + } + + if (depth != 0 || endch != '>') PUGI__THROW_ERROR(status_bad_doctype, s); + + return s; + } + + char_t* parse_exclamation(char_t* s, xml_node_struct* cursor, unsigned int optmsk, char_t endch) + { + // parse node contents, starting with exclamation mark + ++s; + + if (*s == '-') // 'value = s; // Save the offset. + } + + if (PUGI__OPTSET(parse_eol) && PUGI__OPTSET(parse_comments)) + { + s = strconv_comment(s, endch); + + if (!s) PUGI__THROW_ERROR(status_bad_comment, cursor->value); + } + else + { + // Scan for terminating '-->'. + PUGI__SCANFOR(s[0] == '-' && s[1] == '-' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_comment, s); + + if (PUGI__OPTSET(parse_comments)) + *s = 0; // Zero-terminate this segment at the first terminating '-'. + + s += (s[2] == '>' ? 3 : 2); // Step over the '\0->'. + } + } + else PUGI__THROW_ERROR(status_bad_comment, s); + } + else if (*s == '[') + { + // 'value = s; // Save the offset. + + if (PUGI__OPTSET(parse_eol)) + { + s = strconv_cdata(s, endch); + + if (!s) PUGI__THROW_ERROR(status_bad_cdata, cursor->value); + } + else + { + // Scan for terminating ']]>'. + PUGI__SCANFOR(s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_cdata, s); + + *s++ = 0; // Zero-terminate this segment. + } + } + else // Flagged for discard, but we still have to scan for the terminator. + { + // Scan for terminating ']]>'. + PUGI__SCANFOR(s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_cdata, s); + + ++s; + } + + s += (s[1] == '>' ? 2 : 1); // Step over the last ']>'. + } + else PUGI__THROW_ERROR(status_bad_cdata, s); + } + else if (s[0] == 'D' && s[1] == 'O' && s[2] == 'C' && s[3] == 'T' && s[4] == 'Y' && s[5] == 'P' && PUGI__ENDSWITH(s[6], 'E')) + { + s -= 2; + + if (cursor->parent) PUGI__THROW_ERROR(status_bad_doctype, s); + + char_t* mark = s + 9; + + s = parse_doctype_group(s, endch); + if (!s) return s; + + assert((*s == 0 && endch == '>') || *s == '>'); + if (*s) *s++ = 0; + + if (PUGI__OPTSET(parse_doctype)) + { + while (PUGI__IS_CHARTYPE(*mark, ct_space)) ++mark; + + PUGI__PUSHNODE(node_doctype); + + cursor->value = mark; + } + } + else if (*s == 0 && endch == '-') PUGI__THROW_ERROR(status_bad_comment, s); + else if (*s == 0 && endch == '[') PUGI__THROW_ERROR(status_bad_cdata, s); + else PUGI__THROW_ERROR(status_unrecognized_tag, s); + + return s; + } + + char_t* parse_question(char_t* s, xml_node_struct*& ref_cursor, unsigned int optmsk, char_t endch) + { + // load into registers + xml_node_struct* cursor = ref_cursor; + char_t ch = 0; + + // parse node contents, starting with question mark + ++s; + + // read PI target + char_t* target = s; + + if (!PUGI__IS_CHARTYPE(*s, ct_start_symbol)) PUGI__THROW_ERROR(status_bad_pi, s); + + PUGI__SCANWHILE(PUGI__IS_CHARTYPE(*s, ct_symbol)); + PUGI__CHECK_ERROR(status_bad_pi, s); + + // determine node type; stricmp / strcasecmp is not portable + bool declaration = (target[0] | ' ') == 'x' && (target[1] | ' ') == 'm' && (target[2] | ' ') == 'l' && target + 3 == s; + + if (declaration ? PUGI__OPTSET(parse_declaration) : PUGI__OPTSET(parse_pi)) + { + if (declaration) + { + // disallow non top-level declarations + if (cursor->parent) PUGI__THROW_ERROR(status_bad_pi, s); + + PUGI__PUSHNODE(node_declaration); + } + else + { + PUGI__PUSHNODE(node_pi); + } + + cursor->name = target; + + PUGI__ENDSEG(); + + // parse value/attributes + if (ch == '?') + { + // empty node + if (!PUGI__ENDSWITH(*s, '>')) PUGI__THROW_ERROR(status_bad_pi, s); + s += (*s == '>'); + + PUGI__POPNODE(); + } + else if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + PUGI__SKIPWS(); + + // scan for tag end + char_t* value = s; + + PUGI__SCANFOR(s[0] == '?' && PUGI__ENDSWITH(s[1], '>')); + PUGI__CHECK_ERROR(status_bad_pi, s); + + if (declaration) + { + // replace ending ? with / so that 'element' terminates properly + *s = '/'; + + // we exit from this function with cursor at node_declaration, which is a signal to parse() to go to LOC_ATTRIBUTES + s = value; + } + else + { + // store value and step over > + cursor->value = value; + + PUGI__POPNODE(); + + PUGI__ENDSEG(); + + s += (*s == '>'); + } + } + else PUGI__THROW_ERROR(status_bad_pi, s); + } + else + { + // scan for tag end + PUGI__SCANFOR(s[0] == '?' && PUGI__ENDSWITH(s[1], '>')); + PUGI__CHECK_ERROR(status_bad_pi, s); + + s += (s[1] == '>' ? 2 : 1); + } + + // store from registers + ref_cursor = cursor; + + return s; + } + + char_t* parse_tree(char_t* s, xml_node_struct* root, unsigned int optmsk, char_t endch) + { + strconv_attribute_t strconv_attribute = get_strconv_attribute(optmsk); + strconv_pcdata_t strconv_pcdata = get_strconv_pcdata(optmsk); + + char_t ch = 0; + xml_node_struct* cursor = root; + char_t* mark = s; + + while (*s != 0) + { + if (*s == '<') + { + ++s; + + LOC_TAG: + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) // '<#...' + { + PUGI__PUSHNODE(node_element); // Append a new node to the tree. + + cursor->name = s; + + PUGI__SCANWHILE_UNROLL(PUGI__IS_CHARTYPE(ss, ct_symbol)); // Scan for a terminator. + PUGI__ENDSEG(); // Save char in 'ch', terminate & step over. + + if (ch == '>') + { + // end of tag + } + else if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + LOC_ATTRIBUTES: + while (true) + { + PUGI__SKIPWS(); // Eat any whitespace. + + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) // <... #... + { + xml_attribute_struct* a = append_new_attribute(cursor, alloc); // Make space for this attribute. + if (!a) PUGI__THROW_ERROR(status_out_of_memory, s); + + a->name = s; // Save the offset. + + PUGI__SCANWHILE_UNROLL(PUGI__IS_CHARTYPE(ss, ct_symbol)); // Scan for a terminator. + PUGI__ENDSEG(); // Save char in 'ch', terminate & step over. + + if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + PUGI__SKIPWS(); // Eat any whitespace. + + ch = *s; + ++s; + } + + if (ch == '=') // '<... #=...' + { + PUGI__SKIPWS(); // Eat any whitespace. + + if (*s == '"' || *s == '\'') // '<... #="...' + { + ch = *s; // Save quote char to avoid breaking on "''" -or- '""'. + ++s; // Step over the quote. + a->value = s; // Save the offset. + + s = strconv_attribute(s, ch); + + if (!s) PUGI__THROW_ERROR(status_bad_attribute, a->value); + + // After this line the loop continues from the start; + // Whitespaces, / and > are ok, symbols and EOF are wrong, + // everything else will be detected + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) PUGI__THROW_ERROR(status_bad_attribute, s); + } + else PUGI__THROW_ERROR(status_bad_attribute, s); + } + else PUGI__THROW_ERROR(status_bad_attribute, s); + } + else if (*s == '/') + { + ++s; + + if (*s == '>') + { + PUGI__POPNODE(); + s++; + break; + } + else if (*s == 0 && endch == '>') + { + PUGI__POPNODE(); + break; + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + else if (*s == '>') + { + ++s; + + break; + } + else if (*s == 0 && endch == '>') + { + break; + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + + // !!! + } + else if (ch == '/') // '<#.../' + { + if (!PUGI__ENDSWITH(*s, '>')) PUGI__THROW_ERROR(status_bad_start_element, s); + + PUGI__POPNODE(); // Pop. + + s += (*s == '>'); + } + else if (ch == 0) + { + // we stepped over null terminator, backtrack & handle closing tag + --s; + + if (endch != '>') PUGI__THROW_ERROR(status_bad_start_element, s); + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + else if (*s == '/') + { + ++s; + + char_t* name = cursor->name; + if (!name) PUGI__THROW_ERROR(status_end_element_mismatch, s); + + while (PUGI__IS_CHARTYPE(*s, ct_symbol)) + { + if (*s++ != *name++) PUGI__THROW_ERROR(status_end_element_mismatch, s); + } + + if (*name) + { + if (*s == 0 && name[0] == endch && name[1] == 0) PUGI__THROW_ERROR(status_bad_end_element, s); + else PUGI__THROW_ERROR(status_end_element_mismatch, s); + } + + PUGI__POPNODE(); // Pop. + + PUGI__SKIPWS(); + + if (*s == 0) + { + if (endch != '>') PUGI__THROW_ERROR(status_bad_end_element, s); + } + else + { + if (*s != '>') PUGI__THROW_ERROR(status_bad_end_element, s); + ++s; + } + } + else if (*s == '?') // 'first_child) continue; + } + } + + if (!PUGI__OPTSET(parse_trim_pcdata)) + s = mark; + + if (cursor->parent || PUGI__OPTSET(parse_fragment)) + { + PUGI__PUSHNODE(node_pcdata); // Append a new node on the tree. + cursor->value = s; // Save the offset. + + s = strconv_pcdata(s); + + PUGI__POPNODE(); // Pop since this is a standalone. + + if (!*s) break; + } + else + { + PUGI__SCANFOR(*s == '<'); // '...<' + if (!*s) break; + + ++s; + } + + // We're after '<' + goto LOC_TAG; + } + } + + // check that last tag is closed + if (cursor != root) PUGI__THROW_ERROR(status_end_element_mismatch, s); + + return s; + } + + #ifdef PUGIXML_WCHAR_MODE + static char_t* parse_skip_bom(char_t* s) + { + unsigned int bom = 0xfeff; + return (s[0] == static_cast(bom)) ? s + 1 : s; + } + #else + static char_t* parse_skip_bom(char_t* s) + { + return (s[0] == '\xef' && s[1] == '\xbb' && s[2] == '\xbf') ? s + 3 : s; + } + #endif + + static bool has_element_node_siblings(xml_node_struct* node) + { + while (node) + { + if (PUGI__NODETYPE(node) == node_element) return true; + + node = node->next_sibling; + } + + return false; + } + + static xml_parse_result parse(char_t* buffer, size_t length, xml_document_struct* xmldoc, xml_node_struct* root, unsigned int optmsk) + { + // early-out for empty documents + if (length == 0) + return make_parse_result(PUGI__OPTSET(parse_fragment) ? status_ok : status_no_document_element); + + // get last child of the root before parsing + xml_node_struct* last_root_child = root->first_child ? root->first_child->prev_sibling_c + 0 : 0; + + // create parser on stack + xml_parser parser(static_cast(xmldoc)); + + // save last character and make buffer zero-terminated (speeds up parsing) + char_t endch = buffer[length - 1]; + buffer[length - 1] = 0; + + // skip BOM to make sure it does not end up as part of parse output + char_t* buffer_data = parse_skip_bom(buffer); + + // perform actual parsing + parser.parse_tree(buffer_data, root, optmsk, endch); + + xml_parse_result result = make_parse_result(parser.error_status, parser.error_offset ? parser.error_offset - buffer : 0); + assert(result.offset >= 0 && static_cast(result.offset) <= length); + + if (result) + { + // since we removed last character, we have to handle the only possible false positive (stray <) + if (endch == '<') + return make_parse_result(status_unrecognized_tag, length - 1); + + // check if there are any element nodes parsed + xml_node_struct* first_root_child_parsed = last_root_child ? last_root_child->next_sibling + 0 : root->first_child+ 0; + + if (!PUGI__OPTSET(parse_fragment) && !has_element_node_siblings(first_root_child_parsed)) + return make_parse_result(status_no_document_element, length - 1); + } + else + { + // roll back offset if it occurs on a null terminator in the source buffer + if (result.offset > 0 && static_cast(result.offset) == length - 1 && endch == 0) + result.offset--; + } + + return result; + } + }; + + // Output facilities + PUGI__FN xml_encoding get_write_native_encoding() + { + #ifdef PUGIXML_WCHAR_MODE + return get_wchar_encoding(); + #else + return encoding_utf8; + #endif + } + + PUGI__FN xml_encoding get_write_encoding(xml_encoding encoding) + { + // replace wchar encoding with utf implementation + if (encoding == encoding_wchar) return get_wchar_encoding(); + + // replace utf16 encoding with utf16 with specific endianness + if (encoding == encoding_utf16) return is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + // replace utf32 encoding with utf32 with specific endianness + if (encoding == encoding_utf32) return is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + // only do autodetection if no explicit encoding is requested + if (encoding != encoding_auto) return encoding; + + // assume utf8 encoding + return encoding_utf8; + } + + template PUGI__FN size_t convert_buffer_output_generic(typename T::value_type dest, const char_t* data, size_t length, D, T) + { + PUGI__STATIC_ASSERT(sizeof(char_t) == sizeof(typename D::type)); + + typename T::value_type end = D::process(reinterpret_cast(data), length, dest, T()); + + return static_cast(end - dest) * sizeof(*dest); + } + + template PUGI__FN size_t convert_buffer_output_generic(typename T::value_type dest, const char_t* data, size_t length, D, T, bool opt_swap) + { + PUGI__STATIC_ASSERT(sizeof(char_t) == sizeof(typename D::type)); + + typename T::value_type end = D::process(reinterpret_cast(data), length, dest, T()); + + if (opt_swap) + { + for (typename T::value_type i = dest; i != end; ++i) + *i = endian_swap(*i); + } + + return static_cast(end - dest) * sizeof(*dest); + } + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN size_t get_valid_length(const char_t* data, size_t length) + { + if (length < 1) return 0; + + // discard last character if it's the lead of a surrogate pair + return (sizeof(wchar_t) == 2 && static_cast(static_cast(data[length - 1]) - 0xD800) < 0x400) ? length - 1 : length; + } + + PUGI__FN size_t convert_buffer_output(char_t* r_char, uint8_t* r_u8, uint16_t* r_u16, uint32_t* r_u32, const char_t* data, size_t length, xml_encoding encoding) + { + // only endian-swapping is required + if (need_endian_swap_utf(encoding, get_wchar_encoding())) + { + convert_wchar_endian_swap(r_char, data, length); + + return length * sizeof(char_t); + } + + // convert to utf8 + if (encoding == encoding_utf8) + return convert_buffer_output_generic(r_u8, data, length, wchar_decoder(), utf8_writer()); + + // convert to utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return convert_buffer_output_generic(r_u16, data, length, wchar_decoder(), utf16_writer(), native_encoding != encoding); + } + + // convert to utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return convert_buffer_output_generic(r_u32, data, length, wchar_decoder(), utf32_writer(), native_encoding != encoding); + } + + // convert to latin1 + if (encoding == encoding_latin1) + return convert_buffer_output_generic(r_u8, data, length, wchar_decoder(), latin1_writer()); + + assert(!"Invalid encoding"); + return 0; + } +#else + PUGI__FN size_t get_valid_length(const char_t* data, size_t length) + { + if (length < 5) return 0; + + for (size_t i = 1; i <= 4; ++i) + { + uint8_t ch = static_cast(data[length - i]); + + // either a standalone character or a leading one + if ((ch & 0xc0) != 0x80) return length - i; + } + + // there are four non-leading characters at the end, sequence tail is broken so might as well process the whole chunk + return length; + } + + PUGI__FN size_t convert_buffer_output(char_t* /* r_char */, uint8_t* r_u8, uint16_t* r_u16, uint32_t* r_u32, const char_t* data, size_t length, xml_encoding encoding) + { + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return convert_buffer_output_generic(r_u16, data, length, utf8_decoder(), utf16_writer(), native_encoding != encoding); + } + + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return convert_buffer_output_generic(r_u32, data, length, utf8_decoder(), utf32_writer(), native_encoding != encoding); + } + + if (encoding == encoding_latin1) + return convert_buffer_output_generic(r_u8, data, length, utf8_decoder(), latin1_writer()); + + assert(!"Invalid encoding"); + return 0; + } +#endif + + class xml_buffered_writer + { + xml_buffered_writer(const xml_buffered_writer&); + xml_buffered_writer& operator=(const xml_buffered_writer&); + + public: + xml_buffered_writer(xml_writer& writer_, xml_encoding user_encoding): writer(writer_), bufsize(0), encoding(get_write_encoding(user_encoding)) + { + PUGI__STATIC_ASSERT(bufcapacity >= 8); + } + + size_t flush() + { + flush(buffer, bufsize); + bufsize = 0; + return 0; + } + + void flush(const char_t* data, size_t size) + { + if (size == 0) return; + + // fast path, just write data + if (encoding == get_write_native_encoding()) + writer.write(data, size * sizeof(char_t)); + else + { + // convert chunk + size_t result = convert_buffer_output(scratch.data_char, scratch.data_u8, scratch.data_u16, scratch.data_u32, data, size, encoding); + assert(result <= sizeof(scratch)); + + // write data + writer.write(scratch.data_u8, result); + } + } + + void write_direct(const char_t* data, size_t length) + { + // flush the remaining buffer contents + flush(); + + // handle large chunks + if (length > bufcapacity) + { + if (encoding == get_write_native_encoding()) + { + // fast path, can just write data chunk + writer.write(data, length * sizeof(char_t)); + return; + } + + // need to convert in suitable chunks + while (length > bufcapacity) + { + // get chunk size by selecting such number of characters that are guaranteed to fit into scratch buffer + // and form a complete codepoint sequence (i.e. discard start of last codepoint if necessary) + size_t chunk_size = get_valid_length(data, bufcapacity); + assert(chunk_size); + + // convert chunk and write + flush(data, chunk_size); + + // iterate + data += chunk_size; + length -= chunk_size; + } + + // small tail is copied below + bufsize = 0; + } + + memcpy(buffer + bufsize, data, length * sizeof(char_t)); + bufsize += length; + } + + void write_buffer(const char_t* data, size_t length) + { + size_t offset = bufsize; + + if (offset + length <= bufcapacity) + { + memcpy(buffer + offset, data, length * sizeof(char_t)); + bufsize = offset + length; + } + else + { + write_direct(data, length); + } + } + + void write_string(const char_t* data) + { + // write the part of the string that fits in the buffer + size_t offset = bufsize; + + while (*data && offset < bufcapacity) + buffer[offset++] = *data++; + + // write the rest + if (offset < bufcapacity) + { + bufsize = offset; + } + else + { + // backtrack a bit if we have split the codepoint + size_t length = offset - bufsize; + size_t extra = length - get_valid_length(data - length, length); + + bufsize = offset - extra; + + write_direct(data - extra, strlength(data) + extra); + } + } + + void write(char_t d0) + { + size_t offset = bufsize; + if (offset > bufcapacity - 1) offset = flush(); + + buffer[offset + 0] = d0; + bufsize = offset + 1; + } + + void write(char_t d0, char_t d1) + { + size_t offset = bufsize; + if (offset > bufcapacity - 2) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + bufsize = offset + 2; + } + + void write(char_t d0, char_t d1, char_t d2) + { + size_t offset = bufsize; + if (offset > bufcapacity - 3) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + bufsize = offset + 3; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3) + { + size_t offset = bufsize; + if (offset > bufcapacity - 4) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + bufsize = offset + 4; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4) + { + size_t offset = bufsize; + if (offset > bufcapacity - 5) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + buffer[offset + 4] = d4; + bufsize = offset + 5; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4, char_t d5) + { + size_t offset = bufsize; + if (offset > bufcapacity - 6) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + buffer[offset + 4] = d4; + buffer[offset + 5] = d5; + bufsize = offset + 6; + } + + // utf8 maximum expansion: x4 (-> utf32) + // utf16 maximum expansion: x2 (-> utf32) + // utf32 maximum expansion: x1 + enum + { + bufcapacitybytes = + #ifdef PUGIXML_MEMORY_OUTPUT_STACK + PUGIXML_MEMORY_OUTPUT_STACK + #else + 10240 + #endif + , + bufcapacity = bufcapacitybytes / (sizeof(char_t) + 4) + }; + + char_t buffer[bufcapacity]; + + union + { + uint8_t data_u8[4 * bufcapacity]; + uint16_t data_u16[2 * bufcapacity]; + uint32_t data_u32[bufcapacity]; + char_t data_char[bufcapacity]; + } scratch; + + xml_writer& writer; + size_t bufsize; + xml_encoding encoding; + }; + + PUGI__FN void text_output_escaped(xml_buffered_writer& writer, const char_t* s, chartypex_t type) + { + while (*s) + { + const char_t* prev = s; + + // While *s is a usual symbol + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPEX(ss, type)); + + writer.write_buffer(prev, static_cast(s - prev)); + + switch (*s) + { + case 0: break; + case '&': + writer.write('&', 'a', 'm', 'p', ';'); + ++s; + break; + case '<': + writer.write('&', 'l', 't', ';'); + ++s; + break; + case '>': + writer.write('&', 'g', 't', ';'); + ++s; + break; + case '"': + writer.write('&', 'q', 'u', 'o', 't', ';'); + ++s; + break; + default: // s is not a usual symbol + { + unsigned int ch = static_cast(*s++); + assert(ch < 32); + + writer.write('&', '#', static_cast((ch / 10) + '0'), static_cast((ch % 10) + '0'), ';'); + } + } + } + } + + PUGI__FN void text_output(xml_buffered_writer& writer, const char_t* s, chartypex_t type, unsigned int flags) + { + if (flags & format_no_escapes) + writer.write_string(s); + else + text_output_escaped(writer, s, type); + } + + PUGI__FN void text_output_cdata(xml_buffered_writer& writer, const char_t* s) + { + do + { + writer.write('<', '!', '[', 'C', 'D'); + writer.write('A', 'T', 'A', '['); + + const char_t* prev = s; + + // look for ]]> sequence - we can't output it as is since it terminates CDATA + while (*s && !(s[0] == ']' && s[1] == ']' && s[2] == '>')) ++s; + + // skip ]] if we stopped at ]]>, > will go to the next CDATA section + if (*s) s += 2; + + writer.write_buffer(prev, static_cast(s - prev)); + + writer.write(']', ']', '>'); + } + while (*s); + } + + PUGI__FN void text_output_indent(xml_buffered_writer& writer, const char_t* indent, size_t indent_length, unsigned int depth) + { + switch (indent_length) + { + case 1: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0]); + break; + } + + case 2: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1]); + break; + } + + case 3: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1], indent[2]); + break; + } + + case 4: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1], indent[2], indent[3]); + break; + } + + default: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write_buffer(indent, indent_length); + } + } + } + + PUGI__FN void node_output_comment(xml_buffered_writer& writer, const char_t* s) + { + writer.write('<', '!', '-', '-'); + + while (*s) + { + const char_t* prev = s; + + // look for -\0 or -- sequence - we can't output it since -- is illegal in comment body + while (*s && !(s[0] == '-' && (s[1] == '-' || s[1] == 0))) ++s; + + writer.write_buffer(prev, static_cast(s - prev)); + + if (*s) + { + assert(*s == '-'); + + writer.write('-', ' '); + ++s; + } + } + + writer.write('-', '-', '>'); + } + + PUGI__FN void node_output_pi_value(xml_buffered_writer& writer, const char_t* s) + { + while (*s) + { + const char_t* prev = s; + + // look for ?> sequence - we can't output it since ?> terminates PI + while (*s && !(s[0] == '?' && s[1] == '>')) ++s; + + writer.write_buffer(prev, static_cast(s - prev)); + + if (*s) + { + assert(s[0] == '?' && s[1] == '>'); + + writer.write('?', ' ', '>'); + s += 2; + } + } + } + + PUGI__FN void node_output_attributes(xml_buffered_writer& writer, xml_node_struct* node, const char_t* indent, size_t indent_length, unsigned int flags, unsigned int depth) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + + for (xml_attribute_struct* a = node->first_attribute; a; a = a->next_attribute) + { + if ((flags & (format_indent_attributes | format_raw)) == format_indent_attributes) + { + writer.write('\n'); + + text_output_indent(writer, indent, indent_length, depth + 1); + } + else + { + writer.write(' '); + } + + writer.write_string(a->name ? a->name + 0 : default_name); + writer.write('=', '"'); + + if (a->value) + text_output(writer, a->value, ctx_special_attr, flags); + + writer.write('"'); + } + } + + PUGI__FN bool node_output_start(xml_buffered_writer& writer, xml_node_struct* node, const char_t* indent, size_t indent_length, unsigned int flags, unsigned int depth) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t* name = node->name ? node->name + 0 : default_name; + + writer.write('<'); + writer.write_string(name); + + if (node->first_attribute) + node_output_attributes(writer, node, indent, indent_length, flags, depth); + + if (!node->first_child) + { + writer.write(' ', '/', '>'); + + return false; + } + else + { + writer.write('>'); + + return true; + } + } + + PUGI__FN void node_output_end(xml_buffered_writer& writer, xml_node_struct* node) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t* name = node->name ? node->name + 0 : default_name; + + writer.write('<', '/'); + writer.write_string(name); + writer.write('>'); + } + + PUGI__FN void node_output_simple(xml_buffered_writer& writer, xml_node_struct* node, unsigned int flags) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + + switch (PUGI__NODETYPE(node)) + { + case node_pcdata: + text_output(writer, node->value ? node->value + 0 : PUGIXML_TEXT(""), ctx_special_pcdata, flags); + break; + + case node_cdata: + text_output_cdata(writer, node->value ? node->value + 0 : PUGIXML_TEXT("")); + break; + + case node_comment: + node_output_comment(writer, node->value ? node->value + 0 : PUGIXML_TEXT("")); + break; + + case node_pi: + writer.write('<', '?'); + writer.write_string(node->name ? node->name + 0 : default_name); + + if (node->value) + { + writer.write(' '); + node_output_pi_value(writer, node->value); + } + + writer.write('?', '>'); + break; + + case node_declaration: + writer.write('<', '?'); + writer.write_string(node->name ? node->name + 0 : default_name); + node_output_attributes(writer, node, PUGIXML_TEXT(""), 0, flags | format_raw, 0); + writer.write('?', '>'); + break; + + case node_doctype: + writer.write('<', '!', 'D', 'O', 'C'); + writer.write('T', 'Y', 'P', 'E'); + + if (node->value) + { + writer.write(' '); + writer.write_string(node->value); + } + + writer.write('>'); + break; + + default: + assert(!"Invalid node type"); + } + } + + enum indent_flags_t + { + indent_newline = 1, + indent_indent = 2 + }; + + PUGI__FN void node_output(xml_buffered_writer& writer, xml_node_struct* root, const char_t* indent, unsigned int flags, unsigned int depth) + { + size_t indent_length = ((flags & (format_indent | format_indent_attributes)) && (flags & format_raw) == 0) ? strlength(indent) : 0; + unsigned int indent_flags = indent_indent; + + xml_node_struct* node = root; + + do + { + assert(node); + + // begin writing current node + if (PUGI__NODETYPE(node) == node_pcdata || PUGI__NODETYPE(node) == node_cdata) + { + node_output_simple(writer, node, flags); + + indent_flags = 0; + } + else + { + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + + if ((indent_flags & indent_indent) && indent_length) + text_output_indent(writer, indent, indent_length, depth); + + if (PUGI__NODETYPE(node) == node_element) + { + indent_flags = indent_newline | indent_indent; + + if (node_output_start(writer, node, indent, indent_length, flags, depth)) + { + node = node->first_child; + depth++; + continue; + } + } + else if (PUGI__NODETYPE(node) == node_document) + { + indent_flags = indent_indent; + + if (node->first_child) + { + node = node->first_child; + continue; + } + } + else + { + node_output_simple(writer, node, flags); + + indent_flags = indent_newline | indent_indent; + } + } + + // continue to the next node + while (node != root) + { + if (node->next_sibling) + { + node = node->next_sibling; + break; + } + + node = node->parent; + + // write closing node + if (PUGI__NODETYPE(node) == node_element) + { + depth--; + + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + + if ((indent_flags & indent_indent) && indent_length) + text_output_indent(writer, indent, indent_length, depth); + + node_output_end(writer, node); + + indent_flags = indent_newline | indent_indent; + } + } + } + while (node != root); + + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + } + + PUGI__FN bool has_declaration(xml_node_struct* node) + { + for (xml_node_struct* child = node->first_child; child; child = child->next_sibling) + { + xml_node_type type = PUGI__NODETYPE(child); + + if (type == node_declaration) return true; + if (type == node_element) return false; + } + + return false; + } + + PUGI__FN bool is_attribute_of(xml_attribute_struct* attr, xml_node_struct* node) + { + for (xml_attribute_struct* a = node->first_attribute; a; a = a->next_attribute) + if (a == attr) + return true; + + return false; + } + + PUGI__FN bool allow_insert_attribute(xml_node_type parent) + { + return parent == node_element || parent == node_declaration; + } + + PUGI__FN bool allow_insert_child(xml_node_type parent, xml_node_type child) + { + if (parent != node_document && parent != node_element) return false; + if (child == node_document || child == node_null) return false; + if (parent != node_document && (child == node_declaration || child == node_doctype)) return false; + + return true; + } + + PUGI__FN bool allow_move(xml_node parent, xml_node child) + { + // check that child can be a child of parent + if (!allow_insert_child(parent.type(), child.type())) + return false; + + // check that node is not moved between documents + if (parent.root() != child.root()) + return false; + + // check that new parent is not in the child subtree + xml_node cur = parent; + + while (cur) + { + if (cur == child) + return false; + + cur = cur.parent(); + } + + return true; + } + + template + PUGI__FN void node_copy_string(String& dest, Header& header, uintptr_t header_mask, char_t* source, Header& source_header, xml_allocator* alloc) + { + assert(!dest && (header & header_mask) == 0); + + if (source) + { + if (alloc && (source_header & header_mask) == 0) + { + dest = source; + + // since strcpy_insitu can reuse document buffer memory we need to mark both source and dest as shared + header |= xml_memory_page_contents_shared_mask; + source_header |= xml_memory_page_contents_shared_mask; + } + else + strcpy_insitu(dest, header, header_mask, source, strlength(source)); + } + } + + PUGI__FN void node_copy_contents(xml_node_struct* dn, xml_node_struct* sn, xml_allocator* shared_alloc) + { + node_copy_string(dn->name, dn->header, xml_memory_page_name_allocated_mask, sn->name, sn->header, shared_alloc); + node_copy_string(dn->value, dn->header, xml_memory_page_value_allocated_mask, sn->value, sn->header, shared_alloc); + + for (xml_attribute_struct* sa = sn->first_attribute; sa; sa = sa->next_attribute) + { + xml_attribute_struct* da = append_new_attribute(dn, get_allocator(dn)); + + if (da) + { + node_copy_string(da->name, da->header, xml_memory_page_name_allocated_mask, sa->name, sa->header, shared_alloc); + node_copy_string(da->value, da->header, xml_memory_page_value_allocated_mask, sa->value, sa->header, shared_alloc); + } + } + } + + PUGI__FN void node_copy_tree(xml_node_struct* dn, xml_node_struct* sn) + { + xml_allocator& alloc = get_allocator(dn); + xml_allocator* shared_alloc = (&alloc == &get_allocator(sn)) ? &alloc : 0; + + node_copy_contents(dn, sn, shared_alloc); + + xml_node_struct* dit = dn; + xml_node_struct* sit = sn->first_child; + + while (sit && sit != sn) + { + if (sit != dn) + { + xml_node_struct* copy = append_new_node(dit, alloc, PUGI__NODETYPE(sit)); + + if (copy) + { + node_copy_contents(copy, sit, shared_alloc); + + if (sit->first_child) + { + dit = copy; + sit = sit->first_child; + continue; + } + } + } + + // continue to the next node + do + { + if (sit->next_sibling) + { + sit = sit->next_sibling; + break; + } + + sit = sit->parent; + dit = dit->parent; + } + while (sit != sn); + } + } + + PUGI__FN void node_copy_attribute(xml_attribute_struct* da, xml_attribute_struct* sa) + { + xml_allocator& alloc = get_allocator(da); + xml_allocator* shared_alloc = (&alloc == &get_allocator(sa)) ? &alloc : 0; + + node_copy_string(da->name, da->header, xml_memory_page_name_allocated_mask, sa->name, sa->header, shared_alloc); + node_copy_string(da->value, da->header, xml_memory_page_value_allocated_mask, sa->value, sa->header, shared_alloc); + } + + inline bool is_text_node(xml_node_struct* node) + { + xml_node_type type = PUGI__NODETYPE(node); + + return type == node_pcdata || type == node_cdata; + } + + // get value with conversion functions + template U string_to_integer(const char_t* value, U minneg, U maxpos) + { + U result = 0; + const char_t* s = value; + + while (PUGI__IS_CHARTYPE(*s, ct_space)) + s++; + + bool negative = (*s == '-'); + + s += (*s == '+' || *s == '-'); + + bool overflow = false; + + if (s[0] == '0' && (s[1] | ' ') == 'x') + { + s += 2; + + // since overflow detection relies on length of the sequence skip leading zeros + while (*s == '0') + s++; + + const char_t* start = s; + + for (;;) + { + if (static_cast(*s - '0') < 10) + result = result * 16 + (*s - '0'); + else if (static_cast((*s | ' ') - 'a') < 6) + result = result * 16 + ((*s | ' ') - 'a' + 10); + else + break; + + s++; + } + + size_t digits = static_cast(s - start); + + overflow = digits > sizeof(U) * 2; + } + else + { + // since overflow detection relies on length of the sequence skip leading zeros + while (*s == '0') + s++; + + const char_t* start = s; + + for (;;) + { + if (static_cast(*s - '0') < 10) + result = result * 10 + (*s - '0'); + else + break; + + s++; + } + + size_t digits = static_cast(s - start); + + PUGI__STATIC_ASSERT(sizeof(U) == 8 || sizeof(U) == 4 || sizeof(U) == 2); + + const size_t max_digits10 = sizeof(U) == 8 ? 20 : sizeof(U) == 4 ? 10 : 5; + const char_t max_lead = sizeof(U) == 8 ? '1' : sizeof(U) == 4 ? '4' : '6'; + const size_t high_bit = sizeof(U) * 8 - 1; + + overflow = digits >= max_digits10 && !(digits == max_digits10 && (*start < max_lead || (*start == max_lead && result >> high_bit))); + } + + if (negative) + return (overflow || result > minneg) ? 0 - minneg : 0 - result; + else + return (overflow || result > maxpos) ? maxpos : result; + } + + PUGI__FN int get_value_int(const char_t* value) + { + return string_to_integer(value, 0 - static_cast(INT_MIN), INT_MAX); + } + + PUGI__FN unsigned int get_value_uint(const char_t* value) + { + return string_to_integer(value, 0, UINT_MAX); + } + + PUGI__FN double get_value_double(const char_t* value) + { + #ifdef PUGIXML_WCHAR_MODE + return wcstod(value, 0); + #else + return strtod(value, 0); + #endif + } + + PUGI__FN float get_value_float(const char_t* value) + { + #ifdef PUGIXML_WCHAR_MODE + return static_cast(wcstod(value, 0)); + #else + return static_cast(strtod(value, 0)); + #endif + } + + PUGI__FN bool get_value_bool(const char_t* value) + { + // only look at first char + char_t first = *value; + + // 1*, t* (true), T* (True), y* (yes), Y* (YES) + return (first == '1' || first == 't' || first == 'T' || first == 'y' || first == 'Y'); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long get_value_llong(const char_t* value) + { + return string_to_integer(value, 0 - static_cast(LLONG_MIN), LLONG_MAX); + } + + PUGI__FN unsigned long long get_value_ullong(const char_t* value) + { + return string_to_integer(value, 0, ULLONG_MAX); + } +#endif + + template + PUGI__FN char_t* integer_to_string(char_t* begin, char_t* end, U value, bool negative) + { + char_t* result = end - 1; + U rest = negative ? 0 - value : value; + + do + { + *result-- = static_cast('0' + (rest % 10)); + rest /= 10; + } + while (rest); + + assert(result >= begin); + (void)begin; + + *result = '-'; + + return result + !negative; + } + + // set value with conversion functions + template + PUGI__FN bool set_value_ascii(String& dest, Header& header, uintptr_t header_mask, char* buf) + { + #ifdef PUGIXML_WCHAR_MODE + char_t wbuf[128]; + assert(strlen(buf) < sizeof(wbuf) / sizeof(wbuf[0])); + + size_t offset = 0; + for (; buf[offset]; ++offset) wbuf[offset] = buf[offset]; + + return strcpy_insitu(dest, header, header_mask, wbuf, offset); + #else + return strcpy_insitu(dest, header, header_mask, buf, strlen(buf)); + #endif + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, int value) + { + char_t buf[64]; + char_t* end = buf + sizeof(buf) / sizeof(buf[0]); + char_t* begin = integer_to_string(buf, end, value, value < 0); + + return strcpy_insitu(dest, header, header_mask, begin, end - begin); + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, unsigned int value) + { + char_t buf[64]; + char_t* end = buf + sizeof(buf) / sizeof(buf[0]); + char_t* begin = integer_to_string(buf, end, value, false); + + return strcpy_insitu(dest, header, header_mask, begin, end - begin); + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, float value) + { + char buf[128]; + sprintf(buf, "%.9g", value); + + return set_value_ascii(dest, header, header_mask, buf); + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, double value) + { + char buf[128]; + sprintf(buf, "%.17g", value); + + return set_value_ascii(dest, header, header_mask, buf); + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, bool value) + { + return strcpy_insitu(dest, header, header_mask, value ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false"), value ? 4 : 5); + } + +#ifdef PUGIXML_HAS_LONG_LONG + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, long long value) + { + char_t buf[64]; + char_t* end = buf + sizeof(buf) / sizeof(buf[0]); + char_t* begin = integer_to_string(buf, end, value, value < 0); + + return strcpy_insitu(dest, header, header_mask, begin, end - begin); + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, unsigned long long value) + { + char_t buf[64]; + char_t* end = buf + sizeof(buf) / sizeof(buf[0]); + char_t* begin = integer_to_string(buf, end, value, false); + + return strcpy_insitu(dest, header, header_mask, begin, end - begin); + } +#endif + + PUGI__FN xml_parse_result load_buffer_impl(xml_document_struct* doc, xml_node_struct* root, void* contents, size_t size, unsigned int options, xml_encoding encoding, bool is_mutable, bool own, char_t** out_buffer) + { + // check input buffer + if (!contents && size) return make_parse_result(status_io_error); + + // get actual encoding + xml_encoding buffer_encoding = impl::get_buffer_encoding(encoding, contents, size); + + // get private buffer + char_t* buffer = 0; + size_t length = 0; + + if (!impl::convert_buffer(buffer, length, buffer_encoding, contents, size, is_mutable)) return impl::make_parse_result(status_out_of_memory); + + // delete original buffer if we performed a conversion + if (own && buffer != contents && contents) impl::xml_memory::deallocate(contents); + + // grab onto buffer if it's our buffer, user is responsible for deallocating contents himself + if (own || buffer != contents) *out_buffer = buffer; + + // store buffer for offset_debug + doc->buffer = buffer; + + // parse + xml_parse_result res = impl::xml_parser::parse(buffer, length, doc, root, options); + + // remember encoding + res.encoding = buffer_encoding; + + return res; + } + + // we need to get length of entire file to load it in memory; the only (relatively) sane way to do it is via seek/tell trick + PUGI__FN xml_parse_status get_file_size(FILE* file, size_t& out_result) + { + #if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 && !defined(_WIN32_WCE) + // there are 64-bit versions of fseek/ftell, let's use them + typedef __int64 length_type; + + _fseeki64(file, 0, SEEK_END); + length_type length = _ftelli64(file); + _fseeki64(file, 0, SEEK_SET); + #elif defined(__MINGW32__) && !defined(__NO_MINGW_LFS) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR)) + // there are 64-bit versions of fseek/ftell, let's use them + typedef off64_t length_type; + + fseeko64(file, 0, SEEK_END); + length_type length = ftello64(file); + fseeko64(file, 0, SEEK_SET); + #else + // if this is a 32-bit OS, long is enough; if this is a unix system, long is 64-bit, which is enough; otherwise we can't do anything anyway. + typedef long length_type; + + fseek(file, 0, SEEK_END); + length_type length = ftell(file); + fseek(file, 0, SEEK_SET); + #endif + + // check for I/O errors + if (length < 0) return status_io_error; + + // check for overflow + size_t result = static_cast(length); + + if (static_cast(result) != length) return status_out_of_memory; + + // finalize + out_result = result; + + return status_ok; + } + + // This function assumes that buffer has extra sizeof(char_t) writable bytes after size + PUGI__FN size_t zero_terminate_buffer(void* buffer, size_t size, xml_encoding encoding) + { + // We only need to zero-terminate if encoding conversion does not do it for us + #ifdef PUGIXML_WCHAR_MODE + xml_encoding wchar_encoding = get_wchar_encoding(); + + if (encoding == wchar_encoding || need_endian_swap_utf(encoding, wchar_encoding)) + { + size_t length = size / sizeof(char_t); + + static_cast(buffer)[length] = 0; + return (length + 1) * sizeof(char_t); + } + #else + if (encoding == encoding_utf8) + { + static_cast(buffer)[size] = 0; + return size + 1; + } + #endif + + return size; + } + + PUGI__FN xml_parse_result load_file_impl(xml_document_struct* doc, FILE* file, unsigned int options, xml_encoding encoding, char_t** out_buffer) + { + if (!file) return make_parse_result(status_file_not_found); + + // get file size (can result in I/O errors) + size_t size = 0; + xml_parse_status size_status = get_file_size(file, size); + if (size_status != status_ok) return make_parse_result(size_status); + + size_t max_suffix_size = sizeof(char_t); + + // allocate buffer for the whole file + char* contents = static_cast(xml_memory::allocate(size + max_suffix_size)); + if (!contents) return make_parse_result(status_out_of_memory); + + // read file in memory + size_t read_size = fread(contents, 1, size, file); + + if (read_size != size) + { + xml_memory::deallocate(contents); + return make_parse_result(status_io_error); + } + + xml_encoding real_encoding = get_buffer_encoding(encoding, contents, size); + + return load_buffer_impl(doc, doc, contents, zero_terminate_buffer(contents, size, real_encoding), options, real_encoding, true, true, out_buffer); + } + +#ifndef PUGIXML_NO_STL + template struct xml_stream_chunk + { + static xml_stream_chunk* create() + { + void* memory = xml_memory::allocate(sizeof(xml_stream_chunk)); + if (!memory) return 0; + + return new (memory) xml_stream_chunk(); + } + + static void destroy(xml_stream_chunk* chunk) + { + // free chunk chain + while (chunk) + { + xml_stream_chunk* next_ = chunk->next; + + xml_memory::deallocate(chunk); + + chunk = next_; + } + } + + xml_stream_chunk(): next(0), size(0) + { + } + + xml_stream_chunk* next; + size_t size; + + T data[xml_memory_page_size / sizeof(T)]; + }; + + template PUGI__FN xml_parse_status load_stream_data_noseek(std::basic_istream& stream, void** out_buffer, size_t* out_size) + { + auto_deleter > chunks(0, xml_stream_chunk::destroy); + + // read file to a chunk list + size_t total = 0; + xml_stream_chunk* last = 0; + + while (!stream.eof()) + { + // allocate new chunk + xml_stream_chunk* chunk = xml_stream_chunk::create(); + if (!chunk) return status_out_of_memory; + + // append chunk to list + if (last) last = last->next = chunk; + else chunks.data = last = chunk; + + // read data to chunk + stream.read(chunk->data, static_cast(sizeof(chunk->data) / sizeof(T))); + chunk->size = static_cast(stream.gcount()) * sizeof(T); + + // read may set failbit | eofbit in case gcount() is less than read length, so check for other I/O errors + if (stream.bad() || (!stream.eof() && stream.fail())) return status_io_error; + + // guard against huge files (chunk size is small enough to make this overflow check work) + if (total + chunk->size < total) return status_out_of_memory; + total += chunk->size; + } + + size_t max_suffix_size = sizeof(char_t); + + // copy chunk list to a contiguous buffer + char* buffer = static_cast(xml_memory::allocate(total + max_suffix_size)); + if (!buffer) return status_out_of_memory; + + char* write = buffer; + + for (xml_stream_chunk* chunk = chunks.data; chunk; chunk = chunk->next) + { + assert(write + chunk->size <= buffer + total); + memcpy(write, chunk->data, chunk->size); + write += chunk->size; + } + + assert(write == buffer + total); + + // return buffer + *out_buffer = buffer; + *out_size = total; + + return status_ok; + } + + template PUGI__FN xml_parse_status load_stream_data_seek(std::basic_istream& stream, void** out_buffer, size_t* out_size) + { + // get length of remaining data in stream + typename std::basic_istream::pos_type pos = stream.tellg(); + stream.seekg(0, std::ios::end); + std::streamoff length = stream.tellg() - pos; + stream.seekg(pos); + + if (stream.fail() || pos < 0) return status_io_error; + + // guard against huge files + size_t read_length = static_cast(length); + + if (static_cast(read_length) != length || length < 0) return status_out_of_memory; + + size_t max_suffix_size = sizeof(char_t); + + // read stream data into memory (guard against stream exceptions with buffer holder) + auto_deleter buffer(xml_memory::allocate(read_length * sizeof(T) + max_suffix_size), xml_memory::deallocate); + if (!buffer.data) return status_out_of_memory; + + stream.read(static_cast(buffer.data), static_cast(read_length)); + + // read may set failbit | eofbit in case gcount() is less than read_length (i.e. line ending conversion), so check for other I/O errors + if (stream.bad() || (!stream.eof() && stream.fail())) return status_io_error; + + // return buffer + size_t actual_length = static_cast(stream.gcount()); + assert(actual_length <= read_length); + + *out_buffer = buffer.release(); + *out_size = actual_length * sizeof(T); + + return status_ok; + } + + template PUGI__FN xml_parse_result load_stream_impl(xml_document_struct* doc, std::basic_istream& stream, unsigned int options, xml_encoding encoding, char_t** out_buffer) + { + void* buffer = 0; + size_t size = 0; + xml_parse_status status = status_ok; + + // if stream has an error bit set, bail out (otherwise tellg() can fail and we'll clear error bits) + if (stream.fail()) return make_parse_result(status_io_error); + + // load stream to memory (using seek-based implementation if possible, since it's faster and takes less memory) + if (stream.tellg() < 0) + { + stream.clear(); // clear error flags that could be set by a failing tellg + status = load_stream_data_noseek(stream, &buffer, &size); + } + else + status = load_stream_data_seek(stream, &buffer, &size); + + if (status != status_ok) return make_parse_result(status); + + xml_encoding real_encoding = get_buffer_encoding(encoding, buffer, size); + + return load_buffer_impl(doc, doc, buffer, zero_terminate_buffer(buffer, size, real_encoding), options, real_encoding, true, true, out_buffer); + } +#endif + +#if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) || (defined(__MINGW32__) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR))) + PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode) + { + return _wfopen(path, mode); + } +#else + PUGI__FN char* convert_path_heap(const wchar_t* str) + { + assert(str); + + // first pass: get length in utf8 characters + size_t length = strlength_wide(str); + size_t size = as_utf8_begin(str, length); + + // allocate resulting string + char* result = static_cast(xml_memory::allocate(size + 1)); + if (!result) return 0; + + // second pass: convert to utf8 + as_utf8_end(result, size, str, length); + + // zero-terminate + result[size] = 0; + + return result; + } + + PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode) + { + // there is no standard function to open wide paths, so our best bet is to try utf8 path + char* path_utf8 = convert_path_heap(path); + if (!path_utf8) return 0; + + // convert mode to ASCII (we mirror _wfopen interface) + char mode_ascii[4] = {0}; + for (size_t i = 0; mode[i]; ++i) mode_ascii[i] = static_cast(mode[i]); + + // try to open the utf8 path + FILE* result = fopen(path_utf8, mode_ascii); + + // free dummy buffer + xml_memory::deallocate(path_utf8); + + return result; + } +#endif + + PUGI__FN bool save_file_impl(const xml_document& doc, FILE* file, const char_t* indent, unsigned int flags, xml_encoding encoding) + { + if (!file) return false; + + xml_writer_file writer(file); + doc.save(writer, indent, flags, encoding); + + return ferror(file) == 0; + } + + struct name_null_sentry + { + xml_node_struct* node; + char_t* name; + + name_null_sentry(xml_node_struct* node_): node(node_), name(node_->name) + { + node->name = 0; + } + + ~name_null_sentry() + { + node->name = name; + } + }; +PUGI__NS_END + +namespace pugi +{ + PUGI__FN xml_writer_file::xml_writer_file(void* file_): file(file_) + { + } + + PUGI__FN void xml_writer_file::write(const void* data, size_t size) + { + size_t result = fwrite(data, 1, size, static_cast(file)); + (void)!result; // unfortunately we can't do proper error handling here + } + +#ifndef PUGIXML_NO_STL + PUGI__FN xml_writer_stream::xml_writer_stream(std::basic_ostream >& stream): narrow_stream(&stream), wide_stream(0) + { + } + + PUGI__FN xml_writer_stream::xml_writer_stream(std::basic_ostream >& stream): narrow_stream(0), wide_stream(&stream) + { + } + + PUGI__FN void xml_writer_stream::write(const void* data, size_t size) + { + if (narrow_stream) + { + assert(!wide_stream); + narrow_stream->write(reinterpret_cast(data), static_cast(size)); + } + else + { + assert(wide_stream); + assert(size % sizeof(wchar_t) == 0); + + wide_stream->write(reinterpret_cast(data), static_cast(size / sizeof(wchar_t))); + } + } +#endif + + PUGI__FN xml_tree_walker::xml_tree_walker(): _depth(0) + { + } + + PUGI__FN xml_tree_walker::~xml_tree_walker() + { + } + + PUGI__FN int xml_tree_walker::depth() const + { + return _depth; + } + + PUGI__FN bool xml_tree_walker::begin(xml_node&) + { + return true; + } + + PUGI__FN bool xml_tree_walker::end(xml_node&) + { + return true; + } + + PUGI__FN xml_attribute::xml_attribute(): _attr(0) + { + } + + PUGI__FN xml_attribute::xml_attribute(xml_attribute_struct* attr): _attr(attr) + { + } + + PUGI__FN static void unspecified_bool_xml_attribute(xml_attribute***) + { + } + + PUGI__FN xml_attribute::operator xml_attribute::unspecified_bool_type() const + { + return _attr ? unspecified_bool_xml_attribute : 0; + } + + PUGI__FN bool xml_attribute::operator!() const + { + return !_attr; + } + + PUGI__FN bool xml_attribute::operator==(const xml_attribute& r) const + { + return (_attr == r._attr); + } + + PUGI__FN bool xml_attribute::operator!=(const xml_attribute& r) const + { + return (_attr != r._attr); + } + + PUGI__FN bool xml_attribute::operator<(const xml_attribute& r) const + { + return (_attr < r._attr); + } + + PUGI__FN bool xml_attribute::operator>(const xml_attribute& r) const + { + return (_attr > r._attr); + } + + PUGI__FN bool xml_attribute::operator<=(const xml_attribute& r) const + { + return (_attr <= r._attr); + } + + PUGI__FN bool xml_attribute::operator>=(const xml_attribute& r) const + { + return (_attr >= r._attr); + } + + PUGI__FN xml_attribute xml_attribute::next_attribute() const + { + return _attr ? xml_attribute(_attr->next_attribute) : xml_attribute(); + } + + PUGI__FN xml_attribute xml_attribute::previous_attribute() const + { + return _attr && _attr->prev_attribute_c->next_attribute ? xml_attribute(_attr->prev_attribute_c) : xml_attribute(); + } + + PUGI__FN const char_t* xml_attribute::as_string(const char_t* def) const + { + return (_attr && _attr->value) ? _attr->value + 0 : def; + } + + PUGI__FN int xml_attribute::as_int(int def) const + { + return (_attr && _attr->value) ? impl::get_value_int(_attr->value) : def; + } + + PUGI__FN unsigned int xml_attribute::as_uint(unsigned int def) const + { + return (_attr && _attr->value) ? impl::get_value_uint(_attr->value) : def; + } + + PUGI__FN double xml_attribute::as_double(double def) const + { + return (_attr && _attr->value) ? impl::get_value_double(_attr->value) : def; + } + + PUGI__FN float xml_attribute::as_float(float def) const + { + return (_attr && _attr->value) ? impl::get_value_float(_attr->value) : def; + } + + PUGI__FN bool xml_attribute::as_bool(bool def) const + { + return (_attr && _attr->value) ? impl::get_value_bool(_attr->value) : def; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long xml_attribute::as_llong(long long def) const + { + return (_attr && _attr->value) ? impl::get_value_llong(_attr->value) : def; + } + + PUGI__FN unsigned long long xml_attribute::as_ullong(unsigned long long def) const + { + return (_attr && _attr->value) ? impl::get_value_ullong(_attr->value) : def; + } +#endif + + PUGI__FN bool xml_attribute::empty() const + { + return !_attr; + } + + PUGI__FN const char_t* xml_attribute::name() const + { + return (_attr && _attr->name) ? _attr->name + 0 : PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_attribute::value() const + { + return (_attr && _attr->value) ? _attr->value + 0 : PUGIXML_TEXT(""); + } + + PUGI__FN size_t xml_attribute::hash_value() const + { + return static_cast(reinterpret_cast(_attr) / sizeof(xml_attribute_struct)); + } + + PUGI__FN xml_attribute_struct* xml_attribute::internal_object() const + { + return _attr; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(const char_t* rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(int rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(unsigned int rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(double rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(float rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(bool rhs) + { + set_value(rhs); + return *this; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN xml_attribute& xml_attribute::operator=(long long rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(unsigned long long rhs) + { + set_value(rhs); + return *this; + } +#endif + + PUGI__FN bool xml_attribute::set_name(const char_t* rhs) + { + if (!_attr) return false; + + return impl::strcpy_insitu(_attr->name, _attr->header, impl::xml_memory_page_name_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN bool xml_attribute::set_value(const char_t* rhs) + { + if (!_attr) return false; + + return impl::strcpy_insitu(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN bool xml_attribute::set_value(int rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(unsigned int rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(double rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(float rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(bool rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN bool xml_attribute::set_value(long long rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + + PUGI__FN bool xml_attribute::set_value(unsigned long long rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } +#endif + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_attribute& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_attribute& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_node::xml_node(): _root(0) + { + } + + PUGI__FN xml_node::xml_node(xml_node_struct* p): _root(p) + { + } + + PUGI__FN static void unspecified_bool_xml_node(xml_node***) + { + } + + PUGI__FN xml_node::operator xml_node::unspecified_bool_type() const + { + return _root ? unspecified_bool_xml_node : 0; + } + + PUGI__FN bool xml_node::operator!() const + { + return !_root; + } + + PUGI__FN xml_node::iterator xml_node::begin() const + { + return iterator(_root ? _root->first_child + 0 : 0, _root); + } + + PUGI__FN xml_node::iterator xml_node::end() const + { + return iterator(0, _root); + } + + PUGI__FN xml_node::attribute_iterator xml_node::attributes_begin() const + { + return attribute_iterator(_root ? _root->first_attribute + 0 : 0, _root); + } + + PUGI__FN xml_node::attribute_iterator xml_node::attributes_end() const + { + return attribute_iterator(0, _root); + } + + PUGI__FN xml_object_range xml_node::children() const + { + return xml_object_range(begin(), end()); + } + + PUGI__FN xml_object_range xml_node::children(const char_t* name_) const + { + return xml_object_range(xml_named_node_iterator(child(name_)._root, _root, name_), xml_named_node_iterator(0, _root, name_)); + } + + PUGI__FN xml_object_range xml_node::attributes() const + { + return xml_object_range(attributes_begin(), attributes_end()); + } + + PUGI__FN bool xml_node::operator==(const xml_node& r) const + { + return (_root == r._root); + } + + PUGI__FN bool xml_node::operator!=(const xml_node& r) const + { + return (_root != r._root); + } + + PUGI__FN bool xml_node::operator<(const xml_node& r) const + { + return (_root < r._root); + } + + PUGI__FN bool xml_node::operator>(const xml_node& r) const + { + return (_root > r._root); + } + + PUGI__FN bool xml_node::operator<=(const xml_node& r) const + { + return (_root <= r._root); + } + + PUGI__FN bool xml_node::operator>=(const xml_node& r) const + { + return (_root >= r._root); + } + + PUGI__FN bool xml_node::empty() const + { + return !_root; + } + + PUGI__FN const char_t* xml_node::name() const + { + return (_root && _root->name) ? _root->name + 0 : PUGIXML_TEXT(""); + } + + PUGI__FN xml_node_type xml_node::type() const + { + return _root ? PUGI__NODETYPE(_root) : node_null; + } + + PUGI__FN const char_t* xml_node::value() const + { + return (_root && _root->value) ? _root->value + 0 : PUGIXML_TEXT(""); + } + + PUGI__FN xml_node xml_node::child(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (i->name && impl::strequal(name_, i->name)) return xml_node(i); + + return xml_node(); + } + + PUGI__FN xml_attribute xml_node::attribute(const char_t* name_) const + { + if (!_root) return xml_attribute(); + + for (xml_attribute_struct* i = _root->first_attribute; i; i = i->next_attribute) + if (i->name && impl::strequal(name_, i->name)) + return xml_attribute(i); + + return xml_attribute(); + } + + PUGI__FN xml_node xml_node::next_sibling(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->next_sibling; i; i = i->next_sibling) + if (i->name && impl::strequal(name_, i->name)) return xml_node(i); + + return xml_node(); + } + + PUGI__FN xml_node xml_node::next_sibling() const + { + return _root ? xml_node(_root->next_sibling) : xml_node(); + } + + PUGI__FN xml_node xml_node::previous_sibling(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->prev_sibling_c; i->next_sibling; i = i->prev_sibling_c) + if (i->name && impl::strequal(name_, i->name)) return xml_node(i); + + return xml_node(); + } + + PUGI__FN xml_attribute xml_node::attribute(const char_t* name_, xml_attribute& hint_) const + { + xml_attribute_struct* hint = hint_._attr; + + // if hint is not an attribute of node, behavior is not defined + assert(!hint || (_root && impl::is_attribute_of(hint, _root))); + + if (!_root) return xml_attribute(); + + // optimistically search from hint up until the end + for (xml_attribute_struct* i = hint; i; i = i->next_attribute) + if (i->name && impl::strequal(name_, i->name)) + { + // update hint to maximize efficiency of searching for consecutive attributes + hint_._attr = i->next_attribute; + + return xml_attribute(i); + } + + // wrap around and search from the first attribute until the hint + // 'j' null pointer check is technically redundant, but it prevents a crash in case the assertion above fails + for (xml_attribute_struct* j = _root->first_attribute; j && j != hint; j = j->next_attribute) + if (j->name && impl::strequal(name_, j->name)) + { + // update hint to maximize efficiency of searching for consecutive attributes + hint_._attr = j->next_attribute; + + return xml_attribute(j); + } + + return xml_attribute(); + } + + PUGI__FN xml_node xml_node::previous_sibling() const + { + if (!_root) return xml_node(); + + if (_root->prev_sibling_c->next_sibling) return xml_node(_root->prev_sibling_c); + else return xml_node(); + } + + PUGI__FN xml_node xml_node::parent() const + { + return _root ? xml_node(_root->parent) : xml_node(); + } + + PUGI__FN xml_node xml_node::root() const + { + return _root ? xml_node(&impl::get_document(_root)) : xml_node(); + } + + PUGI__FN xml_text xml_node::text() const + { + return xml_text(_root); + } + + PUGI__FN const char_t* xml_node::child_value() const + { + if (!_root) return PUGIXML_TEXT(""); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (impl::is_text_node(i) && i->value) + return i->value; + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_node::child_value(const char_t* name_) const + { + return child(name_).child_value(); + } + + PUGI__FN xml_attribute xml_node::first_attribute() const + { + return _root ? xml_attribute(_root->first_attribute) : xml_attribute(); + } + + PUGI__FN xml_attribute xml_node::last_attribute() const + { + return _root && _root->first_attribute ? xml_attribute(_root->first_attribute->prev_attribute_c) : xml_attribute(); + } + + PUGI__FN xml_node xml_node::first_child() const + { + return _root ? xml_node(_root->first_child) : xml_node(); + } + + PUGI__FN xml_node xml_node::last_child() const + { + return _root && _root->first_child ? xml_node(_root->first_child->prev_sibling_c) : xml_node(); + } + + PUGI__FN bool xml_node::set_name(const char_t* rhs) + { + xml_node_type type_ = _root ? PUGI__NODETYPE(_root) : node_null; + + if (type_ != node_element && type_ != node_pi && type_ != node_declaration) + return false; + + return impl::strcpy_insitu(_root->name, _root->header, impl::xml_memory_page_name_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN bool xml_node::set_value(const char_t* rhs) + { + xml_node_type type_ = _root ? PUGI__NODETYPE(_root) : node_null; + + if (type_ != node_pcdata && type_ != node_cdata && type_ != node_comment && type_ != node_pi && type_ != node_doctype) + return false; + + return impl::strcpy_insitu(_root->value, _root->header, impl::xml_memory_page_value_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN xml_attribute xml_node::append_attribute(const char_t* name_) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::append_attribute(a._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::prepend_attribute(const char_t* name_) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::prepend_attribute(a._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_attribute_after(const char_t* name_, const xml_attribute& attr) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_after(a._attr, attr._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_attribute_before(const char_t* name_, const xml_attribute& attr) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_before(a._attr, attr._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::append_copy(const xml_attribute& proto) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::append_attribute(a._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_attribute xml_node::prepend_copy(const xml_attribute& proto) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::prepend_attribute(a._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_copy_after(const xml_attribute& proto, const xml_attribute& attr) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_after(a._attr, attr._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_copy_before(const xml_attribute& proto, const xml_attribute& attr) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_before(a._attr, attr._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_node xml_node::append_child(xml_node_type type_) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::append_node(n._root, _root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::prepend_child(xml_node_type type_) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::prepend_node(n._root, _root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::insert_child_before(xml_node_type type_, const xml_node& node) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_before(n._root, node._root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::insert_child_after(xml_node_type type_, const xml_node& node) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_after(n._root, node._root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::append_child(const char_t* name_) + { + xml_node result = append_child(node_element); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::prepend_child(const char_t* name_) + { + xml_node result = prepend_child(node_element); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::insert_child_after(const char_t* name_, const xml_node& node) + { + xml_node result = insert_child_after(node_element, node); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::insert_child_before(const char_t* name_, const xml_node& node) + { + xml_node result = insert_child_before(node_element, node); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::append_copy(const xml_node& proto) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::append_node(n._root, _root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::prepend_copy(const xml_node& proto) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::prepend_node(n._root, _root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::insert_copy_after(const xml_node& proto, const xml_node& node) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_after(n._root, node._root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::insert_copy_before(const xml_node& proto, const xml_node& node) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_before(n._root, node._root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::append_move(const xml_node& moved) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::append_node(moved._root, _root); + + return moved; + } + + PUGI__FN xml_node xml_node::prepend_move(const xml_node& moved) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::prepend_node(moved._root, _root); + + return moved; + } + + PUGI__FN xml_node xml_node::insert_move_after(const xml_node& moved, const xml_node& node) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + if (moved._root == node._root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::insert_node_after(moved._root, node._root); + + return moved; + } + + PUGI__FN xml_node xml_node::insert_move_before(const xml_node& moved, const xml_node& node) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + if (moved._root == node._root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::insert_node_before(moved._root, node._root); + + return moved; + } + + PUGI__FN bool xml_node::remove_attribute(const char_t* name_) + { + return remove_attribute(attribute(name_)); + } + + PUGI__FN bool xml_node::remove_attribute(const xml_attribute& a) + { + if (!_root || !a._attr) return false; + if (!impl::is_attribute_of(a._attr, _root)) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + impl::remove_attribute(a._attr, _root); + impl::destroy_attribute(a._attr, alloc); + + return true; + } + + PUGI__FN bool xml_node::remove_child(const char_t* name_) + { + return remove_child(child(name_)); + } + + PUGI__FN bool xml_node::remove_child(const xml_node& n) + { + if (!_root || !n._root || n._root->parent != _root) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + impl::remove_node(n._root); + impl::destroy_node(n._root, alloc); + + return true; + } + + PUGI__FN xml_parse_result xml_node::append_buffer(const void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + // append_buffer is only valid for elements/documents + if (!impl::allow_insert_child(type(), node_element)) return impl::make_parse_result(status_append_invalid_root); + + // get document node + impl::xml_document_struct* doc = &impl::get_document(_root); + + // disable document_buffer_order optimization since in a document with multiple buffers comparing buffer pointers does not make sense + doc->header |= impl::xml_memory_page_contents_shared_mask; + + // get extra buffer element (we'll store the document fragment buffer there so that we can deallocate it later) + impl::xml_memory_page* page = 0; + impl::xml_extra_buffer* extra = static_cast(doc->allocate_memory(sizeof(impl::xml_extra_buffer), page)); + (void)page; + + if (!extra) return impl::make_parse_result(status_out_of_memory); + + // add extra buffer to the list + extra->buffer = 0; + extra->next = doc->extra_buffers; + doc->extra_buffers = extra; + + // name of the root has to be NULL before parsing - otherwise closing node mismatches will not be detected at the top level + impl::name_null_sentry sentry(_root); + + return impl::load_buffer_impl(doc, _root, const_cast(contents), size, options, encoding, false, false, &extra->buffer); + } + + PUGI__FN xml_node xml_node::find_child_by_attribute(const char_t* name_, const char_t* attr_name, const char_t* attr_value) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (i->name && impl::strequal(name_, i->name)) + { + for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) + if (a->name && impl::strequal(attr_name, a->name) && impl::strequal(attr_value, a->value ? a->value + 0 : PUGIXML_TEXT(""))) + return xml_node(i); + } + + return xml_node(); + } + + PUGI__FN xml_node xml_node::find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) + if (a->name && impl::strequal(attr_name, a->name) && impl::strequal(attr_value, a->value ? a->value + 0 : PUGIXML_TEXT(""))) + return xml_node(i); + + return xml_node(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN string_t xml_node::path(char_t delimiter) const + { + if (!_root) return string_t(); + + size_t offset = 0; + + for (xml_node_struct* i = _root; i; i = i->parent) + { + offset += (i != _root); + offset += i->name ? impl::strlength(i->name) : 0; + } + + string_t result; + result.resize(offset); + + for (xml_node_struct* j = _root; j; j = j->parent) + { + if (j != _root) + result[--offset] = delimiter; + + if (j->name && *j->name) + { + size_t length = impl::strlength(j->name); + + offset -= length; + memcpy(&result[offset], j->name, length * sizeof(char_t)); + } + } + + assert(offset == 0); + + return result; + } +#endif + + PUGI__FN xml_node xml_node::first_element_by_path(const char_t* path_, char_t delimiter) const + { + xml_node found = *this; // Current search context. + + if (!_root || !path_ || !path_[0]) return found; + + if (path_[0] == delimiter) + { + // Absolute path; e.g. '/foo/bar' + found = found.root(); + ++path_; + } + + const char_t* path_segment = path_; + + while (*path_segment == delimiter) ++path_segment; + + const char_t* path_segment_end = path_segment; + + while (*path_segment_end && *path_segment_end != delimiter) ++path_segment_end; + + if (path_segment == path_segment_end) return found; + + const char_t* next_segment = path_segment_end; + + while (*next_segment == delimiter) ++next_segment; + + if (*path_segment == '.' && path_segment + 1 == path_segment_end) + return found.first_element_by_path(next_segment, delimiter); + else if (*path_segment == '.' && *(path_segment+1) == '.' && path_segment + 2 == path_segment_end) + return found.parent().first_element_by_path(next_segment, delimiter); + else + { + for (xml_node_struct* j = found._root->first_child; j; j = j->next_sibling) + { + if (j->name && impl::strequalrange(j->name, path_segment, static_cast(path_segment_end - path_segment))) + { + xml_node subsearch = xml_node(j).first_element_by_path(next_segment, delimiter); + + if (subsearch) return subsearch; + } + } + + return xml_node(); + } + } + + PUGI__FN bool xml_node::traverse(xml_tree_walker& walker) + { + walker._depth = -1; + + xml_node arg_begin = *this; + if (!walker.begin(arg_begin)) return false; + + xml_node cur = first_child(); + + if (cur) + { + ++walker._depth; + + do + { + xml_node arg_for_each = cur; + if (!walker.for_each(arg_for_each)) + return false; + + if (cur.first_child()) + { + ++walker._depth; + cur = cur.first_child(); + } + else if (cur.next_sibling()) + cur = cur.next_sibling(); + else + { + // Borland C++ workaround + while (!cur.next_sibling() && cur != *this && !cur.parent().empty()) + { + --walker._depth; + cur = cur.parent(); + } + + if (cur != *this) + cur = cur.next_sibling(); + } + } + while (cur && cur != *this); + } + + assert(walker._depth == -1); + + xml_node arg_end = *this; + return walker.end(arg_end); + } + + PUGI__FN size_t xml_node::hash_value() const + { + return static_cast(reinterpret_cast(_root) / sizeof(xml_node_struct)); + } + + PUGI__FN xml_node_struct* xml_node::internal_object() const + { + return _root; + } + + PUGI__FN void xml_node::print(xml_writer& writer, const char_t* indent, unsigned int flags, xml_encoding encoding, unsigned int depth) const + { + if (!_root) return; + + impl::xml_buffered_writer buffered_writer(writer, encoding); + + impl::node_output(buffered_writer, _root, indent, flags, depth); + + buffered_writer.flush(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN void xml_node::print(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, xml_encoding encoding, unsigned int depth) const + { + xml_writer_stream writer(stream); + + print(writer, indent, flags, encoding, depth); + } + + PUGI__FN void xml_node::print(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, unsigned int depth) const + { + xml_writer_stream writer(stream); + + print(writer, indent, flags, encoding_wchar, depth); + } +#endif + + PUGI__FN ptrdiff_t xml_node::offset_debug() const + { + if (!_root) return -1; + + impl::xml_document_struct& doc = impl::get_document(_root); + + // we can determine the offset reliably only if there is exactly once parse buffer + if (!doc.buffer || doc.extra_buffers) return -1; + + switch (type()) + { + case node_document: + return 0; + + case node_element: + case node_declaration: + case node_pi: + return _root->name && (_root->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0 ? _root->name - doc.buffer : -1; + + case node_pcdata: + case node_cdata: + case node_comment: + case node_doctype: + return _root->value && (_root->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0 ? _root->value - doc.buffer : -1; + + default: + return -1; + } + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_node& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_node& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_text::xml_text(xml_node_struct* root): _root(root) + { + } + + PUGI__FN xml_node_struct* xml_text::_data() const + { + if (!_root || impl::is_text_node(_root)) return _root; + + for (xml_node_struct* node = _root->first_child; node; node = node->next_sibling) + if (impl::is_text_node(node)) + return node; + + return 0; + } + + PUGI__FN xml_node_struct* xml_text::_data_new() + { + xml_node_struct* d = _data(); + if (d) return d; + + return xml_node(_root).append_child(node_pcdata).internal_object(); + } + + PUGI__FN xml_text::xml_text(): _root(0) + { + } + + PUGI__FN static void unspecified_bool_xml_text(xml_text***) + { + } + + PUGI__FN xml_text::operator xml_text::unspecified_bool_type() const + { + return _data() ? unspecified_bool_xml_text : 0; + } + + PUGI__FN bool xml_text::operator!() const + { + return !_data(); + } + + PUGI__FN bool xml_text::empty() const + { + return _data() == 0; + } + + PUGI__FN const char_t* xml_text::get() const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? d->value + 0 : PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_text::as_string(const char_t* def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? d->value + 0 : def; + } + + PUGI__FN int xml_text::as_int(int def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? impl::get_value_int(d->value) : def; + } + + PUGI__FN unsigned int xml_text::as_uint(unsigned int def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? impl::get_value_uint(d->value) : def; + } + + PUGI__FN double xml_text::as_double(double def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? impl::get_value_double(d->value) : def; + } + + PUGI__FN float xml_text::as_float(float def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? impl::get_value_float(d->value) : def; + } + + PUGI__FN bool xml_text::as_bool(bool def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? impl::get_value_bool(d->value) : def; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long xml_text::as_llong(long long def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? impl::get_value_llong(d->value) : def; + } + + PUGI__FN unsigned long long xml_text::as_ullong(unsigned long long def) const + { + xml_node_struct* d = _data(); + + return (d && d->value) ? impl::get_value_ullong(d->value) : def; + } +#endif + + PUGI__FN bool xml_text::set(const char_t* rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::strcpy_insitu(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, impl::strlength(rhs)) : false; + } + + PUGI__FN bool xml_text::set(int rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(unsigned int rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(float rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(double rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(bool rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN bool xml_text::set(long long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + + PUGI__FN bool xml_text::set(unsigned long long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } +#endif + + PUGI__FN xml_text& xml_text::operator=(const char_t* rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(int rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(unsigned int rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(double rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(float rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(bool rhs) + { + set(rhs); + return *this; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN xml_text& xml_text::operator=(long long rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(unsigned long long rhs) + { + set(rhs); + return *this; + } +#endif + + PUGI__FN xml_node xml_text::data() const + { + return xml_node(_data()); + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_text& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_text& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_node_iterator::xml_node_iterator() + { + } + + PUGI__FN xml_node_iterator::xml_node_iterator(const xml_node& node): _wrap(node), _parent(node.parent()) + { + } + + PUGI__FN xml_node_iterator::xml_node_iterator(xml_node_struct* ref, xml_node_struct* parent): _wrap(ref), _parent(parent) + { + } + + PUGI__FN bool xml_node_iterator::operator==(const xml_node_iterator& rhs) const + { + return _wrap._root == rhs._wrap._root && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_node_iterator::operator!=(const xml_node_iterator& rhs) const + { + return _wrap._root != rhs._wrap._root || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_node& xml_node_iterator::operator*() const + { + assert(_wrap._root); + return _wrap; + } + + PUGI__FN xml_node* xml_node_iterator::operator->() const + { + assert(_wrap._root); + return const_cast(&_wrap); // BCC32 workaround + } + + PUGI__FN const xml_node_iterator& xml_node_iterator::operator++() + { + assert(_wrap._root); + _wrap._root = _wrap._root->next_sibling; + return *this; + } + + PUGI__FN xml_node_iterator xml_node_iterator::operator++(int) + { + xml_node_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN const xml_node_iterator& xml_node_iterator::operator--() + { + _wrap = _wrap._root ? _wrap.previous_sibling() : _parent.last_child(); + return *this; + } + + PUGI__FN xml_node_iterator xml_node_iterator::operator--(int) + { + xml_node_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator() + { + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator(const xml_attribute& attr, const xml_node& parent): _wrap(attr), _parent(parent) + { + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator(xml_attribute_struct* ref, xml_node_struct* parent): _wrap(ref), _parent(parent) + { + } + + PUGI__FN bool xml_attribute_iterator::operator==(const xml_attribute_iterator& rhs) const + { + return _wrap._attr == rhs._wrap._attr && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_attribute_iterator::operator!=(const xml_attribute_iterator& rhs) const + { + return _wrap._attr != rhs._wrap._attr || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_attribute& xml_attribute_iterator::operator*() const + { + assert(_wrap._attr); + return _wrap; + } + + PUGI__FN xml_attribute* xml_attribute_iterator::operator->() const + { + assert(_wrap._attr); + return const_cast(&_wrap); // BCC32 workaround + } + + PUGI__FN const xml_attribute_iterator& xml_attribute_iterator::operator++() + { + assert(_wrap._attr); + _wrap._attr = _wrap._attr->next_attribute; + return *this; + } + + PUGI__FN xml_attribute_iterator xml_attribute_iterator::operator++(int) + { + xml_attribute_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN const xml_attribute_iterator& xml_attribute_iterator::operator--() + { + _wrap = _wrap._attr ? _wrap.previous_attribute() : _parent.last_attribute(); + return *this; + } + + PUGI__FN xml_attribute_iterator xml_attribute_iterator::operator--(int) + { + xml_attribute_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(): _name(0) + { + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(const xml_node& node, const char_t* name): _wrap(node), _parent(node.parent()), _name(name) + { + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(xml_node_struct* ref, xml_node_struct* parent, const char_t* name): _wrap(ref), _parent(parent), _name(name) + { + } + + PUGI__FN bool xml_named_node_iterator::operator==(const xml_named_node_iterator& rhs) const + { + return _wrap._root == rhs._wrap._root && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_named_node_iterator::operator!=(const xml_named_node_iterator& rhs) const + { + return _wrap._root != rhs._wrap._root || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_node& xml_named_node_iterator::operator*() const + { + assert(_wrap._root); + return _wrap; + } + + PUGI__FN xml_node* xml_named_node_iterator::operator->() const + { + assert(_wrap._root); + return const_cast(&_wrap); // BCC32 workaround + } + + PUGI__FN const xml_named_node_iterator& xml_named_node_iterator::operator++() + { + assert(_wrap._root); + _wrap = _wrap.next_sibling(_name); + return *this; + } + + PUGI__FN xml_named_node_iterator xml_named_node_iterator::operator++(int) + { + xml_named_node_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN const xml_named_node_iterator& xml_named_node_iterator::operator--() + { + if (_wrap._root) + _wrap = _wrap.previous_sibling(_name); + else + { + _wrap = _parent.last_child(); + + if (!impl::strequal(_wrap.name(), _name)) + _wrap = _wrap.previous_sibling(_name); + } + + return *this; + } + + PUGI__FN xml_named_node_iterator xml_named_node_iterator::operator--(int) + { + xml_named_node_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_parse_result::xml_parse_result(): status(status_internal_error), offset(0), encoding(encoding_auto) + { + } + + PUGI__FN xml_parse_result::operator bool() const + { + return status == status_ok; + } + + PUGI__FN const char* xml_parse_result::description() const + { + switch (status) + { + case status_ok: return "No error"; + + case status_file_not_found: return "File was not found"; + case status_io_error: return "Error reading from file/stream"; + case status_out_of_memory: return "Could not allocate memory"; + case status_internal_error: return "Internal error occurred"; + + case status_unrecognized_tag: return "Could not determine tag type"; + + case status_bad_pi: return "Error parsing document declaration/processing instruction"; + case status_bad_comment: return "Error parsing comment"; + case status_bad_cdata: return "Error parsing CDATA section"; + case status_bad_doctype: return "Error parsing document type declaration"; + case status_bad_pcdata: return "Error parsing PCDATA section"; + case status_bad_start_element: return "Error parsing start element tag"; + case status_bad_attribute: return "Error parsing element attribute"; + case status_bad_end_element: return "Error parsing end element tag"; + case status_end_element_mismatch: return "Start-end tags mismatch"; + + case status_append_invalid_root: return "Unable to append nodes: root is not an element or document"; + + case status_no_document_element: return "No document element found"; + + default: return "Unknown error"; + } + } + + PUGI__FN xml_document::xml_document(): _buffer(0) + { + create(); + } + + PUGI__FN xml_document::~xml_document() + { + destroy(); + } + + PUGI__FN void xml_document::reset() + { + destroy(); + create(); + } + + PUGI__FN void xml_document::reset(const xml_document& proto) + { + reset(); + + for (xml_node cur = proto.first_child(); cur; cur = cur.next_sibling()) + append_copy(cur); + } + + PUGI__FN void xml_document::create() + { + assert(!_root); + + #ifdef PUGIXML_COMPACT + const size_t page_offset = sizeof(uint32_t); + #else + const size_t page_offset = 0; + #endif + + // initialize sentinel page + PUGI__STATIC_ASSERT(sizeof(impl::xml_memory_page) + sizeof(impl::xml_document_struct) + impl::xml_memory_page_alignment - sizeof(void*) + page_offset <= sizeof(_memory)); + + // align upwards to page boundary + void* page_memory = reinterpret_cast((reinterpret_cast(_memory) + (impl::xml_memory_page_alignment - 1)) & ~(impl::xml_memory_page_alignment - 1)); + + // prepare page structure + impl::xml_memory_page* page = impl::xml_memory_page::construct(page_memory); + assert(page); + + page->busy_size = impl::xml_memory_page_size; + + // setup first page marker + #ifdef PUGIXML_COMPACT + // round-trip through void* to avoid 'cast increases required alignment of target type' warning + page->compact_page_marker = reinterpret_cast(static_cast(reinterpret_cast(page) + sizeof(impl::xml_memory_page))); + *page->compact_page_marker = sizeof(impl::xml_memory_page); + #endif + + // allocate new root + _root = new (reinterpret_cast(page) + sizeof(impl::xml_memory_page) + page_offset) impl::xml_document_struct(page); + _root->prev_sibling_c = _root; + + // setup sentinel page + page->allocator = static_cast(_root); + + // verify the document allocation + assert(reinterpret_cast(_root) + sizeof(impl::xml_document_struct) <= _memory + sizeof(_memory)); + } + + PUGI__FN void xml_document::destroy() + { + assert(_root); + + // destroy static storage + if (_buffer) + { + impl::xml_memory::deallocate(_buffer); + _buffer = 0; + } + + // destroy extra buffers (note: no need to destroy linked list nodes, they're allocated using document allocator) + for (impl::xml_extra_buffer* extra = static_cast(_root)->extra_buffers; extra; extra = extra->next) + { + if (extra->buffer) impl::xml_memory::deallocate(extra->buffer); + } + + // destroy dynamic storage, leave sentinel page (it's in static memory) + impl::xml_memory_page* root_page = PUGI__GETPAGE(_root); + assert(root_page && !root_page->prev); + assert(reinterpret_cast(root_page) >= _memory && reinterpret_cast(root_page) < _memory + sizeof(_memory)); + + for (impl::xml_memory_page* page = root_page->next; page; ) + { + impl::xml_memory_page* next = page->next; + + impl::xml_allocator::deallocate_page(page); + + page = next; + } + + #ifdef PUGIXML_COMPACT + // destroy hash table + static_cast(_root)->hash.clear(); + #endif + + _root = 0; + } + +#ifndef PUGIXML_NO_STL + PUGI__FN xml_parse_result xml_document::load(std::basic_istream >& stream, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_stream_impl(static_cast(_root), stream, options, encoding, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load(std::basic_istream >& stream, unsigned int options) + { + reset(); + + return impl::load_stream_impl(static_cast(_root), stream, options, encoding_wchar, &_buffer); + } +#endif + + PUGI__FN xml_parse_result xml_document::load_string(const char_t* contents, unsigned int options) + { + // Force native encoding (skip autodetection) + #ifdef PUGIXML_WCHAR_MODE + xml_encoding encoding = encoding_wchar; + #else + xml_encoding encoding = encoding_utf8; + #endif + + return load_buffer(contents, impl::strlength(contents) * sizeof(char_t), options, encoding); + } + + PUGI__FN xml_parse_result xml_document::load(const char_t* contents, unsigned int options) + { + return load_string(contents, options); + } + + PUGI__FN xml_parse_result xml_document::load_file(const char* path_, unsigned int options, xml_encoding encoding) + { + reset(); + + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(fopen(path_, "rb"), fclose); + + return impl::load_file_impl(static_cast(_root), file.data, options, encoding, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_file(const wchar_t* path_, unsigned int options, xml_encoding encoding) + { + reset(); + + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file_wide(path_, L"rb"), fclose); + + return impl::load_file_impl(static_cast(_root), file.data, options, encoding, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer(const void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, const_cast(contents), size, options, encoding, false, false, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer_inplace(void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, contents, size, options, encoding, true, false, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer_inplace_own(void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, contents, size, options, encoding, true, true, &_buffer); + } + + PUGI__FN void xml_document::save(xml_writer& writer, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + impl::xml_buffered_writer buffered_writer(writer, encoding); + + if ((flags & format_write_bom) && encoding != encoding_latin1) + { + // BOM always represents the codepoint U+FEFF, so just write it in native encoding + #ifdef PUGIXML_WCHAR_MODE + unsigned int bom = 0xfeff; + buffered_writer.write(static_cast(bom)); + #else + buffered_writer.write('\xef', '\xbb', '\xbf'); + #endif + } + + if (!(flags & format_no_declaration) && !impl::has_declaration(_root)) + { + buffered_writer.write_string(PUGIXML_TEXT("'); + if (!(flags & format_raw)) buffered_writer.write('\n'); + } + + impl::node_output(buffered_writer, _root, indent, flags, 0); + + buffered_writer.flush(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN void xml_document::save(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + xml_writer_stream writer(stream); + + save(writer, indent, flags, encoding); + } + + PUGI__FN void xml_document::save(std::basic_ostream >& stream, const char_t* indent, unsigned int flags) const + { + xml_writer_stream writer(stream); + + save(writer, indent, flags, encoding_wchar); + } +#endif + + PUGI__FN bool xml_document::save_file(const char* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(fopen(path_, (flags & format_save_file_text) ? "w" : "wb"), fclose); + + return impl::save_file_impl(*this, file.data, indent, flags, encoding); + } + + PUGI__FN bool xml_document::save_file(const wchar_t* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file_wide(path_, (flags & format_save_file_text) ? L"w" : L"wb"), fclose); + + return impl::save_file_impl(*this, file.data, indent, flags, encoding); + } + + PUGI__FN xml_node xml_document::document_element() const + { + assert(_root); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (PUGI__NODETYPE(i) == node_element) + return xml_node(i); + + return xml_node(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const wchar_t* str) + { + assert(str); + + return impl::as_utf8_impl(str, impl::strlength_wide(str)); + } + + PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const std::basic_string& str) + { + return impl::as_utf8_impl(str.c_str(), str.size()); + } + + PUGI__FN std::basic_string PUGIXML_FUNCTION as_wide(const char* str) + { + assert(str); + + return impl::as_wide_impl(str, strlen(str)); + } + + PUGI__FN std::basic_string PUGIXML_FUNCTION as_wide(const std::string& str) + { + return impl::as_wide_impl(str.c_str(), str.size()); + } +#endif + + PUGI__FN void PUGIXML_FUNCTION set_memory_management_functions(allocation_function allocate, deallocation_function deallocate) + { + impl::xml_memory::allocate = allocate; + impl::xml_memory::deallocate = deallocate; + } + + PUGI__FN allocation_function PUGIXML_FUNCTION get_memory_allocation_function() + { + return impl::xml_memory::allocate; + } + + PUGI__FN deallocation_function PUGIXML_FUNCTION get_memory_deallocation_function() + { + return impl::xml_memory::deallocate; + } +} + +#if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC)) +namespace std +{ + // Workarounds for (non-standard) iterator category detection for older versions (MSVC7/IC8 and earlier) + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_attribute_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_named_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } +} +#endif + +#if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC) +namespace std +{ + // Workarounds for (non-standard) iterator category detection + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_attribute_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_named_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } +} +#endif + +#ifndef PUGIXML_NO_XPATH +// STL replacements +PUGI__NS_BEGIN + struct equal_to + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs == rhs; + } + }; + + struct not_equal_to + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs != rhs; + } + }; + + struct less + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs < rhs; + } + }; + + struct less_equal + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs <= rhs; + } + }; + + template void swap(T& lhs, T& rhs) + { + T temp = lhs; + lhs = rhs; + rhs = temp; + } + + template I min_element(I begin, I end, const Pred& pred) + { + I result = begin; + + for (I it = begin + 1; it != end; ++it) + if (pred(*it, *result)) + result = it; + + return result; + } + + template void reverse(I begin, I end) + { + while (end - begin > 1) swap(*begin++, *--end); + } + + template I unique(I begin, I end) + { + // fast skip head + while (end - begin > 1 && *begin != *(begin + 1)) begin++; + + if (begin == end) return begin; + + // last written element + I write = begin++; + + // merge unique elements + while (begin != end) + { + if (*begin != *write) + *++write = *begin++; + else + begin++; + } + + // past-the-end (write points to live element) + return write + 1; + } + + template void copy_backwards(I begin, I end, I target) + { + while (begin != end) *--target = *--end; + } + + template void insertion_sort(I begin, I end, const Pred& pred, T*) + { + assert(begin != end); + + for (I it = begin + 1; it != end; ++it) + { + T val = *it; + + if (pred(val, *begin)) + { + // move to front + copy_backwards(begin, it, it + 1); + *begin = val; + } + else + { + I hole = it; + + // move hole backwards + while (pred(val, *(hole - 1))) + { + *hole = *(hole - 1); + hole--; + } + + // fill hole with element + *hole = val; + } + } + } + + // std variant for elements with == + template void partition(I begin, I middle, I end, const Pred& pred, I* out_eqbeg, I* out_eqend) + { + I eqbeg = middle, eqend = middle + 1; + + // expand equal range + while (eqbeg != begin && *(eqbeg - 1) == *eqbeg) --eqbeg; + while (eqend != end && *eqend == *eqbeg) ++eqend; + + // process outer elements + I ltend = eqbeg, gtbeg = eqend; + + for (;;) + { + // find the element from the right side that belongs to the left one + for (; gtbeg != end; ++gtbeg) + if (!pred(*eqbeg, *gtbeg)) + { + if (*gtbeg == *eqbeg) swap(*gtbeg, *eqend++); + else break; + } + + // find the element from the left side that belongs to the right one + for (; ltend != begin; --ltend) + if (!pred(*(ltend - 1), *eqbeg)) + { + if (*eqbeg == *(ltend - 1)) swap(*(ltend - 1), *--eqbeg); + else break; + } + + // scanned all elements + if (gtbeg == end && ltend == begin) + { + *out_eqbeg = eqbeg; + *out_eqend = eqend; + return; + } + + // make room for elements by moving equal area + if (gtbeg == end) + { + if (--ltend != --eqbeg) swap(*ltend, *eqbeg); + swap(*eqbeg, *--eqend); + } + else if (ltend == begin) + { + if (eqend != gtbeg) swap(*eqbeg, *eqend); + ++eqend; + swap(*gtbeg++, *eqbeg++); + } + else swap(*gtbeg++, *--ltend); + } + } + + template void median3(I first, I middle, I last, const Pred& pred) + { + if (pred(*middle, *first)) swap(*middle, *first); + if (pred(*last, *middle)) swap(*last, *middle); + if (pred(*middle, *first)) swap(*middle, *first); + } + + template void median(I first, I middle, I last, const Pred& pred) + { + if (last - first <= 40) + { + // median of three for small chunks + median3(first, middle, last, pred); + } + else + { + // median of nine + size_t step = (last - first + 1) / 8; + + median3(first, first + step, first + 2 * step, pred); + median3(middle - step, middle, middle + step, pred); + median3(last - 2 * step, last - step, last, pred); + median3(first + step, middle, last - step, pred); + } + } + + template void sort(I begin, I end, const Pred& pred) + { + // sort large chunks + while (end - begin > 32) + { + // find median element + I middle = begin + (end - begin) / 2; + median(begin, middle, end - 1, pred); + + // partition in three chunks (< = >) + I eqbeg, eqend; + partition(begin, middle, end, pred, &eqbeg, &eqend); + + // loop on larger half + if (eqbeg - begin > end - eqend) + { + sort(eqend, end, pred); + end = eqbeg; + } + else + { + sort(begin, eqbeg, pred); + begin = eqend; + } + } + + // insertion sort small chunk + if (begin != end) insertion_sort(begin, end, pred, &*begin); + } +PUGI__NS_END + +// Allocator used for AST and evaluation stacks +PUGI__NS_BEGIN + static const size_t xpath_memory_page_size = + #ifdef PUGIXML_MEMORY_XPATH_PAGE_SIZE + PUGIXML_MEMORY_XPATH_PAGE_SIZE + #else + 4096 + #endif + ; + + static const uintptr_t xpath_memory_block_alignment = sizeof(double) > sizeof(void*) ? sizeof(double) : sizeof(void*); + + struct xpath_memory_block + { + xpath_memory_block* next; + size_t capacity; + + union + { + char data[xpath_memory_page_size]; + double alignment; + }; + }; + + class xpath_allocator + { + xpath_memory_block* _root; + size_t _root_size; + + public: + #ifdef PUGIXML_NO_EXCEPTIONS + jmp_buf* error_handler; + #endif + + xpath_allocator(xpath_memory_block* root, size_t root_size = 0): _root(root), _root_size(root_size) + { + #ifdef PUGIXML_NO_EXCEPTIONS + error_handler = 0; + #endif + } + + void* allocate_nothrow(size_t size) + { + // round size up to block alignment boundary + size = (size + xpath_memory_block_alignment - 1) & ~(xpath_memory_block_alignment - 1); + + if (_root_size + size <= _root->capacity) + { + void* buf = &_root->data[0] + _root_size; + _root_size += size; + return buf; + } + else + { + // make sure we have at least 1/4th of the page free after allocation to satisfy subsequent allocation requests + size_t block_capacity_base = sizeof(_root->data); + size_t block_capacity_req = size + block_capacity_base / 4; + size_t block_capacity = (block_capacity_base > block_capacity_req) ? block_capacity_base : block_capacity_req; + + size_t block_size = block_capacity + offsetof(xpath_memory_block, data); + + xpath_memory_block* block = static_cast(xml_memory::allocate(block_size)); + if (!block) return 0; + + block->next = _root; + block->capacity = block_capacity; + + _root = block; + _root_size = size; + + return block->data; + } + } + + void* allocate(size_t size) + { + void* result = allocate_nothrow(size); + + if (!result) + { + #ifdef PUGIXML_NO_EXCEPTIONS + assert(error_handler); + longjmp(*error_handler, 1); + #else + throw std::bad_alloc(); + #endif + } + + return result; + } + + void* reallocate(void* ptr, size_t old_size, size_t new_size) + { + // round size up to block alignment boundary + old_size = (old_size + xpath_memory_block_alignment - 1) & ~(xpath_memory_block_alignment - 1); + new_size = (new_size + xpath_memory_block_alignment - 1) & ~(xpath_memory_block_alignment - 1); + + // we can only reallocate the last object + assert(ptr == 0 || static_cast(ptr) + old_size == &_root->data[0] + _root_size); + + // adjust root size so that we have not allocated the object at all + bool only_object = (_root_size == old_size); + + if (ptr) _root_size -= old_size; + + // allocate a new version (this will obviously reuse the memory if possible) + void* result = allocate(new_size); + assert(result); + + // we have a new block + if (result != ptr && ptr) + { + // copy old data + assert(new_size >= old_size); + memcpy(result, ptr, old_size); + + // free the previous page if it had no other objects + if (only_object) + { + assert(_root->data == result); + assert(_root->next); + + xpath_memory_block* next = _root->next->next; + + if (next) + { + // deallocate the whole page, unless it was the first one + xml_memory::deallocate(_root->next); + _root->next = next; + } + } + } + + return result; + } + + void revert(const xpath_allocator& state) + { + // free all new pages + xpath_memory_block* cur = _root; + + while (cur != state._root) + { + xpath_memory_block* next = cur->next; + + xml_memory::deallocate(cur); + + cur = next; + } + + // restore state + _root = state._root; + _root_size = state._root_size; + } + + void release() + { + xpath_memory_block* cur = _root; + assert(cur); + + while (cur->next) + { + xpath_memory_block* next = cur->next; + + xml_memory::deallocate(cur); + + cur = next; + } + } + }; + + struct xpath_allocator_capture + { + xpath_allocator_capture(xpath_allocator* alloc): _target(alloc), _state(*alloc) + { + } + + ~xpath_allocator_capture() + { + _target->revert(_state); + } + + xpath_allocator* _target; + xpath_allocator _state; + }; + + struct xpath_stack + { + xpath_allocator* result; + xpath_allocator* temp; + }; + + struct xpath_stack_data + { + xpath_memory_block blocks[2]; + xpath_allocator result; + xpath_allocator temp; + xpath_stack stack; + + #ifdef PUGIXML_NO_EXCEPTIONS + jmp_buf error_handler; + #endif + + xpath_stack_data(): result(blocks + 0), temp(blocks + 1) + { + blocks[0].next = blocks[1].next = 0; + blocks[0].capacity = blocks[1].capacity = sizeof(blocks[0].data); + + stack.result = &result; + stack.temp = &temp; + + #ifdef PUGIXML_NO_EXCEPTIONS + result.error_handler = temp.error_handler = &error_handler; + #endif + } + + ~xpath_stack_data() + { + result.release(); + temp.release(); + } + }; +PUGI__NS_END + +// String class +PUGI__NS_BEGIN + class xpath_string + { + const char_t* _buffer; + bool _uses_heap; + size_t _length_heap; + + static char_t* duplicate_string(const char_t* string, size_t length, xpath_allocator* alloc) + { + char_t* result = static_cast(alloc->allocate((length + 1) * sizeof(char_t))); + assert(result); + + memcpy(result, string, length * sizeof(char_t)); + result[length] = 0; + + return result; + } + + xpath_string(const char_t* buffer, bool uses_heap_, size_t length_heap): _buffer(buffer), _uses_heap(uses_heap_), _length_heap(length_heap) + { + } + + public: + static xpath_string from_const(const char_t* str) + { + return xpath_string(str, false, 0); + } + + static xpath_string from_heap_preallocated(const char_t* begin, const char_t* end) + { + assert(begin <= end && *end == 0); + + return xpath_string(begin, true, static_cast(end - begin)); + } + + static xpath_string from_heap(const char_t* begin, const char_t* end, xpath_allocator* alloc) + { + assert(begin <= end); + + size_t length = static_cast(end - begin); + + return length == 0 ? xpath_string() : xpath_string(duplicate_string(begin, length, alloc), true, length); + } + + xpath_string(): _buffer(PUGIXML_TEXT("")), _uses_heap(false), _length_heap(0) + { + } + + void append(const xpath_string& o, xpath_allocator* alloc) + { + // skip empty sources + if (!*o._buffer) return; + + // fast append for constant empty target and constant source + if (!*_buffer && !_uses_heap && !o._uses_heap) + { + _buffer = o._buffer; + } + else + { + // need to make heap copy + size_t target_length = length(); + size_t source_length = o.length(); + size_t result_length = target_length + source_length; + + // allocate new buffer + char_t* result = static_cast(alloc->reallocate(_uses_heap ? const_cast(_buffer) : 0, (target_length + 1) * sizeof(char_t), (result_length + 1) * sizeof(char_t))); + assert(result); + + // append first string to the new buffer in case there was no reallocation + if (!_uses_heap) memcpy(result, _buffer, target_length * sizeof(char_t)); + + // append second string to the new buffer + memcpy(result + target_length, o._buffer, source_length * sizeof(char_t)); + result[result_length] = 0; + + // finalize + _buffer = result; + _uses_heap = true; + _length_heap = result_length; + } + } + + const char_t* c_str() const + { + return _buffer; + } + + size_t length() const + { + return _uses_heap ? _length_heap : strlength(_buffer); + } + + char_t* data(xpath_allocator* alloc) + { + // make private heap copy + if (!_uses_heap) + { + size_t length_ = strlength(_buffer); + + _buffer = duplicate_string(_buffer, length_, alloc); + _uses_heap = true; + _length_heap = length_; + } + + return const_cast(_buffer); + } + + bool empty() const + { + return *_buffer == 0; + } + + bool operator==(const xpath_string& o) const + { + return strequal(_buffer, o._buffer); + } + + bool operator!=(const xpath_string& o) const + { + return !strequal(_buffer, o._buffer); + } + + bool uses_heap() const + { + return _uses_heap; + } + }; +PUGI__NS_END + +PUGI__NS_BEGIN + PUGI__FN bool starts_with(const char_t* string, const char_t* pattern) + { + while (*pattern && *string == *pattern) + { + string++; + pattern++; + } + + return *pattern == 0; + } + + PUGI__FN const char_t* find_char(const char_t* s, char_t c) + { + #ifdef PUGIXML_WCHAR_MODE + return wcschr(s, c); + #else + return strchr(s, c); + #endif + } + + PUGI__FN const char_t* find_substring(const char_t* s, const char_t* p) + { + #ifdef PUGIXML_WCHAR_MODE + // MSVC6 wcsstr bug workaround (if s is empty it always returns 0) + return (*p == 0) ? s : wcsstr(s, p); + #else + return strstr(s, p); + #endif + } + + // Converts symbol to lower case, if it is an ASCII one + PUGI__FN char_t tolower_ascii(char_t ch) + { + return static_cast(ch - 'A') < 26 ? static_cast(ch | ' ') : ch; + } + + PUGI__FN xpath_string string_value(const xpath_node& na, xpath_allocator* alloc) + { + if (na.attribute()) + return xpath_string::from_const(na.attribute().value()); + else + { + xml_node n = na.node(); + + switch (n.type()) + { + case node_pcdata: + case node_cdata: + case node_comment: + case node_pi: + return xpath_string::from_const(n.value()); + + case node_document: + case node_element: + { + xpath_string result; + + xml_node cur = n.first_child(); + + while (cur && cur != n) + { + if (cur.type() == node_pcdata || cur.type() == node_cdata) + result.append(xpath_string::from_const(cur.value()), alloc); + + if (cur.first_child()) + cur = cur.first_child(); + else if (cur.next_sibling()) + cur = cur.next_sibling(); + else + { + while (!cur.next_sibling() && cur != n) + cur = cur.parent(); + + if (cur != n) cur = cur.next_sibling(); + } + } + + return result; + } + + default: + return xpath_string(); + } + } + } + + PUGI__FN bool node_is_before_sibling(xml_node_struct* ln, xml_node_struct* rn) + { + assert(ln->parent == rn->parent); + + // there is no common ancestor (the shared parent is null), nodes are from different documents + if (!ln->parent) return ln < rn; + + // determine sibling order + xml_node_struct* ls = ln; + xml_node_struct* rs = rn; + + while (ls && rs) + { + if (ls == rn) return true; + if (rs == ln) return false; + + ls = ls->next_sibling; + rs = rs->next_sibling; + } + + // if rn sibling chain ended ln must be before rn + return !rs; + } + + PUGI__FN bool node_is_before(xml_node_struct* ln, xml_node_struct* rn) + { + // find common ancestor at the same depth, if any + xml_node_struct* lp = ln; + xml_node_struct* rp = rn; + + while (lp && rp && lp->parent != rp->parent) + { + lp = lp->parent; + rp = rp->parent; + } + + // parents are the same! + if (lp && rp) return node_is_before_sibling(lp, rp); + + // nodes are at different depths, need to normalize heights + bool left_higher = !lp; + + while (lp) + { + lp = lp->parent; + ln = ln->parent; + } + + while (rp) + { + rp = rp->parent; + rn = rn->parent; + } + + // one node is the ancestor of the other + if (ln == rn) return left_higher; + + // find common ancestor... again + while (ln->parent != rn->parent) + { + ln = ln->parent; + rn = rn->parent; + } + + return node_is_before_sibling(ln, rn); + } + + PUGI__FN bool node_is_ancestor(xml_node_struct* parent, xml_node_struct* node) + { + while (node && node != parent) node = node->parent; + + return parent && node == parent; + } + + PUGI__FN const void* document_buffer_order(const xpath_node& xnode) + { + xml_node_struct* node = xnode.node().internal_object(); + + if (node) + { + if ((get_document(node).header & xml_memory_page_contents_shared_mask) == 0) + { + if (node->name && (node->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return node->name; + if (node->value && (node->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return node->value; + } + + return 0; + } + + xml_attribute_struct* attr = xnode.attribute().internal_object(); + + if (attr) + { + if ((get_document(attr).header & xml_memory_page_contents_shared_mask) == 0) + { + if ((attr->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return attr->name; + if ((attr->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return attr->value; + } + + return 0; + } + + return 0; + } + + struct document_order_comparator + { + bool operator()(const xpath_node& lhs, const xpath_node& rhs) const + { + // optimized document order based check + const void* lo = document_buffer_order(lhs); + const void* ro = document_buffer_order(rhs); + + if (lo && ro) return lo < ro; + + // slow comparison + xml_node ln = lhs.node(), rn = rhs.node(); + + // compare attributes + if (lhs.attribute() && rhs.attribute()) + { + // shared parent + if (lhs.parent() == rhs.parent()) + { + // determine sibling order + for (xml_attribute a = lhs.attribute(); a; a = a.next_attribute()) + if (a == rhs.attribute()) + return true; + + return false; + } + + // compare attribute parents + ln = lhs.parent(); + rn = rhs.parent(); + } + else if (lhs.attribute()) + { + // attributes go after the parent element + if (lhs.parent() == rhs.node()) return false; + + ln = lhs.parent(); + } + else if (rhs.attribute()) + { + // attributes go after the parent element + if (rhs.parent() == lhs.node()) return true; + + rn = rhs.parent(); + } + + if (ln == rn) return false; + + if (!ln || !rn) return ln < rn; + + return node_is_before(ln.internal_object(), rn.internal_object()); + } + }; + + struct duplicate_comparator + { + bool operator()(const xpath_node& lhs, const xpath_node& rhs) const + { + if (lhs.attribute()) return rhs.attribute() ? lhs.attribute() < rhs.attribute() : true; + else return rhs.attribute() ? false : lhs.node() < rhs.node(); + } + }; + + PUGI__FN double gen_nan() + { + #if defined(__STDC_IEC_559__) || ((FLT_RADIX - 0 == 2) && (FLT_MAX_EXP - 0 == 128) && (FLT_MANT_DIG - 0 == 24)) + union { float f; uint32_t i; } u[sizeof(float) == sizeof(uint32_t) ? 1 : -1]; + u[0].i = 0x7fc00000; + return u[0].f; + #else + // fallback + const volatile double zero = 0.0; + return zero / zero; + #endif + } + + PUGI__FN bool is_nan(double value) + { + #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) + return !!_isnan(value); + #elif defined(fpclassify) && defined(FP_NAN) + return fpclassify(value) == FP_NAN; + #else + // fallback + const volatile double v = value; + return v != v; + #endif + } + + PUGI__FN const char_t* convert_number_to_string_special(double value) + { + #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) + if (_finite(value)) return (value == 0) ? PUGIXML_TEXT("0") : 0; + if (_isnan(value)) return PUGIXML_TEXT("NaN"); + return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + #elif defined(fpclassify) && defined(FP_NAN) && defined(FP_INFINITE) && defined(FP_ZERO) + switch (fpclassify(value)) + { + case FP_NAN: + return PUGIXML_TEXT("NaN"); + + case FP_INFINITE: + return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + + case FP_ZERO: + return PUGIXML_TEXT("0"); + + default: + return 0; + } + #else + // fallback + const volatile double v = value; + + if (v == 0) return PUGIXML_TEXT("0"); + if (v != v) return PUGIXML_TEXT("NaN"); + if (v * 2 == v) return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + return 0; + #endif + } + + PUGI__FN bool convert_number_to_boolean(double value) + { + return (value != 0 && !is_nan(value)); + } + + PUGI__FN void truncate_zeros(char* begin, char* end) + { + while (begin != end && end[-1] == '0') end--; + + *end = 0; + } + + // gets mantissa digits in the form of 0.xxxxx with 0. implied and the exponent +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 && !defined(_WIN32_WCE) + PUGI__FN void convert_number_to_mantissa_exponent(double value, char* buffer, size_t buffer_size, char** out_mantissa, int* out_exponent) + { + // get base values + int sign, exponent; + _ecvt_s(buffer, buffer_size, value, DBL_DIG + 1, &exponent, &sign); + + // truncate redundant zeros + truncate_zeros(buffer, buffer + strlen(buffer)); + + // fill results + *out_mantissa = buffer; + *out_exponent = exponent; + } +#else + PUGI__FN void convert_number_to_mantissa_exponent(double value, char* buffer, size_t buffer_size, char** out_mantissa, int* out_exponent) + { + // get a scientific notation value with IEEE DBL_DIG decimals + sprintf(buffer, "%.*e", DBL_DIG, value); + assert(strlen(buffer) < buffer_size); + (void)!buffer_size; + + // get the exponent (possibly negative) + char* exponent_string = strchr(buffer, 'e'); + assert(exponent_string); + + int exponent = atoi(exponent_string + 1); + + // extract mantissa string: skip sign + char* mantissa = buffer[0] == '-' ? buffer + 1 : buffer; + assert(mantissa[0] != '0' && mantissa[1] == '.'); + + // divide mantissa by 10 to eliminate integer part + mantissa[1] = mantissa[0]; + mantissa++; + exponent++; + + // remove extra mantissa digits and zero-terminate mantissa + truncate_zeros(mantissa, exponent_string); + + // fill results + *out_mantissa = mantissa; + *out_exponent = exponent; + } +#endif + + PUGI__FN xpath_string convert_number_to_string(double value, xpath_allocator* alloc) + { + // try special number conversion + const char_t* special = convert_number_to_string_special(value); + if (special) return xpath_string::from_const(special); + + // get mantissa + exponent form + char mantissa_buffer[32]; + + char* mantissa; + int exponent; + convert_number_to_mantissa_exponent(value, mantissa_buffer, sizeof(mantissa_buffer), &mantissa, &exponent); + + // allocate a buffer of suitable length for the number + size_t result_size = strlen(mantissa_buffer) + (exponent > 0 ? exponent : -exponent) + 4; + char_t* result = static_cast(alloc->allocate(sizeof(char_t) * result_size)); + assert(result); + + // make the number! + char_t* s = result; + + // sign + if (value < 0) *s++ = '-'; + + // integer part + if (exponent <= 0) + { + *s++ = '0'; + } + else + { + while (exponent > 0) + { + assert(*mantissa == 0 || static_cast(static_cast(*mantissa) - '0') <= 9); + *s++ = *mantissa ? *mantissa++ : '0'; + exponent--; + } + } + + // fractional part + if (*mantissa) + { + // decimal point + *s++ = '.'; + + // extra zeroes from negative exponent + while (exponent < 0) + { + *s++ = '0'; + exponent++; + } + + // extra mantissa digits + while (*mantissa) + { + assert(static_cast(*mantissa - '0') <= 9); + *s++ = *mantissa++; + } + } + + // zero-terminate + assert(s < result + result_size); + *s = 0; + + return xpath_string::from_heap_preallocated(result, s); + } + + PUGI__FN bool check_string_to_number_format(const char_t* string) + { + // parse leading whitespace + while (PUGI__IS_CHARTYPE(*string, ct_space)) ++string; + + // parse sign + if (*string == '-') ++string; + + if (!*string) return false; + + // if there is no integer part, there should be a decimal part with at least one digit + if (!PUGI__IS_CHARTYPEX(string[0], ctx_digit) && (string[0] != '.' || !PUGI__IS_CHARTYPEX(string[1], ctx_digit))) return false; + + // parse integer part + while (PUGI__IS_CHARTYPEX(*string, ctx_digit)) ++string; + + // parse decimal part + if (*string == '.') + { + ++string; + + while (PUGI__IS_CHARTYPEX(*string, ctx_digit)) ++string; + } + + // parse trailing whitespace + while (PUGI__IS_CHARTYPE(*string, ct_space)) ++string; + + return *string == 0; + } + + PUGI__FN double convert_string_to_number(const char_t* string) + { + // check string format + if (!check_string_to_number_format(string)) return gen_nan(); + + // parse string + #ifdef PUGIXML_WCHAR_MODE + return wcstod(string, 0); + #else + return strtod(string, 0); + #endif + } + + PUGI__FN bool convert_string_to_number_scratch(char_t (&buffer)[32], const char_t* begin, const char_t* end, double* out_result) + { + size_t length = static_cast(end - begin); + char_t* scratch = buffer; + + if (length >= sizeof(buffer) / sizeof(buffer[0])) + { + // need to make dummy on-heap copy + scratch = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!scratch) return false; + } + + // copy string to zero-terminated buffer and perform conversion + memcpy(scratch, begin, length * sizeof(char_t)); + scratch[length] = 0; + + *out_result = convert_string_to_number(scratch); + + // free dummy buffer + if (scratch != buffer) xml_memory::deallocate(scratch); + + return true; + } + + PUGI__FN double round_nearest(double value) + { + return floor(value + 0.5); + } + + PUGI__FN double round_nearest_nzero(double value) + { + // same as round_nearest, but returns -0 for [-0.5, -0] + // ceil is used to differentiate between +0 and -0 (we return -0 for [-0.5, -0] and +0 for +0) + return (value >= -0.5 && value <= 0) ? ceil(value) : floor(value + 0.5); + } + + PUGI__FN const char_t* qualified_name(const xpath_node& node) + { + return node.attribute() ? node.attribute().name() : node.node().name(); + } + + PUGI__FN const char_t* local_name(const xpath_node& node) + { + const char_t* name = qualified_name(node); + const char_t* p = find_char(name, ':'); + + return p ? p + 1 : name; + } + + struct namespace_uri_predicate + { + const char_t* prefix; + size_t prefix_length; + + namespace_uri_predicate(const char_t* name) + { + const char_t* pos = find_char(name, ':'); + + prefix = pos ? name : 0; + prefix_length = pos ? static_cast(pos - name) : 0; + } + + bool operator()(xml_attribute a) const + { + const char_t* name = a.name(); + + if (!starts_with(name, PUGIXML_TEXT("xmlns"))) return false; + + return prefix ? name[5] == ':' && strequalrange(name + 6, prefix, prefix_length) : name[5] == 0; + } + }; + + PUGI__FN const char_t* namespace_uri(xml_node node) + { + namespace_uri_predicate pred = node.name(); + + xml_node p = node; + + while (p) + { + xml_attribute a = p.find_attribute(pred); + + if (a) return a.value(); + + p = p.parent(); + } + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* namespace_uri(xml_attribute attr, xml_node parent) + { + namespace_uri_predicate pred = attr.name(); + + // Default namespace does not apply to attributes + if (!pred.prefix) return PUGIXML_TEXT(""); + + xml_node p = parent; + + while (p) + { + xml_attribute a = p.find_attribute(pred); + + if (a) return a.value(); + + p = p.parent(); + } + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* namespace_uri(const xpath_node& node) + { + return node.attribute() ? namespace_uri(node.attribute(), node.parent()) : namespace_uri(node.node()); + } + + PUGI__FN char_t* normalize_space(char_t* buffer) + { + char_t* write = buffer; + + for (char_t* it = buffer; *it; ) + { + char_t ch = *it++; + + if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + // replace whitespace sequence with single space + while (PUGI__IS_CHARTYPE(*it, ct_space)) it++; + + // avoid leading spaces + if (write != buffer) *write++ = ' '; + } + else *write++ = ch; + } + + // remove trailing space + if (write != buffer && PUGI__IS_CHARTYPE(write[-1], ct_space)) write--; + + // zero-terminate + *write = 0; + + return write; + } + + PUGI__FN char_t* translate(char_t* buffer, const char_t* from, const char_t* to, size_t to_length) + { + char_t* write = buffer; + + while (*buffer) + { + PUGI__DMC_VOLATILE char_t ch = *buffer++; + + const char_t* pos = find_char(from, ch); + + if (!pos) + *write++ = ch; // do not process + else if (static_cast(pos - from) < to_length) + *write++ = to[pos - from]; // replace + } + + // zero-terminate + *write = 0; + + return write; + } + + PUGI__FN unsigned char* translate_table_generate(xpath_allocator* alloc, const char_t* from, const char_t* to) + { + unsigned char table[128] = {0}; + + while (*from) + { + unsigned int fc = static_cast(*from); + unsigned int tc = static_cast(*to); + + if (fc >= 128 || tc >= 128) + return 0; + + // code=128 means "skip character" + if (!table[fc]) + table[fc] = static_cast(tc ? tc : 128); + + from++; + if (tc) to++; + } + + for (int i = 0; i < 128; ++i) + if (!table[i]) + table[i] = static_cast(i); + + void* result = alloc->allocate_nothrow(sizeof(table)); + + if (result) + { + memcpy(result, table, sizeof(table)); + } + + return static_cast(result); + } + + PUGI__FN char_t* translate_table(char_t* buffer, const unsigned char* table) + { + char_t* write = buffer; + + while (*buffer) + { + char_t ch = *buffer++; + unsigned int index = static_cast(ch); + + if (index < 128) + { + unsigned char code = table[index]; + + // code=128 means "skip character" (table size is 128 so 128 can be a special value) + // this code skips these characters without extra branches + *write = static_cast(code); + write += 1 - (code >> 7); + } + else + { + *write++ = ch; + } + } + + // zero-terminate + *write = 0; + + return write; + } + + inline bool is_xpath_attribute(const char_t* name) + { + return !(starts_with(name, PUGIXML_TEXT("xmlns")) && (name[5] == 0 || name[5] == ':')); + } + + struct xpath_variable_boolean: xpath_variable + { + xpath_variable_boolean(): xpath_variable(xpath_type_boolean), value(false) + { + } + + bool value; + char_t name[1]; + }; + + struct xpath_variable_number: xpath_variable + { + xpath_variable_number(): xpath_variable(xpath_type_number), value(0) + { + } + + double value; + char_t name[1]; + }; + + struct xpath_variable_string: xpath_variable + { + xpath_variable_string(): xpath_variable(xpath_type_string), value(0) + { + } + + ~xpath_variable_string() + { + if (value) xml_memory::deallocate(value); + } + + char_t* value; + char_t name[1]; + }; + + struct xpath_variable_node_set: xpath_variable + { + xpath_variable_node_set(): xpath_variable(xpath_type_node_set) + { + } + + xpath_node_set value; + char_t name[1]; + }; + + static const xpath_node_set dummy_node_set; + + PUGI__FN unsigned int hash_string(const char_t* str) + { + // Jenkins one-at-a-time hash (http://en.wikipedia.org/wiki/Jenkins_hash_function#one-at-a-time) + unsigned int result = 0; + + while (*str) + { + result += static_cast(*str++); + result += result << 10; + result ^= result >> 6; + } + + result += result << 3; + result ^= result >> 11; + result += result << 15; + + return result; + } + + template PUGI__FN T* new_xpath_variable(const char_t* name) + { + size_t length = strlength(name); + if (length == 0) return 0; // empty variable names are invalid + + // $$ we can't use offsetof(T, name) because T is non-POD, so we just allocate additional length characters + void* memory = xml_memory::allocate(sizeof(T) + length * sizeof(char_t)); + if (!memory) return 0; + + T* result = new (memory) T(); + + memcpy(result->name, name, (length + 1) * sizeof(char_t)); + + return result; + } + + PUGI__FN xpath_variable* new_xpath_variable(xpath_value_type type, const char_t* name) + { + switch (type) + { + case xpath_type_node_set: + return new_xpath_variable(name); + + case xpath_type_number: + return new_xpath_variable(name); + + case xpath_type_string: + return new_xpath_variable(name); + + case xpath_type_boolean: + return new_xpath_variable(name); + + default: + return 0; + } + } + + template PUGI__FN void delete_xpath_variable(T* var) + { + var->~T(); + xml_memory::deallocate(var); + } + + PUGI__FN void delete_xpath_variable(xpath_value_type type, xpath_variable* var) + { + switch (type) + { + case xpath_type_node_set: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_number: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_string: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_boolean: + delete_xpath_variable(static_cast(var)); + break; + + default: + assert(!"Invalid variable type"); + } + } + + PUGI__FN bool copy_xpath_variable(xpath_variable* lhs, const xpath_variable* rhs) + { + switch (rhs->type()) + { + case xpath_type_node_set: + return lhs->set(static_cast(rhs)->value); + + case xpath_type_number: + return lhs->set(static_cast(rhs)->value); + + case xpath_type_string: + return lhs->set(static_cast(rhs)->value); + + case xpath_type_boolean: + return lhs->set(static_cast(rhs)->value); + + default: + assert(!"Invalid variable type"); + return false; + } + } + + PUGI__FN bool get_variable_scratch(char_t (&buffer)[32], xpath_variable_set* set, const char_t* begin, const char_t* end, xpath_variable** out_result) + { + size_t length = static_cast(end - begin); + char_t* scratch = buffer; + + if (length >= sizeof(buffer) / sizeof(buffer[0])) + { + // need to make dummy on-heap copy + scratch = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!scratch) return false; + } + + // copy string to zero-terminated buffer and perform lookup + memcpy(scratch, begin, length * sizeof(char_t)); + scratch[length] = 0; + + *out_result = set->get(scratch); + + // free dummy buffer + if (scratch != buffer) xml_memory::deallocate(scratch); + + return true; + } +PUGI__NS_END + +// Internal node set class +PUGI__NS_BEGIN + PUGI__FN xpath_node_set::type_t xpath_get_order(const xpath_node* begin, const xpath_node* end) + { + if (end - begin < 2) + return xpath_node_set::type_sorted; + + document_order_comparator cmp; + + bool first = cmp(begin[0], begin[1]); + + for (const xpath_node* it = begin + 1; it + 1 < end; ++it) + if (cmp(it[0], it[1]) != first) + return xpath_node_set::type_unsorted; + + return first ? xpath_node_set::type_sorted : xpath_node_set::type_sorted_reverse; + } + + PUGI__FN xpath_node_set::type_t xpath_sort(xpath_node* begin, xpath_node* end, xpath_node_set::type_t type, bool rev) + { + xpath_node_set::type_t order = rev ? xpath_node_set::type_sorted_reverse : xpath_node_set::type_sorted; + + if (type == xpath_node_set::type_unsorted) + { + xpath_node_set::type_t sorted = xpath_get_order(begin, end); + + if (sorted == xpath_node_set::type_unsorted) + { + sort(begin, end, document_order_comparator()); + + type = xpath_node_set::type_sorted; + } + else + type = sorted; + } + + if (type != order) reverse(begin, end); + + return order; + } + + PUGI__FN xpath_node xpath_first(const xpath_node* begin, const xpath_node* end, xpath_node_set::type_t type) + { + if (begin == end) return xpath_node(); + + switch (type) + { + case xpath_node_set::type_sorted: + return *begin; + + case xpath_node_set::type_sorted_reverse: + return *(end - 1); + + case xpath_node_set::type_unsorted: + return *min_element(begin, end, document_order_comparator()); + + default: + assert(!"Invalid node set type"); + return xpath_node(); + } + } + + class xpath_node_set_raw + { + xpath_node_set::type_t _type; + + xpath_node* _begin; + xpath_node* _end; + xpath_node* _eos; + + public: + xpath_node_set_raw(): _type(xpath_node_set::type_unsorted), _begin(0), _end(0), _eos(0) + { + } + + xpath_node* begin() const + { + return _begin; + } + + xpath_node* end() const + { + return _end; + } + + bool empty() const + { + return _begin == _end; + } + + size_t size() const + { + return static_cast(_end - _begin); + } + + xpath_node first() const + { + return xpath_first(_begin, _end, _type); + } + + void push_back_grow(const xpath_node& node, xpath_allocator* alloc); + + void push_back(const xpath_node& node, xpath_allocator* alloc) + { + if (_end != _eos) + *_end++ = node; + else + push_back_grow(node, alloc); + } + + void append(const xpath_node* begin_, const xpath_node* end_, xpath_allocator* alloc) + { + if (begin_ == end_) return; + + size_t size_ = static_cast(_end - _begin); + size_t capacity = static_cast(_eos - _begin); + size_t count = static_cast(end_ - begin_); + + if (size_ + count > capacity) + { + // reallocate the old array or allocate a new one + xpath_node* data = static_cast(alloc->reallocate(_begin, capacity * sizeof(xpath_node), (size_ + count) * sizeof(xpath_node))); + assert(data); + + // finalize + _begin = data; + _end = data + size_; + _eos = data + size_ + count; + } + + memcpy(_end, begin_, count * sizeof(xpath_node)); + _end += count; + } + + void sort_do() + { + _type = xpath_sort(_begin, _end, _type, false); + } + + void truncate(xpath_node* pos) + { + assert(_begin <= pos && pos <= _end); + + _end = pos; + } + + void remove_duplicates() + { + if (_type == xpath_node_set::type_unsorted) + sort(_begin, _end, duplicate_comparator()); + + _end = unique(_begin, _end); + } + + xpath_node_set::type_t type() const + { + return _type; + } + + void set_type(xpath_node_set::type_t value) + { + _type = value; + } + }; + + PUGI__FN_NO_INLINE void xpath_node_set_raw::push_back_grow(const xpath_node& node, xpath_allocator* alloc) + { + size_t capacity = static_cast(_eos - _begin); + + // get new capacity (1.5x rule) + size_t new_capacity = capacity + capacity / 2 + 1; + + // reallocate the old array or allocate a new one + xpath_node* data = static_cast(alloc->reallocate(_begin, capacity * sizeof(xpath_node), new_capacity * sizeof(xpath_node))); + assert(data); + + // finalize + _begin = data; + _end = data + capacity; + _eos = data + new_capacity; + + // push + *_end++ = node; + } +PUGI__NS_END + +PUGI__NS_BEGIN + struct xpath_context + { + xpath_node n; + size_t position, size; + + xpath_context(const xpath_node& n_, size_t position_, size_t size_): n(n_), position(position_), size(size_) + { + } + }; + + enum lexeme_t + { + lex_none = 0, + lex_equal, + lex_not_equal, + lex_less, + lex_greater, + lex_less_or_equal, + lex_greater_or_equal, + lex_plus, + lex_minus, + lex_multiply, + lex_union, + lex_var_ref, + lex_open_brace, + lex_close_brace, + lex_quoted_string, + lex_number, + lex_slash, + lex_double_slash, + lex_open_square_brace, + lex_close_square_brace, + lex_string, + lex_comma, + lex_axis_attribute, + lex_dot, + lex_double_dot, + lex_double_colon, + lex_eof + }; + + struct xpath_lexer_string + { + const char_t* begin; + const char_t* end; + + xpath_lexer_string(): begin(0), end(0) + { + } + + bool operator==(const char_t* other) const + { + size_t length = static_cast(end - begin); + + return strequalrange(other, begin, length); + } + }; + + class xpath_lexer + { + const char_t* _cur; + const char_t* _cur_lexeme_pos; + xpath_lexer_string _cur_lexeme_contents; + + lexeme_t _cur_lexeme; + + public: + explicit xpath_lexer(const char_t* query): _cur(query) + { + next(); + } + + const char_t* state() const + { + return _cur; + } + + void next() + { + const char_t* cur = _cur; + + while (PUGI__IS_CHARTYPE(*cur, ct_space)) ++cur; + + // save lexeme position for error reporting + _cur_lexeme_pos = cur; + + switch (*cur) + { + case 0: + _cur_lexeme = lex_eof; + break; + + case '>': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_greater_or_equal; + } + else + { + cur += 1; + _cur_lexeme = lex_greater; + } + break; + + case '<': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_less_or_equal; + } + else + { + cur += 1; + _cur_lexeme = lex_less; + } + break; + + case '!': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_not_equal; + } + else + { + _cur_lexeme = lex_none; + } + break; + + case '=': + cur += 1; + _cur_lexeme = lex_equal; + + break; + + case '+': + cur += 1; + _cur_lexeme = lex_plus; + + break; + + case '-': + cur += 1; + _cur_lexeme = lex_minus; + + break; + + case '*': + cur += 1; + _cur_lexeme = lex_multiply; + + break; + + case '|': + cur += 1; + _cur_lexeme = lex_union; + + break; + + case '$': + cur += 1; + + if (PUGI__IS_CHARTYPEX(*cur, ctx_start_symbol)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + + if (cur[0] == ':' && PUGI__IS_CHARTYPEX(cur[1], ctx_symbol)) // qname + { + cur++; // : + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_var_ref; + } + else + { + _cur_lexeme = lex_none; + } + + break; + + case '(': + cur += 1; + _cur_lexeme = lex_open_brace; + + break; + + case ')': + cur += 1; + _cur_lexeme = lex_close_brace; + + break; + + case '[': + cur += 1; + _cur_lexeme = lex_open_square_brace; + + break; + + case ']': + cur += 1; + _cur_lexeme = lex_close_square_brace; + + break; + + case ',': + cur += 1; + _cur_lexeme = lex_comma; + + break; + + case '/': + if (*(cur+1) == '/') + { + cur += 2; + _cur_lexeme = lex_double_slash; + } + else + { + cur += 1; + _cur_lexeme = lex_slash; + } + break; + + case '.': + if (*(cur+1) == '.') + { + cur += 2; + _cur_lexeme = lex_double_dot; + } + else if (PUGI__IS_CHARTYPEX(*(cur+1), ctx_digit)) + { + _cur_lexeme_contents.begin = cur; // . + + ++cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_number; + } + else + { + cur += 1; + _cur_lexeme = lex_dot; + } + break; + + case '@': + cur += 1; + _cur_lexeme = lex_axis_attribute; + + break; + + case '"': + case '\'': + { + char_t terminator = *cur; + + ++cur; + + _cur_lexeme_contents.begin = cur; + while (*cur && *cur != terminator) cur++; + _cur_lexeme_contents.end = cur; + + if (!*cur) + _cur_lexeme = lex_none; + else + { + cur += 1; + _cur_lexeme = lex_quoted_string; + } + + break; + } + + case ':': + if (*(cur+1) == ':') + { + cur += 2; + _cur_lexeme = lex_double_colon; + } + else + { + _cur_lexeme = lex_none; + } + break; + + default: + if (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + + if (*cur == '.') + { + cur++; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_number; + } + else if (PUGI__IS_CHARTYPEX(*cur, ctx_start_symbol)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + + if (cur[0] == ':') + { + if (cur[1] == '*') // namespace test ncname:* + { + cur += 2; // :* + } + else if (PUGI__IS_CHARTYPEX(cur[1], ctx_symbol)) // namespace test qname + { + cur++; // : + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + } + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_string; + } + else + { + _cur_lexeme = lex_none; + } + } + + _cur = cur; + } + + lexeme_t current() const + { + return _cur_lexeme; + } + + const char_t* current_pos() const + { + return _cur_lexeme_pos; + } + + const xpath_lexer_string& contents() const + { + assert(_cur_lexeme == lex_var_ref || _cur_lexeme == lex_number || _cur_lexeme == lex_string || _cur_lexeme == lex_quoted_string); + + return _cur_lexeme_contents; + } + }; + + enum ast_type_t + { + ast_unknown, + ast_op_or, // left or right + ast_op_and, // left and right + ast_op_equal, // left = right + ast_op_not_equal, // left != right + ast_op_less, // left < right + ast_op_greater, // left > right + ast_op_less_or_equal, // left <= right + ast_op_greater_or_equal, // left >= right + ast_op_add, // left + right + ast_op_subtract, // left - right + ast_op_multiply, // left * right + ast_op_divide, // left / right + ast_op_mod, // left % right + ast_op_negate, // left - right + ast_op_union, // left | right + ast_predicate, // apply predicate to set; next points to next predicate + ast_filter, // select * from left where right + ast_string_constant, // string constant + ast_number_constant, // number constant + ast_variable, // variable + ast_func_last, // last() + ast_func_position, // position() + ast_func_count, // count(left) + ast_func_id, // id(left) + ast_func_local_name_0, // local-name() + ast_func_local_name_1, // local-name(left) + ast_func_namespace_uri_0, // namespace-uri() + ast_func_namespace_uri_1, // namespace-uri(left) + ast_func_name_0, // name() + ast_func_name_1, // name(left) + ast_func_string_0, // string() + ast_func_string_1, // string(left) + ast_func_concat, // concat(left, right, siblings) + ast_func_starts_with, // starts_with(left, right) + ast_func_contains, // contains(left, right) + ast_func_substring_before, // substring-before(left, right) + ast_func_substring_after, // substring-after(left, right) + ast_func_substring_2, // substring(left, right) + ast_func_substring_3, // substring(left, right, third) + ast_func_string_length_0, // string-length() + ast_func_string_length_1, // string-length(left) + ast_func_normalize_space_0, // normalize-space() + ast_func_normalize_space_1, // normalize-space(left) + ast_func_translate, // translate(left, right, third) + ast_func_boolean, // boolean(left) + ast_func_not, // not(left) + ast_func_true, // true() + ast_func_false, // false() + ast_func_lang, // lang(left) + ast_func_number_0, // number() + ast_func_number_1, // number(left) + ast_func_sum, // sum(left) + ast_func_floor, // floor(left) + ast_func_ceiling, // ceiling(left) + ast_func_round, // round(left) + ast_step, // process set left with step + ast_step_root, // select root node + + ast_opt_translate_table, // translate(left, right, third) where right/third are constants + ast_opt_compare_attribute // @name = 'string' + }; + + enum axis_t + { + axis_ancestor, + axis_ancestor_or_self, + axis_attribute, + axis_child, + axis_descendant, + axis_descendant_or_self, + axis_following, + axis_following_sibling, + axis_namespace, + axis_parent, + axis_preceding, + axis_preceding_sibling, + axis_self + }; + + enum nodetest_t + { + nodetest_none, + nodetest_name, + nodetest_type_node, + nodetest_type_comment, + nodetest_type_pi, + nodetest_type_text, + nodetest_pi, + nodetest_all, + nodetest_all_in_namespace + }; + + enum predicate_t + { + predicate_default, + predicate_posinv, + predicate_constant, + predicate_constant_one + }; + + enum nodeset_eval_t + { + nodeset_eval_all, + nodeset_eval_any, + nodeset_eval_first + }; + + template struct axis_to_type + { + static const axis_t axis; + }; + + template const axis_t axis_to_type::axis = N; + + class xpath_ast_node + { + private: + // node type + char _type; + char _rettype; + + // for ast_step + char _axis; + + // for ast_step/ast_predicate/ast_filter + char _test; + + // tree node structure + xpath_ast_node* _left; + xpath_ast_node* _right; + xpath_ast_node* _next; + + union + { + // value for ast_string_constant + const char_t* string; + // value for ast_number_constant + double number; + // variable for ast_variable + xpath_variable* variable; + // node test for ast_step (node name/namespace/node type/pi target) + const char_t* nodetest; + // table for ast_opt_translate_table + const unsigned char* table; + } _data; + + xpath_ast_node(const xpath_ast_node&); + xpath_ast_node& operator=(const xpath_ast_node&); + + template static bool compare_eq(xpath_ast_node* lhs, xpath_ast_node* rhs, const xpath_context& c, const xpath_stack& stack, const Comp& comp) + { + xpath_value_type lt = lhs->rettype(), rt = rhs->rettype(); + + if (lt != xpath_type_node_set && rt != xpath_type_node_set) + { + if (lt == xpath_type_boolean || rt == xpath_type_boolean) + return comp(lhs->eval_boolean(c, stack), rhs->eval_boolean(c, stack)); + else if (lt == xpath_type_number || rt == xpath_type_number) + return comp(lhs->eval_number(c, stack), rhs->eval_number(c, stack)); + else if (lt == xpath_type_string || rt == xpath_type_string) + { + xpath_allocator_capture cr(stack.result); + + xpath_string ls = lhs->eval_string(c, stack); + xpath_string rs = rhs->eval_string(c, stack); + + return comp(ls, rs); + } + } + else if (lt == xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(string_value(*li, stack.result), string_value(*ri, stack.result))) + return true; + } + + return false; + } + else + { + if (lt == xpath_type_node_set) + { + swap(lhs, rhs); + swap(lt, rt); + } + + if (lt == xpath_type_boolean) + return comp(lhs->eval_boolean(c, stack), rhs->eval_boolean(c, stack)); + else if (lt == xpath_type_number) + { + xpath_allocator_capture cr(stack.result); + + double l = lhs->eval_number(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + + return false; + } + else if (lt == xpath_type_string) + { + xpath_allocator_capture cr(stack.result); + + xpath_string l = lhs->eval_string(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, string_value(*ri, stack.result))) + return true; + } + + return false; + } + } + + assert(!"Wrong types"); + return false; + } + + static bool eval_once(xpath_node_set::type_t type, nodeset_eval_t eval) + { + return type == xpath_node_set::type_sorted ? eval != nodeset_eval_all : eval == nodeset_eval_any; + } + + template static bool compare_rel(xpath_ast_node* lhs, xpath_ast_node* rhs, const xpath_context& c, const xpath_stack& stack, const Comp& comp) + { + xpath_value_type lt = lhs->rettype(), rt = rhs->rettype(); + + if (lt != xpath_type_node_set && rt != xpath_type_node_set) + return comp(lhs->eval_number(c, stack), rhs->eval_number(c, stack)); + else if (lt == xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + { + xpath_allocator_capture cri(stack.result); + + double l = convert_string_to_number(string_value(*li, stack.result).c_str()); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture crii(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + } + + return false; + } + else if (lt != xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + double l = lhs->eval_number(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + + return false; + } + else if (lt == xpath_type_node_set && rt != xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + double r = rhs->eval_number(c, stack); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + { + xpath_allocator_capture cri(stack.result); + + if (comp(convert_string_to_number(string_value(*li, stack.result).c_str()), r)) + return true; + } + + return false; + } + else + { + assert(!"Wrong types"); + return false; + } + } + + static void apply_predicate_boolean(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack, bool once) + { + assert(ns.size() >= first); + assert(expr->rettype() != xpath_type_number); + + size_t i = 1; + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + // remove_if... or well, sort of + for (xpath_node* it = last; it != ns.end(); ++it, ++i) + { + xpath_context c(*it, i, size); + + if (expr->eval_boolean(c, stack)) + { + *last++ = *it; + + if (once) break; + } + } + + ns.truncate(last); + } + + static void apply_predicate_number(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack, bool once) + { + assert(ns.size() >= first); + assert(expr->rettype() == xpath_type_number); + + size_t i = 1; + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + // remove_if... or well, sort of + for (xpath_node* it = last; it != ns.end(); ++it, ++i) + { + xpath_context c(*it, i, size); + + if (expr->eval_number(c, stack) == i) + { + *last++ = *it; + + if (once) break; + } + } + + ns.truncate(last); + } + + static void apply_predicate_number_const(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack) + { + assert(ns.size() >= first); + assert(expr->rettype() == xpath_type_number); + + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + xpath_context c(xpath_node(), 1, size); + + double er = expr->eval_number(c, stack); + + if (er >= 1.0 && er <= size) + { + size_t eri = static_cast(er); + + if (er == eri) + { + xpath_node r = last[eri - 1]; + + *last++ = r; + } + } + + ns.truncate(last); + } + + void apply_predicate(xpath_node_set_raw& ns, size_t first, const xpath_stack& stack, bool once) + { + if (ns.size() == first) return; + + assert(_type == ast_filter || _type == ast_predicate); + + if (_test == predicate_constant || _test == predicate_constant_one) + apply_predicate_number_const(ns, first, _right, stack); + else if (_right->rettype() == xpath_type_number) + apply_predicate_number(ns, first, _right, stack, once); + else + apply_predicate_boolean(ns, first, _right, stack, once); + } + + void apply_predicates(xpath_node_set_raw& ns, size_t first, const xpath_stack& stack, nodeset_eval_t eval) + { + if (ns.size() == first) return; + + bool last_once = eval_once(ns.type(), eval); + + for (xpath_ast_node* pred = _right; pred; pred = pred->_next) + pred->apply_predicate(ns, first, stack, !pred->_next && last_once); + } + + bool step_push(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_node_struct* parent, xpath_allocator* alloc) + { + assert(a); + + const char_t* name = a->name ? a->name + 0 : PUGIXML_TEXT(""); + + switch (_test) + { + case nodetest_name: + if (strequal(name, _data.nodetest) && is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + case nodetest_type_node: + case nodetest_all: + if (is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + case nodetest_all_in_namespace: + if (starts_with(name, _data.nodetest) && is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + default: + ; + } + + return false; + } + + bool step_push(xpath_node_set_raw& ns, xml_node_struct* n, xpath_allocator* alloc) + { + assert(n); + + xml_node_type type = PUGI__NODETYPE(n); + + switch (_test) + { + case nodetest_name: + if (type == node_element && n->name && strequal(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_node: + ns.push_back(xml_node(n), alloc); + return true; + + case nodetest_type_comment: + if (type == node_comment) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_text: + if (type == node_pcdata || type == node_cdata) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_pi: + if (type == node_pi) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_pi: + if (type == node_pi && n->name && strequal(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_all: + if (type == node_element) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_all_in_namespace: + if (type == node_element && n->name && starts_with(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + default: + assert(!"Unknown axis"); + } + + return false; + } + + template void step_fill(xpath_node_set_raw& ns, xml_node_struct* n, xpath_allocator* alloc, bool once, T) + { + const axis_t axis = T::axis; + + switch (axis) + { + case axis_attribute: + { + for (xml_attribute_struct* a = n->first_attribute; a; a = a->next_attribute) + if (step_push(ns, a, n, alloc) & once) + return; + + break; + } + + case axis_child: + { + for (xml_node_struct* c = n->first_child; c; c = c->next_sibling) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_descendant: + case axis_descendant_or_self: + { + if (axis == axis_descendant_or_self) + if (step_push(ns, n, alloc) & once) + return; + + xml_node_struct* cur = n->first_child; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (cur == n) return; + } + + cur = cur->next_sibling; + } + } + + break; + } + + case axis_following_sibling: + { + for (xml_node_struct* c = n->next_sibling; c; c = c->next_sibling) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_preceding_sibling: + { + for (xml_node_struct* c = n->prev_sibling_c; c->next_sibling; c = c->prev_sibling_c) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_following: + { + xml_node_struct* cur = n; + + // exit from this node so that we don't include descendants + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + } + } + + break; + } + + case axis_preceding: + { + xml_node_struct* cur = n; + + // exit from this node so that we don't include descendants + while (!cur->prev_sibling_c->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->prev_sibling_c; + + while (cur) + { + if (cur->first_child) + cur = cur->first_child->prev_sibling_c; + else + { + // leaf node, can't be ancestor + if (step_push(ns, cur, alloc) & once) + return; + + while (!cur->prev_sibling_c->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + + if (!node_is_ancestor(cur, n)) + if (step_push(ns, cur, alloc) & once) + return; + } + + cur = cur->prev_sibling_c; + } + } + + break; + } + + case axis_ancestor: + case axis_ancestor_or_self: + { + if (axis == axis_ancestor_or_self) + if (step_push(ns, n, alloc) & once) + return; + + xml_node_struct* cur = n->parent; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + cur = cur->parent; + } + + break; + } + + case axis_self: + { + step_push(ns, n, alloc); + + break; + } + + case axis_parent: + { + if (n->parent) + step_push(ns, n->parent, alloc); + + break; + } + + default: + assert(!"Unimplemented axis"); + } + } + + template void step_fill(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_node_struct* p, xpath_allocator* alloc, bool once, T v) + { + const axis_t axis = T::axis; + + switch (axis) + { + case axis_ancestor: + case axis_ancestor_or_self: + { + if (axis == axis_ancestor_or_self && _test == nodetest_type_node) // reject attributes based on principal node type test + if (step_push(ns, a, p, alloc) & once) + return; + + xml_node_struct* cur = p; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + cur = cur->parent; + } + + break; + } + + case axis_descendant_or_self: + case axis_self: + { + if (_test == nodetest_type_node) // reject attributes based on principal node type test + step_push(ns, a, p, alloc); + + break; + } + + case axis_following: + { + xml_node_struct* cur = p; + + while (cur) + { + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + } + + if (step_push(ns, cur, alloc) & once) + return; + } + + break; + } + + case axis_parent: + { + step_push(ns, p, alloc); + + break; + } + + case axis_preceding: + { + // preceding:: axis does not include attribute nodes and attribute ancestors (they are the same as parent's ancestors), so we can reuse node preceding + step_fill(ns, p, alloc, once, v); + break; + } + + default: + assert(!"Unimplemented axis"); + } + } + + template void step_fill(xpath_node_set_raw& ns, const xpath_node& xn, xpath_allocator* alloc, bool once, T v) + { + const axis_t axis = T::axis; + const bool axis_has_attributes = (axis == axis_ancestor || axis == axis_ancestor_or_self || axis == axis_descendant_or_self || axis == axis_following || axis == axis_parent || axis == axis_preceding || axis == axis_self); + + if (xn.node()) + step_fill(ns, xn.node().internal_object(), alloc, once, v); + else if (axis_has_attributes && xn.attribute() && xn.parent()) + step_fill(ns, xn.attribute().internal_object(), xn.parent().internal_object(), alloc, once, v); + } + + template xpath_node_set_raw step_do(const xpath_context& c, const xpath_stack& stack, nodeset_eval_t eval, T v) + { + const axis_t axis = T::axis; + const bool axis_reverse = (axis == axis_ancestor || axis == axis_ancestor_or_self || axis == axis_preceding || axis == axis_preceding_sibling); + const xpath_node_set::type_t axis_type = axis_reverse ? xpath_node_set::type_sorted_reverse : xpath_node_set::type_sorted; + + bool once = + (axis == axis_attribute && _test == nodetest_name) || + (!_right && eval_once(axis_type, eval)) || + (_right && !_right->_next && _right->_test == predicate_constant_one); + + xpath_node_set_raw ns; + ns.set_type(axis_type); + + if (_left) + { + xpath_node_set_raw s = _left->eval_node_set(c, stack, nodeset_eval_all); + + // self axis preserves the original order + if (axis == axis_self) ns.set_type(s.type()); + + for (const xpath_node* it = s.begin(); it != s.end(); ++it) + { + size_t size = ns.size(); + + // in general, all axes generate elements in a particular order, but there is no order guarantee if axis is applied to two nodes + if (axis != axis_self && size != 0) ns.set_type(xpath_node_set::type_unsorted); + + step_fill(ns, *it, stack.result, once, v); + if (_right) apply_predicates(ns, size, stack, eval); + } + } + else + { + step_fill(ns, c.n, stack.result, once, v); + if (_right) apply_predicates(ns, 0, stack, eval); + } + + // child, attribute and self axes always generate unique set of nodes + // for other axis, if the set stayed sorted, it stayed unique because the traversal algorithms do not visit the same node twice + if (axis != axis_child && axis != axis_attribute && axis != axis_self && ns.type() == xpath_node_set::type_unsorted) + ns.remove_duplicates(); + + return ns; + } + + public: + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, const char_t* value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_string_constant); + _data.string = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, double value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_number_constant); + _data.number = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_variable* value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_variable); + _data.variable = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_ast_node* left = 0, xpath_ast_node* right = 0): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(left), _right(right), _next(0) + { + } + + xpath_ast_node(ast_type_t type, xpath_ast_node* left, axis_t axis, nodetest_t test, const char_t* contents): + _type(static_cast(type)), _rettype(xpath_type_node_set), _axis(static_cast(axis)), _test(static_cast(test)), _left(left), _right(0), _next(0) + { + assert(type == ast_step); + _data.nodetest = contents; + } + + xpath_ast_node(ast_type_t type, xpath_ast_node* left, xpath_ast_node* right, predicate_t test): + _type(static_cast(type)), _rettype(xpath_type_node_set), _axis(0), _test(static_cast(test)), _left(left), _right(right), _next(0) + { + assert(type == ast_filter || type == ast_predicate); + } + + void set_next(xpath_ast_node* value) + { + _next = value; + } + + void set_right(xpath_ast_node* value) + { + _right = value; + } + + bool eval_boolean(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_op_or: + return _left->eval_boolean(c, stack) || _right->eval_boolean(c, stack); + + case ast_op_and: + return _left->eval_boolean(c, stack) && _right->eval_boolean(c, stack); + + case ast_op_equal: + return compare_eq(_left, _right, c, stack, equal_to()); + + case ast_op_not_equal: + return compare_eq(_left, _right, c, stack, not_equal_to()); + + case ast_op_less: + return compare_rel(_left, _right, c, stack, less()); + + case ast_op_greater: + return compare_rel(_right, _left, c, stack, less()); + + case ast_op_less_or_equal: + return compare_rel(_left, _right, c, stack, less_equal()); + + case ast_op_greater_or_equal: + return compare_rel(_right, _left, c, stack, less_equal()); + + case ast_func_starts_with: + { + xpath_allocator_capture cr(stack.result); + + xpath_string lr = _left->eval_string(c, stack); + xpath_string rr = _right->eval_string(c, stack); + + return starts_with(lr.c_str(), rr.c_str()); + } + + case ast_func_contains: + { + xpath_allocator_capture cr(stack.result); + + xpath_string lr = _left->eval_string(c, stack); + xpath_string rr = _right->eval_string(c, stack); + + return find_substring(lr.c_str(), rr.c_str()) != 0; + } + + case ast_func_boolean: + return _left->eval_boolean(c, stack); + + case ast_func_not: + return !_left->eval_boolean(c, stack); + + case ast_func_true: + return true; + + case ast_func_false: + return false; + + case ast_func_lang: + { + if (c.n.attribute()) return false; + + xpath_allocator_capture cr(stack.result); + + xpath_string lang = _left->eval_string(c, stack); + + for (xml_node n = c.n.node(); n; n = n.parent()) + { + xml_attribute a = n.attribute(PUGIXML_TEXT("xml:lang")); + + if (a) + { + const char_t* value = a.value(); + + // strnicmp / strncasecmp is not portable + for (const char_t* lit = lang.c_str(); *lit; ++lit) + { + if (tolower_ascii(*lit) != tolower_ascii(*value)) return false; + ++value; + } + + return *value == 0 || *value == '-'; + } + } + + return false; + } + + case ast_opt_compare_attribute: + { + const char_t* value = (_right->_type == ast_string_constant) ? _right->_data.string : _right->_data.variable->get_string(); + + xml_attribute attr = c.n.node().attribute(_left->_data.nodetest); + + return attr && strequal(attr.value(), value) && is_xpath_attribute(attr.name()); + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_boolean) + return _data.variable->get_boolean(); + + // fallthrough to type conversion + } + + default: + { + switch (_rettype) + { + case xpath_type_number: + return convert_number_to_boolean(eval_number(c, stack)); + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return !eval_string(c, stack).empty(); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return !eval_node_set(c, stack, nodeset_eval_any).empty(); + } + + default: + assert(!"Wrong expression for return type boolean"); + return false; + } + } + } + } + + double eval_number(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_op_add: + return _left->eval_number(c, stack) + _right->eval_number(c, stack); + + case ast_op_subtract: + return _left->eval_number(c, stack) - _right->eval_number(c, stack); + + case ast_op_multiply: + return _left->eval_number(c, stack) * _right->eval_number(c, stack); + + case ast_op_divide: + return _left->eval_number(c, stack) / _right->eval_number(c, stack); + + case ast_op_mod: + return fmod(_left->eval_number(c, stack), _right->eval_number(c, stack)); + + case ast_op_negate: + return -_left->eval_number(c, stack); + + case ast_number_constant: + return _data.number; + + case ast_func_last: + return static_cast(c.size); + + case ast_func_position: + return static_cast(c.position); + + case ast_func_count: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(_left->eval_node_set(c, stack, nodeset_eval_all).size()); + } + + case ast_func_string_length_0: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(string_value(c.n, stack.result).length()); + } + + case ast_func_string_length_1: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(_left->eval_string(c, stack).length()); + } + + case ast_func_number_0: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(string_value(c.n, stack.result).c_str()); + } + + case ast_func_number_1: + return _left->eval_number(c, stack); + + case ast_func_sum: + { + xpath_allocator_capture cr(stack.result); + + double r = 0; + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* it = ns.begin(); it != ns.end(); ++it) + { + xpath_allocator_capture cri(stack.result); + + r += convert_string_to_number(string_value(*it, stack.result).c_str()); + } + + return r; + } + + case ast_func_floor: + { + double r = _left->eval_number(c, stack); + + return r == r ? floor(r) : r; + } + + case ast_func_ceiling: + { + double r = _left->eval_number(c, stack); + + return r == r ? ceil(r) : r; + } + + case ast_func_round: + return round_nearest_nzero(_left->eval_number(c, stack)); + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_number) + return _data.variable->get_number(); + + // fallthrough to type conversion + } + + default: + { + switch (_rettype) + { + case xpath_type_boolean: + return eval_boolean(c, stack) ? 1 : 0; + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + default: + assert(!"Wrong expression for return type number"); + return 0; + } + + } + } + } + + xpath_string eval_string_concat(const xpath_context& c, const xpath_stack& stack) + { + assert(_type == ast_func_concat); + + xpath_allocator_capture ct(stack.temp); + + // count the string number + size_t count = 1; + for (xpath_ast_node* nc = _right; nc; nc = nc->_next) count++; + + // gather all strings + xpath_string static_buffer[4]; + xpath_string* buffer = static_buffer; + + // allocate on-heap for large concats + if (count > sizeof(static_buffer) / sizeof(static_buffer[0])) + { + buffer = static_cast(stack.temp->allocate(count * sizeof(xpath_string))); + assert(buffer); + } + + // evaluate all strings to temporary stack + xpath_stack swapped_stack = {stack.temp, stack.result}; + + buffer[0] = _left->eval_string(c, swapped_stack); + + size_t pos = 1; + for (xpath_ast_node* n = _right; n; n = n->_next, ++pos) buffer[pos] = n->eval_string(c, swapped_stack); + assert(pos == count); + + // get total length + size_t length = 0; + for (size_t i = 0; i < count; ++i) length += buffer[i].length(); + + // create final string + char_t* result = static_cast(stack.result->allocate((length + 1) * sizeof(char_t))); + assert(result); + + char_t* ri = result; + + for (size_t j = 0; j < count; ++j) + for (const char_t* bi = buffer[j].c_str(); *bi; ++bi) + *ri++ = *bi; + + *ri = 0; + + return xpath_string::from_heap_preallocated(result, ri); + } + + xpath_string eval_string(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_string_constant: + return xpath_string::from_const(_data.string); + + case ast_func_local_name_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(local_name(na)); + } + + case ast_func_local_name_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(local_name(na)); + } + + case ast_func_name_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(qualified_name(na)); + } + + case ast_func_name_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(qualified_name(na)); + } + + case ast_func_namespace_uri_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(namespace_uri(na)); + } + + case ast_func_namespace_uri_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(namespace_uri(na)); + } + + case ast_func_string_0: + return string_value(c.n, stack.result); + + case ast_func_string_1: + return _left->eval_string(c, stack); + + case ast_func_concat: + return eval_string_concat(c, stack); + + case ast_func_substring_before: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + xpath_string p = _right->eval_string(c, swapped_stack); + + const char_t* pos = find_substring(s.c_str(), p.c_str()); + + return pos ? xpath_string::from_heap(s.c_str(), pos, stack.result) : xpath_string(); + } + + case ast_func_substring_after: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + xpath_string p = _right->eval_string(c, swapped_stack); + + const char_t* pos = find_substring(s.c_str(), p.c_str()); + if (!pos) return xpath_string(); + + const char_t* rbegin = pos + p.length(); + const char_t* rend = s.c_str() + s.length(); + + return s.uses_heap() ? xpath_string::from_heap(rbegin, rend, stack.result) : xpath_string::from_const(rbegin); + } + + case ast_func_substring_2: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + size_t s_length = s.length(); + + double first = round_nearest(_right->eval_number(c, stack)); + + if (is_nan(first)) return xpath_string(); // NaN + else if (first >= s_length + 1) return xpath_string(); + + size_t pos = first < 1 ? 1 : static_cast(first); + assert(1 <= pos && pos <= s_length + 1); + + const char_t* rbegin = s.c_str() + (pos - 1); + const char_t* rend = s.c_str() + s.length(); + + return s.uses_heap() ? xpath_string::from_heap(rbegin, rend, stack.result) : xpath_string::from_const(rbegin); + } + + case ast_func_substring_3: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + size_t s_length = s.length(); + + double first = round_nearest(_right->eval_number(c, stack)); + double last = first + round_nearest(_right->_next->eval_number(c, stack)); + + if (is_nan(first) || is_nan(last)) return xpath_string(); + else if (first >= s_length + 1) return xpath_string(); + else if (first >= last) return xpath_string(); + else if (last < 1) return xpath_string(); + + size_t pos = first < 1 ? 1 : static_cast(first); + size_t end = last >= s_length + 1 ? s_length + 1 : static_cast(last); + + assert(1 <= pos && pos <= end && end <= s_length + 1); + const char_t* rbegin = s.c_str() + (pos - 1); + const char_t* rend = s.c_str() + (end - 1); + + return (end == s_length + 1 && !s.uses_heap()) ? xpath_string::from_const(rbegin) : xpath_string::from_heap(rbegin, rend, stack.result); + } + + case ast_func_normalize_space_0: + { + xpath_string s = string_value(c.n, stack.result); + + char_t* begin = s.data(stack.result); + char_t* end = normalize_space(begin); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_func_normalize_space_1: + { + xpath_string s = _left->eval_string(c, stack); + + char_t* begin = s.data(stack.result); + char_t* end = normalize_space(begin); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_func_translate: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, stack); + xpath_string from = _right->eval_string(c, swapped_stack); + xpath_string to = _right->_next->eval_string(c, swapped_stack); + + char_t* begin = s.data(stack.result); + char_t* end = translate(begin, from.c_str(), to.c_str(), to.length()); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_opt_translate_table: + { + xpath_string s = _left->eval_string(c, stack); + + char_t* begin = s.data(stack.result); + char_t* end = translate_table(begin, _data.table); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_string) + return xpath_string::from_const(_data.variable->get_string()); + + // fallthrough to type conversion + } + + default: + { + switch (_rettype) + { + case xpath_type_boolean: + return xpath_string::from_const(eval_boolean(c, stack) ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false")); + + case xpath_type_number: + return convert_number_to_string(eval_number(c, stack), stack.result); + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_node_set_raw ns = eval_node_set(c, swapped_stack, nodeset_eval_first); + return ns.empty() ? xpath_string() : string_value(ns.first(), stack.result); + } + + default: + assert(!"Wrong expression for return type string"); + return xpath_string(); + } + } + } + } + + xpath_node_set_raw eval_node_set(const xpath_context& c, const xpath_stack& stack, nodeset_eval_t eval) + { + switch (_type) + { + case ast_op_union: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_node_set_raw ls = _left->eval_node_set(c, swapped_stack, eval); + xpath_node_set_raw rs = _right->eval_node_set(c, stack, eval); + + // we can optimize merging two sorted sets, but this is a very rare operation, so don't bother + rs.set_type(xpath_node_set::type_unsorted); + + rs.append(ls.begin(), ls.end(), stack.result); + rs.remove_duplicates(); + + return rs; + } + + case ast_filter: + { + xpath_node_set_raw set = _left->eval_node_set(c, stack, _test == predicate_constant_one ? nodeset_eval_first : nodeset_eval_all); + + // either expression is a number or it contains position() call; sort by document order + if (_test != predicate_posinv) set.sort_do(); + + bool once = eval_once(set.type(), eval); + + apply_predicate(set, 0, stack, once); + + return set; + } + + case ast_func_id: + return xpath_node_set_raw(); + + case ast_step: + { + switch (_axis) + { + case axis_ancestor: + return step_do(c, stack, eval, axis_to_type()); + + case axis_ancestor_or_self: + return step_do(c, stack, eval, axis_to_type()); + + case axis_attribute: + return step_do(c, stack, eval, axis_to_type()); + + case axis_child: + return step_do(c, stack, eval, axis_to_type()); + + case axis_descendant: + return step_do(c, stack, eval, axis_to_type()); + + case axis_descendant_or_self: + return step_do(c, stack, eval, axis_to_type()); + + case axis_following: + return step_do(c, stack, eval, axis_to_type()); + + case axis_following_sibling: + return step_do(c, stack, eval, axis_to_type()); + + case axis_namespace: + // namespaced axis is not supported + return xpath_node_set_raw(); + + case axis_parent: + return step_do(c, stack, eval, axis_to_type()); + + case axis_preceding: + return step_do(c, stack, eval, axis_to_type()); + + case axis_preceding_sibling: + return step_do(c, stack, eval, axis_to_type()); + + case axis_self: + return step_do(c, stack, eval, axis_to_type()); + + default: + assert(!"Unknown axis"); + return xpath_node_set_raw(); + } + } + + case ast_step_root: + { + assert(!_right); // root step can't have any predicates + + xpath_node_set_raw ns; + + ns.set_type(xpath_node_set::type_sorted); + + if (c.n.node()) ns.push_back(c.n.node().root(), stack.result); + else if (c.n.attribute()) ns.push_back(c.n.parent().root(), stack.result); + + return ns; + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_node_set) + { + const xpath_node_set& s = _data.variable->get_node_set(); + + xpath_node_set_raw ns; + + ns.set_type(s.type()); + ns.append(s.begin(), s.end(), stack.result); + + return ns; + } + + // fallthrough to type conversion + } + + default: + assert(!"Wrong expression for return type node set"); + return xpath_node_set_raw(); + } + } + + void optimize(xpath_allocator* alloc) + { + if (_left) _left->optimize(alloc); + if (_right) _right->optimize(alloc); + if (_next) _next->optimize(alloc); + + optimize_self(alloc); + } + + void optimize_self(xpath_allocator* alloc) + { + // Rewrite [position()=expr] with [expr] + // Note that this step has to go before classification to recognize [position()=1] + if ((_type == ast_filter || _type == ast_predicate) && + _right->_type == ast_op_equal && _right->_left->_type == ast_func_position && _right->_right->_rettype == xpath_type_number) + { + _right = _right->_right; + } + + // Classify filter/predicate ops to perform various optimizations during evaluation + if (_type == ast_filter || _type == ast_predicate) + { + assert(_test == predicate_default); + + if (_right->_type == ast_number_constant && _right->_data.number == 1.0) + _test = predicate_constant_one; + else if (_right->_rettype == xpath_type_number && (_right->_type == ast_number_constant || _right->_type == ast_variable || _right->_type == ast_func_last)) + _test = predicate_constant; + else if (_right->_rettype != xpath_type_number && _right->is_posinv_expr()) + _test = predicate_posinv; + } + + // Rewrite descendant-or-self::node()/child::foo with descendant::foo + // The former is a full form of //foo, the latter is much faster since it executes the node test immediately + // Do a similar kind of rewrite for self/descendant/descendant-or-self axes + // Note that we only rewrite positionally invariant steps (//foo[1] != /descendant::foo[1]) + if (_type == ast_step && (_axis == axis_child || _axis == axis_self || _axis == axis_descendant || _axis == axis_descendant_or_self) && _left && + _left->_type == ast_step && _left->_axis == axis_descendant_or_self && _left->_test == nodetest_type_node && !_left->_right && + is_posinv_step()) + { + if (_axis == axis_child || _axis == axis_descendant) + _axis = axis_descendant; + else + _axis = axis_descendant_or_self; + + _left = _left->_left; + } + + // Use optimized lookup table implementation for translate() with constant arguments + if (_type == ast_func_translate && _right->_type == ast_string_constant && _right->_next->_type == ast_string_constant) + { + unsigned char* table = translate_table_generate(alloc, _right->_data.string, _right->_next->_data.string); + + if (table) + { + _type = ast_opt_translate_table; + _data.table = table; + } + } + + // Use optimized path for @attr = 'value' or @attr = $value + if (_type == ast_op_equal && + _left->_type == ast_step && _left->_axis == axis_attribute && _left->_test == nodetest_name && !_left->_left && !_left->_right && + (_right->_type == ast_string_constant || (_right->_type == ast_variable && _right->_rettype == xpath_type_string))) + { + _type = ast_opt_compare_attribute; + } + } + + bool is_posinv_expr() const + { + switch (_type) + { + case ast_func_position: + case ast_func_last: + return false; + + case ast_string_constant: + case ast_number_constant: + case ast_variable: + return true; + + case ast_step: + case ast_step_root: + return true; + + case ast_predicate: + case ast_filter: + return true; + + default: + if (_left && !_left->is_posinv_expr()) return false; + + for (xpath_ast_node* n = _right; n; n = n->_next) + if (!n->is_posinv_expr()) return false; + + return true; + } + } + + bool is_posinv_step() const + { + assert(_type == ast_step); + + for (xpath_ast_node* n = _right; n; n = n->_next) + { + assert(n->_type == ast_predicate); + + if (n->_test != predicate_posinv) + return false; + } + + return true; + } + + xpath_value_type rettype() const + { + return static_cast(_rettype); + } + }; + + struct xpath_parser + { + xpath_allocator* _alloc; + xpath_lexer _lexer; + + const char_t* _query; + xpath_variable_set* _variables; + + xpath_parse_result* _result; + + char_t _scratch[32]; + + #ifdef PUGIXML_NO_EXCEPTIONS + jmp_buf _error_handler; + #endif + + void throw_error(const char* message) + { + _result->error = message; + _result->offset = _lexer.current_pos() - _query; + + #ifdef PUGIXML_NO_EXCEPTIONS + longjmp(_error_handler, 1); + #else + throw xpath_exception(*_result); + #endif + } + + void throw_error_oom() + { + #ifdef PUGIXML_NO_EXCEPTIONS + throw_error("Out of memory"); + #else + throw std::bad_alloc(); + #endif + } + + void* alloc_node() + { + void* result = _alloc->allocate_nothrow(sizeof(xpath_ast_node)); + + if (!result) throw_error_oom(); + + return result; + } + + const char_t* alloc_string(const xpath_lexer_string& value) + { + if (value.begin) + { + size_t length = static_cast(value.end - value.begin); + + char_t* c = static_cast(_alloc->allocate_nothrow((length + 1) * sizeof(char_t))); + if (!c) throw_error_oom(); + assert(c); // workaround for clang static analysis + + memcpy(c, value.begin, length * sizeof(char_t)); + c[length] = 0; + + return c; + } + else return 0; + } + + xpath_ast_node* parse_function_helper(ast_type_t type0, ast_type_t type1, size_t argc, xpath_ast_node* args[2]) + { + assert(argc <= 1); + + if (argc == 1 && args[0]->rettype() != xpath_type_node_set) throw_error("Function has to be applied to node set"); + + return new (alloc_node()) xpath_ast_node(argc == 0 ? type0 : type1, xpath_type_string, args[0]); + } + + xpath_ast_node* parse_function(const xpath_lexer_string& name, size_t argc, xpath_ast_node* args[2]) + { + switch (name.begin[0]) + { + case 'b': + if (name == PUGIXML_TEXT("boolean") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_boolean, xpath_type_boolean, args[0]); + + break; + + case 'c': + if (name == PUGIXML_TEXT("count") && argc == 1) + { + if (args[0]->rettype() != xpath_type_node_set) throw_error("Function has to be applied to node set"); + return new (alloc_node()) xpath_ast_node(ast_func_count, xpath_type_number, args[0]); + } + else if (name == PUGIXML_TEXT("contains") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_contains, xpath_type_boolean, args[0], args[1]); + else if (name == PUGIXML_TEXT("concat") && argc >= 2) + return new (alloc_node()) xpath_ast_node(ast_func_concat, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("ceiling") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_ceiling, xpath_type_number, args[0]); + + break; + + case 'f': + if (name == PUGIXML_TEXT("false") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_false, xpath_type_boolean); + else if (name == PUGIXML_TEXT("floor") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_floor, xpath_type_number, args[0]); + + break; + + case 'i': + if (name == PUGIXML_TEXT("id") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_id, xpath_type_node_set, args[0]); + + break; + + case 'l': + if (name == PUGIXML_TEXT("last") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_last, xpath_type_number); + else if (name == PUGIXML_TEXT("lang") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_lang, xpath_type_boolean, args[0]); + else if (name == PUGIXML_TEXT("local-name") && argc <= 1) + return parse_function_helper(ast_func_local_name_0, ast_func_local_name_1, argc, args); + + break; + + case 'n': + if (name == PUGIXML_TEXT("name") && argc <= 1) + return parse_function_helper(ast_func_name_0, ast_func_name_1, argc, args); + else if (name == PUGIXML_TEXT("namespace-uri") && argc <= 1) + return parse_function_helper(ast_func_namespace_uri_0, ast_func_namespace_uri_1, argc, args); + else if (name == PUGIXML_TEXT("normalize-space") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_normalize_space_0 : ast_func_normalize_space_1, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("not") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_not, xpath_type_boolean, args[0]); + else if (name == PUGIXML_TEXT("number") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_number_0 : ast_func_number_1, xpath_type_number, args[0]); + + break; + + case 'p': + if (name == PUGIXML_TEXT("position") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_position, xpath_type_number); + + break; + + case 'r': + if (name == PUGIXML_TEXT("round") && argc == 1) + return new (alloc_node()) xpath_ast_node(ast_func_round, xpath_type_number, args[0]); + + break; + + case 's': + if (name == PUGIXML_TEXT("string") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_string_0 : ast_func_string_1, xpath_type_string, args[0]); + else if (name == PUGIXML_TEXT("string-length") && argc <= 1) + return new (alloc_node()) xpath_ast_node(argc == 0 ? ast_func_string_length_0 : ast_func_string_length_1, xpath_type_number, args[0]); + else if (name == PUGIXML_TEXT("starts-with") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_starts_with, xpath_type_boolean, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring-before") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_substring_before, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring-after") && argc == 2) + return new (alloc_node()) xpath_ast_node(ast_func_substring_after, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring") && (argc == 2 || argc == 3)) + return new (alloc_node()) xpath_ast_node(argc == 2 ? ast_func_substring_2 : ast_func_substring_3, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("sum") && argc == 1) + { + if (args[0]->rettype() != xpath_type_node_set) throw_error("Function has to be applied to node set"); + return new (alloc_node()) xpath_ast_node(ast_func_sum, xpath_type_number, args[0]); + } + + break; + + case 't': + if (name == PUGIXML_TEXT("translate") && argc == 3) + return new (alloc_node()) xpath_ast_node(ast_func_translate, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("true") && argc == 0) + return new (alloc_node()) xpath_ast_node(ast_func_true, xpath_type_boolean); + + break; + + default: + break; + } + + throw_error("Unrecognized function or wrong parameter count"); + + return 0; + } + + axis_t parse_axis_name(const xpath_lexer_string& name, bool& specified) + { + specified = true; + + switch (name.begin[0]) + { + case 'a': + if (name == PUGIXML_TEXT("ancestor")) + return axis_ancestor; + else if (name == PUGIXML_TEXT("ancestor-or-self")) + return axis_ancestor_or_self; + else if (name == PUGIXML_TEXT("attribute")) + return axis_attribute; + + break; + + case 'c': + if (name == PUGIXML_TEXT("child")) + return axis_child; + + break; + + case 'd': + if (name == PUGIXML_TEXT("descendant")) + return axis_descendant; + else if (name == PUGIXML_TEXT("descendant-or-self")) + return axis_descendant_or_self; + + break; + + case 'f': + if (name == PUGIXML_TEXT("following")) + return axis_following; + else if (name == PUGIXML_TEXT("following-sibling")) + return axis_following_sibling; + + break; + + case 'n': + if (name == PUGIXML_TEXT("namespace")) + return axis_namespace; + + break; + + case 'p': + if (name == PUGIXML_TEXT("parent")) + return axis_parent; + else if (name == PUGIXML_TEXT("preceding")) + return axis_preceding; + else if (name == PUGIXML_TEXT("preceding-sibling")) + return axis_preceding_sibling; + + break; + + case 's': + if (name == PUGIXML_TEXT("self")) + return axis_self; + + break; + + default: + break; + } + + specified = false; + return axis_child; + } + + nodetest_t parse_node_test_type(const xpath_lexer_string& name) + { + switch (name.begin[0]) + { + case 'c': + if (name == PUGIXML_TEXT("comment")) + return nodetest_type_comment; + + break; + + case 'n': + if (name == PUGIXML_TEXT("node")) + return nodetest_type_node; + + break; + + case 'p': + if (name == PUGIXML_TEXT("processing-instruction")) + return nodetest_type_pi; + + break; + + case 't': + if (name == PUGIXML_TEXT("text")) + return nodetest_type_text; + + break; + + default: + break; + } + + return nodetest_none; + } + + // PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall + xpath_ast_node* parse_primary_expression() + { + switch (_lexer.current()) + { + case lex_var_ref: + { + xpath_lexer_string name = _lexer.contents(); + + if (!_variables) + throw_error("Unknown variable: variable set is not provided"); + + xpath_variable* var = 0; + if (!get_variable_scratch(_scratch, _variables, name.begin, name.end, &var)) + throw_error_oom(); + + if (!var) + throw_error("Unknown variable: variable set does not contain the given name"); + + _lexer.next(); + + return new (alloc_node()) xpath_ast_node(ast_variable, var->type(), var); + } + + case lex_open_brace: + { + _lexer.next(); + + xpath_ast_node* n = parse_expression(); + + if (_lexer.current() != lex_close_brace) + throw_error("Unmatched braces"); + + _lexer.next(); + + return n; + } + + case lex_quoted_string: + { + const char_t* value = alloc_string(_lexer.contents()); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_string_constant, xpath_type_string, value); + _lexer.next(); + + return n; + } + + case lex_number: + { + double value = 0; + + if (!convert_string_to_number_scratch(_scratch, _lexer.contents().begin, _lexer.contents().end, &value)) + throw_error_oom(); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_number_constant, xpath_type_number, value); + _lexer.next(); + + return n; + } + + case lex_string: + { + xpath_ast_node* args[2] = {0}; + size_t argc = 0; + + xpath_lexer_string function = _lexer.contents(); + _lexer.next(); + + xpath_ast_node* last_arg = 0; + + if (_lexer.current() != lex_open_brace) + throw_error("Unrecognized function call"); + _lexer.next(); + + if (_lexer.current() != lex_close_brace) + args[argc++] = parse_expression(); + + while (_lexer.current() != lex_close_brace) + { + if (_lexer.current() != lex_comma) + throw_error("No comma between function arguments"); + _lexer.next(); + + xpath_ast_node* n = parse_expression(); + + if (argc < 2) args[argc] = n; + else last_arg->set_next(n); + + argc++; + last_arg = n; + } + + _lexer.next(); + + return parse_function(function, argc, args); + } + + default: + throw_error("Unrecognizable primary expression"); + + return 0; + } + } + + // FilterExpr ::= PrimaryExpr | FilterExpr Predicate + // Predicate ::= '[' PredicateExpr ']' + // PredicateExpr ::= Expr + xpath_ast_node* parse_filter_expression() + { + xpath_ast_node* n = parse_primary_expression(); + + while (_lexer.current() == lex_open_square_brace) + { + _lexer.next(); + + xpath_ast_node* expr = parse_expression(); + + if (n->rettype() != xpath_type_node_set) throw_error("Predicate has to be applied to node set"); + + n = new (alloc_node()) xpath_ast_node(ast_filter, n, expr, predicate_default); + + if (_lexer.current() != lex_close_square_brace) + throw_error("Unmatched square brace"); + + _lexer.next(); + } + + return n; + } + + // Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep + // AxisSpecifier ::= AxisName '::' | '@'? + // NodeTest ::= NameTest | NodeType '(' ')' | 'processing-instruction' '(' Literal ')' + // NameTest ::= '*' | NCName ':' '*' | QName + // AbbreviatedStep ::= '.' | '..' + xpath_ast_node* parse_step(xpath_ast_node* set) + { + if (set && set->rettype() != xpath_type_node_set) + throw_error("Step has to be applied to node set"); + + bool axis_specified = false; + axis_t axis = axis_child; // implied child axis + + if (_lexer.current() == lex_axis_attribute) + { + axis = axis_attribute; + axis_specified = true; + + _lexer.next(); + } + else if (_lexer.current() == lex_dot) + { + _lexer.next(); + + return new (alloc_node()) xpath_ast_node(ast_step, set, axis_self, nodetest_type_node, 0); + } + else if (_lexer.current() == lex_double_dot) + { + _lexer.next(); + + return new (alloc_node()) xpath_ast_node(ast_step, set, axis_parent, nodetest_type_node, 0); + } + + nodetest_t nt_type = nodetest_none; + xpath_lexer_string nt_name; + + if (_lexer.current() == lex_string) + { + // node name test + nt_name = _lexer.contents(); + _lexer.next(); + + // was it an axis name? + if (_lexer.current() == lex_double_colon) + { + // parse axis name + if (axis_specified) throw_error("Two axis specifiers in one step"); + + axis = parse_axis_name(nt_name, axis_specified); + + if (!axis_specified) throw_error("Unknown axis"); + + // read actual node test + _lexer.next(); + + if (_lexer.current() == lex_multiply) + { + nt_type = nodetest_all; + nt_name = xpath_lexer_string(); + _lexer.next(); + } + else if (_lexer.current() == lex_string) + { + nt_name = _lexer.contents(); + _lexer.next(); + } + else throw_error("Unrecognized node test"); + } + + if (nt_type == nodetest_none) + { + // node type test or processing-instruction + if (_lexer.current() == lex_open_brace) + { + _lexer.next(); + + if (_lexer.current() == lex_close_brace) + { + _lexer.next(); + + nt_type = parse_node_test_type(nt_name); + + if (nt_type == nodetest_none) throw_error("Unrecognized node type"); + + nt_name = xpath_lexer_string(); + } + else if (nt_name == PUGIXML_TEXT("processing-instruction")) + { + if (_lexer.current() != lex_quoted_string) + throw_error("Only literals are allowed as arguments to processing-instruction()"); + + nt_type = nodetest_pi; + nt_name = _lexer.contents(); + _lexer.next(); + + if (_lexer.current() != lex_close_brace) + throw_error("Unmatched brace near processing-instruction()"); + _lexer.next(); + } + else + throw_error("Unmatched brace near node type test"); + + } + // QName or NCName:* + else + { + if (nt_name.end - nt_name.begin > 2 && nt_name.end[-2] == ':' && nt_name.end[-1] == '*') // NCName:* + { + nt_name.end--; // erase * + + nt_type = nodetest_all_in_namespace; + } + else nt_type = nodetest_name; + } + } + } + else if (_lexer.current() == lex_multiply) + { + nt_type = nodetest_all; + _lexer.next(); + } + else throw_error("Unrecognized node test"); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_step, set, axis, nt_type, alloc_string(nt_name)); + + xpath_ast_node* last = 0; + + while (_lexer.current() == lex_open_square_brace) + { + _lexer.next(); + + xpath_ast_node* expr = parse_expression(); + + xpath_ast_node* pred = new (alloc_node()) xpath_ast_node(ast_predicate, 0, expr, predicate_default); + + if (_lexer.current() != lex_close_square_brace) + throw_error("Unmatched square brace"); + _lexer.next(); + + if (last) last->set_next(pred); + else n->set_right(pred); + + last = pred; + } + + return n; + } + + // RelativeLocationPath ::= Step | RelativeLocationPath '/' Step | RelativeLocationPath '//' Step + xpath_ast_node* parse_relative_location_path(xpath_ast_node* set) + { + xpath_ast_node* n = parse_step(set); + + while (_lexer.current() == lex_slash || _lexer.current() == lex_double_slash) + { + lexeme_t l = _lexer.current(); + _lexer.next(); + + if (l == lex_double_slash) + n = new (alloc_node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + + n = parse_step(n); + } + + return n; + } + + // LocationPath ::= RelativeLocationPath | AbsoluteLocationPath + // AbsoluteLocationPath ::= '/' RelativeLocationPath? | '//' RelativeLocationPath + xpath_ast_node* parse_location_path() + { + if (_lexer.current() == lex_slash) + { + _lexer.next(); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_step_root, xpath_type_node_set); + + // relative location path can start from axis_attribute, dot, double_dot, multiply and string lexemes; any other lexeme means standalone root path + lexeme_t l = _lexer.current(); + + if (l == lex_string || l == lex_axis_attribute || l == lex_dot || l == lex_double_dot || l == lex_multiply) + return parse_relative_location_path(n); + else + return n; + } + else if (_lexer.current() == lex_double_slash) + { + _lexer.next(); + + xpath_ast_node* n = new (alloc_node()) xpath_ast_node(ast_step_root, xpath_type_node_set); + n = new (alloc_node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + + return parse_relative_location_path(n); + } + + // else clause moved outside of if because of bogus warning 'control may reach end of non-void function being inlined' in gcc 4.0.1 + return parse_relative_location_path(0); + } + + // PathExpr ::= LocationPath + // | FilterExpr + // | FilterExpr '/' RelativeLocationPath + // | FilterExpr '//' RelativeLocationPath + // UnionExpr ::= PathExpr | UnionExpr '|' PathExpr + // UnaryExpr ::= UnionExpr | '-' UnaryExpr + xpath_ast_node* parse_path_or_unary_expression() + { + // Clarification. + // PathExpr begins with either LocationPath or FilterExpr. + // FilterExpr begins with PrimaryExpr + // PrimaryExpr begins with '$' in case of it being a variable reference, + // '(' in case of it being an expression, string literal, number constant or + // function call. + + if (_lexer.current() == lex_var_ref || _lexer.current() == lex_open_brace || + _lexer.current() == lex_quoted_string || _lexer.current() == lex_number || + _lexer.current() == lex_string) + { + if (_lexer.current() == lex_string) + { + // This is either a function call, or not - if not, we shall proceed with location path + const char_t* state = _lexer.state(); + + while (PUGI__IS_CHARTYPE(*state, ct_space)) ++state; + + if (*state != '(') return parse_location_path(); + + // This looks like a function call; however this still can be a node-test. Check it. + if (parse_node_test_type(_lexer.contents()) != nodetest_none) return parse_location_path(); + } + + xpath_ast_node* n = parse_filter_expression(); + + if (_lexer.current() == lex_slash || _lexer.current() == lex_double_slash) + { + lexeme_t l = _lexer.current(); + _lexer.next(); + + if (l == lex_double_slash) + { + if (n->rettype() != xpath_type_node_set) throw_error("Step has to be applied to node set"); + + n = new (alloc_node()) xpath_ast_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + } + + // select from location path + return parse_relative_location_path(n); + } + + return n; + } + else if (_lexer.current() == lex_minus) + { + _lexer.next(); + + // precedence 7+ - only parses union expressions + xpath_ast_node* expr = parse_expression_rec(parse_path_or_unary_expression(), 7); + + return new (alloc_node()) xpath_ast_node(ast_op_negate, xpath_type_number, expr); + } + else + return parse_location_path(); + } + + struct binary_op_t + { + ast_type_t asttype; + xpath_value_type rettype; + int precedence; + + binary_op_t(): asttype(ast_unknown), rettype(xpath_type_none), precedence(0) + { + } + + binary_op_t(ast_type_t asttype_, xpath_value_type rettype_, int precedence_): asttype(asttype_), rettype(rettype_), precedence(precedence_) + { + } + + static binary_op_t parse(xpath_lexer& lexer) + { + switch (lexer.current()) + { + case lex_string: + if (lexer.contents() == PUGIXML_TEXT("or")) + return binary_op_t(ast_op_or, xpath_type_boolean, 1); + else if (lexer.contents() == PUGIXML_TEXT("and")) + return binary_op_t(ast_op_and, xpath_type_boolean, 2); + else if (lexer.contents() == PUGIXML_TEXT("div")) + return binary_op_t(ast_op_divide, xpath_type_number, 6); + else if (lexer.contents() == PUGIXML_TEXT("mod")) + return binary_op_t(ast_op_mod, xpath_type_number, 6); + else + return binary_op_t(); + + case lex_equal: + return binary_op_t(ast_op_equal, xpath_type_boolean, 3); + + case lex_not_equal: + return binary_op_t(ast_op_not_equal, xpath_type_boolean, 3); + + case lex_less: + return binary_op_t(ast_op_less, xpath_type_boolean, 4); + + case lex_greater: + return binary_op_t(ast_op_greater, xpath_type_boolean, 4); + + case lex_less_or_equal: + return binary_op_t(ast_op_less_or_equal, xpath_type_boolean, 4); + + case lex_greater_or_equal: + return binary_op_t(ast_op_greater_or_equal, xpath_type_boolean, 4); + + case lex_plus: + return binary_op_t(ast_op_add, xpath_type_number, 5); + + case lex_minus: + return binary_op_t(ast_op_subtract, xpath_type_number, 5); + + case lex_multiply: + return binary_op_t(ast_op_multiply, xpath_type_number, 6); + + case lex_union: + return binary_op_t(ast_op_union, xpath_type_node_set, 7); + + default: + return binary_op_t(); + } + } + }; + + xpath_ast_node* parse_expression_rec(xpath_ast_node* lhs, int limit) + { + binary_op_t op = binary_op_t::parse(_lexer); + + while (op.asttype != ast_unknown && op.precedence >= limit) + { + _lexer.next(); + + xpath_ast_node* rhs = parse_path_or_unary_expression(); + + binary_op_t nextop = binary_op_t::parse(_lexer); + + while (nextop.asttype != ast_unknown && nextop.precedence > op.precedence) + { + rhs = parse_expression_rec(rhs, nextop.precedence); + + nextop = binary_op_t::parse(_lexer); + } + + if (op.asttype == ast_op_union && (lhs->rettype() != xpath_type_node_set || rhs->rettype() != xpath_type_node_set)) + throw_error("Union operator has to be applied to node sets"); + + lhs = new (alloc_node()) xpath_ast_node(op.asttype, op.rettype, lhs, rhs); + + op = binary_op_t::parse(_lexer); + } + + return lhs; + } + + // Expr ::= OrExpr + // OrExpr ::= AndExpr | OrExpr 'or' AndExpr + // AndExpr ::= EqualityExpr | AndExpr 'and' EqualityExpr + // EqualityExpr ::= RelationalExpr + // | EqualityExpr '=' RelationalExpr + // | EqualityExpr '!=' RelationalExpr + // RelationalExpr ::= AdditiveExpr + // | RelationalExpr '<' AdditiveExpr + // | RelationalExpr '>' AdditiveExpr + // | RelationalExpr '<=' AdditiveExpr + // | RelationalExpr '>=' AdditiveExpr + // AdditiveExpr ::= MultiplicativeExpr + // | AdditiveExpr '+' MultiplicativeExpr + // | AdditiveExpr '-' MultiplicativeExpr + // MultiplicativeExpr ::= UnaryExpr + // | MultiplicativeExpr '*' UnaryExpr + // | MultiplicativeExpr 'div' UnaryExpr + // | MultiplicativeExpr 'mod' UnaryExpr + xpath_ast_node* parse_expression() + { + return parse_expression_rec(parse_path_or_unary_expression(), 0); + } + + xpath_parser(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result): _alloc(alloc), _lexer(query), _query(query), _variables(variables), _result(result) + { + } + + xpath_ast_node* parse() + { + xpath_ast_node* result = parse_expression(); + + if (_lexer.current() != lex_eof) + { + // there are still unparsed tokens left, error + throw_error("Incorrect query"); + } + + return result; + } + + static xpath_ast_node* parse(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result) + { + xpath_parser parser(query, variables, alloc, result); + + #ifdef PUGIXML_NO_EXCEPTIONS + int error = setjmp(parser._error_handler); + + return (error == 0) ? parser.parse() : 0; + #else + return parser.parse(); + #endif + } + }; + + struct xpath_query_impl + { + static xpath_query_impl* create() + { + void* memory = xml_memory::allocate(sizeof(xpath_query_impl)); + if (!memory) return 0; + + return new (memory) xpath_query_impl(); + } + + static void destroy(xpath_query_impl* impl) + { + // free all allocated pages + impl->alloc.release(); + + // free allocator memory (with the first page) + xml_memory::deallocate(impl); + } + + xpath_query_impl(): root(0), alloc(&block) + { + block.next = 0; + block.capacity = sizeof(block.data); + } + + xpath_ast_node* root; + xpath_allocator alloc; + xpath_memory_block block; + }; + + PUGI__FN xpath_string evaluate_string_impl(xpath_query_impl* impl, const xpath_node& n, xpath_stack_data& sd) + { + if (!impl) return xpath_string(); + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return xpath_string(); + #endif + + xpath_context c(n, 1, 1); + + return impl->root->eval_string(c, sd.stack); + } + + PUGI__FN impl::xpath_ast_node* evaluate_node_set_prepare(xpath_query_impl* impl) + { + if (!impl) return 0; + + if (impl->root->rettype() != xpath_type_node_set) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return 0; + #else + xpath_parse_result res; + res.error = "Expression does not evaluate to node set"; + + throw xpath_exception(res); + #endif + } + + return impl->root; + } +PUGI__NS_END + +namespace pugi +{ +#ifndef PUGIXML_NO_EXCEPTIONS + PUGI__FN xpath_exception::xpath_exception(const xpath_parse_result& result_): _result(result_) + { + assert(_result.error); + } + + PUGI__FN const char* xpath_exception::what() const throw() + { + return _result.error; + } + + PUGI__FN const xpath_parse_result& xpath_exception::result() const + { + return _result; + } +#endif + + PUGI__FN xpath_node::xpath_node() + { + } + + PUGI__FN xpath_node::xpath_node(const xml_node& node_): _node(node_) + { + } + + PUGI__FN xpath_node::xpath_node(const xml_attribute& attribute_, const xml_node& parent_): _node(attribute_ ? parent_ : xml_node()), _attribute(attribute_) + { + } + + PUGI__FN xml_node xpath_node::node() const + { + return _attribute ? xml_node() : _node; + } + + PUGI__FN xml_attribute xpath_node::attribute() const + { + return _attribute; + } + + PUGI__FN xml_node xpath_node::parent() const + { + return _attribute ? _node : _node.parent(); + } + + PUGI__FN static void unspecified_bool_xpath_node(xpath_node***) + { + } + + PUGI__FN xpath_node::operator xpath_node::unspecified_bool_type() const + { + return (_node || _attribute) ? unspecified_bool_xpath_node : 0; + } + + PUGI__FN bool xpath_node::operator!() const + { + return !(_node || _attribute); + } + + PUGI__FN bool xpath_node::operator==(const xpath_node& n) const + { + return _node == n._node && _attribute == n._attribute; + } + + PUGI__FN bool xpath_node::operator!=(const xpath_node& n) const + { + return _node != n._node || _attribute != n._attribute; + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xpath_node& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xpath_node& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN void xpath_node_set::_assign(const_iterator begin_, const_iterator end_, type_t type_) + { + assert(begin_ <= end_); + + size_t size_ = static_cast(end_ - begin_); + + if (size_ <= 1) + { + // deallocate old buffer + if (_begin != &_storage) impl::xml_memory::deallocate(_begin); + + // use internal buffer + if (begin_ != end_) _storage = *begin_; + + _begin = &_storage; + _end = &_storage + size_; + _type = type_; + } + else + { + // make heap copy + xpath_node* storage = static_cast(impl::xml_memory::allocate(size_ * sizeof(xpath_node))); + + if (!storage) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return; + #else + throw std::bad_alloc(); + #endif + } + + memcpy(storage, begin_, size_ * sizeof(xpath_node)); + + // deallocate old buffer + if (_begin != &_storage) impl::xml_memory::deallocate(_begin); + + // finalize + _begin = storage; + _end = storage + size_; + _type = type_; + } + } + +#if __cplusplus >= 201103 + PUGI__FN void xpath_node_set::_move(xpath_node_set& rhs) + { + _type = rhs._type; + _storage = rhs._storage; + _begin = (rhs._begin == &rhs._storage) ? &_storage : rhs._begin; + _end = _begin + (rhs._end - rhs._begin); + + rhs._type = type_unsorted; + rhs._begin = &rhs._storage; + rhs._end = rhs._begin; + } +#endif + + PUGI__FN xpath_node_set::xpath_node_set(): _type(type_unsorted), _begin(&_storage), _end(&_storage) + { + } + + PUGI__FN xpath_node_set::xpath_node_set(const_iterator begin_, const_iterator end_, type_t type_): _type(type_unsorted), _begin(&_storage), _end(&_storage) + { + _assign(begin_, end_, type_); + } + + PUGI__FN xpath_node_set::~xpath_node_set() + { + if (_begin != &_storage) + impl::xml_memory::deallocate(_begin); + } + + PUGI__FN xpath_node_set::xpath_node_set(const xpath_node_set& ns): _type(type_unsorted), _begin(&_storage), _end(&_storage) + { + _assign(ns._begin, ns._end, ns._type); + } + + PUGI__FN xpath_node_set& xpath_node_set::operator=(const xpath_node_set& ns) + { + if (this == &ns) return *this; + + _assign(ns._begin, ns._end, ns._type); + + return *this; + } + +#if __cplusplus >= 201103 + PUGI__FN xpath_node_set::xpath_node_set(xpath_node_set&& rhs): _type(type_unsorted), _begin(&_storage), _end(&_storage) + { + _move(rhs); + } + + PUGI__FN xpath_node_set& xpath_node_set::operator=(xpath_node_set&& rhs) + { + if (this == &rhs) return *this; + + if (_begin != &_storage) + impl::xml_memory::deallocate(_begin); + + _move(rhs); + + return *this; + } +#endif + + PUGI__FN xpath_node_set::type_t xpath_node_set::type() const + { + return _type; + } + + PUGI__FN size_t xpath_node_set::size() const + { + return _end - _begin; + } + + PUGI__FN bool xpath_node_set::empty() const + { + return _begin == _end; + } + + PUGI__FN const xpath_node& xpath_node_set::operator[](size_t index) const + { + assert(index < size()); + return _begin[index]; + } + + PUGI__FN xpath_node_set::const_iterator xpath_node_set::begin() const + { + return _begin; + } + + PUGI__FN xpath_node_set::const_iterator xpath_node_set::end() const + { + return _end; + } + + PUGI__FN void xpath_node_set::sort(bool reverse) + { + _type = impl::xpath_sort(_begin, _end, _type, reverse); + } + + PUGI__FN xpath_node xpath_node_set::first() const + { + return impl::xpath_first(_begin, _end, _type); + } + + PUGI__FN xpath_parse_result::xpath_parse_result(): error("Internal error"), offset(0) + { + } + + PUGI__FN xpath_parse_result::operator bool() const + { + return error == 0; + } + + PUGI__FN const char* xpath_parse_result::description() const + { + return error ? error : "No error"; + } + + PUGI__FN xpath_variable::xpath_variable(xpath_value_type type_): _type(type_), _next(0) + { + } + + PUGI__FN const char_t* xpath_variable::name() const + { + switch (_type) + { + case xpath_type_node_set: + return static_cast(this)->name; + + case xpath_type_number: + return static_cast(this)->name; + + case xpath_type_string: + return static_cast(this)->name; + + case xpath_type_boolean: + return static_cast(this)->name; + + default: + assert(!"Invalid variable type"); + return 0; + } + } + + PUGI__FN xpath_value_type xpath_variable::type() const + { + return _type; + } + + PUGI__FN bool xpath_variable::get_boolean() const + { + return (_type == xpath_type_boolean) ? static_cast(this)->value : false; + } + + PUGI__FN double xpath_variable::get_number() const + { + return (_type == xpath_type_number) ? static_cast(this)->value : impl::gen_nan(); + } + + PUGI__FN const char_t* xpath_variable::get_string() const + { + const char_t* value = (_type == xpath_type_string) ? static_cast(this)->value : 0; + return value ? value : PUGIXML_TEXT(""); + } + + PUGI__FN const xpath_node_set& xpath_variable::get_node_set() const + { + return (_type == xpath_type_node_set) ? static_cast(this)->value : impl::dummy_node_set; + } + + PUGI__FN bool xpath_variable::set(bool value) + { + if (_type != xpath_type_boolean) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN bool xpath_variable::set(double value) + { + if (_type != xpath_type_number) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN bool xpath_variable::set(const char_t* value) + { + if (_type != xpath_type_string) return false; + + impl::xpath_variable_string* var = static_cast(this); + + // duplicate string + size_t size = (impl::strlength(value) + 1) * sizeof(char_t); + + char_t* copy = static_cast(impl::xml_memory::allocate(size)); + if (!copy) return false; + + memcpy(copy, value, size); + + // replace old string + if (var->value) impl::xml_memory::deallocate(var->value); + var->value = copy; + + return true; + } + + PUGI__FN bool xpath_variable::set(const xpath_node_set& value) + { + if (_type != xpath_type_node_set) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN xpath_variable_set::xpath_variable_set() + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + _data[i] = 0; + } + + PUGI__FN xpath_variable_set::~xpath_variable_set() + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + _destroy(_data[i]); + } + + PUGI__FN xpath_variable_set::xpath_variable_set(const xpath_variable_set& rhs) + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + _data[i] = 0; + + _assign(rhs); + } + + PUGI__FN xpath_variable_set& xpath_variable_set::operator=(const xpath_variable_set& rhs) + { + if (this == &rhs) return *this; + + _assign(rhs); + + return *this; + } + +#if __cplusplus >= 201103 + PUGI__FN xpath_variable_set::xpath_variable_set(xpath_variable_set&& rhs) + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + { + _data[i] = rhs._data[i]; + rhs._data[i] = 0; + } + } + + PUGI__FN xpath_variable_set& xpath_variable_set::operator=(xpath_variable_set&& rhs) + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + { + _destroy(_data[i]); + + _data[i] = rhs._data[i]; + rhs._data[i] = 0; + } + + return *this; + } +#endif + + PUGI__FN void xpath_variable_set::_assign(const xpath_variable_set& rhs) + { + xpath_variable_set temp; + + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + if (rhs._data[i] && !_clone(rhs._data[i], &temp._data[i])) + return; + + _swap(temp); + } + + PUGI__FN void xpath_variable_set::_swap(xpath_variable_set& rhs) + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + { + xpath_variable* chain = _data[i]; + + _data[i] = rhs._data[i]; + rhs._data[i] = chain; + } + } + + PUGI__FN xpath_variable* xpath_variable_set::_find(const char_t* name) const + { + const size_t hash_size = sizeof(_data) / sizeof(_data[0]); + size_t hash = impl::hash_string(name) % hash_size; + + // look for existing variable + for (xpath_variable* var = _data[hash]; var; var = var->_next) + if (impl::strequal(var->name(), name)) + return var; + + return 0; + } + + PUGI__FN bool xpath_variable_set::_clone(xpath_variable* var, xpath_variable** out_result) + { + xpath_variable* last = 0; + + while (var) + { + // allocate storage for new variable + xpath_variable* nvar = impl::new_xpath_variable(var->_type, var->name()); + if (!nvar) return false; + + // link the variable to the result immediately to handle failures gracefully + if (last) + last->_next = nvar; + else + *out_result = nvar; + + last = nvar; + + // copy the value; this can fail due to out-of-memory conditions + if (!impl::copy_xpath_variable(nvar, var)) return false; + + var = var->_next; + } + + return true; + } + + PUGI__FN void xpath_variable_set::_destroy(xpath_variable* var) + { + while (var) + { + xpath_variable* next = var->_next; + + impl::delete_xpath_variable(var->_type, var); + + var = next; + } + } + + PUGI__FN xpath_variable* xpath_variable_set::add(const char_t* name, xpath_value_type type) + { + const size_t hash_size = sizeof(_data) / sizeof(_data[0]); + size_t hash = impl::hash_string(name) % hash_size; + + // look for existing variable + for (xpath_variable* var = _data[hash]; var; var = var->_next) + if (impl::strequal(var->name(), name)) + return var->type() == type ? var : 0; + + // add new variable + xpath_variable* result = impl::new_xpath_variable(type, name); + + if (result) + { + result->_next = _data[hash]; + + _data[hash] = result; + } + + return result; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, bool value) + { + xpath_variable* var = add(name, xpath_type_boolean); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, double value) + { + xpath_variable* var = add(name, xpath_type_number); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, const char_t* value) + { + xpath_variable* var = add(name, xpath_type_string); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, const xpath_node_set& value) + { + xpath_variable* var = add(name, xpath_type_node_set); + return var ? var->set(value) : false; + } + + PUGI__FN xpath_variable* xpath_variable_set::get(const char_t* name) + { + return _find(name); + } + + PUGI__FN const xpath_variable* xpath_variable_set::get(const char_t* name) const + { + return _find(name); + } + + PUGI__FN xpath_query::xpath_query(const char_t* query, xpath_variable_set* variables): _impl(0) + { + impl::xpath_query_impl* qimpl = impl::xpath_query_impl::create(); + + if (!qimpl) + { + #ifdef PUGIXML_NO_EXCEPTIONS + _result.error = "Out of memory"; + #else + throw std::bad_alloc(); + #endif + } + else + { + using impl::auto_deleter; // MSVC7 workaround + auto_deleter impl(qimpl, impl::xpath_query_impl::destroy); + + qimpl->root = impl::xpath_parser::parse(query, variables, &qimpl->alloc, &_result); + + if (qimpl->root) + { + qimpl->root->optimize(&qimpl->alloc); + + _impl = impl.release(); + _result.error = 0; + } + } + } + + PUGI__FN xpath_query::xpath_query(): _impl(0) + { + } + + PUGI__FN xpath_query::~xpath_query() + { + if (_impl) + impl::xpath_query_impl::destroy(static_cast(_impl)); + } + +#if __cplusplus >= 201103 + PUGI__FN xpath_query::xpath_query(xpath_query&& rhs) + { + _impl = rhs._impl; + _result = rhs._result; + rhs._impl = 0; + rhs._result = xpath_parse_result(); + } + + PUGI__FN xpath_query& xpath_query::operator=(xpath_query&& rhs) + { + if (this == &rhs) return *this; + + if (_impl) + impl::xpath_query_impl::destroy(static_cast(_impl)); + + _impl = rhs._impl; + _result = rhs._result; + rhs._impl = 0; + rhs._result = xpath_parse_result(); + + return *this; + } +#endif + + PUGI__FN xpath_value_type xpath_query::return_type() const + { + if (!_impl) return xpath_type_none; + + return static_cast(_impl)->root->rettype(); + } + + PUGI__FN bool xpath_query::evaluate_boolean(const xpath_node& n) const + { + if (!_impl) return false; + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return false; + #endif + + return static_cast(_impl)->root->eval_boolean(c, sd.stack); + } + + PUGI__FN double xpath_query::evaluate_number(const xpath_node& n) const + { + if (!_impl) return impl::gen_nan(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return impl::gen_nan(); + #endif + + return static_cast(_impl)->root->eval_number(c, sd.stack); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN string_t xpath_query::evaluate_string(const xpath_node& n) const + { + impl::xpath_stack_data sd; + + impl::xpath_string r = impl::evaluate_string_impl(static_cast(_impl), n, sd); + + return string_t(r.c_str(), r.length()); + } +#endif + + PUGI__FN size_t xpath_query::evaluate_string(char_t* buffer, size_t capacity, const xpath_node& n) const + { + impl::xpath_stack_data sd; + + impl::xpath_string r = impl::evaluate_string_impl(static_cast(_impl), n, sd); + + size_t full_size = r.length() + 1; + + if (capacity > 0) + { + size_t size = (full_size < capacity) ? full_size : capacity; + assert(size > 0); + + memcpy(buffer, r.c_str(), (size - 1) * sizeof(char_t)); + buffer[size - 1] = 0; + } + + return full_size; + } + + PUGI__FN xpath_node_set xpath_query::evaluate_node_set(const xpath_node& n) const + { + impl::xpath_ast_node* root = impl::evaluate_node_set_prepare(static_cast(_impl)); + if (!root) return xpath_node_set(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return xpath_node_set(); + #endif + + impl::xpath_node_set_raw r = root->eval_node_set(c, sd.stack, impl::nodeset_eval_all); + + return xpath_node_set(r.begin(), r.end(), r.type()); + } + + PUGI__FN xpath_node xpath_query::evaluate_node(const xpath_node& n) const + { + impl::xpath_ast_node* root = impl::evaluate_node_set_prepare(static_cast(_impl)); + if (!root) return xpath_node(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + #ifdef PUGIXML_NO_EXCEPTIONS + if (setjmp(sd.error_handler)) return xpath_node(); + #endif + + impl::xpath_node_set_raw r = root->eval_node_set(c, sd.stack, impl::nodeset_eval_first); + + return r.first(); + } + + PUGI__FN const xpath_parse_result& xpath_query::result() const + { + return _result; + } + + PUGI__FN static void unspecified_bool_xpath_query(xpath_query***) + { + } + + PUGI__FN xpath_query::operator xpath_query::unspecified_bool_type() const + { + return _impl ? unspecified_bool_xpath_query : 0; + } + + PUGI__FN bool xpath_query::operator!() const + { + return !_impl; + } + + PUGI__FN xpath_node xml_node::select_node(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return select_node(q); + } + + PUGI__FN xpath_node xml_node::select_node(const xpath_query& query) const + { + return query.evaluate_node(*this); + } + + PUGI__FN xpath_node_set xml_node::select_nodes(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return select_nodes(q); + } + + PUGI__FN xpath_node_set xml_node::select_nodes(const xpath_query& query) const + { + return query.evaluate_node_set(*this); + } + + PUGI__FN xpath_node xml_node::select_single_node(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return select_single_node(q); + } + + PUGI__FN xpath_node xml_node::select_single_node(const xpath_query& query) const + { + return query.evaluate_node(*this); + } +} + +#endif + +#ifdef __BORLANDC__ +# pragma option pop +#endif + +// Intel C++ does not properly keep warning state for function templates, +// so popping warning state at the end of translation unit leads to warnings in the middle. +#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) +# pragma warning(pop) +#endif + +// Undefine all local macros (makes sure we're not leaking macros in header-only mode) +#undef PUGI__NO_INLINE +#undef PUGI__UNLIKELY +#undef PUGI__STATIC_ASSERT +#undef PUGI__DMC_VOLATILE +#undef PUGI__MSVC_CRT_VERSION +#undef PUGI__NS_BEGIN +#undef PUGI__NS_END +#undef PUGI__FN +#undef PUGI__FN_NO_INLINE +#undef PUGI__GETPAGE_IMPL +#undef PUGI__GETPAGE +#undef PUGI__NODETYPE +#undef PUGI__IS_CHARTYPE_IMPL +#undef PUGI__IS_CHARTYPE +#undef PUGI__IS_CHARTYPEX +#undef PUGI__ENDSWITH +#undef PUGI__SKIPWS +#undef PUGI__OPTSET +#undef PUGI__PUSHNODE +#undef PUGI__POPNODE +#undef PUGI__SCANFOR +#undef PUGI__SCANWHILE +#undef PUGI__SCANWHILE_UNROLL +#undef PUGI__ENDSEG +#undef PUGI__THROW_ERROR +#undef PUGI__CHECK_ERROR + +#endif + +/** + * Copyright (c) 2006-2015 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ From 5a9fca992e864b5dd585fb37693c7a63daabf9cf Mon Sep 17 00:00:00 2001 From: Gabriel Bauer Date: Sat, 30 May 2026 23:38:11 -0400 Subject: [PATCH 02/12] manually applied patches --- DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp | 6 +- DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.h | 2 +- .../MSPBSL_PhysicalInterfaceSerialUART.cpp | 14 +- .../MSPBSL_PhysicalInterfaceUSB.cpp | 2 +- .../MSPBSL_PhysicalInterfaceUSB.h | 2 +- ThirdParty/install_thirdparty.bat | 196 ------------------ 6 files changed, 13 insertions(+), 209 deletions(-) delete mode 100644 ThirdParty/install_thirdparty.bat diff --git a/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp b/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp index 02c7e91..cc08612 100644 --- a/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp +++ b/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp @@ -227,7 +227,7 @@ bool UsbCdcIoChannel::openPort() { const std::string dev = portPrefix + name; - ioService = new boost::asio::io_service; + ioService = new boost::asio::io_context; port = new boost::asio::serial_port(*ioService); if ( boost::system::error_code ec = port->open(dev, ec) ) @@ -235,7 +235,7 @@ bool UsbCdcIoChannel::openPort() int retry = 5; while (ec && --retry ) { - boost::this_thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(5)); + boost::this_thread::sleep(boost::get_system_time() + boost::asio::chrono::milliseconds(5)); ec = port->open(dev, ec); } @@ -326,7 +326,7 @@ class AsyncTransferHandler int read(unsigned char* buf, size_t bufSize, uint32_t timeout) { - timer.expires_from_now(boost::posix_time::milliseconds(timeout)); + timer.expires_from_now(boost::asio::chrono::milliseconds(timeout)); timer.async_wait(boost::bind(&AsyncTransferHandler::onTimeout, this, _1)); async_read(port, buffer(buf, bufSize), diff --git a/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.h b/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.h index b6531a9..eb1dde7 100644 --- a/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.h +++ b/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.h @@ -79,7 +79,7 @@ namespace TI std::string name; bool isXoffFlowOn; Status status; - boost::asio::io_service* ioService; + boost::asio::io_context* ioService; boost::asio::serial_port* port; ComState comState; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp index 6a67530..2e9101f 100644 --- a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceSerialUART.cpp @@ -193,27 +193,27 @@ void MSPBSL_PhysicalInterfaceSerialUART::invokeBSL(uint16_t method) port->set_option(RESETControl(LOW_SIGNAL)); port->set_option(TESTControl(LOW_SIGNAL)); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(10)); port->set_option(TESTControl(HIGH_SIGNAL)); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(10)); port->set_option(TESTControl(LOW_SIGNAL)); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(10)); port->set_option(TESTControl(HIGH_SIGNAL)); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(10)); if( method == STANDARD_INVOKE ) { port->set_option(RESETControl(HIGH_SIGNAL)); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(10)); port->set_option(TESTControl(LOW_SIGNAL)); } else if ( method == BSL_XXXX_INVOKE ) { port->set_option(TESTControl(LOW_SIGNAL)); - std::this_thread::sleep_for(std::chrono::milliseconds(10)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(10)); port->set_option(RESETControl(HIGH_SIGNAL)); } - std::this_thread::sleep_for(std::chrono::milliseconds(250)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(250)); } diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp index ce13251..4af5df4 100644 --- a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.cpp @@ -189,7 +189,7 @@ uint16_t MSPBSL_PhysicalInterfaceUSB::RX_Bytes( uint8_t* buf, uint16_t numBytes return ERROR_READING_DATA; } - std::this_thread::sleep_for(std::chrono::milliseconds(500)); + std::this_thread::sleep_for(boost::asio::chrono::milliseconds(500)); } return 0; diff --git a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h index 37825c6..d1105ed 100644 --- a/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h +++ b/ThirdParty/BSL430_DLL/BSL430_DLL/Physical_Interfaces/MSPBSL_PhysicalInterfaceUSB.h @@ -38,7 +38,7 @@ #pragma once -#include +#include #include "MSPBSL_PhysicalInterface.h" diff --git a/ThirdParty/install_thirdparty.bat b/ThirdParty/install_thirdparty.bat deleted file mode 100644 index 0ed505f..0000000 --- a/ThirdParty/install_thirdparty.bat +++ /dev/null @@ -1,196 +0,0 @@ -@echo off - -:: Configure the downloaded files you want to use here but without the file type ending, e.g. boost-1_34_1 NOT boost-1_34_1.zip - -set BOOSTDIR=boost_1_44_0 -:: please set this too - you have to change the '_' to '-' after boost -set BOOSTDIRINCLUDEPREFIX=boost-1_44 -set BJAMDIR=boost-jam-3.1.18 -set INTTYPES=msinttypes-r26 -set MSVC_Ver=msvc - -:: Don't change settings below this line! - -set BOOSTDOWNLOAD=http://sourceforge.net/projects/boost/files/boost/1.44.0 -set BJAMDOWNLOAD=http://sourceforge.net/projects/boost/files/boost-jam/3.1.18 -set INTTYPESDOWNLOAD=http://code.google.com/p/msinttypes/downloads/list - -set LIBDIR=lib -set INCLDUEDIR=include - -set BJAMBUILD=build.bat -set BJAMBINDIR=bin.ntx86 -set BJAMEXE=bjam.exe - -set GENERICBOOSTINCLUDE=%INCLDUEDIR%\boost -::set BOOSTRELEASEPATH=bin.v2\libs\thread\build\%MSVC_Ver%\release\link-static\runtime-link-static\threading-multi - -set INTTYPES_FILES=inttypes.h stdint.h -set UNPROCESSEDINTTYPEFILES=changelog.txt - -echo After installation there will be two further folders, "lib" and "include". -echo Unzipped files will be deleted in order to have a clean environment! - -:: creating lib directory -if not exist %LIBDIR% ( - md %LIBDIR% -) - -:: creating include directory -if not exist %INCLDUEDIR% ( - md %INCLDUEDIR% -) - -:: installing inttypes -echo. -echo Installing inttypes! -echo. - -if not exist %INCLDUEDIR% ( - goto error_no_include -) - -for %%i in (%INTTYPES_FILES%) do ( - if not exist %INCLDUEDIR%\%%i ( - if not exist %%i ( - goto error_no_intfiles - ) else ( - move %%i %INCLDUEDIR% - ) - ) -) - -:: installing bjam -if not exist %BJAMDIR% ( - goto error_no_bjam_dir -) else ( - pushd %BJAMDIR% -) - -if not exist %BJAMBUILD% ( - goto error_no_bjam_bat -) else ( - echo. - echo Building bjam! - echo. - echo. - @echo on - call %BJAMBUILD% - popd - @echo off -) - -:: installing boost -if not exist %BOOSTDIR% ( - goto error_no_boost_dir -) else ( - pushd %BOOSTDIR% -) - -if not exist ../%BJAMDIR%/%BJAMBINDIR%/%BJAMEXE% ( - popd - goto error_no_bjam_exe -) else ( - echo. - echo Building and installing boost! - echo. - @echo on - ..\%BJAMDIR%\%BJAMBINDIR%\%BJAMEXE% clean -:: prefix=.. means, alib directory in the parent dir will be created - ..\%BJAMDIR%\%BJAMBINDIR%\%BJAMEXE% --toolset=%MSVC_Ver% --prefix=.. link=static --threading=multi runtime-link=static stage install - popd - @echo off - if not exist %INCLDUEDIR% goto error_no_include - if not exist %INCLDUEDIR%\%BOOSTDIRINCLUDEPREFIX% goto error_no_boost_include - if not exist %INCLDUEDIR%\%BOOSTDIRINCLUDEPREFIX%\boost goto error_no_boost_boost_include - move %INCLDUEDIR%\%BOOSTDIRINCLUDEPREFIX%\boost %GENERICBOOSTINCLUDE% - rmdir /s /q %INCLDUEDIR%\%BOOSTDIRINCLUDEPREFIX% -) - -goto finished - - -:error_no_bjam_dir -echo. -if exist %BJAMDIR%.zip ( - echo *** You have to unzip %BJAMDIR%.zip! *** -) else ( - echo *** Please download %BJAMDIR%.zip from "%BJAMDOWNLOAD%" - echo and/or change settings of %0! *** -) -goto finsished_error - -:error_no_bjam_bat -echo. -echo *** You're unzipped Version of %BJAMDIR% seems corrupt! *** -echo Unzip %BJAMDIR%.zip again or download bjam from %BJAMDOWNLOAD%! -goto finsished_error - -:error_no_bjam_exe -echo. -echo *** %BJAMDIR%\%BJAMBINDIR%\%BJAMEXE% not found! *** -echo Check path and settings of %0! -goto finsished_error - -:error_no_boost_dir -echo. -if exist %BOOSTDIR%.zip ( - echo *** You have to unzip %BOOSTDIR%.zip! *** -) else ( - echo *** Please download %BOOSTDIR%.zip from "%BOOSTDOWNLOAD%" - echo and/or change settings of %0! *** -) -goto finsished_error - -:error_no_include -echo. -echo *** Path %INCLDUEDIR% not found! *** -echo Script possibly broken. -echo This should not happen. -echo Check paths and configuartion of %0! -goto end - -:error_no_boost_include -echo. -echo *** Path %INCLDUEDIR%\%BOOSTDIRINCLUDEPREFIX% not found! *** -echo Script possibly broken. -echo This should not happen. -echo Somethings possibly wrong with boost installation routine! -echo You have to build and configure manually! -goto end - -:error_no_boost_boost_include -echo. -echo *** Path %INCLDUEDIR%\%BOOSTDIRINCLUDEPREFIX%\boost not found! *** -echo This shouldn't happen. -echo Somethings possibly wrong with boost installation routine! -echo You have to build and configure manually! -goto end - -:error_no_intfiles -echo. -if exist %INTTYPES%.zip ( - echo *** You have to unzip %INTTYPES%.zip! *** -) else ( - echo *** Please download %INTTYPES%.zip from "%INTTYPESDOWNLOAD%" - echo and/or change settings of %0! *** -) -goto finsished_error - -:finsished_error -echo. -echo *** Finished with errors! *** -goto end - -:finished -echo. -echo Finished! -goto end - -:end -Pause - - - - - From 3f9c448c6963689e45a141ae3fde9948796d53c7 Mon Sep 17 00:00:00 2001 From: Gabriel Bauer Date: Sun, 31 May 2026 00:15:07 -0400 Subject: [PATCH 03/12] applied other patches --- DLL430_v3/src/DLL430_OldApiV3.cpp | 8 +++--- DLL430_v3/src/TI/DLL430/DebugManagerV3.cpp | 8 +++--- .../EmulationManager/EmulationManager430.cpp | 14 +++++------ .../TemplateDeviceDb/DatabaseImplementation.h | 2 +- .../DLL430/TemplateDeviceDb/DeviceUnknown.cpp | 4 +-- DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp | 25 +++++++++++++------ 6 files changed, 35 insertions(+), 26 deletions(-) diff --git a/DLL430_v3/src/DLL430_OldApiV3.cpp b/DLL430_v3/src/DLL430_OldApiV3.cpp index c0ebbe0..71e5c5e 100644 --- a/DLL430_v3/src/DLL430_OldApiV3.cpp +++ b/DLL430_v3/src/DLL430_OldApiV3.cpp @@ -302,7 +302,7 @@ bool DLL430_OldApiV3::Initialize(char* port, long* version) } if(notifyCallback!=NULL) - handle->addSystemNotifyCallback( boost::bind(&DLL430_OldApiV3::iNotifyCallback, this, _1, _2, _3, _4) ); + handle->addSystemNotifyCallback( boost::bind(&DLL430_OldApiV3::iNotifyCallback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4) ); if (version) // pointer not 0 { @@ -332,7 +332,7 @@ bool DLL430_OldApiV3::SetSystemNotfyCallback(SYSTEM_NOTIFY_CALLBACK parSystemNot if(handle && singleDevice) { - handle->addSystemNotifyCallback( boost::bind(&DLL430_OldApiV3::iNotifyCallback, this, _1, _2, _3, _4) ); + handle->addSystemNotifyCallback( boost::bind(&DLL430_OldApiV3::iNotifyCallback, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4) ); if ( DebugManager* db_man = singleDevice->getDebugManager() ) { @@ -2769,7 +2769,7 @@ bool DLL430_OldApiV3::FET_FwUpdate( } ConfigManager *config = handle->getConfigManager(); - bool success = config->firmWareUpdate(lpszFileName, boost::bind(callback, _1, _2, _3, clientHandle)); + bool success = config->firmWareUpdate(lpszFileName, boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, clientHandle)); //Only perform retries when not using user specified file int retries = 2; @@ -2781,7 +2781,7 @@ bool DLL430_OldApiV3::FET_FwUpdate( { //Initialize will invalidate the old config manager config = handle->getConfigManager(); - success = config->firmWareUpdate(lpszFileName, boost::bind(callback, _1, _2, _3, clientHandle)); + success = config->firmWareUpdate(lpszFileName, boost::bind(callback, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, clientHandle)); } } diff --git a/DLL430_v3/src/TI/DLL430/DebugManagerV3.cpp b/DLL430_v3/src/TI/DLL430/DebugManagerV3.cpp index ca2724c..5f52af5 100644 --- a/DLL430_v3/src/TI/DLL430/DebugManagerV3.cpp +++ b/DLL430_v3/src/TI/DLL430/DebugManagerV3.cpp @@ -94,19 +94,19 @@ DebugManagerV3::DebugManagerV3 (DeviceHandleV3* parent, const DeviceInfo* devInf , resetCycleCounterBeforeNextStep(true) , storagePollingActive(false) { - this->waitForEem.setCallBack( boost::bind(&DebugManagerV3::localCallback, this, _1, _2), 0 ); + this->waitForEem.setCallBack( boost::bind(&DebugManagerV3::localCallback, this, boost::placeholders::_1, boost::placeholders::_2), 0 ); this->waitForEem.setAsyncMode(false); - this->waitForJState.setCallBack( boost::bind(&DebugManagerV3::localCallback, this, _1, _2), 0 ); + this->waitForJState.setCallBack( boost::bind(&DebugManagerV3::localCallback, this, boost::placeholders::_1, boost::placeholders::_2), 0 ); this->waitForJState.setAsyncMode(true); - this->waitForStorage.setCallBack( boost::bind(&DebugManagerV3::localCallback, this, _1, _2), 0 ); + this->waitForStorage.setCallBack( boost::bind(&DebugManagerV3::localCallback, this, boost::placeholders::_1, boost::placeholders::_2), 0 ); this->waitForStorage.setAsyncMode(true); createModuleStrings(devInfo->getClockMapping()); createClockStrings(devInfo->getClockNames()); - eventNotifier.setEventHandler( boost::bind(&DebugManagerV3::runEvent, this, _1) ); + eventNotifier.setEventHandler( boost::bind(&DebugManagerV3::runEvent, this, boost::placeholders::_1) ); eventNotifier.startProcessingEvents(); } diff --git a/DLL430_v3/src/TI/DLL430/EM/EmulationManager/EmulationManager430.cpp b/DLL430_v3/src/TI/DLL430/EM/EmulationManager/EmulationManager430.cpp index a9381d7..9bd5a08 100644 --- a/DLL430_v3/src/TI/DLL430/EM/EmulationManager/EmulationManager430.cpp +++ b/DLL430_v3/src/TI/DLL430/EM/EmulationManager/EmulationManager430.cpp @@ -135,43 +135,43 @@ VariableWatchPtr EmulationManager430::getVariableWatch() const bool EmulationManager430::hasTriggerConditionManager() const { - return mTriggerConditionManager; + return mTriggerConditionManager.get(); } bool EmulationManager430::hasBreakpointManager() const { - return mBreakpointManager; + return mBreakpointManager.get(); } bool EmulationManager430::hasClockControl() const { - return mClockControl; + return mClockControl.get(); } bool EmulationManager430::hasCycleCounter() const { - return mCycleCounter; + return mCycleCounter.get(); } bool EmulationManager430::hasSequencer() const { - return mSequencer; + return mSequencer.get(); } bool EmulationManager430::hasTrace() const { - return mTrace; + return mTrace.get(); } bool EmulationManager430::hasVariableWatch() const { - return mVariableWatch; + return mVariableWatch.get(); } diff --git a/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DatabaseImplementation.h b/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DatabaseImplementation.h index fe5265b..6610de3 100644 --- a/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DatabaseImplementation.h +++ b/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DatabaseImplementation.h @@ -43,7 +43,7 @@ #endif #include -#include +#include #include #include diff --git a/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DeviceUnknown.cpp b/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DeviceUnknown.cpp index b18dbda..5eda5cf 100644 --- a/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DeviceUnknown.cpp +++ b/DLL430_v3/src/TI/DLL430/TemplateDeviceDb/DeviceUnknown.cpp @@ -47,9 +47,9 @@ extern const char deviceUnknown[] = "DeviceUnknown"; typedef ClockInfo NoClockInfo; //"null" id -typedef IdCode<0x00, 0x00, 0xFF, 0xFF, 0xFFFF, -1, 0xFF> IdCodeUnknownType; +typedef IdCode<0x00, 0x00, 0xFF, 0xFF, 0xFFFF, static_cast(-1), 0xFF> IdCodeUnknownType; //just some mask with no masking capability (all 1s) -typedef IdCode<0xFFFF, 0xFFFF, 0xFF, 0xFF, 0xFFFF, -1, 0xFF> MaskUnknownType; +typedef IdCode<0xFFFF, 0xFFFF, 0xFF, 0xFF, 0xFFFF, static_cast(-1), 0xFF> MaskUnknownType; typedef Match MatchUnknownType; typedef MemoryInfo< diff --git a/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp b/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp index cc08612..ec19495 100644 --- a/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp +++ b/DLL430_v3/src/TI/DLL430/UsbCdcIoChannel.cpp @@ -48,6 +48,9 @@ #include +#include +#include + #if defined(_WIN32) || defined(_WIN64) extern "C" { @@ -235,7 +238,7 @@ bool UsbCdcIoChannel::openPort() int retry = 5; while (ec && --retry ) { - boost::this_thread::sleep(boost::get_system_time() + boost::asio::chrono::milliseconds(5)); + boost::this_thread::sleep(boost::get_system_time() + boost::posix_time::milliseconds(5)); ec = port->open(dev, ec); } @@ -315,28 +318,34 @@ bool UsbCdcIoChannel::isOpen () boost::mutex readWriteMutex; +#if BOOST_VERSION >= 107000 +#define GET_IO_SERVICE(s) ((boost::asio::io_context&)(s).get_executor().context()) +#else +#define GET_IO_SERVICE(s) ((s).get_io_service()) +#endif + class AsyncTransferHandler { public: AsyncTransferHandler(serial_port& port) : port(port), - timer(port.get_io_service()), + timer(GET_IO_SERVICE(port)), result(RES_NONE), bytesTransfered(0) {} int read(unsigned char* buf, size_t bufSize, uint32_t timeout) { - timer.expires_from_now(boost::asio::chrono::milliseconds(timeout)); + timer.expires_after(boost::asio::chrono::milliseconds(timeout)); timer.async_wait(boost::bind(&AsyncTransferHandler::onTimeout, this, _1)); async_read(port, buffer(buf, bufSize), boost::bind(&AsyncTransferHandler::onTransferComplete, this, _1, _2) ); - port.get_io_service().reset(); + GET_IO_SERVICE(port).restart(); #if defined(_WIN32) || defined(_WIN64) while ( result == RES_NONE ) - port.get_io_service().run_one(); + GET_IO_SERVICE(port).run_one(); if (result != RES_COMPLETE) { @@ -349,9 +358,9 @@ class AsyncTransferHandler timer.cancel(); #else while ( result == RES_NONE ) - port.get_io_service().run(); + GET_IO_SERVICE(port).run(); #endif - port.get_io_service().stop(); + GET_IO_SERVICE(port).stop(); return (result == RES_COMPLETE) ? static_cast(bytesTransfered) : -1; } @@ -360,7 +369,7 @@ class AsyncTransferHandler enum Result { RES_NONE, RES_ERROR, RES_TIMEOUT, RES_COMPLETE }; serial_port& port; - deadline_timer timer; + boost::asio::steady_timer timer; Result result; int bytesTransfered; From e48b43f94f0e74c97160ab66dc1d39a122d0caeb Mon Sep 17 00:00:00 2001 From: Gabriel Bauer Date: Sun, 31 May 2026 00:52:58 -0400 Subject: [PATCH 04/12] resolved missing boost_system library on Ubuntu ARM64 --- Makefile | 11 ++++++++++- build-boost.sh | 19 +++++++++++++++++++ libmsp430.so | Bin 0 -> 12939024 bytes 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100755 build-boost.sh create mode 100755 libmsp430.so diff --git a/Makefile b/Makefile index 8bfba83..09a2ab3 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +UNAME_M := $(shell uname -m) + CXX:= g++ DEFINES := -DUNIX @@ -29,7 +31,14 @@ INCLUDES += -I$(BOOST_DIR) LIBDIRS += -L$(BOOST_DIR)/stage/lib endif -LIBS := -lboost_thread -lboost_filesystem -lboost_date_time -lboost_system +LIBS := -lboost_thread -lboost_filesystem -lboost_date_time + +ifeq ($(UNAME_M), aarch64) + LIBS += -L/usr/local/lib/cmake/boost_system-1.92.0 +else + LIBS += -lboost_system +endif + SRC := \ ./HalObjectDb/src/HalObjectDb.cpp \ diff --git a/build-boost.sh b/build-boost.sh new file mode 100755 index 0000000..4944b4e --- /dev/null +++ b/build-boost.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +echo "Building boost_system v1.91.0..." +echo "If you want to build a newer version of boost when one comes out, update the script" + +# Or whatever is the latest boost library +git clone --recursive https://github.com/boostorg/boost.git --depth 1 + +cd boost + +git checkout boost-1.91.0 + +git submodule update --init --recursive --depth 1 + +./bootstrap.sh --prefix=/usr/local + +./b2 --with-system cxxflags="-std=c++11" stage + +sudo ./b2 --with-system install diff --git a/libmsp430.so b/libmsp430.so new file mode 100755 index 0000000000000000000000000000000000000000..32ea926d09c90a93255f9742fe42704f62a1780a GIT binary patch literal 12939024 zcma&OfBaiTmGFONGRfyAP0LN1*0dCzq-jY@!L(E?h%!mjl9qyLDOeEQv=p`==m%w8 zRMbhDmb4U1Yte$}rlnv3T??Y3tGj6_SQOpjqKiM)Er=`Ystc>nKCYrZ?_1L6#n9xp(Hw%$YNDZ}{+%6-%{JF&Rlrz9j1S0osky&A)u~|K>VbBmtkiMqYjF z-1z_fi_)3vCQLIMpuvSk$~}=TE{;BbG_#4`dEJd+b`?m-;0i-?;ZZix?`XJ zxo(b5KdysgXNeeegdD%zpXt)*yyN=Vx#W#Ol>YPb9X}p@4ST#S$940k*RPMhcX;&p}?k8x)#ozG1W~F8R`^Q?e11OUlwUh ze%+$CUL^I33uWwMm_8-@FPbTdc1Cr!)ub-rcClKSqZu#lMA`;5+c^p- zRjbBAE6vEVfe)1lT&cHrXRtr_*q|{laMH@SDNg*>zRa}Y-j2vpnemH(*s`P62M-A~ zSGjfL`@;OP0_9LCmGZgFHeVRNby{mtsJBLo^!dD9q)UxC6|16H{YndKkFCv z!uf?MwOovj;8H%>lG~@szWh9|Rjo?TQ+|m%d17)9q^V)o82&bk2i7&V>6o|8N-dN% z+%+haCI!yzruoO4mNr&#IjD!`de;y|nW#f&)lWCnLVHm7%Ah;9OLc~wZs7cw9j}(; zA}7UzA{AW|GZdX^c&SLDEVeXf7|JFa@7=7$JEenqAjT9WYf(cw01>ThWX2s#NB+6u*p@&C$G=j zy6on2r|Kdt6()Uy-of}Y8&b_^D7(f)x4o;hC{1moLsf%7<;B>d9H9K2l+2Kob$5$x z1~CaIs(7NP8=}{KX6iG}6htqU2`Foo+@->G0N<k`BqnP)wAu&-n6+?Cus}9ST8uVNHoIIW$mxP@i*G+* zX7*7N zr<3M|qRghll3NrgU-xqH!<0vMyORR35*Ebks!53RHdswF+0!MMhRLe&ch>fX6s1_O zS~i5@
VDj#b9h#5*z@>03mYZuhGe3MFN=7(3=NS_80{*xOKc$! z<$`UpwLYZo4v*cvYs09f z5^AX#I+ggJZY~G5w9ExFmD0nfyK(QOCZ2Ot$ow-Y)VAZBN;594?HA=joeKK;T`hgl zK|E|G5MMT-R)d_Q6^7M{B_^kFS-P&&2Em${wz#pR*9-$AvP7Ge zyE^q9RsZM~=8>avYuJk#DJ4?x;{-%@NGC2+sm;>G#=2)^kLaxTw6WOekN6p;iwUc# zKWT|s`z5+5oV z$~{~($#K**q+*wHi%_Xu140RIoC~zqKBbL!M;6KzI;JPp-#E*8sjq*P5y`533}~ii z%3V{Xd*VGcBdE0ZsG?ka`wg2a8(SNyqSDEfo+Q1JvYAjW#s3wjN!aNQ(uWPxY`W*i zuA&f`$REw~5}18T@^1I17+F&B%$r3C@V*l3C1e=N?P{J4i}q8)X2(!w+%g3xR0+Si zM*CgqAfDG^jxS1lrA$APcM{%zeS4D>`(`{l!(+mn9Flvp zsYQ(W$Y+Ucl~hp=WMwu`fBJHu!%dT{{9@Z&+2$Z8##UWiZF%{N_f-Yh>owa^AR zz8uQ5uLV)qMI4dn$gGxZj_X<1#KrcaDa(qPAo@0HHdnrWYd9R=aItF)^^{;r9CK?4 zslYg=`B*Mz&ec|up`zQbF|pvxLQ68m9>!M`*bYkZTK(0ME7BEFGdEY%Y z0db?K*vDkq+-$WmIO3#4^p!j)333M&I-rIyHK(v&<(@j>yps4K1I-#Qg8~zpl**lf zk=Av3!O$kP?khm}BN~dbAr&l-0r6q9{G4>KA_tBB; zMsb?~?PMSGnjMJW z+j1uKVaOeQvv~gWmDVhmYHf<-)*s$0%l}uWaZu(rUyv)rC&O8K8x!z$TNml-)_2bZ*V?wpMz6^|jcdTOQbsD2ZCn=^$rm)G~jf_>k$oB+beR{ZvrSbf<|u z;+bjqtT9V=q#A!IszWD9=S@x?Cp#tGLTM>x+9Ip-;UO*Euu$+WP?cptzJATx)P_SC zR{SQixJbfhSe!`EFMY~}mJ#i=9H`bOCW7*``DIHEjsD=kpRjM*l|GsISj`_^;iV(G zrM)WC07NeiUoic_sQ3xiI~^rk+Cj+V7jU^@DnlDvgFBPO&g3$(-2{XOvSGS}Ew@S9 zDZUkkYTaU*{y<`|;PDHer$DQ*yuVwr65s!sLdtQ4Z^qvgkL^*Xq=up=xBXV%bE+MA zpjJa{)N@NzM*>;GUqvXG^^%_=pIDA`~)6&g%xJ|^ugbCjZ;m^CANG5aZhcu)KV zY01%cfeEq;$;e6}_Y{dWSqPTug-Ll~#H`Zn_y`bE4()n|~QB6`K#evs9Y`O?0wp zVwVo@7u#30EQ`zcw3f>)TWvBw?7Mn70y+NEO>OD$U-t|(IAjcr-n91Rx#p>eyTXf}&mR>O? z-|sIiW&;}!#)fXzd?~cnyV-jjfj5=sW@V<$!N>f9iL*pz7P)!UWZ@)NP>H&=0ds zDL=Y1ujI1Mig*V{(0pozT!Oj8yKty6uP7wdc6lX~mt7xo+PzMeEez zJ+j^hVW2lmX%yw?(8?^v?7Wjs=|rL0u`!K%PfEPn^x=TmEF=IErlWYJlFH|#VeXSu zpEZ`2X^KB(LtwWz>|N1%{Ck@952fC12rFD!4v6ixa2FmEZK1~p9V{NGqZHbk{tD|T zD<3hWbSogho?k=TJcjoOKjt4Yu7P)+_vGRTCVnEhgwK zE;N2#?>^a45~3J=I9hSlW0)};MqaPst%NHrx4fIZ0Y-+kt{6M7c-U0c<#pCZSFe0R z3NDoAQVZ!Wo|{k%Gp(^Z*qL3ob#meS(wOuH8@jTttX!J_UO0!LBGzHJf&^KW^Le80 zOBPd&%wQ@dTp(u0kz;i{_9uQp-VAhBRg`Qp!)#63p&Je}H7nQ)uM%G%3s!etJu!?0 zI1nj^I=g-GvA&udB%hy}s&s=6apuytuBBq$oQ}bLX8svcOZZl4N>wDBy=vetpl63U z8Mv8pBonNt4mS3WNO!lDO@s=`LuR5R-1}_#EEy~*n;H8Xfohb4Ls&2^TTbW~L$}?B zdj4rE@*8@|P_)sxXd3~;757L}F5S4PRv=rAwHdH;aJEI*u zTxnh#na%9|Z=O}HUEgTm?%rxk^pJ_)C*aJ{z@T#&DfVf<1yWtD9A;u6x(zB4Ayo$DoN&{>`^u_`^@ z9$bCeZ6bF#qm^&jn5?7p%l4|?)zW!7bN<4(S+4uuHfSJSj^i5I-o0Jy;j!#kA_Yc-Ie9=oU8=n${ zH}unoZ#`Hl>zUi+n$>1N(9p6i>27sWm2bLj)2cMLNgHAbi45IL@5TVNHb$FDi3idc zlY%-pCB7%>Mhq1zjGB^UEn6xZ{G4{^S%9(*yVxeem<{9$v}V|n#x=zi?W+&Rwgm%` z3uSLIDeuZOHm}Y(AJ*NGMRJPBsw2wf%M45F&!}M!0@2P9uAe_Y+zGb|bSHTaoLLvZ0zp9%hH5t##1fLrgq&6wYNR{DMY8-xd zeudDEow2PZFb#dQYSK$-`an7c{LSLb<1#7>Bv0U zJwYqOTr(}Uvn}zc8wTDtt>kU*9yv+*W$xllo|)oyc_Gx&dJ2n#dPUPHE6kK?Oo^=C z%(_)8mZp_`b}7#361C4Qag4cp4O@Oc_!4!b|`xb&S{5N?^iCbu&v9IO)*+lsQZ0lG;^ z-gK>f-M;43Mwl&zflQRa4uX+Q;ZfR8|KS9YKfH!J?P|)Qs;ZVVX5-O(|G`pyVJ$0!MEg|O>H&$mN1D58i9%MCNs z?n)aAcI4wmq&3UFIHa6X*wfxD#0Yp6rh|k811FA-$|+(3>9#`W+g-mf;kSpfgKI36 zLS;u#(M6H2&~0x?v%BZ$Tr-`lG;+FqGBH74d~?y++ZxRv*rJ%D979f**epx#PKN0~ zwM#x+<;^mwNoa?;B$JI6w~^r?O|L7Ff#gh)Lp5e?)uRU`8&~_v&g62rR;>twHV#ui zE9z+1<2>xKf4PAq8zHVZD>B6_J2l#N8EV_xC(h=*G6e>+j;>3ijpfEg!tTcskxyH& zO(xr%tg6>!OsvmTTG~rny1~Z(617##0={FY_nE2O8GBzOcG5}f?Gw5s44%ksviI~v z=q<*IIsu+pNu@YFXc=b9W9IZVkLzF*(M_h%AbYYwy_C>av~zBIr?g3Im2e<8#Y$N8 zT%j6Hm>`qq&;}GJ7^;RJ(u5(~cN9C?XsnNoOJ zSheDRa!O6DiHGHxr_K*-PuG1plcu4Z{@o?tES5N*42YYOTIkbDK^w* z@#_ncP9KqT>CP4UdQS>ZHxE-Vo-0WmPinUZ3q!wV?y(4OX3$&GGV8HJ+7wttwxj;( zM6K_WuoObKcW$V9AG7Rfy#5?l=cm%cwpVuSnM_vB4EeJtncKOQp0n2+P4U)x(Kt%U0nLmdvEm|H61E zr@M!9`lDV2MT>)Ap>GIzv%#(L{ms;^BF~7@QWcQ{e;n9@e^B#N`&nGB`vkr1k8AIo z_EM>8{p$o*lMM6==mH*CpRTl9yiN=d7-C85d*qP4F(Rh#7OV|!)vO$v*dZ(p`?+J^wP;I(fi(PM8 ziQYA_N_b|p1*FG^-K!*}pUBCi*mcy%ucA2lBm-RZ>|OEnbQ`E4b9u_?f!@7#lZEw8U~6kKg+1d!UoLB594+Wg zm~r$$@g>Wp$?=M4jtD9`$mxZ2tRS@7^Py-vG5Ne@;3cwF<|Wxk@J_;QmsgnF8WQty zc4oAa0he{*u`g__Iu5v|lB-0;KgAB4*|B7S=I&Ca514_d#zZC=%VQ)XwIF)bx|3Z& z9(hgMo$1m%>;TRSP0LydW>>?*R>dFeFRLr|*VEk8VAw^>BL^@<%O0WQ7}+by%cA)Z zi9F_wOh|Od9_0um=@xj=JF_Vx>=3XUD*D})o2^LLZt48=;3L`Xpsv#dN?t8Jr? z^yiD>OiQU(#MGoVPLPaLkiGKqW^r0hn1_&XxGC5yD)D$~PG?d&9>$bx)XW-% zd|}|3E~H-U3pbf_W+jVFa&%1b8-rk7Ow+ke+1Z%Wls!$AR)Y)i0az~8ojr^UIE-#V z;8Vge>*u{cVdhd7YXu9R^?2=KJoQBK%J|~ofUR*_=(PB-QuZb$m9XEcr~CR^+C5+@ zZL~^GE45?xS+%z?P8>{rt?iFdbW=D$-&u2cg znRuLj$|^_QB3p2^GH>ApHb0BOV4`bg^GqjFqAeRzmZP>%I)uGk(wiauVX`VM!-wYF z+Po;Q=C9~hrMN2>9+ghfZXg(F=)7u}g-t5KRL-)XtqmR_-&wHm>U_P!4N6e%2;HnK z?3%E$42_R&FTpmSZF&h$nCh7)ES=qK3sXIDaf0L(FBWSthk49GnJ5JpEL5qOJCL+| z>Uj*mMcOw6)tU?(YdCtx^nkd|ZLf+d-no$$llnB-cF~@uEO5($yLhX>u)SjZ z=A26^di=Tx6Q;ZBUFV5qn%~{^2SWd3Sx=0$m^2)&C%#@v#lCV;&ws@4oV4Nk*)>Wa zMW+hS*M+dICw~S;X=^HM2tKFer{#j!rt8Qajs^JmHDB`7Oy5&jj=&AN7T=c z$g*58KDS<4^bq@Eo~K=5Xg7(PLI1X@PdUny3+6JnoC%_03T$RF1>vCNZhvo9Gzr-7%E<#umUSg2rLC7bdnU=|3N}qfkUux}emaVpa5*JZikC z+LSb(Qxa@kPpte2hZ)RK9+OzS6-6H$JBxXN*Z|K_AMCCNsk&JzdOKgd78i#qLSC(E4?fs*pX@9lVpHn#P;P zpkJR5O>pbP?k!rk#7ODYAum_d8cA07Ifgg3Sfsuz`JMUIeG`^j2T!=|CcV;kXLmE% zT&fbLs)j$2J$=IYn(U#2bez!PU1bnvCghCAn1b6XwcI zHcx!wtlQIbw8e)8@(Z4ybH{M84s=kNv6Rw9vZybYME+_fX&0@WZIs)N0>3$KgVbel zodvbr9A#T?^;VB7NpR5H?qu;@gk`rU-gOL1aW^q%xljGP_rafOh}q|_kDyV#iDDD7%M zA%k$}Zx!n@YgIRqRz)U`X-1mups4VhWpz=k(;3c*x_uO!E@g`~C^vXc$cFf0S!neP z$~BavJ%Qcmwp`O#OC8KS^Dp9S2Y9I=+;coDd{dTy$NhvEnPKec4Y}uU%}MN zQX3|psZ%slu;N{*jxu-R#pH;dwMk7`6IvR`sYP|~hb6_JV=4$Iw)?(~6@tF;40sva z6j!2nD}%hoc1hdCnU*20w@eP0udn%lP`FXLR|iFHO+)s~P28?lmS&5YshNJSl-j^w zCh>;Ysmdqsa?Wj-Bl+rnN8K0CcQ;wK<7(06S#EWeji!(J!<^%?ho%kKP>)4pWntJV z6w1$}UBQQgM~jU@&Z{}SI2|)RYjgOj4MO`UjIxj>NEs>fI zv3Sk)>0ZH5a1r|gH$}GJ7n`?ge2Ul`RA#*-wT*^s$c{kY7npdXm(z^QsE*H7m3F@; zC(#`1`7-5;`nn+|Se;}T7_YU|%fT`~-s1fh(JmIV8FPg5q_#c%Bt_-)=#M$})HMiK zhw1VBP-+)(2BKq*L0I5mFvRWCZ^GO#hmH2((GO@}kJVf@Fzy;N{-q!FufJBpWrqSw zj3?%IM`JEr`o{lh)GP7=yG&efsSeY=qsL_(rFZ>C9}7t~G1T!nsk(Q*!CN)-If*xy z=baM4mAcRnDRoQrO{HGG+Ao-CjKzGu=x(>W=ewX8T)0Y`W=!@!wuaNUghhw1s$Vm` z*uP14S>2^?XtHR`x4Ls2arC5*^`{|Hkzmc^)E1f+15gvy>=&b%Y{(+Xl*m;9< zJonNadpf4to~M3ar;ExokJnT@Opo20RGDfxj31~Ut``&PnXvr>Jc=XMnAo?DE=R}g zW(Hn#2ftF!wrK0ltGRH|%9`!Mc9ISn#eu4>YJ@yqt6*uJBlf}P?Q(ayG#Pn4AXmn1 zVD7pu?8c6)&XjfR_R^=ETh&a+ZBp$d3u2V)m+@Bb;L$LlvLBPf)3;>fUM`yXae4{O zT0Nc3#r45_N=>{{Dat?+70oP6X&qfq#(5kvv@E7%kJe#>by`>IVQ;`~r5-pw4Q!*z zOK#CK`72rQR2x{LpML0~LE-d0U$NYStLTKpOI>k68GpyHQJw5vLMT&?pXPNzD#@W*p?{ONcq*4SgEn(#x?!g{? zUMS!@_Xg{;(n)%;H#45QXSFbXpl}%Z)EcT5twJ_r%>7}($5|^DoxDAsT{Y*)ArA>{9yWWx?Zs3Dx`61JysU=+Ycv|m{X2{g z=_CywoRBPw8b%(sVv0dnt%rH*q?N8pCMCxAY(Ff<`eCEMyeP88WV;geOB)hw={66O z>ro-_43adIhna_$qu9c5W6yOz{+TcclDRJN3~%)u;i={w?GBGThSFyoxk3f1()Tj!m#WCo(2CJB zbhsyxZ*08CG-3lLQ?_2+R4s4e>4wYWu{-RymnLmZU6WZwfaJLI9Ze@9g;n@-W($(# zLGmoq4N_Vb8Mxg&OT=y96V|5D)d|M7<%V543|}o0Dtv zgvD5+AWm=Er?h9l$koxs_Z!YfylhgLC-)SM3EOdv1zMuy6d)l!ljG zOtF$N8Ix?bCEK`cZJ|52SWR@QVk^scE=;*VH#$^8V|A`JrGPWIERgL-wg!3{J!OTN zhEu#rIz}e^?DW!It*{$kB&%l}cGA?}5Wf=(F{1g)ALOddyW}JvAFk~0(g&94!sevu zL|b@4Vll&|&?3YdPGUT@^?^ogPQVMIGS!uw%<`hS#32~*uDbYeAS$6BE1a_L&kF&Z`b>7gdw{Kee zYuTkeIhW^*g4~XGkHX~!;1I`7cixGkyETygl{FB3(svT z%NyEBtT?5(-PqEjJaL^TZjhm@^_0XORq7dO&isDSUQjK^qH7l%;obIJT{~6FU}WCf z5LEG?uzi>FWJt~TYD)a6e89tppk1Sn+*#XlU&YhIjhV_ENQmUrf0=c`W}W7O%30}~ zn|yeA`)pelcAGLs((Hc^Rib(CB$+gv*ljDh^mO-b8`>p-snA2YdLXv#{1h?a&K+X! zVh=4Ecw)SERhq9aAFKOLeV>G0{2b%9rgu*?6OvuLG`7zzD()7oT6{tAxx-H|E}HAg zJQQI7)h!>;*)wSZz+Q(P+>4XKdnFzxnUUqTz#wf2<5@MU4Wb=2S4HhR)TyqeZ0!^F zW-ZfcD#2?jJQ?=Br?>XzEmy6pnRnhe46Y$FH6Yx($^-@yr4y7=__$A5ZGJC?(wrXcXxIL%YPf5tu$dyo} zjWTHGyFOg~Pm&IGw;krvVPkqIi*L?m`r8)CTI&cuN;&0pixRbX5JJVBmq|1m!=T6N zDpeNgDzTgSq-D9NHp=U{4bE%HK2beu-B_!ks<)YVrZ9a&TVC?lPtga`MoBkXH&vzo zEW0rL&O*vPCFOiYTI^z)^JsUen!uKIz&2s5)yr8KD!)2ta+{d=+p$N;Y-`JFk{Km~ z&{d~&tB=`Wa8X4rb z5Vya1OFndib@aH5?C{Qy_z}b)Q|pxqomU;uPBu^$F5h|G=^ z_Zqu-|E%C(Z?SXS;+TZn&9Qf*op<%j&OEVGBq}oKF)cj8lt!SN#>!MvPmlJ!C2Vdj z&<9)Yqk}zrmFbGycJ(L$P}lQ<`-cFW7WV6n7cl_(D! z-IS=t=teELtt|!G+e%kr(Ib9lvS3ko-HshwTu-c>GjNmhZ99~(zM;WAc!DBxtAoQE z$}*f51SO@rhK&Vkh9Q|s=nZk->2^%FFw95K9=$cp#?))s++bb6nOr~Iv(Lq}w>~5y z4{0+3`8XFpaQfq$A6DCWsHuDXiHUprIf@@@$HO7pd~9Z_w{j>=_ncL(^hP`M2Zo-; zYs5M-xA$@rwk;RRZWPV;WWQH;ORt>qFH{~nkkU>~H5a*c`QrBCo1&uj!W&punB{?Y z>EaabZupL2XG58_)FqU}N0wDKH%<$iUev_eZn|q&AWU=14KIB#(o51=>X(&nV!m!4 ztCtBUOkev@Ow4o^|E`dfR6r*UYQ+@>O-;NQ?qgN9E~%Wc-2?*|-#0K?mlrpMba;>+ znh2W{FLNRLUf3!}w)1J-Y{$Gz$c!)d%~VUAiE8NfRs|b6<9%6dT+2*9X1YuzCRnn_ z6LD?rsTvnC{oHm&m7c_m`69ia9ErL{Oqe;M4jT{R_-{4<`N@uTtj(h@5iH`^J*ysC zhIYdf%BG>cn62aBK-O1U?UHoavr{Ymsx~7x@2ykuy4zeV%nr_CFFx8WV>)7QH9@_H z()J72NNu_alB!hPac?JB;q^NA$TViDFnwKS?$vJ01XUHRPXxI@-Pa0erbwa@HI>5n z98V&3GRo1BAJNNNQj47N4U|smvb}SzRh}q;{ek$vw-apL=lk_0`{cD52gB=3_0ri| zmNMgZy<6tZxMx=L>C-!G$%y6=#CAC?%qEv_qVndO#p!--yVN+O9NoA!a7Gq{iMr3? zy^h6_foFnZ(xPhMWUn-)wKo_qTMJI>wq=Ek;R=#zKRIi$@e9?)DXPlLhwxQB(8svY_vjJId|sCRVN5_KkV&^|Z>A8c$2-v24X zY7yVZ%&n}*Sq-DtPvm!pk$a_XVYlD&J;yf=W`p*HZM|J_73nbfj3va`u?&%LcA?16 z_W3!QxXLjE7_krVH@g+z9`Z=a_2c`65aQJ6fwQt=d&Ij*N!Hl$5L5Od#rQzzt23%Y zS#_#*v84<7d4v`D56gx^*uFxtxZaEedn!z}qT)-rgnhUc)^Q6$PYPdeb}YlS^H@jz z=M<5%F)Zh)aQey8D5Snu45DAM@_J$L@=z^yGmI5h=UT~FT$acMcNGrW$CXR*0&m)XYng{0oe2#AG z)f2>bi;-)b9$Rm!y)vc6K3Ku9!TMDj;8*#y(AMXhieD1<731-ufpsiSxR}l6>y-(m z^<8d5HqO1v!pk4*}tx6)bXAR8hfAA(-)MsbTj%y zyP-KRJo37Y%L8T9D#Hb-yU2&iq7IZ(>>p0liO6Bm4p=T2_H?Pyl}9g|tebj`9u8A^ z7rD^wzIBc9KI{j)y@O-%%z(zX0;%%v#O9Krm9?y494i4W^`70_;{~`G(kj}eX=2H3 z`Qor8(ri?-`kp1>SiJ0f^mBxjEYG`%pqHxI)1~gT$jMH;q=!rewvsi zYLCP>24&u32>2=W%&7ZLA7BGU;ZWQr3GHqPoJ=g(VaXM$3(bC&_q1G4XxyiDzCJk- zD*bTPG{=4PEt5@Gox%{ZzPB9rIy@lre)H~+1uH(jwI@7h5FGIGuzgLLJ#!{NrXl`S z#Sbu4=qwu>bUpF+I;(TR@XE1s=P{0@g(aV5zbp}Bieb{B}1MB(uyC(Zvs!LU+*d3lCp$ zx6W;xEQZBR@O<1kS)uP!KTGlY&}H#;lM?Y14vE5yJ=EFjG9V~)3z}XPV8`0;08y!b^ktJyTV{$Hf zIh+UQ!v)ZURd6A!fy-bmtb;4yO884SE?1F$2V4W!j`GLR?}5LD8-Slq%8l?rpsAz{ zUAPIh!Zx@Cj?1m2`>+E(3OivJ+zxlZCm@nL(Vv9Bf!(kd?uLDEFWe7*3!j7IvVW9* z2>nHP82%2v29XTWkHDkw7(5Q&gm1wSI4)0;{ti3^--GYN58+4fV>k-Wz_aiZ_!;~= z{2U_rCHg<%1^6}m4t@`RgqS7_g-FKG?9s^tmj5w@73sN zNY4Z!y<>7Rn$04aJ32lMU4aFoUY7eEs( zgp1%Uum&!H%iwMBc32Bnz*P{*)#z(S>FD@fqx3lXI(Rp{2mT8F8r}~dfE%F=9oPh$ zVGC>p{QzN|_y$9}sPml8MMc)s93;O{-ArHdm z;S2C3co@D6UxR;u1Mmn$a%iN#jy?>J!xQjrI0F9!k^D3I`=j&^M*2tSAH%bw5e)OW|Bt4(CH8JTv20d-Nf=1l|g7 zgTH{aa0Nv2m*@@f4!9P^;XUwPxB+g24?`Ow>7s9ft#C8k3diLmq_>ZbKRVJo(YKA# zA4lH~cfcp$PWU9;1$*Ic_%uXvANqdyEPQU1w|}G`Kz|-sAIlfuEATb=dpH1(z@zXO zd>tN#C*U992s{bjf$zc7@O}6(MDnlbqwp;J8~hBOhe-Z?q+dQF_~rPQqr6|CUw{|k zzu|ZAdw2={0LO&MIR*yeFa}YOn1TrqJqeizlYq?+$wCgM0NX(_9ZrOk;MHKE0JGp^ zm;-ZR9=sMJnU6jl&KMoPoJ(IC9iRP*{5O$42NuH;SO$?SN1q2P;CxsKtKlsW$t5HG zR`g}ig0*l39G5FeZ-A@dYPbfjg?GVU!C%As;QeqTd>A}*pbL>~LT`baVH?~6AA#)< z$xiggVb|z5%DaQ~Ct)}28Rg%F-V6KSUbqkLhtEPJ51>B}UxY8g!|-MJd-w-90FS_9 z@O5|`z6sxgZ^IFI621f9g@1K=_vg#q<;+0z_aii{0x2${{g>%U&5~-lK&d% z|Aqc<_$~Yo{2n5C3H`@W`cG&Te>vZv6Tm`Bk}v@#0c&r`KqOf-|9g*P@+$OnIB9hJ zYBU=QQh*|qU=~DDMxO$w!TeF)0`%#y5YB)z;Vd{C-U#PFBo4iJlsS(z8Kbwj-zYvwvb#lI(|F)FQ5hMMtSSeSHK3i8m@tN!Z=(9?}5L98z7SRp>G_e zqvH>e_Rxh*uoT~yhcCbv;Y;uph~%s2uZ_}wj~>E7I0TQvWAJr243T_eq@O^43%(8i2uI+b;A!|F zMDio_kKte8*-_qe=;z_*@QYDibndT6zX1OQzk%PuOYjHy6X*m!4(tic- zgAb1KKZO1;w4no=U^CnVk!(S4g_~g;+yWng?XUy>Ts}(P$4B|QM*0r)Cr0Tz(VrTn z2k5)t9=I3ohe$q){v13A55X58k}sma41Yg5K7f7%4vmf>oCc9BK)-&JJ`4TEQTiNob(D_ITTFV%D~^|vJ{KCJyz@r-{E_Az z3Aqq1f{TG40mxe+lDDDPLiDU|JzN2iT#4QQSC5Y0Inv|kcaPH7qu&SbhY!Gw@Im+x zc<4YEHbEpeq1pVEEpYQF?-uk9*a^46$03qkBYivi4!9F`kMj16^j`EnxDW1!&%kHl zZ{d~l!07lv^h59k_#%82BKZgO0eBQ1hi}4hd4lw};M;Iyl>a39sZsj7=MD&w|-72Tp-g;WT(HEP&&(ko1}G26!W!0}djojr3yl5?Bi7j`EhHFMv0Xj-&He zlIA55xdh$@Z-*9K0e=a{I1o}?+Bv{f4k53}S1h<>6l8KyuaQ%Cw$=;@>M477y;6d`);J@O5|s zz75}je}bpryYSEOG<+X^0FnF<{V#A7o`IjhbMP~G9*)bulm0pU0)7QAz>Dx}_-}~h zx9H!E(!WQ)G)n&=(i4~qAqH_6gGhprj?zieDc~3Ql7@*8LKY%<6?!_H1VxwyWr$=h z`V^Q4r^0KY0`p-ZydGXDi#R?L-T-febD#<}I2V?|d2j)|86sJQz7TktcuX!rUkq=7 zOGbH@qA!EDK?~Nx6>ueNfaCHG($~T`yc^yF*TZ|^26#Vw06cUcl1=CyY#AMIMc)j! zz^(8R=tCsiM|vmvW3UVE80CEu{i#viEG&+tx{}<9n;h9(D zMfuNi{F71MPe=OSM*4a5&*4Ad7w{|iPl)72^lwJ#|3?4sQTlfy9i8)g(l5cEqC6g$ z@?xeWfOk}60!)NSz&qKz-iTj>DUgS0a1y)*3NRC9K^f-2DR3G@QbEs$(?`cq-a^u^ zgGHmfGtp;{(hgmRC2%e*hx1?sTmWx|m2e?Ma?wbyL0<}&!Q0^N(1J+TqSuYm>(N)h zm80Vg=&K-lUHKY#Cyc}O@Ki{1}kfG@(s@MZW4d=FD^WQThkyAHl!EQFsRaTz*2{zrnwcKKnWP7w}7X0saeq z4gU?lgO}h>peEAqAO?}dM|upMgcMAGNsxo7kcVk-B1H0P^lQLEag-P3&l;sqM$dtH zaOx;8`g}g=1+Wm#fY-w!I1?f{3w<`c5#9t-R0PlnM!w29-h~$IlHgsXrC~q@*3v7d1 z;UlmeZi83Ku2&r2N&0U_$9vFs!>3^%+za=^XW?&QKRf^r!WZCS_%eJIBKaEnA7D5- zK8St<9)qus@*W@QC(z%5Z^IFI3jP^>06&6%fgi(Bh~!!HPvPI-XYf4y2SoBq^b4bO zbo}Bd{a@%`zasxPr2jYk5Bwhf0Dpu(K_qI@%bJ%1B{oV&Ifis%bUcPm!30P{268Y3 zro&0_8Ysd{I4-kB={e}Ra0*25A{cs~h@*(v9;p#rXa`5;6 zk7p!h6rzNNJwh^*krg2nWfsv;(jcWWiewWd6q%K>M@D8PDnun@rD#~$63PGhIp0tJ ztLyi=uE+QFe!uTK=X}q(ua5J*x^Dppl)JbE$vK!_i*?u_Z{qPy%$pH{&>HtJ=AGD$ zh#L33%u#YbKp#Z3++$?N(){HA{}M0zD18jaaRR4s2Ip`d7jX$!a23~Z6REg`+Ym{o z@8B-(BO5u$#bby(p`YOeULqfbc!Oe;;yudn37_!=Kk*9{_zjUivMcF-a<0uMhgGMJ zoa@qxs3&)2x*-}v6>1P^LN`Toxogrb<*Y@wMjPmWPZIiH+R7G7d*%-4h_2{{o-jmT z^h3?`XCD9~43v)<(?jGeo@*lKVX{ZocuYKQ%03!nFb?A}0W~vG?vrF&(pH!%_i6Mj z*kTUsFc<8BHNcU3|?i=HK{(N>t&0;YS1cc}xXGC_%g@Km{V=t?lAH zs(fY%Zvy0h&%xV}6nL|VLM!M%7b5(`mI6O2`@eLeJEIHq(G$JU2O|CG0T_fK5I>$c z45k=^u^0~#bJ-K`@#>)u@Zq0;m05Um$meIY``XjU0f|!-#>%QTjMe;3Q7r z9L}RU7vy}2zKUzOjvGk9O{C&BMAGRDIp3i(<@|uoLJo4}EsuVRXLyNM5GkOGP>i>D zhxaJMCwzs-clsB8qY_o9#ZM*juA2WvQT%)>8p^#9-2~0h0-Df5Yv`aY+MxqFLZq|o z?y`H*z2qz&H)QUEelWs77^6Bvn1_P*yeW*pXpDt9CcpxdVU4Mn29X)EXVSA^gV~sa zd2qsfEWkpz!xM|(1rcxAKD3{l{pn>`fdH(cP!+Bi7Wn4vdt}$OnGE#91w{Zs|_vkESBL@$Whv#^KS17=1yn#p& zU4l})M;Syu(O>Wt-|!tj@C(232Y>Mo;%7B$L;Q@VB9x#4kw$c5G?BYH-5eUwLMyaJ z8|Xj}?a%?8AU?pW8+yP1hUkm_7yyxh^dOjE7)D|gL`>;17>9|Ngz8u_Plgp{Visn@ z4s$UN4iIsoU9bRd@PNo-+8ayd?nf_^^9tE3=>P;FSl-0fZerewP=sL@A|SF?_J13{ zk7M6gC&g9v#sMB3)>GbVm<)>q+xt(+a)O2mR0=17M6n7z_~; z+7x3j9+O}JktwpRWKWenot_2psd@HrfQXaq`Lr_@z!h#-gvIc}QutvxRv-|oum*f$ z!8U|JWCy(yyAg@K*oOl+h(m}*3}SHv@enyipOEt@`m~(S&A9obXz&Mr#r~GBi$KYFb8&+ z3lV$T0giBjGhDF{B5t%NyxG0kJ3_Go5s1WI zi0q>e%317(m=7Zwu{erjIDxYeNuV#`vfRb(3iDN5LlTma0+CyE8q(#SK|eq?a*&HB zsLoS4zoZNB8pS9|$;Rk-B5>=?hTSM!hE)-E8Drkhp5NS#`gF0HECA82A zB5h>r((TY0-OwF9AYvf958V&_VT6Ggiecc-Tu~SaQ;dNbM8?wN{p$H>DAyg?C4@D?BO89(q7zwjG>@E8A3y9KW!)P;y5t%UkemNyl; z5gJ2H-qh(9Xo*&610Cq0BRZigx}yhrqc4mgGMFBUVHk-~Fonn%*=F=ujDtBQU=k+7 z3R5uyGhqV}TY9#f=g1a!J2}s#?cs#^aE1#+7RYv$y^!{V7nZ;qJ`nMv{jm(ou@Zq0 zSxpCH9X86_COSmU;yK%E%wfzs5sAGu?orJ9aR7&K7}1EuNt{6f&f@|SaT!-|71xo3 z>ZCEJ*Vr?d@8B*n@c<$@bS|DC56>X-f_{Yp6v!tSx&FSDy+de zY``XL##V@g$quJ?VizLhEs~DHejLC-97Z%^5R2->F~`gO7<~dK1pFN@wj-A+z>O?R{VjuS75JaNs zSUJbhM{!*4C+L%M{_olR9-sXT5^$l$V;7kdaYf#)(>IWW6r|!7ZX*pDxQqLEgeQ0g zkr(tU6yObtQG!yu#XG#mM|{F}{J>BALIr+9Gvee^~2^Z*#a7=vK~{``^upApQa7=y7G z4|7bwL`*_;ESM+58dEV1Hn7EPh}hBdU=K$)LByF}AZJ&4A>8EdPJ3dh+{N?#<-DxM zZDox)fH@GWuo^)KhR9laBR0!@3%wPg*dcE_=}7Fw0UW|%#3BwyaSS5I=@W83NuR=L zoWprsKq9W9I@jf#L?X#A7_cbL68CMW{{*^IN==w-5A3l;Jym zpaQ?~7b5@YI=tgt5%t77&q;k+Ma~UrRWy~mcwC*id5v9zxux8-=+ z=Xe2;m$D1!A~_e!E~Ve%JwD(QzTzi-LF5lzi7K(T;(HXf-rJQ>ddk zG@uDBXhRoz5NS_$L??8Xw=Q%ybVm>LL@(5gA$uS6MSmD!AdDe0Shfj03?ncKrWlV2 zm;_5qMs=*@JXQ8|+6HsvZb#3R^E}#7&f@Fm%h{E7g9jGL+hW;Xv=4mc?k9T%9e_Zr zMiACvJ*u;Tc_TJstGtKMVF<@=L?9ATIDmsVgu{q|NE{uHV{$)9pGJb*FVTs(f~)d& zolZh3(r^d&@BmrJMh>3fIbI?k1$YCI68b$p;3LZL2_oO&;l)?g*MPZTeL?9bV3(&gCPdM7$z7AQTvtR=eTY3)cU@vbDv?HA4KA(2M0=bK?bCvT#+Fj0zWG|t8;g1#I zb7>R;A+nkdLa^M|(;MWxQT8U;Tj&sk%6$hNF6Uiz1op`N0DV}_F|x(K-Vr&+(MNGY z?x*N8IEMszJ5OK0MY$)^S8)wDa1*Hzxh*@5zJq(Xj|a#`4j$qW9^*M);3Y)z=|a4b zdof*tQoO}Gd_r|TGk=r&clrl@;}0tF7yt0TwBfagx==(t)Q1WhLZlI`iY8Ep21HuY ztPnE3-a&zySSVjKLTR6AZ^lm|`@>U@XQ#WIR0q6ER8NCev1! zifQsTot}wVu*GcH!wD`}05`Z}5f;M>OCaJ+`(P=2;fG~d4v_$Q4T7;=-Zs*k5rS<9 zMRj&ChhrypAp()ukHe@=EOVUPS?o#|nn$XSB0-EyHl5T}I(1s55AktoT2fDMIyVBiYD0lI^-pqZ_9|K?n zV+_GC@CT7AjDi_N#?$6A zPb`8Lyy1)gn-$yw2+9-4cLUO*p5(yAsoB02T?eHgE)l45Q&z3gpNbJ z+{I(Zm`}?641KP~V+nG;NMFKbT)|ab!wsY$71g=LoF@158uvTQnR35RKR_0;!xam$7)!7e)$y+}FK1qfRR}^b z)?*Vyw$LGR-bQc74(viCqOczaa1e(PjTjuoF`UF1oP$V$?DMiO&=--2EAl3uca`~u z+>>M{(>IZdTeyuhq(dZ=zK;iT&!%&bi^s^rQ;0mHUm#!Zujm52mirsJ1f_V34=97k zC;AJ%KtW0h7&jqku$pd|7IlM0xsh!t|JM_5V@(#>kVnRi~A7C(&c*|s*}t71kdpT z`4D-f%WDgTc#Ss@Db?k*g%9|IFZh89{6QuDK|zn#5kwSeB`Bk@yoq}g=B8){b+mv6 zs-wl+s>ZG@XC1mN+MxqFLZq8)eY!h(qA&Wx2!k*bCJ-4$kH9FHVhqeM7UN-o>P%*~ zsmk047(5skv;T2IUkgLh>pP#xyREda1v*578h_4iMWERxP~Mo zqdFEV2e}Y=LO+-DE7=9IU&|KHd&68*V=rcYi;wsu?_cPzau#3n zjrk`kP$}Ov9qpo|7+h(=I_8d^X^lWqwuw1PHt&=&0=(q48)x-+`S zy{l|}**#>7uj$3y7XvUDLtuiD7!8rJ^dwkdGN!;9(=ZdWU<;Aiv>oi>AaC<&XSl!> zZg7W)2knVPSPXA0#WF0%N(4Y8kY0lg*n|*-VmGR@mw7)9BSzkj(D68mv5&1ns2q7_<08zMTg zb!k1cm3v3J6FSSiE8PPI=q+#J>-#YqVIYh#7$QSy6FHBdO)(bZET2f28RClJY_pWy`xQG!yu z!v}oC7ktAHh?LV6_=8G$`$yMm&-W#W)S>G^2`Xp=H8epph^W&Va{lk~-(NMkwM1*^ zpe@>=Jvu?8Gp#RYu^TY=!2lS^`(Sz~Mqm`izziZ|>2Y!v`*=B<)01G0X_$_gn1$J} z!(3Fyk=a@9F0?D$CM<8_wDo!?8I(FVh^Gq zvY$RA=fiX~Vi1dX9K~^*#5pA3A}--FuHrh9kqVJpbef#g={vZKOx%Y^7M+b8Je0Rb z^iw>;3wg_@U*Waf#n-;6F&8nH;4R+aJw!gzW%z<`_>Ld=g-VG072Sc?AL^hkMC#G? z>5r?!9F9q5EL~j9?6rLG%!q zU<5{@I-}$~TK1S4kBR4))!4@|o5KQ@m;#Y$^mNR`EZAZWMC|B!u!n=ZInndwynuF< zv%Bm?^b+{MSKj>Tl~{!!tiuLu!WM{x(A(u4M(@Nf?3TAkdcU0i`-=bmdVt#@c|T0Y z$oU8zhj_UkrH{$^xNPw&oM1kMGq`|DxQr{ffn=oO7H%UQcae=;JVtf$R2M!Q%q+PH8Zg7Vu7Gnu~uoNP`v>%pZB~~E_B5Ual*oaNog6eE#4#75r zA`Ckq5>D@y^M4oq*)@A4_Fyme;{XmL8X_@t9OC6JZpWEV;|vny{XBgEmvI$0a1&`r zMFaV9dy<@!Yur+qZy^mCxPyDh!~IE6Dfi;GCa6;$U2a|&)E6}ONMk-K!JobS_F z$d-E!or@=UisyKNmk`OPU!xeM@+R(Yncw3BKH&>QzR}-NjtY6Jq^nS?3;$mjBK2iA zpc_FA&7h9v&_qjAM~k@)w4sOg=!nkfif+(HcNm}-4ABRD(H{da7(*}=CKv`&jDZ*bb3UI$X|T-zDeWbOiR`pu9!XM{pD;aSEq#76}l!KwrjHT*D0{;U-dX z3%8Mm3}oUy9zZ0UeuzhSEN{=~=Xim9yg?B}O6XFU>PnY2nzThjqLF5Nrj$d;B zP5(h9{>odG?0>Rrb^Y&a>(WY4h6)-$q!FzOHMuvVo1>-Nwdhu8gSKdg4(Nog=#CyR zfJiU85Bj2?y#4nGufZC-5%WM8V+e+01V&*D#$h}rU=pUl8X{Ba>2jV)+rSofmc!8J5$18{w(y#Fb zMe-)@#mprr#XEe!M|{RNltZL~{*6C!ucZIV`JZfsZhX&!h$5{7Wi*5;)X^NRpbZ_g zhe#*73wofZyoq}+=HBRAd@WIR0q7O=z=Siu@IATpD- z!5rAZ9!{7KXDon-EA0Uv_`x5`u>vA1=~Y;bAgsd%h-{*_U@Jlph8+;uO-Eo4_F^9n zA_j3dhT{-9C0op=na?5t7mx^%tMm;d<0ev(29b374(=lxkMJ0Ic#3?yf=B`V8bv6@ zTYNwns`H8Yi`>7`-{t&+F2`^Dk+;8eZGHZ^3KXFPk@~cs1JGmRshUkO7=m#SVgfRwVC`O<2lAYGm(vlc!Vc-if4F^ zS1815h!oK!c#n_xj34-ka{R_$)auSZkAouWK?%xe0Fj2W8`G+2D)(k|b2*FWX)?D) z8)!oZy66CrPIMP^Lk}3D5Bg#NM2zVn7%F!Y+2XO`%p))gqhSV-ar8u3zzWka9WyWs zwwR4Mn2UK3nNPdG4Ic8gi1w1RH|+yItiUP+VGU{~n0+la$oocm6Sl~GtLzYZJHoI7 zk=TPM?85;Z#395W4kAbC<8nSlpTRjK;5-r`az*wHIte#%3u(B6Ogun!9?AJJ{RDY< zju&`|S9pVBh?LN8<@}!hfUo$8->5_tYW3jz5R_0KDrg9iMzpG&#omOu8Pw4NnrMYK z(1wT(tt;oYbO&^jdl%W==pHaYFL@JRYslOOebFCA7zmNU^bnX}I7Yw}B4cPXjFtO1 z+8h&LfytNxYfQro%z_PUA!0|*g9Du5f(3BJLWp?KUhsw={2{V}4#X;~#u}`{Mr^_s zh-{^|$$7i%P&!=ByXgq*!9K*|2;vZr<2VVCQ}h`m;36*L3a%pwDYyxdTXY8QArlXf z4UvbkAItvl%4>}M8J^=M@=*YhBDw^nc!!TDgUBcPi=4&&jrlu%$XkW%-*hGZ;-9$n z|Xy`^dR3 z-5&!m5Q8unLtuho7>-dGgX)ZBHphe-Hw$J#+eFu?d^81tAE<4uoSTM0U}8xAOLmelO>bbQ!+lC(7{)75D>@D$%|8K8V^7sYBO= zB9!EhPysl6e z^`Hz971<5wCTNNl&_GMHf;QTrBRZio^w9$bFhpPULw^i_h>`5U^bib_`$*ZNXj3_h z=Z|I{4|7;xGOREaGhhQd%!MQ7!xbJ_3@>;?WGU?nKde9?M1twHa^661MF_UZTd3?E zbU1b)0+HBA5n(S_=@lNfuAVHFI1p9mCRMB-Iw2sp)Qo5j7De%b!b8h ztbvWL;8FvB=Z#3Wc?GOREa(=ihw zHnc6~zyXe!4`+xhq&?t?Meu@1)8f+cOHErGc(}W)`zifCZmVlqDj8hNu4?9}^}6dw z6}@5=*>}h}y+5a;dFrkiwL$sHdck{7QTH{ z4;H5xxZWDK#j5F;`&son8Mr=PP~716w7lZ15RIwVHHIE}6lVGSz}vMgGB+&Q>%X_s z_uYqtx|i4ASb49R>W?C)fcQk?sNA1VPrvcd+O@aoH_fH>&CIo<6%Pzo99Y^QYxm-Y zam{?TJ(yqrv6p4est+G+ZLM2Hsyp1NHGj9ywI~NI%Wh#gjeE6Q8kY2V;;1;E-o>3J zC$?U9t5hXvwbQrf&Jm_x_M92nW#1>)tTyYfskdMMr`_*uKB0>a=P)Lo-?-n2_K{5!%@(agPZ3A z&(F6h@icu|X#3?*uYMc4A0BzVPmeoutvfq>aSLXb71Y5o~}w2Q~Ly*&8sr6 zcQ2r7L%RU4(La0UB-rU~J@R1pohemq+I4!AG-%|;N18vUtr%v-e!|zR{9wgu${xwnhP_R8{c^gC+Qwn+P44I`6-?MNb9l+&T7lMurvrz@K0JNP^Zb!L zvEEafDOj%b*E@VDAXHzihsCJI4yH%m7|%9&}r?d~fr| zPgY&aczSuQ+K`dG(>?W-<3r7-gm<+ZGHp=MK;>OUqjN$U7hDanYrDk$_3lS$CRJlH zp5D|vK6^{lf~v{Np+%`xGou=wSY+Y8K{;`DQ`^d&wNFp=oKyeK#0%|yyj;Dhu6K{! z>BA52%g&!*yIaF^Y{Purtno>YPwjqP;yKOp-6)Oye|lLIpDvo!)?iBPtK#rgTRTn2 zy5@5yHM97VL-;tG9V5f%4vF;I9bh$Tz;=y~$qp-8dzZaVYS=xk{Nd640RfdIyW5Y~ zR$pCW^JvU1tz#!fzZ>83_7El|0--c z+3{NC_OQT{hf8lZ8F6ozNlWA8u;l(1dKbHt?Xo%4_F())PwR;$c8g9G+#1$5Cg*|0 z1*1k6bZ1RJG4t|bjdATWB0{a_jB04_ z(__@j(BUqPD{@-vUbzzNwkq{!;EF59)yPs~j;4sISr3#I2)7Mjv`_uJI#VbpE?OvlD&MzfC*w{sQ84$L*} zlJmjEu}9zEiGRAEy3kN z+`pJU5rLyjQrq=0KA`Tu+^2mLy>BNQtc$qWr;m;OlByevnrzOt^;)WNK67xc@u-_A z$EIzY?!BPCWop%~ektwNhUZpm+Hc->a1|omHwpJEu~)j;kSp@8a_MV+^P4mE#poYH7hSx zi(OC_uu<#tnuPmr<8FWTz2sLs)obbsv!{(ZwT{f29qy+bdd;bEe#RM(XrtXlHdmKD z-5ai1RNVW;c&#&g)}A%q{_503zipGh#AWR9Dcd%9z@;|%ZzspU8|i)fcyP{$`ZF8b zx5${cH?l?I-Z7`2ulJpz^>e`ByuK&m>SQ!d$%=~HXW4dC&eKi>>Fbsh?DkEo)%M21 zTHP%A7MgbUOY>H&IPiST*^>!wEyBas^s=5`uleJOqSi0&PSJ8&v+;dVYQw2I9T(c= z3|RJ1&AI!Bm)Y;PYEHCY;h9oZtK{wb>2o9W`>5bepqFnyva|NC)-{f*7sqAhP&E~1G|cczl%RL zTCee@J!i)SdrkZ`zI$Sd#hDnZ*X`;&Nx!>u!H0>BikiKjw$Ub@|4trEx#c`2-FV99 zz_IzB&oAZ&z0dz9?m23URv)8xpZ)t)bi(wv=U4a+vyJKhHS+|!|Hgu5mF;Hi|L}VL zm6?HsTW*9ea&N3YXn*R$b0eQQ=Y|9{9NMB+2mKWnQ(i{SZ!+dar*&O6-f*7d-?;Ks zRMD0W>keK#nBr{bucz?U*XnL?w^K1NrhyKYpixE%ZB+kld! zv1&Qgx`Xnzm3Qas&+3;H`e#{MpVE!qW7h2V-uy6g-JFT_>(AE?8F%uC$*xdqr%3(3 zjwVr`N7|p7&a8BHfc}6gpV^Ciw#CltFudjVzr_>#dW?=Weg1U&1l!Vy?&ZaaD^zkc zGx*OSWq!pIztr5TcbSu>D4#lI5|n?B`Kx7Jovs;i-kHp2w{IRQ+I!aPHL3+V-XY`G z8U85j-0g(YT=ULRVJ2Js+HM~+=}ckQs-+F5KD5yG9`SSP6|;)2tBVil1A98vMP{+l`;g?*#uV zv9g>!@9nH7H>a)qP_Qzm|F?Q3e)V={w;H={vzx}PkwpXkxCEN->AQAdYOC}6TDT~m z&KN!CO7b`F2F>0~ww&9rUoGve*VGrEE{Z?0=RxN6T=gOG7$>UM4RXghy&s8dnDN&M2PijJkhv&WBEqF-C_OsDBe`lc!;BI9yr z*z0|3f2MY+a!P~I7Xu5NJ70A>|3O`bY&1@#S7?%T+;_F7b;7ECv{F8Ps!k{MqUDp{{2g~`*2gQX6f35BWF8_P+_}KK{*BzVB+u;&j|C8r&orgQ;B&i;EUYqd1@o$0s zrE~TjOa@ynn&)Uect_XcoyzJ@tsL%iEp_yg49_r+_G%yFRifN?p3e?5GLCcBepY2X zY`*8nv~BtQ8=os%{q(l?t53mq$2K*4;k9Oa=9cDSwa4G*VR}C!WvBXy-doHQr-|b!PXKyEWQ9nY72`)`Y`*YNt<1 zyja^iYsABV`q%P<(|ZM-?l@Mn(7xw|+utJI=|=1kjxP0E+{`X-ceG{VsV@pT zhgLQ>zqjB*K}7eswGrN*cPaEdYTn>eZHK*%x77GE>b@>r-N7&D{15YzRvp8Q%h%ld zwaTXUzt4XrO|?=!&0AxST)b|v@cr1Z-#bq}>({VpYmZXx5tg=_>itSN z=5z6qzTSh4J6aiazcnd8Zt$H#H^Y17M~8k?=s7Mx>6vBhmUTPl8E$v|?51Bz(QMyXqR}owc4FIm}1#j=SH*VeS!;XI@(?{4z1q3VPaZ zMcG5OtdBF)GWSPbbe>WWq_#FQWNhoM_DP2<-&>U}(wSX$Cti73o}%l$9H+AM=tU>` zZr1YaR2n?-=;$ZQY0UwhCyTazcWlM_-$Qi!T^d{aSmK3@MnO*oIo&v|;1}p~dxX>U zVIOqtf>UZ;+@WsVyS~z)9U3-MYP~eM>fUD5f;gSQErvcVF#KMe`AN$w$Y#Xi#n*Ma zMWh&L8zuB!obh1CwikX1adF>%?aZ(`QK!Ajhw+~t4YYkW`H{jFli)g)?MkMd{d8}$ zS>ELFnn5qSJ^oqiTXKHimb&xW{K+~n(SNSlvX2Hf|Gv$ewP|Z!nE9kTqyH^EuHpAd z&m?R5qE(xQsdcXNrQx6GesyM^+*`l@iMSSaPFvc&Qwmh=(yU=d%FX5B~)Z0oiu%g3{;=qNpgwX2JbeYlZL?DO?4w7+Pdv_EeC#y(PYWL>ZEEj;4X&rWmA z>ag48-Jua3OdPyNkF2-g%5p=CIj?HR4>gG0rTTVms`X@}SGQdP?R(#F*B^GuKXZ&m z;-l~)C(Cu8mu_2Fp}KzgLD#Rp&*lHpd~oAtrp3)S{ZGv)iRxbeXOj_cb>44Z8#;Jo z_>}EtV~35{K6_yg=f6htI*sd=)PGi+Lk96_vprp_e$4qiH@VH8V>`BP51m-s=kV-A zrzvq0buLF2_W$Hl?(5)sZTOwJ?>|NLy`g%*df53bTYe>Nc;CIi#kX(6OGWmLJ~dXI zV10j2>-6+CO&Tw;E?XWuW{Ufaw~M!atkZqu(1C-jyM?O{pZ=qu%Z7}fCHc*dbgP#Z z^z!26(nzzHwGtb4?%6=Gw6>b{?ac+>l6w9epECG};hFt&Uz|9k>VAY@)7Wx(*3f*v z$4`@zjgE(F`IZf<7tr?8UiXQ54cz->6sw$@qSQ{mN&i3hFFU7L#9eKkwtalj#!g{Irw?pdFYtu_ix87c7o8BJC5OAad}{Fa@!?@! zy{23$o?)~8a2u7ZO;NTkQ9txPd4wN)o_ATb=-UQ!4;{0}8|A}7GkFZ=O-o-bAbYs=6qROc7J+^K!ju$4q=(|L{$i8CO zw<`m$emmE)o5D!@!@+AkE_SOQSKswv(9Wd2(>)L96_ei*8< zc*2A(w*Qtl{bSIj-|sBF8+~09zlACEoud46@5TIo?ItIzSY()Oo;~K~_6M~uHVNMI zuQ0Xsql&796VGh9Uq9iciqgZF?3Hgnd=4IS`KoI3&l{q)52(*;_wMShk1Y;c5AS)h z_L>p(W^0aKq`fUe!>Ol5#OIK9U4xGtIDh8#^H=j@EZufRss7PcE$$lmro=pPi|3l7 zHy0@!dpx&j=ofQ?KDtZph8zEKEFJOJ=fD)VxpnfjZ<`yhJAdJ=dE_R80MIpM4P@dPRq)FZBVCTo~H2+C8M8KXZ5GvXm_-}QpIoud(WKi+1(?~ ze7Etpj&KdjD_9Jk{h8~D30ZdPVa6|-^j)a7{)5Fww`2Tw zI$G;yv3o_qkbVceHaF9=EI-=DVUBaVCD#+4-sqF?bc0Ee_w+`kZBJJWzJ8paiz!*F zW!JT6`SDQ?ZW<!vEz{Rzo+Is`1#9PawdpnKM$w!^}wXUmw<_m2kO4mhx7=$_vzTYA3s4{mSy-gZUl?XZ$BU2{%tUUOM9ddHt{5v3!w znw6DlOz|voUVmm~z0=BWZJy0)wR7aLi6lbzHd!J+gkdHDQTbD>TX(eG41~0U20#OH?jLVO~JFn z{kh-HEZyooI--0{{9wf{hCW;0d>P$;nVHAWE@winhrTZM)#!i5-$nmgqn&A`H#%f# z4cuv%ax^w?yx&%1pT0BtZD>&^uPno3t%398plz3IJc`UNjL6va^u(r?*Fwux?6+ig zxL$sBtC8Agzj|#it9@~MIjpa-nodcCUU=zDWqq@H=c2ZIY>O|~emB)c)!m}~h#L#a zo#&Q6Dz3Bs%7LCE{?^a^H0H0tZMEUGc65npt-t5JrD+q@orw>(w|UdD#Gu8`rZ--! z8D3|&%g=Sr)=B1_cMjT^KGJ`=f3qe%JDYjjexkU|-5_J6NrV9Vm07U=#+U4wUCNG44}DobY}UHh7po4o z&;8*3_}6Ctqsy|comY49-Jz)Ekf`@htz~?SW>n1HU!B@K4{OnJqJrMOLe=hb2ajmG z^U%~Q|I{XQJiRgRanyj$syU0NXpJ-Ks^vb%$bNF}?BSJKPUq~eZ*A{>sC8qF>{_OM z7yLhpt})7yEewurd&jnI+qP}nwsyz1ZQIzH9ox3`@_y8*s;`sISGP}c(z&-gb??c> z!id^uPt-{HdHtjV|Jnv#tX<#x0hxlMEbGB~;b`HpH8g>uKOO(Compw82KT~03<9(= zvpP1#_XwsT(njnMz*8r=a9+yxnMOxXB8>q2Jn5W;yYdkd|E(Un#jW7JrSom*|cBd0I5#ajlnarQFl`JK9(El_w6wV*2_!rPoynPq=wt_L>&`=z5_o2taUoFXziCC`5J?wNMaVyH(j zMqo_GVd`i?YU0e!f}veN|7Mg|$>0#u7W)9*!r!NV0N~dPc=k3!-VDX%kv)WY=LwX& z0GC5Ry>Si?j*BaNX6&Db6qq$noyT27Q(Z<6t8Gh0Wd&kBVe>gNO?n~4)+?}fz2?=X z@l)IIJr>g1&Ips_IC&iSnN7D3q3-8ROkd{B`CYxy{u;-$f-~ zj|_|z>$%HaB($Qo$$_Y3fqsB7_y+V_sdT!Ih_~AGzlL)$8{BT(R*w5kamt8@ck4g; zV*xC>9WE-Z?V&rHq3nRAx9SJ{{u$g34HAnEu7&(1D(38lH0(37=`Z4`N^mXwkY?nX z)a8rJv0nj~7Kz*C2}*vAzmb_dOw0=hC4o@gDWZ`=kOYIsJTiJk^)NIyS{Q#;kdR`H!c@x51FiP-3!&`=^!oOPt)f*bWK37| z!$M>tl*qFP$%7P?FJ%`+tSGWrY=w+erK2jjNF8K&E1dKgJ0MRN&0G6N!ygRbt1}!n z_NXG#{@0N5zpx+yT%L38`!=NYQxmwpSIY}7^jt>x!X;TKnD8<_Y)n|aTlie54(Zfp zwo88>j!Aude|TRXv%PFpVhqxF_?nDnI)952#)P_1DK19OK_jF|;=`F8H3pQq#x#Dr zWP;L|pk|G8&|Y*uWg`hg1fxZ=iP!XuVB5>nD<<5{6j-zwuBO{X8PxNSNAKmYAG*ntY?$YL$-D04-=>JJ@&`Q8ZS)9 zdxB*^jY+xgVp5)Rw;`%^BNIdsADle@KZaRPM&_yzf+k-h2!l^pF99>?TucbH!&~p* z01^+NMQ&nvFgJhizjwx;1O*$auzm>k#kv1DIvA{IyNkn0a`JyDZ|y3NBaYdcSmw#p z*V-fekKmrbdHv5X8zsU`#+GjSM`}CH(ZrbBQCEtJ33#eDwLJEITzvO*+@KlY1CeU zi_CEJVnGE!*vc@PZj=k9*sAqS2t=*3fq#)4mlOPq7G@`f2r9T|)*$R+GYhIyY z-#Q{ZeSGwRb!$3T$BjmG%#VRJeTI%*fJK!HKR{a=rMLGn&K<(V9TDzoWbc8Y8*HTN zjHXz1ELR4&bXfxhb_neZX==KsC<0vv0hwkTt790`JASbobeR0y{mw9-TAZAaa0Gr~ zYs@!@xG_CNjnq6_y{CoK0FuM317@LBI*A~p15IAEtCtLfX(ZUYIoU^OFrBoS{KSWR zh4IECc0}jO%^V+K9@J!Mr9#rk^>#pO7)Lj&P?RUH01j%$&77B4Bg??}Ymu0gtRwt^ z_m0>}R$TNEzXi)_Nz6)Uub&9v)xKVX&HE>?S^Kbz&IcF~3yvaamMgCW{{av4C)uBX zUO@w5SvM&HB7om1jTQDi28rKkqTWs5{e5HsF}q@vANr5_Rj%=Qi$oshYgsR2c>w-E z40eg-S2|8~Z8e0CuRkSyZ2_W72q$}c^=}vYnA{gZP3V-pEARMSq*~|Kl-q=Q3BX6c zOEk3iHjn&-Hh)WpMyTirb^~bFUXES!jsrLPp}hWq`5)Fs*&MOwAS}+8EGG*@1x+Ld zo#~?DOc}jdjNu|D$|9IY-Cpwnjx~IHzc=IN{YR71(Szu(UeHm-(*Zb#>6fL}XLVCN zo?~(JmxZT%5+02hOGhWaKbZ=S>2+eU`0b#>AqH8WeO?6+zp87U;XXI*>bMZ}vEN2M z!SA9jI0@;m?G-g<1`C0G7z>32O%1bL&#kYQMmgGo@OcJnRew0#s~AO@AEK_1Ta2g( zCSsUm%P~)wx{t_?8#t;p129s0#HSi+gW0j?Gkdn%lISRJ`(H=VrI}?b4<^ldGvhIM zww4IW6ER)=di06mly~^j*)nTO2v@e4!wg|We`bxK3f-pOkH$cu$52M;&8nbPSZQJ@ zA0DoGT=C-U`WQ;by3m8wsI>mPG0h%^e|yNgo3Bi`ApZ%Z5Z*m|R%ENp6nwV`Elg#%nCjx;lx3GAlf6=!rUL2YA2FBQuQI7X zQHHXC$BCQ|X<=)_Fnffz4tLtu=TgZPAIdc2$v7gyZ#-VSa+NRD!t!%X8i8``c9G*u zbriX_KCZBH^AiokTQLn(dspFhDLvdRGuSdcFe|q4icyg{*C6uv&fykU+UT`nf`Tn@ zho@~OMTW4TkKFcyOm}!Ig9*A!{M# zqpWkcD+uE`7q(gFz7a#_Gv*yQ+Z9omd)`NkvaJysmtZ?Go%m>?oXR_RYnq znCh$47StGA+H1>yL_V2Kx|Z}BSrbCw;l{*o5$nX;1WUbC%EdtsQ__v**20ju>QH*@ z!U0)Kl@RaJfvZbF_n4yaKtz@Q{EjZmYxJSvN9W~y>`aaio$?C`%tra`LXk+S-hv%A z{?cMSFzW!3Qi>EScKp@r4(PcV)-(CJ@B3d4wxz*{Y_&XITCT8CekmlJji?pQs(xCku z67N3LXj-TU()5kf`SM}CLVVj|n0E=W-fuvTkP(SjQUu)IKLDLvdoH>R$oh`tln^0v zp_nX^@{x1%SdX`s&+OBy;M9E`tWe6^QYG=+NQ=y4DY4>=3B`;Oy}$A=`rF0-=N~1D>cLxvj2@`sLtmj(D(8#RS);s5`wi

D(;3D?Xp^LPhIeE@;(-o~_IPYH#S{EfFN_=j?hc{OqMhSR~&OcHfTD7;cSoLjirs z>AY2A^tCh8-<*cuI0-#gkvM%So9O2>1JBWI>|>X6d`vCNldOtw{|S6?ZLkhLx={)h zOyOpV0q2?gGRK{#J*4y^s)a4kl&?Co4d)FmKw2Yn_#oew%RP|Nbb+N@S|Q3kQtTcl zU?Z5j>mxJ6J|a)rBRDnTB8Q1&*gw7x#BqmNHE1W(=#x}d>ielwLM4pt>MBu|7GX4F zT8e`jvv3ZA1v1b8&d`X`1k9(2;=c@F#tZuWdt{OZwXVyfii`VUio7zS@7FN-l1{qVsoyyzI*-*dy->QH{2|SU#u1bt$j| zK3Fuy=#K;brfN3{sVtD6=psX?LJ{uCd>phu(TYQ_i1^yw(wcpJb^@{hBhChz5a*9` z2t%;7BBCDNR#VxlS0c1Vdn^r+1pRv_tnTcxG1ys67R5ilAKPB$cXTzPlBB#o*e5HC zP?1T;wMfULE(EjTX`ecax%s&J3!VEDLb1O!GV>2II-gQx09UYMli2Etn|%M9Ce^z+ z17%4Z#5w55uVs&`?l)TUD|W5=J|nz@m?(MC(@?MjBE?eq6??{^_`l)!BQ*J@WQM2l zCSQ)hTIG~erWX=VB74dnFwRC=E$bb@YPI`c+JVK$Hj$H)_a+|>RgFqf{eI#vArM`{ zkPS;40=vPm9dhQFog>Hdc-edW8VFSDGyaz=-hO37c`%npFh70fPg(=N*EO&V;{?AE zkKk^c%-R=_O}cT%lTZv^Yjk}7J)m%tw7!nv7+0xr$?espB`T`u6cvBF$ZOv&hE6B# z@Rofu9Rrtjd7w03>jz8ujM5fy7S;Vz&o@zedFD)ozxxfBHxECIKkDj&`6?>Lw21T2 zVPZrB?|rBX6PXrpU*>-xtw~uu5y8=8^B>tEzw@ymXL+JJv!jeKVblI!5b7oX^?vLR0uU zdMMh!jvs2t`@BQ+Gh9>EPWET9_ zab1U_`Y9CwVw&vL-a6?tBSxjGZi)M{>j4fYVRl|N@nZ%RR2|0sPn^b7)58jw}^ML>#}K zmrsaK>GR7dvV>~_u7^q?=KD)a-kTkEICJ7%W})$&O)}RPGR>yi1T8 zY;f~Ul*kk=_nJq0T8@%-Ur<7<>(m)r@2(ce;LSd=rkI!XQt}k)R5Qg%u$JbFZTTJI zX>qr5p>IqSxCP(nMn7E4 zY(k+L)hyV@%JK`+T_c{~W*5lP@B-_<=+$2T>?-vwkM}!9qJKWh`vI$g-``Uj@isY2 z%~OJ`+U;B^!fo;%Q~7K)spsbjc_1)%eS1B85PXO^WNN3kBxo8rfeC&JN@38j#}~o| zFpHM4wWaZe49NJrDzR@CYGfaH!Mz}4BnCFVYgS~zrLZ%tgMOvLem4(dCVVYtQ>kYE zO;4zkSPiAKbk5o=g|fP4NST8`O)VR4019U*(MQ{cexV~Z3g0jEUI7Zd;x;0)(hRPx zSsuzR;nz^Z3|od~QDqIEG~R=@V<|keZ6iDTgp+k=Cq z+^jX1_dv{`E=Sd8iTaf{bbn99Ae0OltI>IwrtVvF0yv11%7pIS)&{kwBm1Qc1jth5 zMzCtlMaa&*Ed^oR*Hy2}VAItqyi;r4t|X&`tefIyK!Lp{c9~&YRdzYxK&A0%GPf@c zF?qZid^Ng4s1lVP?5Y$3Do1XyANs9GasBfb{qCw3&J|hv_DU3s3cFfq{ib|`KUwR( zqLP`qQsxyhC1h~{P{Eo;ITz!1ykvd@u6R3pjDW{1)j&93PA)dbG&P|!ZHIs9*zDiB z-wvYVcTq7D3b6@XjmEabc|0>66HZK96;#xo`L`_n`AdJQec-8%<`dYF#~tq#imk0O zi>c`H46mwmuN&3Pg>UgK%!@)pPv{LB;%nKE88G`P1%Z;}hvI6&Oj!a^ zI#?o}pG7PF9qZ>I?`DrKbL|@kM<6DRA97&QLOXJc?CAQ^_{u!s1uOkKAS*M}7Tm^S zq+^XMBvq~aIRM&)eYHh^+BRD@v7=A;uC-X&bYvnqQ%uw({iw*ci1<7hB7JXi{C=tu zmGfvc`#%5H?!@Cdf_G>P_F-dR{(2&WbMT{8hx=BXqXH& zu$6gnpwA%6YxJgvj^Kuj=zSEEJ%ht({mNa3d>kWznxuj6rR4UixWXk;&D2c=iKNc- zI!6yvC#&(0t4FM12~7pcX}02iKZPD}dh{^oYO@IGNndfH?f_f)M?Sv)Q7`bv^TTM-X~Uxr$4Nag zcpW&Av)vgAF&z7h|FR%+5-m1!9(XUW-ZbEZKt`=m!Jt9lmj~Noe3fV|iD1DMJ^bz+ znadlPhBAB@Iy}LAheZy|PNi^*+S-cQ{#sS~6Wq9ls@ziavTS;L>5-QjvxOL^E;SLV zJ8fbw>f4?%El#2ol&7tWkbfeA>&TLsgwR}EU6�LRMnH{7ty47upeuN=oDGyh!@C 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

(>};2V7r*zsF0SH*@N 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

hpGzbIlQs@ozqtE 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

BzBTC& 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

9Q%vpl!2LHkum=Q+t-dKne1 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 z�VpD3?)hE0_lZZuQ{p-Ciuj6nM_hf9d=A-D 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%0DdI>wGEiO}k??NcnMcUFb3?e@p6LF6AGW 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

H!-fA==S3Z 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 z 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

*?K*x~0D6_8RdZbc&-<-%4)x!4I*Y>GpD)H-f## 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

_73Lw3?2wQ&h-5(oo>HD;Hi7zH(kEd1ef+Z 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%0AGJCbkVok~EVp*(r@MU&&i7eI+HZP0y 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

BYIC0`xv#COXNf*fZpK42dK>!Zhqmwd^SgN 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∾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

xE=cAwq1*XUw$vmlG@>&`z40GB3q!( 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

_a2|hG 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%0D15I3+r#^Urj#U{6(-&{H68x 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%0AE!w+@$m!ZLW5k+Q$N0-pMW?8U3# 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%0Af`XATqB?NV&t_uCi@9&TLMzt)>|jOQ*s2!VYe zeK$b;WL)k1Jb1QoN9#vOd4f z+`(~{e48}@_JM&YSK{9^4COlbK8}=IN?hf6TLe*`F)KRosgC z`cdYELxb4Q4^eJ3+kZ^^EV|um*yq`q5zwD}1o}tWegO4P<&Sy3=v3wr#&@gJi7S5s zjd}Ciq2OM|cL38~hJMrzTt~>faFV#vNtlN9yzGx1js&k*4f|yFGw2oYR9@#x+@`$> zUTExBd^ikosBU79Lu?edhrz9p;7P{&k_U;a_!JrEAl=mVp4M||k=nx?_H%;^Ix$B4 z-ya1(1DDwI`-#FJ|1l#BF`+btP);Q&lr*(Qa)-#8B;66GY{1@u4>W9{$?}ELKa;uGV{8kcI zc^L4zyRYf6G44lyG#R|xN#v)L>v#veh}RpEhn=T@SB0Zq(k^wT z!p};6&P4pI6%YHc{`PTTCUc)yaB0VN#C0Befy=(@_rz74^NszkdDEbuZ>+0VPlrxe z30hG6>C~^j-v57uzqcam_ENG}`8IzL#(8<3Vbu&(uBY|g`Wb-0Yl#h@4)*568~ZUL%pu~VErKD$-Bgre%N@# zP54&kWyZe2?%9ZEfU)ls_W^XWjd{G+9Ja3Kb1=lY^wudD%~ z|0P4`S|Re*o%Q2CgN}!>et35Q?30c6fJS@{?l8uI`YGVi#{S`T;wo>m`8g{Gmz%f{ z_Ri<+>$-$RT(0rF-@wJ-1;+bI;i=#`{5>og-`anHI83K{tKSnG|B*{n{`~hhnYd~% z%b0i8Ed?*;`A)`%L21m5_k#B=1D|Z%M>w(^d0WoU2}nL)Bd+sgf>S${!>$cl0bYH8 z*ImpXN=G~^{y`o}zEx=MX|<$&rha|6zFk(q-lq%f9r~~I`aE$p&O{r}MPDJV{PAw& z)Rr)_;?@DmT&C|M@f%+}*ejyW~rh`)o(vcjA8WVitJw4&bs5`I)%V_c88M zA$V_K;JU{o9E_zvkyG1 z6*9!1%dNE^{`>cX{}TT^;;LL{H~25{X_yb4tj7>H87E^7fM*)_0ec?=FXDMk{J(k# zJe2(ro%RLbWf$RzT%R5|0za$I*yGc-5b+FMi1A$BgE;Xu>;s0|?dKkc{@pO-X9CCJ z2=n>IdryPDfqnQr)K}*HIwujIvdw50iCYKaYCMm*Z7;XsDd-d#??tX)9&3DG^|{lq zufBkCE8O7doipHthcWKSx?=OU%Af!Kz9+8oFnYdI|IxuFv(Ca#k8GDFl5Z=B>wM#L zYb9@Y5?4Cq&pWk!qW-UC{lfNfjj-O3IMgVGe*8jv9PSWTI=%QkYsssRzXvblel2!l z!`In9;s?Yhc~X!j`ON1KSN8SpVIRqt+iPtZ{IrbmXUL`d`?;35%Aev(F0CBE`sau% zKQlX`TxpkmVQ+pXvDp>)KQR*h=w~js_D`^{|25YCS$`X%rxc!#4XSJwZL%p;BG z7GC@n^?Kq>)azgNbLchJH}+R&Tu0m-T@g12+duRhcxLy}nh4*bxu0gt-U|+%O zD;Z}F5?AGx2O*QMxxs$MKd{g23VpGka}V}0)1BJT9p=`X|H8hsl|9bKtU+2oe;dY0 zxek5L4ZK$icQs&NdemNSU`=q}=Jx%EKbU8Ax5urmJM25OM!7QY zjAtG=6fGt5UE~As$FaihPX`ayG5Xh4<__aKJAc)IPO-7?{ZC!!L>c$#((1uJw~M{p zHT7YiWV|=M*Aw=szuV)V+(2