From 6445012dd622d3753bb0651a89c9142c082ebde1 Mon Sep 17 00:00:00 2001
From: Mike Jerris <mike@jerris.com>
Date: Fri, 4 Sep 2015 16:37:49 -0400
Subject: [PATCH] windows test program working

---
 libs/libks/libks.sln                          |  13 ++
 libs/libks/src/include/mpool.h                |  35 ++--
 libs/libks/src/mpool.c                        |  22 +--
 libs/libks/test/testpools/testpools.vcxproj   | 159 ++++++++++++++++++
 .../test/testpools/testpools.vcxproj.filters  |  22 +++
 5 files changed, 218 insertions(+), 33 deletions(-)
 create mode 100644 libs/libks/test/testpools/testpools.vcxproj
 create mode 100644 libs/libks/test/testpools/testpools.vcxproj.filters

diff --git a/libs/libks/libks.sln b/libs/libks/libks.sln
index d57322d2ef..fe03d30e74 100644
--- a/libs/libks/libks.sln
+++ b/libs/libks/libks.sln
@@ -5,6 +5,11 @@ VisualStudioVersion = 14.0.23107.0
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libks", "libks.vcxproj", "{70D178D8-1100-4152-86C0-809A91CFF832}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpools", "test\testpools\testpools.vcxproj", "{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{70D178D8-1100-4152-86C0-809A91CFF832} = {70D178D8-1100-4152-86C0-809A91CFF832}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|x64 = Debug|x64
@@ -21,6 +26,14 @@ Global
 		{70D178D8-1100-4152-86C0-809A91CFF832}.Release|x64.Build.0 = Release|x64
 		{70D178D8-1100-4152-86C0-809A91CFF832}.Release|x86.ActiveCfg = Release|Win32
 		{70D178D8-1100-4152-86C0-809A91CFF832}.Release|x86.Build.0 = Release|Win32
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Debug|x64.ActiveCfg = Debug|x64
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Debug|x64.Build.0 = Debug|x64
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Debug|x86.ActiveCfg = Debug|Win32
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Debug|x86.Build.0 = Debug|Win32
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Release|x64.ActiveCfg = Release|x64
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Release|x64.Build.0 = Release|x64
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Release|x86.ActiveCfg = Release|Win32
+		{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}.Release|x86.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/libs/libks/src/include/mpool.h b/libs/libks/src/include/mpool.h
index 43ec920ccb..b1c1ba7c58 100644
--- a/libs/libks/src/include/mpool.h
+++ b/libs/libks/src/include/mpool.h
@@ -24,6 +24,7 @@
 #ifndef __MPOOL_H__
 #define __MPOOL_H__
 
+#include "ks.h"
 #include <sys/types.h>
 
 /*
@@ -180,8 +181,7 @@ typedef void mpool_t;
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-extern
-mpool_t *mpool_open(const unsigned int flags, const unsigned int page_size,
+KS_DECLARE(mpool_t *) mpool_open(const unsigned int flags, const unsigned int page_size,
 					void *start_addr, int *error_p);
 
 /*
@@ -202,8 +202,7 @@ mpool_t *mpool_open(const unsigned int flags, const unsigned int page_size,
  *
  * mp_p <-> Pointer to our memory pool.
  */
-extern
-int mpool_close(mpool_t *mp_p);
+KS_DECLARE(int) mpool_close(mpool_t *mp_p);
 
 /*
  * int mpool_clear
@@ -222,8 +221,7 @@ int mpool_close(mpool_t *mp_p);
  *
  * mp_p <-> Pointer to our memory pool.
  */
-extern
-int mpool_clear(mpool_t *mp_p);
+KS_DECLARE(int) mpool_clear(mpool_t *mp_p);
 
 /*
  * void *mpool_alloc
@@ -248,8 +246,7 @@ int mpool_clear(mpool_t *mp_p);
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-extern
-void *mpool_alloc(mpool_t *mp_p, const unsigned long byte_size,
+KS_DECLARE(void *) mpool_alloc(mpool_t *mp_p, const unsigned long byte_size,
 				  int *error_p);
 
 /*
@@ -278,8 +275,7 @@ void *mpool_alloc(mpool_t *mp_p, const unsigned long byte_size,
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-extern
-void *mpool_calloc(mpool_t *mp_p, const unsigned long ele_n,
+KS_DECLARE(void *)mpool_calloc(mpool_t *mp_p, const unsigned long ele_n,
 				   const unsigned long ele_size, int *error_p);
 
 /*
@@ -304,8 +300,8 @@ void *mpool_calloc(mpool_t *mp_p, const unsigned long ele_n,
  *
  * size -> Size of the address being freed.
  */
-extern
-int mpool_free(mpool_t *mp_p, void *addr, const unsigned long size);
+
+KS_DECLARE(int) mpool_free(mpool_t *mp_p, void *addr, const unsigned long size);
 
 /*
  * void *mpool_resize
@@ -338,8 +334,7 @@ int mpool_free(mpool_t *mp_p, void *addr, const unsigned long size);
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-extern
-void *mpool_resize(mpool_t *mp_p, void *old_addr,
+KS_DECLARE(void *) mpool_resize(mpool_t *mp_p, void *old_addr,
 				   const unsigned long old_byte_size,
 				   const unsigned long new_byte_size,
 				   int *error_p);
@@ -378,8 +373,7 @@ void *mpool_resize(mpool_t *mp_p, void *old_addr,
  * will be set to the total amount of space (including administrative
  * overhead) used by the pool.
  */
-extern
-int mpool_stats(const mpool_t *mp_p, unsigned int *page_size_p,
+KS_DECLARE(int) mpool_stats(const mpool_t *mp_p, unsigned int *page_size_p,
 				unsigned long *num_alloced_p,
 				unsigned long *user_alloced_p,
 				unsigned long *max_alloced_p,
@@ -406,8 +400,7 @@ int mpool_stats(const mpool_t *mp_p, unsigned int *page_size_p,
  * log_func -> Log function (defined in mpool.h) which will be called
  * with each mpool transaction.
  */
-extern
-int mpool_set_log_func(mpool_t *mp_p, mpool_log_func_t log_func);
+KS_DECLARE(int) mpool_set_log_func(mpool_t *mp_p, mpool_log_func_t log_func);
 
 /*
  * int mpool_set_max_pages
@@ -434,8 +427,7 @@ int mpool_set_log_func(mpool_t *mp_p, mpool_log_func_t log_func);
  *
  * max_pages -> Maximum number of pages used by the library.
  */
-extern
-int mpool_set_max_pages(mpool_t *mp_p, const unsigned int max_pages);
+KS_DECLARE(int) mpool_set_max_pages(mpool_t *mp_p, const unsigned int max_pages);
 
 /*
  * const char *mpool_strerror
@@ -454,8 +446,7 @@ int mpool_set_max_pages(mpool_t *mp_p, const unsigned int max_pages);
  *
  * error -> Error number that we are converting.
  */
-extern
-const char *mpool_strerror(const int error);
+KS_DECLARE(const char *) mpool_strerror(const int error);
 
 /*<<<<<<<<<<   This is end of the auto-generated output from fillproto. */
 
diff --git a/libs/libks/src/mpool.c b/libs/libks/src/mpool.c
index e5381933bc..31c7a166aa 100644
--- a/libs/libks/src/mpool.c
+++ b/libs/libks/src/mpool.c
@@ -886,7 +886,7 @@ static int free_mem(mpool_t *mp_p, void *addr, const unsigned long size)
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-mpool_t *mpool_open(const unsigned int flags, const unsigned int page_size,
+KS_DECLARE(mpool_t *) mpool_open(const unsigned int flags, const unsigned int page_size,
                     void *start_addr, int *error_p)
 {
     mpool_block_t   *block_p;
@@ -1049,7 +1049,7 @@ mpool_t *mpool_open(const unsigned int flags, const unsigned int page_size,
  *
  * mp_p <-> Pointer to our memory pool.
  */
-int mpool_close(mpool_t *mp_p)
+KS_DECLARE(int) mpool_close(mpool_t *mp_p)
 {
     mpool_block_t   *block_p, *next_p;
     void *addr;
@@ -1136,7 +1136,7 @@ int mpool_close(mpool_t *mp_p)
  *
  * mp_p <-> Pointer to our memory pool.
  */
-int mpool_clear(mpool_t *mp_p)
+KS_DECLARE(int) mpool_clear(mpool_t *mp_p)
 {
     mpool_block_t   *block_p;
     int final = MPOOL_ERROR_NONE, bit_n, ret;
@@ -1207,7 +1207,7 @@ int mpool_clear(mpool_t *mp_p)
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-void *mpool_alloc(mpool_t *mp_p, const unsigned long byte_size,
+KS_DECLARE(void *) mpool_alloc(mpool_t *mp_p, const unsigned long byte_size,
                      int *error_p)
 {
     void *addr;
@@ -1274,7 +1274,7 @@ void *mpool_alloc(mpool_t *mp_p, const unsigned long byte_size,
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-void *mpool_calloc(mpool_t *mp_p, const unsigned long ele_n,
+KS_DECLARE(void *) mpool_calloc(mpool_t *mp_p, const unsigned long ele_n,
                       const unsigned long ele_size, int *error_p)
 {
     void *addr;
@@ -1343,7 +1343,7 @@ void *mpool_calloc(mpool_t *mp_p, const unsigned long ele_n,
  *
  * size -> Size of the address being freed.
  */
-int mpool_free(mpool_t *mp_p, void *addr, const unsigned long size)
+KS_DECLARE(int) mpool_free(mpool_t *mp_p, void *addr, const unsigned long size)
 {
     if (mp_p == NULL) {
         /* special case -- do a normal free */
@@ -1402,7 +1402,7 @@ int mpool_free(mpool_t *mp_p, void *addr, const unsigned long size)
  * error_p <- Pointer to integer which, if not NULL, will be set with
  * a mpool error code.
  */
-void *mpool_resize(mpool_t *mp_p, void *old_addr,
+KS_DECLARE(void *) mpool_resize(mpool_t *mp_p, void *old_addr,
                       const unsigned long old_byte_size,
                       const unsigned long new_byte_size,
                       int *error_p)
@@ -1559,7 +1559,7 @@ void *mpool_resize(mpool_t *mp_p, void *old_addr,
  * will be set to the total amount of space (including administrative
  * overhead) used by the pool.
  */
-int mpool_stats(const mpool_t *mp_p, unsigned int *page_size_p,
+KS_DECLARE(int) mpool_stats(const mpool_t *mp_p, unsigned int *page_size_p,
                 unsigned long *num_alloced_p,
                 unsigned long *user_alloced_p,
                 unsigned long *max_alloced_p,
@@ -1605,7 +1605,7 @@ int mpool_stats(const mpool_t *mp_p, unsigned int *page_size_p,
  * log_func -> Log function (defined in mpool.h) which will be called
  * with each mpool transaction.
  */
-int mpool_set_log_func(mpool_t *mp_p, mpool_log_func_t log_func)
+KS_DECLARE(int) mpool_set_log_func(mpool_t *mp_p, mpool_log_func_t log_func)
 {
     if (mp_p == NULL) {
         return MPOOL_ERROR_ARG_NULL;
@@ -1647,7 +1647,7 @@ int mpool_set_log_func(mpool_t *mp_p, mpool_log_func_t log_func)
  *
  * max_pages -> Maximum number of pages used by the library.
  */
-int mpool_set_max_pages(mpool_t *mp_p, const unsigned int max_pages)
+KS_DECLARE(int) mpool_set_max_pages(mpool_t *mp_p, const unsigned int max_pages)
 {
     if (mp_p == NULL) {
         return MPOOL_ERROR_ARG_NULL;
@@ -1690,7 +1690,7 @@ int mpool_set_max_pages(mpool_t *mp_p, const unsigned int max_pages)
  *
  * error -> Error number that we are converting.
  */
-const char  *mpool_strerror(const int error)
+KS_DECLARE(const char *) mpool_strerror(const int error)
 {
     switch (error) {
     case MPOOL_ERROR_NONE:
diff --git a/libs/libks/test/testpools/testpools.vcxproj b/libs/libks/test/testpools/testpools.vcxproj
new file mode 100644
index 0000000000..0313278219
--- /dev/null
+++ b/libs/libks/test/testpools/testpools.vcxproj
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{766F7FF4-CF39-4CDF-ABDC-4E9C88568F1F}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>testpools</RootNamespace>
+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v140</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared">
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(ProjectDir)..\..\src\include</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(ProjectDir)..\..\src\include</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(ProjectDir)..\..\src\include</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>$(ProjectDir)..\..\src\include</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Console</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\testpools.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\libks.vcxproj">
+      <Project>{70d178d8-1100-4152-86c0-809a91cff832}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/libs/libks/test/testpools/testpools.vcxproj.filters b/libs/libks/test/testpools/testpools.vcxproj.filters
new file mode 100644
index 0000000000..85777cf3ad
--- /dev/null
+++ b/libs/libks/test/testpools/testpools.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\testpools.c">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file