return build_number
+def make_header():
+ now = datetime.datetime.now()
+
+ file = open('include\\version.h', 'w')
+
+ file.write('#define VENDOR_NAME_STR\t\t"' + os.environ['VENDOR_NAME'] + '"\n')
+ file.write('#define VENDOR_PREFIX_STR\t"' + os.environ['VENDOR_PREFIX'] + '"\n')
+
+ if 'VENDOR_DEVICE_ID' in os.environ.keys():
+ file.write('#define VENDOR_DEVICE_ID_STR\t"' + os.environ['VENDOR_DEVICE_ID'] + '"\n')
+
+ file.write('#define PRODUCT_NAME_STR\t"' + os.environ['PRODUCT_NAME'] + '"\n')
+ file.write('\n')
+
+ file.write('#define MAJOR_VERSION\t\t' + os.environ['MAJOR_VERSION'] + '\n')
+ file.write('#define MAJOR_VERSION_STR\t"' + os.environ['MAJOR_VERSION'] + '"\n')
+ file.write('\n')
+
+ file.write('#define MINOR_VERSION\t\t' + os.environ['MINOR_VERSION'] + '\n')
+ file.write('#define MINOR_VERSION_STR\t"' + os.environ['MINOR_VERSION'] + '"\n')
+ file.write('\n')
+
+ file.write('#define MICRO_VERSION\t\t' + os.environ['MICRO_VERSION'] + '\n')
+ file.write('#define MICRO_VERSION_STR\t"' + os.environ['MICRO_VERSION'] + '"\n')
+ file.write('\n')
+
+ file.write('#define BUILD_NUMBER\t\t' + os.environ['BUILD_NUMBER'] + '\n')
+ file.write('#define BUILD_NUMBER_STR\t"' + os.environ['BUILD_NUMBER'] + '"\n')
+ file.write('\n')
+
+ file.write('#define YEAR\t\t\t' + str(now.year) + '\n')
+ file.write('#define YEAR_STR\t\t"' + str(now.year) + '"\n')
+ file.write('\n')
+
+ file.write('#define MONTH\t\t\t' + str(now.month) + '\n')
+ file.write('#define MONTH_STR\t\t"' + str(now.month) + '"\n')
+ file.write('\n')
+
+ file.write('#define DAY\t\t\t' + str(now.day) + '\n')
+ file.write('#define DAY_STR\t\t\t"' + str(now.day) + '"\n')
+ file.write('\n')
+
+ file.close()
+
+
+def copy_inf(vs, name):
+ src = open('src\\%s.inf' % name, 'r')
+ dst = open('%s\\%s.inf' % (vs, name), 'w')
+
+ for line in src:
+ line = re.sub('@MAJOR_VERSION@', os.environ['MAJOR_VERSION'], line)
+ line = re.sub('@MINOR_VERSION@', os.environ['MINOR_VERSION'], line)
+ line = re.sub('@MICRO_VERSION@', os.environ['MICRO_VERSION'], line)
+ line = re.sub('@BUILD_NUMBER@', os.environ['BUILD_NUMBER'], line)
+ line = re.sub('@VENDOR_NAME@', os.environ['VENDOR_NAME'], line)
+ line = re.sub('@PRODUCT_NAME@', os.environ['PRODUCT_NAME'], line)
+
+ if re.search('@VENDOR_DEVICE_ID@', line):
+ if 'VENDOR_DEVICE_ID' not in os.environ.keys():
+ continue
+ line = re.sub('@VENDOR_DEVICE_ID@', os.environ['VENDOR_DEVICE_ID'], line)
+
+ dst.write(line)
+
+ dst.close()
+ src.close()
+
+
def get_expired_symbols(name, age = 30):
path = os.path.join(os.environ['SYMBOL_SERVER'], '000Admin\\history.txt')
driver = 'xenbus'
vs = getVsVersion()
- os.utime('include/version.hx', None)
- os.utime('src/%s.inf' % driver, None)
-
- if 'COMPANY_NAME' not in os.environ.keys():
- os.environ['COMPANY_NAME'] = 'Xen Project'
+ if 'VENDOR_NAME' not in os.environ.keys():
+ os.environ['VENDOR_NAME'] = 'Xen Project'
+
+ if 'VENDOR_PREFIX' not in os.environ.keys():
+ os.environ['VENDOR_PREFIX'] = 'XP'
if 'PRODUCT_NAME' not in os.environ.keys():
os.environ['PRODUCT_NAME'] = 'Xen'
if 'BUILD_NUMBER' not in os.environ.keys():
os.environ['BUILD_NUMBER'] = next_build_number()
- print("BUILD_NUMBER=%s" % os.environ['BUILD_NUMBER'])
-
if 'GIT_REVISION' in os.environ.keys():
revision = open('revision', 'w')
print(os.environ['GIT_REVISION'], file=revision)
revision.close()
+ print("VENDOR_NAME\t\t'%s'" % os.environ['VENDOR_NAME'])
+ print("VENDOR_PREFIX\t\t'%s'" % os.environ['VENDOR_PREFIX'])
+
+ if 'VENDOR_DEVICE_ID' in os.environ.keys():
+ print("VENDOR_DEVICE_ID\t'%s'" % os.environ['VENDOR_DEVICE_ID'])
+
+ print("PRODUCT_NAME\t\t'%s'" % os.environ['PRODUCT_NAME'])
+ print("MAJOR_VERSION\t\t%s" % os.environ['MAJOR_VERSION'])
+ print("MINOR_VERSION\t\t%s" % os.environ['MINOR_VERSION'])
+ print("MICRO_VERSION\t\t%s" % os.environ['MICRO_VERSION'])
+ print("BUILD_NUMBER\t\t%s" % os.environ['BUILD_NUMBER'])
+ print()
+
+ make_header()
+ copy_inf(vs, driver)
+
symstore_del(driver, 30)
if vs=='vs2012':
+++ /dev/null
-/* Copyright (c) Citrix Systems Inc.
- * All rights reserved.
- *
- * 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.
- *
- * 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 HOLDER 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 COMPANY_NAME_STR "@COMPANY_NAME@"
-#define PRODUCT_NAME_STR "@PRODUCT_NAME@"
-
-#define MAJOR_VERSION @MAJOR_VERSION@
-#define MAJOR_VERSION_STR "@MAJOR_VERSION@"
-
-#define MINOR_VERSION @MINOR_VERSION@
-#define MINOR_VERSION_STR "@MINOR_VERSION@"
-
-#define MICRO_VERSION @MICRO_VERSION@
-#define MICRO_VERSION_STR "@MICRO_VERSION@"
-
-#define BUILD_NUMBER @BUILD_NUMBER@
-#define BUILD_NUMBER_STR "@BUILD_NUMBER@"
-
-#define YEAR @YEAR@
-#define YEAR_STR "@YEAR@"
-
-#define MONTH @MONTH@
-#define MONTH_STR "@MONTH@"
-
-#define DAY @DAY@
-#define DAY_STR "@DAY@"
return FALSE;
}
-#define PLATFORM_DEVICE_0001_NAME "VEN_5853&DEV_0001"
-#define PLATFORM_DEVICE_0002_NAME "VEN_5853&DEV_0002"
-
-#define XENSERVER_VENDOR_DEVICE_NAME "VEN_5853&DEV_C000"
+#define XEN_PLATFORM_PCI_DEVICE_STR "VEN_5853&DEV_0001"
+#define XENSERVER_PLATFORM_PCI_DEVICE_STR "VEN_5853&DEV_0002"
static BOOLEAN
OpenDeviceKey(
// Look for a legacy platform device
Success = GetDeviceKeyName("PCI",
- PLATFORM_DEVICE_0001_NAME,
+ XEN_PLATFORM_PCI_DEVICE_STR,
&DeviceKeyName);
if (!Success)
goto fail1;
goto found;
Success = GetDeviceKeyName("PCI",
- PLATFORM_DEVICE_0002_NAME,
+ XENSERVER_PLATFORM_PCI_DEVICE_STR,
&DeviceKeyName);
if (!Success)
goto fail2;
#include <version.h>
-#define VER_COMPANYNAME_STR COMPANY_NAME_STR
+#define VER_COMPANYNAME_STR VENDOR_NAME_STR
#define VER_LEGALCOPYRIGHT_STR "Copyright (c) Citrix Systems Inc."
#define VER_PRODUCTNAME_STR "XEN"
Signature="$Windows NT$"
Class=System
ClassGUID={4d36e97d-e325-11ce-bfc1-08002be10318}
-Provider=%Company%
+Provider=%Vendor%
CatalogFile=xenbus.cat
DriverVer=01/01/1900,0.0.0.0
xenbus_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenbus_coinst.dll
[Manufacturer]
-%Company%=Inst,NT$ARCH$
+%Vendor%=Inst,NT$ARCH$
[Inst.NT$ARCH$]
; DisplayName Section DeviceID
; ----------- ------- --------
-%XenBusDesc% =XenBus_Inst, PCI\VEN_5853&DEV_C000&SUBSYS_C0005853&REV_01
+%XenBusDesc% =XenBus_Inst, PCI\VEN_5853&DEV_@VENDOR_DEVICE_ID@&SUBSYS_@VENDOR_DEVICE_ID@5853&REV_01
%XenBusDesc% =XenBus_Inst, PCI\VEN_5853&DEV_0002
%XenBusDesc% =XenBus_Inst, PCI\VEN_5853&DEV_0001
[Strings]
-Company="@COMPANY_NAME@"
+Vendor="@VENDOR_NAME@"
DiskDesc="@PRODUCT_NAME@ PV Bus Package"
XenBusDesc="@PRODUCT_NAME@ PV Bus"
XenFiltDesc="@PRODUCT_NAME@ Generic Bus Filter"
#include <xen.h>
#include <pvdevice_interface.h>
+#include <version.h>
#include "names.h"
#include "registry.h"
status = RtlStringCbPrintfA(Fdo->VendorName,
MAXNAMELEN,
- "XS%04X",
+ "%s%04X",
+ VENDOR_PREFIX_STR,
DeviceID);
ASSERT(NT_SUCCESS(status));
#include <version.h>
-#define VER_COMPANYNAME_STR COMPANY_NAME_STR
+#define VER_COMPANYNAME_STR VENDOR_NAME_STR
#define VER_LEGALCOPYRIGHT_STR "Copyright (c) Citrix Systems Inc."
#define VER_PRODUCTNAME_STR "XENBUS"
#include <version.h>
-#define VER_COMPANYNAME_STR COMPANY_NAME_STR
+#define VER_COMPANYNAME_STR VENDOR_NAME_STR
#define VER_LEGALCOPYRIGHT_STR "Copyright (c) Citrix Systems Inc."
#define VER_PRODUCTNAME_STR "XENFILT"
<IncludePath>..\..\include;..\..\include\xen;..\..\src\common;$(IncludePath)</IncludePath>
<RunCodeAnalysis>true</RunCodeAnalysis>
<EnableInf2cat>false</EnableInf2cat>
- <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets>
<IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
<OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
- <CustomBuildStep>
- <Command> echo "Build version header"
- powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) | Set-Content ..\..\include\version.h"
- </Command>
- <Outputs>..\..\include\version.h</Outputs>
- <Inputs>..\..\include\version.hx</Inputs>
- </CustomBuildStep>
<ClCompile>
<PreprocessorDefinitions>__MODULE__="XEN";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>EnableAllWarnings</WarningLevel>
<IncludePath>..\..\include;..\..\include\xen;..\..\src\common;$(IncludePath)</IncludePath>
<RunCodeAnalysis>true</RunCodeAnalysis>
<EnableInf2cat>false</EnableInf2cat>
- <CustomBuildBeforeTargets>StampInf</CustomBuildBeforeTargets>
<IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
<OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
- <CustomBuildStep>
- <Command>echo "Build Inf"
- powershell -Command "(Get-Content ..\..\src\xenbus.inf) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' | Set-Content ..\..\vs2012\xenbus.inf"
- </Command>
- <Outputs>..\..\vs2012\xenbus.inf</Outputs>
- <Inputs>..\..\src\xenbus.inf</Inputs>
- </CustomBuildStep>
<ClCompile>
<PreprocessorDefinitions>__MODULE__="XENBUS";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<WarningLevel>EnableAllWarnings</WarningLevel>
<EnableInf2cat>false</EnableInf2cat>
<IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
<OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
- <CustomBuildBeforeTargets>ClCompile</CustomBuildBeforeTargets>
</PropertyGroup>
<ItemDefinitionGroup>
- <CustomBuildStep>
- <Command> echo "Build version header"
- powershell -Command "(Get-Content ..\..\include\version.hx) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' -replace '@DAY@',%24(Get-Date -format %25%25d) -replace '@MONTH@',%24(Get-Date -format %25%25M) -replace '@YEAR@',%24(Get-Date -format yyyy) | Set-Content ..\..\include\version.h"
- </Command>
- <Outputs>..\..\include\version.h</Outputs>
- <Inputs>..\..\include\version.hx</Inputs>
- </CustomBuildStep>
<ClCompile>
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__MODULE__="XEN";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableInf2cat>false</EnableInf2cat>
<IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir>
<OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir>
- <CustomBuildBeforeTargets>StampInf</CustomBuildBeforeTargets>
</PropertyGroup>
<ItemDefinitionGroup>
- <CustomBuildStep>
- <Command>echo "Build Inf"
- powershell -Command "(Get-Content ..\..\src\xenbus.inf) -replace '@MAJOR_VERSION@', '$(MAJOR_VERSION)' -replace '@MINOR_VERSION@', '$(MINOR_VERSION)' -replace '@MICRO_VERSION@','$(MICRO_VERSION)' -replace '@BUILD_NUMBER@','$(BUILD_NUMBER)' -replace '@COMPANY_NAME@','$(COMPANY_NAME)' -replace '@PRODUCT_NAME@','$(PRODUCT_NAME)' | Set-Content ..\..\vs2013\xenbus.inf"
- </Command>
- <Outputs>..\..\vs2013\xenbus.inf</Outputs>
- <Inputs>..\..\src\xenbus.inf</Inputs>
- </CustomBuildStep>
<ClCompile>
<PreprocessorDefinitions>__MODULE__="XENBUS";POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen;..\..\src\common;</AdditionalIncludeDirectories>