/drivers/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.write.1.tlog |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.log (revision 176) |
@@ -0,0 +1,25 @@ |
+Build started 10.2.2014 7:32:23. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>Inf2Cat: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:6_3_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32 Package\\" |
+ ......................... |
+ Signability test complete. |
+ |
+ Errors: |
+ None |
+ |
+ Warnings: |
+ None |
+ |
+ Catalog generation complete. |
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32 Package\pcicc32.cat |
+ DriverTestSign: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD" |
+ Done Adding Additional Store |
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32 Package\pcicc32.cat |
+ |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.36 |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5916.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/inf2cat-expand.5100.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8.1 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug/signtool.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug (revision 176) |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Debug |
---|
Property changes: |
Added: svn:global-ignores |
## -0,0 +1 ## |
+*.tlog |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj.filters |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj.filters (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj.filters (revision 176) |
@@ -0,0 +1,9 @@ |
+<?xml version="1.0" encoding="utf-8"?> |
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
+ <ItemGroup> |
+ <Filter Include="Driver Files"> |
+ <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier> |
+ <Extensions>inf;inv;inx;mof;mc;</Extensions> |
+ </Filter> |
+ </ItemGroup> |
+</Project> |
\ No newline at end of file |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.2792.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.log (revision 176) |
@@ -0,0 +1,20 @@ |
+Build started 10.2.2014 7:32:23. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>Inf2Cat: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:7_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32 Package\\" |
+ ......................... |
+ Signability test complete. |
+ |
+ Errors: |
+ None |
+ |
+ Warnings: |
+ None |
+ |
+ Catalog generation complete. |
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32 Package\pcicc32.cat |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.32 |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/inf2cat-expand.4468.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/Inf2Cat.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/Inf2Cat.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win7 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.log (revision 176) |
@@ -0,0 +1,20 @@ |
+Build started 10.2.2014 7:32:22. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>Inf2Cat: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:6_3_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32 Package\\" |
+ ......................... |
+ Signability test complete. |
+ |
+ Errors: |
+ None |
+ |
+ Warnings: |
+ None |
+ |
+ Catalog generation complete. |
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32 Package\pcicc32.cat |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.29 |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/Inf2Cat.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/Inf2Cat.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8.1 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.1920.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8.1Release/inf2cat-expand.4048.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.log (revision 176) |
@@ -0,0 +1,20 @@ |
+Build started 10.2.2014 7:32:22. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>Inf2Cat: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:8_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32 Package\\" |
+ ......................... |
+ Signability test complete. |
+ |
+ Errors: |
+ None |
+ |
+ Warnings: |
+ None |
+ |
+ Catalog generation complete. |
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32 Package\pcicc32.cat |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.32 |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/Inf2Cat.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/Inf2Cat.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.3652.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Release/inf2cat-expand.728.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.684.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat-expand.4492.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.log (revision 176) |
@@ -0,0 +1,25 @@ |
+Build started 10.2.2014 7:32:24. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>Inf2Cat: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:7_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32 Package\\" |
+ ......................... |
+ Signability test complete. |
+ |
+ Errors: |
+ None |
+ |
+ Warnings: |
+ None |
+ |
+ Catalog generation complete. |
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32 Package\pcicc32.cat |
+ DriverTestSign: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD" |
+ Done Adding Additional Store |
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32 Package\pcicc32.cat |
+ |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.35 |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/inf2cat.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/Inf2Cat.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/Inf2Cat.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win7 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win7Debug/signtool.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.log (revision 176) |
@@ -0,0 +1,25 @@ |
+Build started 10.2.2014 7:32:24. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>Inf2Cat: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\inf2cat.exe /os:8_x86 /driver:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32 Package\\" |
+ ......................... |
+ Signability test complete. |
+ |
+ Errors: |
+ None |
+ |
+ Warnings: |
+ None |
+ |
+ Catalog generation complete. |
+ C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32 Package\pcicc32.cat |
+ DriverTestSign: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD" |
+ Done Adding Additional Store |
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32 Package\pcicc32.cat |
+ |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32 Package\pcicc32 Package.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.78 |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/Inf2Cat.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/Inf2Cat.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/pcicc32 Package.tlog/pcicc32 Package.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.4172.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/inf2cat-expand.2780.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32 Package/Win8Debug/signtool.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32 Package/pcicc32 Package.vcxproj (revision 176) |
@@ -0,0 +1,334 @@ |
+<?xml version="1.0" encoding="utf-8"?> |
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
+ <ItemGroup Label="ProjectConfigurations"> |
+ <ProjectConfiguration Include="Win8.1 Debug|Win32"> |
+ <Configuration>Win8.1 Debug</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8.1 Release|Win32"> |
+ <Configuration>Win8.1 Release</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Debug|Win32"> |
+ <Configuration>Win8 Debug</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Release|Win32"> |
+ <Configuration>Win8 Release</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Debug|Win32"> |
+ <Configuration>Win7 Debug</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Release|Win32"> |
+ <Configuration>Win7 Release</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8.1 Debug|x64"> |
+ <Configuration>Win8.1 Debug</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8.1 Release|x64"> |
+ <Configuration>Win8.1 Release</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Debug|x64"> |
+ <Configuration>Win8 Debug</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Release|x64"> |
+ <Configuration>Win8 Release</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Debug|x64"> |
+ <Configuration>Win7 Debug</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Release|x64"> |
+ <Configuration>Win7 Release</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ </ItemGroup> |
+ <PropertyGroup Label="Globals"> |
+ <ProjectGuid>{E52219C0-0B63-42B6-BBBD-5718FDE46FDB}</ProjectGuid> |
+ <TemplateGuid>{4605da2c-74a5-4865-98e1-152ef136825f}</TemplateGuid> |
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
+ <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion> |
+ <Configuration>Win8.1 Debug</Configuration> |
+ <Platform Condition="'$(Platform)' == ''">Win32</Platform> |
+ <RootNamespace>pcicc32_Package</RootNamespace> |
+ </PropertyGroup> |
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Utility</ConfigurationType> |
+ <DriverType>Package</DriverType> |
+ <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck> |
+ </PropertyGroup> |
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
+ <ImportGroup Label="ExtensionSettings"> |
+ </ImportGroup> |
+ <ImportGroup Label="PropertySheets"> |
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
+ </ImportGroup> |
+ <PropertyGroup Label="UserMacros" /> |
+ <PropertyGroup /> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ <EnableDeployment>False</EnableDeployment> |
+ <RemoveDriver>True</RemoveDriver> |
+ <HardwareIdString /> |
+ <CommandLine /> |
+ <DeployFiles /> |
+ <EnableVerifier>False</EnableVerifier> |
+ <AllDrivers>False</AllDrivers> |
+ <VerifyProjectOutput>True</VerifyProjectOutput> |
+ <VerifyDrivers /> |
+ <VerifyFlags>133563</VerifyFlags> |
+ </PropertyGroup> |
+ <ItemGroup> |
+ <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> |
+ </ItemGroup> |
+ <ItemGroup> |
+ <ProjectReference Include="..\pcicc32\pcicc32.vcxproj"> |
+ <Project>{e355652a-faa5-429d-8308-afea65c58b53}</Project> |
+ </ProjectReference> |
+ </ItemGroup> |
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
+ <ImportGroup Label="ExtensionTargets"> |
+ </ImportGroup> |
+</Project> |
\ No newline at end of file |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/vc120.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/vc120.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.18.506 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_v.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_v.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.log (revision 176) |
@@ -0,0 +1,23 @@ |
+Build started 10.2.2014 7:32:18. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>StampInf: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8Release\pcicc32.inf |
+ Stamping Win8Release\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.18.506 |
+ ClCompile: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8Release\ /Zi /nologo /W4 /WX /Ox /Os /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D _WIN32_WINNT=0x0602 /D WINVER=0x0602 /D WINNT=1 /D NTDDI_VERSION=0x06020000 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8Release\\" /Fd"Win8Release\vc120.pdb" /Gz /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1nodatetime /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c |
+ pcicc32_drv.c |
+ pcicc32_i.c |
+ pcicc32_io.c |
+ pcicc32_v.c |
+ Generating Code... |
+ Link: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.02" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8Release\pcicc32_drv.obj |
+ Win8Release\pcicc32_i.obj |
+ Win8Release\pcicc32_io.obj |
+ Win8Release\pcicc32_v.obj |
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Release\pcicc32.sys |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.65 |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_io.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_io.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/pcicc32.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/pcicc32.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/CL.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/link.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/cl.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32.tlog/cl.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_drv.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/pcicc32_drv.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release/stampinf.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Release |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8Release (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Release (revision 176) |
/wiener_pcicc32/pcicc32/pcicc32/Win8Release |
---|
Property changes: |
Added: svn:global-ignores |
## -0,0 +1 ## |
+*.obj |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.c |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.c (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.c (revision 176) |
@@ -0,0 +1,275 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany -------- |
+// all around irq handling |
+// |
+// (c) 1999-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 01.08.1999 |
+// first release 1.0 AR 17.10.1999 |
+// IoConnectInterrupt, share vector now true AR 04.03.2000 |
+// globalInterruptEnabledStatus() added AR 24.02.2001 |
+// added IRQ handling AR 24.02.2001 |
+// added WITH_IRQS switch to switsch off irqs AR 04.10.2001 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#define WITH_IRQS // comment out for interrupt handling excludes |
+// ACHTUNG TEST |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <pcicc32_drv.h> |
+#include <pcicc32_i.h> |
+#include <pcicc32.h> |
+#include <pcicc32_local.h> |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+#ifndef WORD |
+#define WORD USHORT |
+#endif |
+ |
+//------------------------------------------------------------------------ |
+// GLOBALS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// enable and disable of interrupts |
+// |
+void globalInterruptEnable(PCIADA *pciada) |
+{ |
+#ifdef WITH_IRQS |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, ENABLE_PCIADA_IRQS); |
+#endif |
+} |
+ |
+void globalInterruptDisable(PCIADA *pciada) |
+{ |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS); |
+} |
+ |
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada) |
+{ |
+ unsigned short wStatus; |
+ |
+ wStatus = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ |
+ if ((wStatus & ENABLE_PCIADA_IRQS) == ENABLE_PCIADA_IRQS) |
+ return 1; |
+ |
+ return 0; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// determine which interrupt and evaluates status if appropriate |
+// |
+static int evaluateIrqStatus(PCIADA *pciada, ULONG *dwIrqStatus) |
+{ |
+ volatile USHORT wCntrl; |
+ int result = 0; |
+ |
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); |
+ if (wCntrl & 0x100) // pciada switched on ? |
+ { |
+ volatile USHORT wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ |
+ if (wIntCSR & 0x0040) // are the interrupts enabled? |
+ { |
+ if (wIntCSR & 0x20) |
+ { |
+ // it's the pci interrupt # 2 |
+ globalInterruptDisable(pciada); // disable following interrupts |
+ |
+ // get current Cntrl - and clear interrupt |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, (USHORT)(wCntrl & ~0x0100)); // disable |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // enable again |
+ |
+ *dwIrqStatus = CONNECTION_TIMEOUT; |
+ |
+ result = 1; |
+ } |
+ |
+ if (wIntCSR & 0x04) |
+ { |
+ globalInterruptDisable(pciada); // disable following interrupts |
+ |
+ *dwIrqStatus = READ_REGISTER_ULONG(_DWORD_NAF(pciada->pvVirtIfr, 28, 2, 0)); |
+ |
+ // clear pending interrupt - LAM-FF |
+ WRITE_REGISTER_USHORT(_WORD_NAF(pciada->pvVirtIfr, 28, 0, 16), 0); |
+ |
+ result = 1; |
+ } |
+ } |
+ } |
+ |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// main interrupt handler function |
+// |
+static BOOLEAN irq_service(PKINTERRUPT Interrupt, PVOID ServiceContext) |
+{ |
+ PCIADA *pciada = (PCIADA *)ServiceContext; |
+ UNREFERENCED_PARAMETER(Interrupt); |
+#ifndef WITH_IRQS |
+ return FALSE; |
+#endif |
+ |
+ if (!evaluateIrqStatus(pciada, &pciada->dwIrqStatus)) |
+ { |
+ // KdPrint(("Not my irq.\n")); |
+ return FALSE; |
+ } |
+ |
+ // fire custom deffered procedure call |
+ KeInsertQueueDpc(&pciada->kDPCobj, (PVOID)pciada, (PVOID)&pciada->dwIrqStatus); |
+ |
+ KdPrint(("irq_service(0x%08x)\n", pciada->dwIrqStatus)); |
+ return TRUE; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// translate interrupt resources for PCIADAs to hardware independent ones |
+// |
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32TranslateInterrupt()\n")); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ KdPrint(("In - Bus:%d, IrqLine:%d\n", pciada->Bus, pciada->Irql)); |
+ |
+ if (pciada->Irql) |
+ { |
+ pciada->Vector = HalGetInterruptVector(PCIBus, pciada->Bus, |
+ pciada->Irql, pciada->Vector, |
+ &pciada->Irql, &pciada->Affinity); |
+ |
+ KdPrint(("Out - Irql:%d, Vector: %d, Affinity:%d\n", pciada->Irql, pciada->Vector, pciada->Affinity)); |
+ |
+ } |
+ else |
+ result = STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT; |
+ } |
+ |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// connect service routines to all PCIADA interrupts |
+// |
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj) |
+{ |
+#ifdef WITH_IRQS |
+ int i; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32ConnectInterrupt()\n")); |
+ |
+ // connect the interrupts to service routines |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ pciada->InterruptObject = NULL; |
+ |
+ if (pciada->Vector) |
+ result = IoConnectInterrupt(&pciada->InterruptObject, |
+ irq_service, |
+ (PVOID)pciada, |
+ NULL, |
+ pciada->Vector, |
+ pciada->Irql, |
+ pciada->Irql, |
+ LevelSensitive, |
+ TRUE, |
+ pciada->Affinity, |
+ FALSE); |
+ |
+ KdPrint(("irq_service:%p, VirtVect:%d, Irql:%d, hIrql:%d, Aff:0x%08x, Status:0x%08x\n", |
+ irq_service, pciada->Vector, pciada->Irql, |
+ pciada->Irql, pciada->Affinity, result)); |
+ |
+ if (result != STATUS_SUCCESS) |
+ break; |
+ } |
+ |
+ if (result == STATUS_SUCCESS) |
+ { |
+ KdPrint(("PCICC32ConnectInterrupt() OK.\n")); |
+ } |
+ |
+ return result; |
+#else |
+ return STATUS_SUCCESS; |
+#endif |
+} |
+ |
+//------------------------------------------------------------------------ |
+// dis-connect service routines to all PCIADA interrupts |
+// |
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj) |
+{ |
+#ifdef WITH_IRQS |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("DisConnectInterrupt()\n")); |
+ |
+ // dis connect the interrupts to service routines |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ KdPrint(("IrqObj:0x%08x\n", pciada->InterruptObject)); |
+ |
+ if (pciada->InterruptObject) |
+ { |
+ IoDisconnectInterrupt(pciada->InterruptObject); |
+ pciada->InterruptObject = 0; |
+ } |
+ } |
+#endif |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj (revision 176) |
@@ -0,0 +1,300 @@ |
+<?xml version="1.0" encoding="utf-8"?> |
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
+ <ItemGroup Label="ProjectConfigurations"> |
+ <ProjectConfiguration Include="Win8.1 Debug|Win32"> |
+ <Configuration>Win8.1 Debug</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8.1 Release|Win32"> |
+ <Configuration>Win8.1 Release</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Debug|Win32"> |
+ <Configuration>Win8 Debug</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Release|Win32"> |
+ <Configuration>Win8 Release</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Debug|Win32"> |
+ <Configuration>Win7 Debug</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Release|Win32"> |
+ <Configuration>Win7 Release</Configuration> |
+ <Platform>Win32</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8.1 Debug|x64"> |
+ <Configuration>Win8.1 Debug</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8.1 Release|x64"> |
+ <Configuration>Win8.1 Release</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Debug|x64"> |
+ <Configuration>Win8 Debug</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win8 Release|x64"> |
+ <Configuration>Win8 Release</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Debug|x64"> |
+ <Configuration>Win7 Debug</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ <ProjectConfiguration Include="Win7 Release|x64"> |
+ <Configuration>Win7 Release</Configuration> |
+ <Platform>x64</Platform> |
+ </ProjectConfiguration> |
+ </ItemGroup> |
+ <PropertyGroup Label="Globals"> |
+ <ProjectGuid>{E355652A-FAA5-429D-8308-AFEA65C58B53}</ProjectGuid> |
+ <TemplateGuid>{1bc93793-694f-48fe-9372-81e2b05556fd}</TemplateGuid> |
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> |
+ <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion> |
+ <Configuration>Win8.1 Debug</Configuration> |
+ <Platform Condition="'$(Platform)' == ''">Win32</Platform> |
+ <RootNamespace>pcicc32</RootNamespace> |
+ </PropertyGroup> |
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'" Label="Configuration"> |
+ <TargetVersion>WindowsV6.3</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'" Label="Configuration"> |
+ <TargetVersion>Windows8</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>true</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'" Label="Configuration"> |
+ <TargetVersion>Windows7</TargetVersion> |
+ <UseDebugLibraries>false</UseDebugLibraries> |
+ <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset> |
+ <ConfigurationType>Driver</ConfigurationType> |
+ <DriverType>KMDF</DriverType> |
+ </PropertyGroup> |
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
+ <ImportGroup Label="ExtensionSettings"> |
+ </ImportGroup> |
+ <ImportGroup Label="PropertySheets"> |
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
+ </ImportGroup> |
+ <PropertyGroup Label="UserMacros" /> |
+ <PropertyGroup /> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> |
+ <DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor> |
+ </PropertyGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|Win32'"> |
+ <ClCompile> |
+ <WppEnabled>false</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|Win32'"> |
+ <ClCompile> |
+ <WppEnabled>false</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|Win32'"> |
+ <ClCompile> |
+ <WppEnabled>false</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|Win32'"> |
+ <ClCompile> |
+ <WppEnabled>false</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|Win32'"> |
+ <ClCompile> |
+ <WppEnabled>false</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|Win32'"> |
+ <ClCompile> |
+ <WppEnabled>false</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Debug|x64'"> |
+ <ClCompile> |
+ <WppEnabled>true</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8.1 Release|x64'"> |
+ <ClCompile> |
+ <WppEnabled>true</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Debug|x64'"> |
+ <ClCompile> |
+ <WppEnabled>true</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win8 Release|x64'"> |
+ <ClCompile> |
+ <WppEnabled>true</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'"> |
+ <ClCompile> |
+ <WppEnabled>true</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Release|x64'"> |
+ <ClCompile> |
+ <WppEnabled>true</WppEnabled> |
+ <WppScanConfigurationData Condition="'%(ClCompile. ScanConfigurationData)' == ''">trace.h</WppScanConfigurationData> |
+ <WppKernelMode>true</WppKernelMode> |
+ </ClCompile> |
+ </ItemDefinitionGroup> |
+ <ItemGroup> |
+ <Inf Include="pcicc32.inf" /> |
+ </ItemGroup> |
+ <ItemGroup> |
+ <FilesToPackage Include="$(TargetPath)" /> |
+ <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> |
+ </ItemGroup> |
+ <ItemGroup> |
+ <ClInclude Include="guid.h" /> |
+ <ClInclude Include="pcicc32.h" /> |
+ <ClInclude Include="pcicc32_drv.h" /> |
+ <ClInclude Include="pcicc32_i.h" /> |
+ <ClInclude Include="pcicc32_io.h" /> |
+ <ClInclude Include="pcicc32_local.h" /> |
+ <ClInclude Include="pcicc32_v.h" /> |
+ </ItemGroup> |
+ <ItemGroup> |
+ <ClCompile Include="pcicc32_drv.c" /> |
+ <ClCompile Include="pcicc32_i.c" /> |
+ <ClCompile Include="pcicc32_io.c" /> |
+ <ClCompile Include="pcicc32_v.c" /> |
+ </ItemGroup> |
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
+ <ImportGroup Label="ExtensionTargets"> |
+ </ImportGroup> |
+</Project> |
\ No newline at end of file |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.c |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.c (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.c (revision 176) |
@@ -0,0 +1,1063 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 (CAMAC) interface of ARW Elektronik, Germany -- |
+// the main body of the driver |
+// |
+// (c) 2000-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistribute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started out of pcivme sources AR 25.03.2000 |
+// added IRQ handling AR 24.02.2001 |
+// Added AUTOREAD functionality AR 17.03.2001 |
+// Added LCR_READ AR 31.03.2001 |
+// resource allocation registers idle entries too AR 25.11.2001 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// totally rearanged resource alloc for WIN2000 AR 01.06.2002 |
+// version 2.14 eleminates PLXBUG in WIN2000 AR 05.06.2002 |
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002 |
+// |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+#ifndef WORD |
+#define WORD USHORT |
+#endif |
+ |
+#define CTL_INDEX(x) ((x >> 2) & 0xFF) // get user control code as index |
+#define RESOURCE_ENTRY_COUNT 6 // WIN2000 forces to claim all entries |
+ |
+#define DOS_DEVICE_NAME L"\\DosDevices\\PCICC32:" |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+ |
+#include <ntddk.h> |
+#include <devioctl.h> |
+// #include <wdm.h> |
+ |
+#include <pcicc32_drv.h> |
+#include <pcicc32.h> |
+#include <pcicc32_v.h> |
+#include <pcicc32_i.h> |
+#include <pcicc32_io.h> |
+ |
+ |
+//------------------------------------------------------------------------ |
+// TYPEDEFS |
+// |
+typedef struct |
+{ |
+ FILE_OBJ *file_obj; |
+ PCIADA *pciada; |
+ PVOID pOutputBuffer; |
+ PVOID pInputBuffer; |
+ ULONG Address; |
+ DWORD Length; |
+} SYNC_CONTEXT; |
+ |
+//------------------------------------------------------------------------ |
+// GLOBALS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// for debug only - print interrupt line |
+// |
+#if DBG |
+void PrintInterruptLine(int Bus, int Slot) |
+{ |
+ PCI_COMMON_CONFIG pci_config; |
+ |
+ HalGetBusData( PCIConfiguration, // Bustype |
+ Bus, // PCI-Busnumber |
+ Slot, // Slotnumber |
+ (PVOID) &(pci_config), // Pointer for the PCI-Information |
+ sizeof(PCI_COMMON_CONFIG)); |
+ |
+ KdPrint(("Irql: %d\n", pci_config.u.type0.InterruptLine)); |
+} |
+#endif |
+ |
+//------------------------------------------------------------------------ |
+// get the cc32 number out of the filename |
+// |
+NTSTATUS InterpreteFileName(PCHAR name, int *nCC32) |
+{ |
+ char *ptr = name; |
+ char *n = "cc32_"; |
+ int h = -1; // high part |
+ int l = -1; // low part |
+ |
+ if (*ptr == '\\') ptr++; // jump over leading ... |
+ |
+ while (*n) // compare the basename |
+ if (*n == tolower(*ptr)) |
+ { |
+ n++; |
+ ptr++; |
+ } |
+ else |
+ return STATUS_NO_SUCH_FILE; |
+ |
+ h = *ptr - '0'; // get the number |
+ ptr++; |
+ l = *ptr - '0'; |
+ |
+ if (*ptr == 0) // still over the end ?? |
+ { |
+ l = h; |
+ h = 0; |
+ } |
+ else |
+ ptr++; |
+ |
+ if ((h < 0) || (l < 0) || (*ptr != 0)) // anything wrong ?? |
+ return STATUS_NO_SUCH_FILE; |
+ |
+ *nCC32 = (h * 10) + l; // calculate number |
+ |
+ if (*nCC32 >= PCICC32_MAX_CC32) // out of range ?? |
+ return STATUS_NO_SUCH_FILE; |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the ultimate driver unload |
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj) |
+{ |
+ int i; |
+ UNICODE_STRING symbol_name; |
+ DEVICE_EXT *ext = (DEVICE_EXT*)(driverObj->DeviceObject->DeviceExtension); |
+ int nPCIADAs = ext->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32Unload()\n")); |
+ |
+ switch (ext->nInitState) |
+ { |
+ case 8: |
+ case 7: |
+ case 6: |
+ // stop interrupts and shut off |
+ PCICC32DeInitPCIADAs(driverObj->DeviceObject); |
+ PCICC32DisConnectInterrupt(driverObj->DeviceObject); |
+ case 5: |
+ // KeInitializeDpc has no counterpart |
+ case 4: |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &ext->pciada[i]; |
+ if (pciada->pvVirtLcr != NULL) |
+ MmUnmapIoSpace(pciada->pvVirtLcr, LCR_SPACE); |
+ if (pciada->pvVirtIfr != NULL) |
+ MmUnmapIoSpace(pciada->pvVirtIfr, IFR_SPACE); |
+ } |
+ case 3: |
+ // HalGetInterruptVector has no counterpart |
+ case 2: |
+ // HalTranslateBusAddress has no counterpart |
+ case 1: |
+ PCICC32FreeResources(driverObj->DeviceObject); |
+ default: |
+ case 0: |
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME); |
+ |
+ // delete the symbolicLink in the registry |
+ IoDeleteSymbolicLink( &symbol_name); |
+ |
+ // delete the deviceObject |
+ IoDeleteDevice(driverObj->DeviceObject); |
+ } |
+ |
+ KdPrint(("PCICC32Unload() OK.\n")); |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// called at CreateFile() |
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP Irp) |
+{ |
+ NTSTATUS result = STATUS_SUCCESS; |
+ ANSI_STRING name; |
+ int nCC32; |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension); |
+ PCIADA *pciada; |
+ FILE_OBJ *file_obj; |
+ |
+ name.Buffer = NULL; |
+ name.MaximumLength = 80; |
+ |
+ result = RtlUnicodeStringToAnsiString(&name, &(Irp->Tail.Overlay.OriginalFileObject->FileName), TRUE); |
+ if (result != STATUS_SUCCESS) goto fin; |
+ |
+ KdPrint(("PCICC32Open(%s)\n", name.Buffer)); |
+ |
+ result = InterpreteFileName(name.Buffer, &nCC32); |
+ if (result != STATUS_SUCCESS) goto fin; |
+ |
+ KdPrint(("PCICC32Open(%d)\n", nCC32)); |
+ RtlFreeAnsiString(&name); |
+ |
+ file_obj = (FILE_OBJ *)ExAllocatePool(NonPagedPool, sizeof(FILE_OBJ)); |
+ if (file_obj == (FILE_OBJ *)NULL) |
+ { |
+ result = STATUS_NO_MEMORY; |
+ goto fin; |
+ } |
+ |
+ file_obj->uwAssociatedCC32 = (USHORT) nCC32; |
+ |
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (PVOID)file_obj; |
+ |
+ result = PCICC32ScanCC32(deviceObj); |
+ if (result != STATUS_SUCCESS) goto fin; |
+ |
+ for (i = 0; i < pDevExt->nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ if (pciada->wModuleNumber == nCC32) |
+ { |
+ pDevExt->cc32[nCC32] = pciada; // create association |
+ pciada->dwLinkCount++; |
+ |
+ enableCC32(pciada); |
+ break; |
+ } |
+ } |
+ |
+ if (i >= pDevExt->nPCIADAs) |
+ { |
+ result = STATUS_NO_SUCH_FILE; |
+ goto fin; |
+ } |
+ |
+ fin: |
+ Irp->IoStatus.Status = result; |
+ Irp->IoStatus.Information = 0; |
+ IoCompleteRequest(Irp, IO_NO_INCREMENT); |
+ |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// called at close() |
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP Irp) |
+{ |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension); |
+ FILE_OBJ *file_obj = (FILE_OBJ *)NULL; |
+ PCIADA *pciada; |
+ |
+ file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ |
+ KdPrint(("PCICC32Close(%d)\n", file_obj->uwAssociatedCC32)); |
+ |
+ if (file_obj != (FILE_OBJ *)NULL) |
+ { |
+ pciada = pDevExt->cc32[file_obj->uwAssociatedCC32]; |
+ pciada->dwLinkCount--; |
+ |
+ // disable interrupts when closing |
+ if (pciada->pIrqControlFile == file_obj) |
+ { |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ globalInterruptDisable(pciada); |
+ } |
+ |
+ // cancel any blocking Irp origin from this file |
+ if (file_obj->blockingIrp != (PIRP)NULL) |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ |
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp) |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ |
+ if (!pciada->dwLinkCount) |
+ disableCC32(pciada); |
+ |
+ ExFreePool(file_obj); |
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (FILE_OBJ *)NULL; |
+ } |
+ |
+ KdPrint(("PCICC32Close OK\n")); |
+ |
+ Irp->IoStatus.Status = STATUS_SUCCESS; |
+ Irp->IoStatus.Information = 0; |
+ IoCompleteRequest(Irp, IO_NO_INCREMENT); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// called at |
+NTSTATUS PCICC32Shutdown(PDEVICE_OBJECT deviceObj, PIRP irp) |
+{ |
+ UNREFERENCED_PARAMETER(irp); |
+ KdPrint(("PCICC32Shutdown()\n")); |
+ |
+ // deinit interfaces and interrupts |
+ PCICC32DeInitPCIADAs(deviceObj); |
+ |
+ KdPrint(("PCICC32Shutdown() OK\n")); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// called at ioctl() |
+NTSTATUS PCICC32DeviceControl(PDEVICE_OBJECT deviceObj, PIRP Irp) |
+{ |
+ PIO_STACK_LOCATION IrpStack; |
+ int nIndex; |
+ |
+ IrpStack = IoGetCurrentIrpStackLocation(Irp); |
+ nIndex = CTL_INDEX(IrpStack->Parameters.DeviceIoControl.IoControlCode); |
+ |
+ KdPrint(("PCICC32DeviceControl(%d / 0x%08x)\n", nIndex, Irp->Tail.Overlay.OriginalFileObject)); |
+ |
+ if (nIndex > CTL_INDEX(PCICC32_LAST_CTL_CODE)) |
+ { |
+ KdPrint(("LastIndex(%d)\n", CTL_INDEX(PCICC32_LAST_CTL_CODE))); |
+ Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; |
+ Irp->IoStatus.Information = 0; |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); |
+ |
+ KdPrint(("PCICC32DeviceControl() FAIL.\n")); |
+ |
+ return STATUS_UNSUCCESSFUL; |
+ } |
+ |
+ return ioctl[nIndex](deviceObj, Irp, IrpStack); |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// called at read() |
+static BOOLEAN PCICC32Read_kernel(PVOID pvContext) |
+{ |
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext; |
+ register ULONG i = 0; |
+ USHORT wCntrl; |
+ |
+ wCntrl = READ_REGISTER_USHORT(context->pciada->pwCntrl); |
+ if (context->file_obj->wBlockTransfer & AUTOREAD) |
+ { |
+ wCntrl &= ~0x0004; // enable autoread - set bit to 0 |
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl); |
+ } |
+ |
+ // do the read --- |
+ if (context->file_obj->wBlockTransfer & UNTIL_NOT_Q) |
+ { |
+ // read first time to get Q information |
+ register ULONG tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); |
+ |
+ if (context->file_obj->wAccessType == WORD_ACCESS) |
+ { |
+ PUSHORT pwBuffer = (PUSHORT)context->pOutputBuffer; |
+ PUSHORT pwBufEnd = (PUSHORT)((PUCHAR)context->pOutputBuffer + context->Length); |
+ |
+ while ((tempBuffer & 0x80000000) && (pwBuffer < pwBufEnd)) |
+ { |
+ *pwBuffer++ = (USHORT)tempBuffer; |
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q |
+ i++; |
+ } |
+ } |
+ else |
+ { |
+ // LONG_ACCESS |
+ PULONG pdwBuffer = (PULONG)context->pOutputBuffer; |
+ PULONG pdwBufEnd = (PULONG)((PUCHAR)context->pOutputBuffer + context->Length); |
+ |
+ while ((tempBuffer & 0x80000000) && (pdwBuffer < pdwBufEnd)) |
+ { |
+ *pdwBuffer++ = tempBuffer; |
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q |
+ i++; |
+ } |
+ } |
+ |
+ i *= context->file_obj->wAccessType; |
+ |
+ KdPrint(("UNTIL_NOT_Q, 0x%08x bytes read\n", i)); |
+ } |
+ else // no UNTIL_NOT_Q |
+ { |
+ while (i < context->Length) |
+ { |
+ context->file_obj->fRead((void *)((PUCHAR)context->pOutputBuffer + i), (void *)context->Address); // read the same address multiple times |
+ i += context->file_obj->wAccessType; |
+ } |
+ } |
+ |
+ // disable autoread unconditionally - set bit to 1 |
+ wCntrl |= 0x0004; |
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl); |
+ |
+ context->Length = i; |
+ |
+ return TRUE; |
+} |
+ |
+NTSTATUS PCICC32Read(PDEVICE_OBJECT device_Obj, PIRP Irp) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp); |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ SYNC_CONTEXT context; |
+ |
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32]; |
+ context.pOutputBuffer = ((void *)(MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority))); |
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart; |
+ context.Length = 0; |
+ |
+ KdPrint(("PCICC32Read(%d)\n", context.file_obj->uwAssociatedCC32)); |
+ |
+ if (context.Address > IFR_SPACE) |
+ Status = STATUS_ACCESS_VIOLATION; |
+ else |
+ { |
+ // do here in between what has to be done ----------------- |
+ context.Length = IrpStack->Parameters.Read.Length; |
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length)); |
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address; |
+ |
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Read_kernel, &context); |
+ // do here in between what has to be done end ------------- |
+ } |
+ |
+ Irp->IoStatus.Status = Status; |
+ Irp->IoStatus.Information = context.Length; |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); |
+ |
+ KdPrint(("PCICC32Read(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// called at write() |
+static BOOLEAN PCICC32Write_kernel(PVOID pvContext) |
+{ |
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext; |
+ register ULONG i = 0; |
+ |
+ // do the write --- |
+ while (i < context->Length) |
+ { |
+ context->file_obj->fWrite((void *)context->Address, (void *)((PUCHAR)context->pInputBuffer + i)); // write the same address multiple times |
+ i += context->file_obj->wAccessType; |
+ } |
+ |
+ context->Length = i; |
+ |
+ return TRUE; |
+} |
+ |
+NTSTATUS PCICC32Write(PDEVICE_OBJECT device_Obj, PIRP Irp) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp); |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ SYNC_CONTEXT context; |
+ |
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32]; |
+ context.pInputBuffer = ((void *)(MmGetSystemAddressForMdlSafe(Irp->MdlAddress, NormalPagePriority))); |
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart; |
+ context.Length = 0; |
+ |
+ KdPrint(("PCICC32Write(%d)\n", context.file_obj->uwAssociatedCC32)); |
+ |
+ if (context.Address > IFR_SPACE) |
+ Status = STATUS_ACCESS_VIOLATION; |
+ else |
+ { |
+// register ULONG i = 0; |
+ |
+ // do here in between what has to be done ----------------- |
+ context.Length = IrpStack->Parameters.Read.Length; |
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length)); |
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address; |
+ |
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Write_kernel, &context); |
+ // do here in between what has to be done end ------------- |
+ } |
+ |
+ |
+ Irp->IoStatus.Status = Status; |
+ Irp->IoStatus.Information = context.Length; |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); |
+ |
+ KdPrint(("PCICC32Write(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// search for pciada's |
+// |
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj) |
+{ |
+ PCI_SLOT_NUMBER SlotNumber; |
+ PCI_COMMON_CONFIG pci_config; |
+ PCIADA *pciada; |
+ ULONG length; |
+ int *found; |
+ int i,j,k; |
+ |
+ KdPrint(("SearchDevices()\n")); |
+ |
+ // prepare structures ---------------------------------------- |
+ found = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs; |
+ *found = 0; |
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i]; |
+ |
+ pciada->Bus = -1; |
+ pciada->Slot.u.AsULONG = 0xFFFFFFFF; |
+ } |
+ |
+ // search for pciada's --------------------------------------- |
+ SlotNumber.u.bits.Reserved = 0; |
+ |
+ for (j = 0; j < PCI_MAX_BUSES; j++) |
+ { |
+ for (i = 0; i < PCI_MAX_DEVICES; i++) |
+ { |
+ SlotNumber.u.bits.DeviceNumber = i; |
+ for (k = 0; k < PCI_MAX_FUNCTION; k++) |
+ { |
+ SlotNumber.u.bits.FunctionNumber = k; |
+ length = HalGetBusData( PCIConfiguration, // Bustype |
+ j, // PCI-Busnumber |
+ SlotNumber.u.AsULONG, // Slotnumber |
+ (PVOID) &(pci_config), // Pointer for the PCI-Information |
+ sizeof(PCI_COMMON_CONFIG) ); |
+ |
+ if ((pci_config.VendorID == PCICC32_VENDOR_ID) && |
+ (pci_config.DeviceID == PCICC32_DEVICE_ID) && |
+ (pci_config.u.type0.SubSystemID == PCICC32_SUBSYS_ID) && |
+ (pci_config.u.type0.SubVendorID == PCICC32_SUBVEN_ID) && |
+ (pci_config.u.type0.BaseAddresses[3])) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[*found]; |
+ |
+ memcpy(&pciada->PCIDevice, &pci_config, sizeof(pci_config)); |
+ pciada->Slot = SlotNumber; |
+ pciada->Bus = j; |
+ |
+ KdPrint(("PCIADA found @ Bus/Slot %d/%d.\n", pciada->Bus, pciada->Slot.u.AsULONG)); |
+ |
+ (*found)++; |
+ if (*found >= PCICC32_MAX_PCIADA) return STATUS_SUCCESS; |
+ } |
+ } |
+ } |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//--------------------------------------------------------------- |
+// function to call for bug fix of PLX9050 build in bug |
+// |
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT device_Obj) |
+{ |
+ DEVICE_EXT *DeviceExtension = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int i; |
+ ULONG dwData; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PLX9050BugFix()\n")); |
+ |
+ for (i = 0; i < DeviceExtension->nPCIADAs; i++) |
+ { |
+ pciada = &DeviceExtension->pciada[i]; |
+ |
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[0]) & 0x80) |
+ { |
+ KdPrint(("Changing address 0:0x%p with 4:0x%p\n", |
+ pciada->PCIDevice.u.type0.BaseAddresses[0], |
+ pciada->PCIDevice.u.type0.BaseAddresses[4])); |
+ |
+ pciada->PCIDevice.u.type0.BaseAddresses[0] = // exchange |
+ pciada->PCIDevice.u.type0.BaseAddresses[4]; |
+ pciada->PCIDevice.u.type0.BaseAddresses[4] = dwData; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[0], |
+ 0x10, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[4], |
+ 0x20, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ } |
+ |
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[1]) & 0x80) |
+ { |
+ KdPrint(("Changing address 1:0x%p with 5:0x%p\n", |
+ pciada->PCIDevice.u.type0.BaseAddresses[1], |
+ pciada->PCIDevice.u.type0.BaseAddresses[5])); |
+ |
+ pciada->PCIDevice.u.type0.BaseAddresses[1] = // exchange |
+ pciada->PCIDevice.u.type0.BaseAddresses[5]; |
+ pciada->PCIDevice.u.type0.BaseAddresses[5] = dwData; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[1], |
+ 0x14, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[5], |
+ 0x24, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ } |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// reserve resources for PCIADAs |
+// |
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList) |
+{ |
+ PCM_RESOURCE_LIST pResourceList; |
+ PCM_FULL_RESOURCE_DESCRIPTOR pFullDescriptor; |
+ PCM_PARTIAL_RESOURCE_LIST pPartialList; |
+ PCM_PARTIAL_RESOURCE_DESCRIPTOR pPartialDescriptor; |
+ int i; |
+ int bug = 0; |
+ |
+ KdPrint(("PCICC32ExtractResources()\n")); |
+ |
+ pResourceList = pList; |
+ pFullDescriptor = pResourceList->List; |
+ pPartialList = &pFullDescriptor->PartialResourceList; |
+ |
+ for (i=0; i<(int)pPartialList->Count; i++) |
+ { |
+ pPartialDescriptor = &pPartialList->PartialDescriptors[i]; |
+ switch (pPartialDescriptor->Type) |
+ { |
+ case CmResourceTypeInterrupt: |
+ pciada->Irql = (KIRQL)pPartialDescriptor->u.Interrupt.Level; |
+ pciada->Vector = pPartialDescriptor->u.Interrupt.Vector; |
+ pciada->Affinity = pPartialDescriptor->u.Interrupt.Affinity; |
+ |
+ KdPrint(("Irq : Irql: %d, Vector: %d, Affinity: %d\n", |
+ pciada->Irql, pciada->Vector, pciada->Affinity)); |
+ break; |
+ case CmResourceTypeDma: |
+ KdPrint(("Dma : \n")); |
+ break; |
+ case CmResourceTypePort: |
+ |
+ KdPrint(("Port : 0x%p\n", pPartialDescriptor->u.Port.Start)); |
+ break; |
+ case CmResourceTypeMemory: |
+ // special handling of PLXBUG here because of WIN2000 |
+ // WIN2000 doesn't recognize late address changes |
+ if (!bug) |
+ { |
+ if (i == 0) |
+ { |
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start; |
+ |
+ if (pciada->pvPhysLcr.LowPart & 0x80) |
+ bug = 1; |
+ } |
+ } |
+ else |
+ { |
+ if (i == 3) |
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start; |
+ } |
+ |
+ if (i == 2) |
+ pciada->pvPhysIfr = pPartialDescriptor->u.Memory.Start; |
+ |
+ KdPrint(("Memory : 0x%p\n", (PUCHAR)pPartialDescriptor->u.Memory.Start.LowPart)); |
+ break; |
+ } |
+ } |
+ |
+ if (pciada->Irql == 0) |
+ return STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT; |
+ |
+ KdPrint(("PCICC32ExtractResources() OK.\n")); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj) |
+{ |
+ PCM_RESOURCE_LIST pList = NULL; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_Obj->DeviceExtension); |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ UNICODE_STRING DriverClassName; |
+ |
+ KdPrint(("PCICC32ReserveResources()\n")); |
+ |
+ // prepare resource claiming |
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32"); |
+ |
+ // cycle through all busses and slots assigned to PCIADAs |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ result = HalAssignSlotResources(NULL, &DriverClassName, device_Obj->DriverObject, device_Obj, |
+ PCIBus, pciada->Bus, pciada->Slot.u.AsULONG, &pList); |
+ |
+ if (result != STATUS_SUCCESS) |
+ break; |
+ |
+ result = PCICC32ExtractResources(pciada, pList); |
+ |
+ if (result != STATUS_SUCCESS) |
+ break; |
+ } |
+ |
+ // its my part to free allocated resources |
+ ExFreePool(pList); |
+ |
+ KdPrint(("PCICC32ReserveResources(0x%08x)\n", result)); |
+ |
+ return result; |
+}; |
+ |
+//------------------------------------------------------------------------ |
+// free resources from PCIADAs |
+// |
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj) |
+{ |
+ CM_RESOURCE_LIST ResList; |
+ BOOLEAN bConflict; |
+ UNICODE_STRING DriverClassName; |
+ |
+ KdPrint(("PCICC32FreeResources()\n")); |
+ |
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32"); |
+ |
+ ResList.Count = 0; |
+ |
+ IoReportResourceUsage(&DriverClassName, device_Obj->DriverObject, |
+ &ResList, sizeof(ResList), device_Obj, |
+ NULL, 0, FALSE, &bConflict); |
+ return STATUS_SUCCESS; |
+}; |
+ |
+ |
+//------------------------------------------------------------------------ |
+// translate memory resources to neutral for PCIADAs |
+// |
+NTSTATUS PCICC32TranslateBusAddresses(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ int nPCIADAs = ((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs; |
+ ULONG memType0, memType2; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("TranslateBusAddresseses()\n")); |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i]; |
+ |
+ memType0 = memType2 = 0; |
+ |
+ if (!(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysLcr, &memType0, |
+ &pciada->pvPhysLcr)) || |
+ !(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysIfr, &memType2, |
+ &pciada->pvPhysIfr))) |
+ { |
+ result = STATUS_UNSUCCESSFUL; |
+ break; |
+ } |
+ |
+ if ((memType0) || (memType2)) |
+ { |
+ result = STATUS_UNSUCCESSFUL; |
+ break; |
+ } |
+ } |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// map address spaces to virtual addresses |
+// |
+NTSTATUS PCICC32MapIOspaces(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32MapIOspaces()\n")); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ if ((pciada->pvVirtLcr = MmMapIoSpace(pciada->pvPhysLcr, LCR_SPACE, FALSE)) == NULL) |
+ return STATUS_UNSUCCESSFUL; |
+ if ((pciada->pvVirtIfr = MmMapIoSpace(pciada->pvPhysIfr, IFR_SPACE, FALSE)) == NULL) |
+ return STATUS_UNSUCCESSFUL; |
+ |
+ KdPrint(("PCIADA %d: LCR 0x%08x IFR 0x%08x\n", i, pciada->pvVirtLcr, pciada->pvVirtIfr)); |
+ |
+ pciada->pwIntCSR = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x4C); |
+ pciada->pwCntrl = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x50); |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// initializes and registers a DPC routine for each pciada |
+// |
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object) |
+{ |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_object->DeviceExtension); |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("InitializeCustomDPCObject()\n")); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ KeInitializeDpc(&pciada->kDPCobj, fMyDefferedRoutine, (PVOID)device_object); |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// init structures a.s.o. |
+// |
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ PCIADA *pciada; |
+ |
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i]; |
+ |
+ pciada->pvPhysLcr.QuadPart = pciada->pvPhysIfr.QuadPart = 0; |
+ pciada->pvVirtLcr = pciada->pvVirtIfr = NULL; |
+ |
+ pciada->bConnected = FALSE; // connection still not verified |
+ pciada->wModuleNumber = 0xFFFF; |
+ pciada->wFPGAVersion = 0xFFFF; |
+ pciada->wModuleType = 1; // always CC32 |
+ |
+ pciada->InterruptObject = NULL; |
+ pciada->Irql = 0; |
+ pciada->Vector = 0; |
+ pciada->Affinity = 0; |
+ |
+ pciada->dwLinkCount = 0; |
+ |
+ pciada->dwIrqStatus = 0; |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ } |
+ |
+ // no CC32 associated to any PCIADA |
+ for (i = 0; i < PCICC32_MAX_CC32; i++) |
+ ((DEVICE_EXT*)(device_Obj->DeviceExtension))->cc32[i] = NULL; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the ultimate starting point of a driver |
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath) |
+{ |
+ int i; |
+ PDEVICE_OBJECT device_object; // pointer to the device object |
+ UNICODE_STRING device_name; |
+ UNICODE_STRING symbol_name; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ PCIADA *pciada; // pointer to a PCIADA |
+ int nPCIADAs; // count of PCIADAs |
+ DEVICE_EXT *DeviceExtension = NULL; |
+ UNREFERENCED_PARAMETER(regPath); |
+ KdPrint(("DriverEntry() ----%d.%d-------------------------\n", (DRIVER_VERSION >> 16) & 0xFFFF, DRIVER_VERSION & 0xFFFF)); |
+ |
+ driverObj->DriverUnload = PCICC32Unload; |
+ driverObj->MajorFunction[IRP_MJ_CREATE] = PCICC32Open; |
+ driverObj->MajorFunction[IRP_MJ_CLOSE] = PCICC32Close; |
+ driverObj->MajorFunction[IRP_MJ_READ] = PCICC32Read; |
+ driverObj->MajorFunction[IRP_MJ_WRITE] = PCICC32Write; |
+ driverObj->MajorFunction[IRP_MJ_DEVICE_CONTROL] = PCICC32DeviceControl; |
+ driverObj->MajorFunction[IRP_MJ_SHUTDOWN] = PCICC32Shutdown; |
+ |
+ RtlInitUnicodeString(&device_name, L"\\Device\\CC32"); |
+ |
+ /* DeviceObject durch IO-Manager erzeugen */ |
+ result = IoCreateDevice( driverObj, // DriverObject received by the DriverEntry Call |
+ sizeof(DEVICE_EXT), // required Memory for the DeviceExtension |
+ &device_name, // Name of the device in the device-Directory |
+ FILE_DEVICE_UNKNOWN, // Device-ID |
+ 0, // Device-Characteristics normal 0 |
+ FALSE, // TRUE : one Thread can open the driver |
+ &device_object); // DeviceObject returned from the IO-Manager |
+ |
+ // defines how the data are handled between user / kernel Adress-Space |
+ device_object->Flags |= DO_DIRECT_IO; |
+ |
+ // anounce driver as symbolic device --------------------------------- |
+ if (result == STATUS_SUCCESS) |
+ { |
+ /* now the symbolic Link is created. If there is no S.L. a program cannot connect to the driver */ |
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME); |
+ result = IoCreateSymbolicLink(&symbol_name,&device_name); |
+ if (result != STATUS_SUCCESS) |
+ { |
+ IoDeleteDevice(device_object); |
+ return result; |
+ } |
+ } |
+ else |
+ return result; |
+ |
+ DeviceExtension = (DEVICE_EXT*)device_object->DeviceExtension; |
+ |
+ DeviceExtension->actualIrp = NULL; |
+ DeviceExtension->nInitState = 0; |
+ |
+ // init pciada structures ------------------------------------ |
+ PCICC32SoftInit(device_object); |
+ |
+ // search for PCIADAs ---------------------------------------- |
+ result = SearchDevices(device_object); |
+ nPCIADAs = DeviceExtension->nPCIADAs; |
+ |
+ if ((result != STATUS_SUCCESS) || !(nPCIADAs)) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ |
+ // request exclusive ownership of .. --------------------------------- |
+ if ((result = PCICC32ReserveResources(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return result; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // fix PLX9050 Bug ------------------------------------------- |
+ if ((result = PLX9050BugFix(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return result; |
+ } |
+ |
+ // translate BUS relative addresses ---------------------------------- |
+ if ((result = PCICC32TranslateBusAddresses(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // translate Interrupt Resources used -------------------------------- |
+ if ((result = PCICC32TranslateInterrupt(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // map address spaces to virtual addresses --------------------------- |
+ if ((result = PCICC32MapIOspaces(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // initialze my custom DPC objects ----------------------------------- |
+ if ((result = InitializeCustomDPCObjects(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return result; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // disable all interrupts -------------------------------------------- |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &DeviceExtension->pciada[i]; |
+ |
+ globalInterruptDisable(pciada); |
+ } |
+ |
+ // connect interrupts to service routines ---------------------------- |
+ if ((result = PCICC32ConnectInterrupt(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // scan all connected CC32 for info and later use ------------------- |
+ if ((result = PCICC32ScanCC32(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ |
+ device_object->Flags &= ~DO_DEVICE_INITIALIZING; |
+ |
+ KdPrint(("DriverEntry() OK.\n")); |
+ |
+ return result; |
+} |
+ |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.h |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.h (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_i.h (revision 176) |
@@ -0,0 +1,55 @@ |
+#ifndef __PCICC33_I_H__ |
+#define __PCICC32_I_H__ |
+ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------- |
+// the header file to pcicc32_i.c - all around interrupt handling |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 15.06.1999 |
+// added globalInterruptEnabledStatus() AR 24.02.2001 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <pcicc32_drv.h> |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+ |
+//------------------------------------------------------------------------ |
+// PROTOTYPES |
+// |
+void globalInterruptEnable(PCIADA *pciada); |
+void globalInterruptDisable(PCIADA *pciada); |
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada); |
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj); |
+ |
+ |
+/* release all this procedures after init of the driver */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (init, PCICC32ConnectInterrupt) |
+#pragma alloc_text (init, PCICC32TranslateInterrupt) |
+#endif |
+ |
+/* put all this procedures in the paged memory-pool, all called at passiv Level */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (page, PCICC32DisConnectInterrupt) |
+#endif |
+ |
+#endif //__PCICC32_I_H__ |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/vc120.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/vc120.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.20.51 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_v.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_v.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.log (revision 176) |
@@ -0,0 +1,23 @@ |
+Build started 10.2.2014 7:32:20. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>StampInf: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win7Release\pcicc32.inf |
+ Stamping Win7Release\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.20.51 |
+ ClCompile: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin7Release\ /Zi /nologo /W4 /WX /Ox /Os /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D _WIN32_WINNT=0x0601 /D WINVER=0x0601 /D WINNT=1 /D NTDDI_VERSION=0x06010000 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win7Release\\" /Fd"Win7Release\vc120.pdb" /Gz /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1nodatetime /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c |
+ pcicc32_drv.c |
+ pcicc32_i.c |
+ pcicc32_io.c |
+ pcicc32_v.c |
+ Generating Code... |
+ Link: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\memcmp.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\BufferOverflowK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.01" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win7Release\pcicc32_drv.obj |
+ Win7Release\pcicc32_i.obj |
+ Win7Release\pcicc32_io.obj |
+ Win7Release\pcicc32_v.obj |
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Release\pcicc32.sys |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.67 |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_io.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_io.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_i.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_i.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/pcicc32.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/pcicc32.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win7 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/CL.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/link.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/cl.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32.tlog/cl.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_drv.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/pcicc32_drv.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Release/stampinf.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/vc120.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/vc120.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.17.794 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_v.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_v.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.log (revision 176) |
@@ -0,0 +1,23 @@ |
+Build started 10.2.2014 7:32:17. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>StampInf: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8.1Release\pcicc32.inf |
+ Stamping Win8.1Release\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.17.794 |
+ ClCompile: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8.1Release\ /Zi /nologo /W4 /WX /Ox /Os /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D _WIN32_WINNT=0x0603 /D WINVER=0x0603 /D WINNT=1 /D NTDDI_VERSION=0x06030000 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8.1Release\\" /Fd"Win8.1Release\vc120.pdb" /Gz /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1nodatetime /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c |
+ pcicc32_drv.c |
+ pcicc32_i.c |
+ pcicc32_io.c |
+ pcicc32_v.c |
+ Generating Code... |
+ Link: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.03" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /SAFESEH /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8.1Release\pcicc32_drv.obj |
+ Win8.1Release\pcicc32_i.obj |
+ Win8.1Release\pcicc32_io.obj |
+ Win8.1Release\pcicc32_v.obj |
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Release\pcicc32.sys |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.68 |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_io.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_io.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_i.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_i.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/pcicc32.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/pcicc32.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8.1 Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/CL.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/link.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/cl.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32.tlog/cl.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_drv.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/pcicc32_drv.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Release/stampinf.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_local.h |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_local.h (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_local.h (revision 176) |
@@ -0,0 +1,36 @@ |
+#ifndef _PCICC32_LOCAL_H__ |
+#define _PCICC32_LOCAL_H__ |
+//----------------------------------------------------------------------- |
+// Address definitions and constants for PCIADA of PCICC32 interface |
+// designed by A.Rausch |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// first parts derived from PCIVME AR 10.03.2000 |
+// added initialisation for AUTOREAD AR 17.03.2001 |
+// |
+ |
+/*-----------------------------------------------------------------------*/ |
+/* all addresses relative to PCI-Window */ |
+ |
+/*--------- some masks in CSR -------------------------------------------*/ |
+#define MASK_MODNR (WORD)0x00F0 /* the mask to get the module No */ |
+#define MASK_FPGA (WORD)0x0F00 /* the mask to get the FPGA rev. */ |
+#define MASK_MODTYPE (WORD)0xF000 /* the mask to get type of module*/ |
+ |
+/*---------- release und inhibit into 0x50 of PLX ------------------------*/ |
+#define RELEASE_CC32 (WORD)0x4186 /* write this to release access ..*/ |
+#define INHIBIT_CC32 (WORD)0x4086 /* write this to inhibit access ..*/ |
+#define ENABLE_PCIADA_IRQS (WORD)0x0049 /* enable PCIADA IRQs */ |
+#define DISABLE_PCIADA_IRQS (WORD)0x0009 /* disable PCIADA IRQs */ |
+ |
+#endif // _PCICC32_LOCAL_H__ |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj.filters |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj.filters (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.vcxproj.filters (revision 176) |
@@ -0,0 +1,26 @@ |
+<?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;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> |
+ <Filter Include="Driver Files"> |
+ <UniqueIdentifier>{8E41214B-6785-4CFE-B992-037D68949A14}</UniqueIdentifier> |
+ <Extensions>inf;inv;inx;mof;mc;</Extensions> |
+ </Filter> |
+ </ItemGroup> |
+ <ItemGroup> |
+ <Inf Include="pcicc32.inf"> |
+ <Filter>Driver Files</Filter> |
+ </Inf> |
+ </ItemGroup> |
+</Project> |
\ No newline at end of file |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.h |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.h (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_drv.h (revision 176) |
@@ -0,0 +1,172 @@ |
+#ifndef __PCICC32_DRV_H__ |
+#define __PCICC32_DRV_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------- |
+// the main header file of the driver |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistribute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 10.03.2000 |
+// dwIrqStatus added, version 2 AR 24.02.2001 |
+// with AUTOREAD, version 2.01 AR 17.03.2001 |
+// with support for LCR_READ, version 2.02 AR 31.03.2001 |
+// changed to VisualStudio 6.0 AR 30.09.2001 |
+// compiled with DDK 1/2001 AR 20.11.2001 |
+// removed alloc_text cause of WIN2000 problems AR 25.11.2001 |
+// version 2.7 released AR 25.11.2001 |
+// version 2.8 still experimental AR 26.05.2002 |
+// version 2.16 eliminates PLXBUG in WIN2000 AR 05.06.2002 |
+// version 2.17 added KeSynchronizeExecution AR 16.06.2002 |
+// version 2.18 improved snchronisation AR 18.06.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+#define DRIVER_VERSION ((2 << 16) | 18) // the only place for version info |
+#define DRIVER_VARIANT 0 // mark customisation here |
+//------------------------------------------------------------------------- |
+ |
+//------------------------------------------------------------------------- |
+// precautions for debug compile |
+#define PCICC32_DEBUG |
+ |
+#ifndef PCICC32_DEBUG |
+#ifdef KdPrint |
+#undef KdPrint |
+#define KdPrint(x) /* x */ |
+#endif |
+#endif |
+//------------------------------------------------------------------------- |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#define PCI_MAX_BUSES 4 // buses to search for pciada |
+ |
+#define PCICC32_MAX_PCIADA 4 // maximum of PCIADA to search for |
+#define PCICC32_MAX_CC32 16 // maximum number of CC32 modules connected |
+ |
+//------------------------------------------------------------------------- |
+// DEFINES |
+// |
+#define PCICC32_VENDOR_ID 0x10B5 |
+#define PCICC32_DEVICE_ID 0x2258 |
+#define PCICC32_SUBSYS_ID 0x2258 |
+#define PCICC32_SUBVEN_ID 0x9050 |
+ |
+#define LCR_SPACE 256 // space in bytes of LCR |
+#define IFR_SPACE 32768 // space in bytes of IFR |
+ |
+//---------------------------------------------------------------------------------------- |
+// macros for simple address calculation |
+// |
+#define _WORD_NAF(base, n, a, f) ((USHORT *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2))) |
+#define _DWORD_NAF(base, n, a, f) ((ULONG *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2))) |
+ |
+//------------------------------------------------------------------------- |
+// TYPEDEFS |
+// |
+typedef struct _FILE_OBJ |
+{ |
+ USHORT uwAssociatedCC32; // which CC32 number it belongs |
+ USHORT wAccessType; // WORD or LONGWORD |
+ USHORT wBlockTransfer; // != 0 for block transfer |
+ void (*fRead)(void *to, void *from); // resulting read |
+ void (*fWrite)(void *to, void *from); // resulting write |
+ PIRP blockingIrp; // if != 0 then a blocking IRP is waiting |
+} FILE_OBJ, *PFILE_OBJ; |
+ |
+typedef struct |
+{ |
+ int Bus; // bus number of pciada |
+ PCI_SLOT_NUMBER Slot; // slot + function number encoded |
+ PCI_COMMON_CONFIG PCIDevice; // content of pcr, only for direct HW related functions |
+ |
+ PHYSICAL_ADDRESS pvPhysLcr; // local config register, unmapped and mapped |
+ PHYSICAL_ADDRESS pvPhysIfr; // interface registers, unmapped and mapped |
+ PVOID pvVirtLcr; // virtual LCR space |
+ PVOID pvVirtIfr; // virtual IFR space |
+ |
+ PKINTERRUPT InterruptObject; // points to the associated interrupt obj |
+ KIRQL Irql; // virtual Irq level, unmapped and mapped |
+ ULONG Vector; // mapped system vector, unmapped and mapped |
+ KAFFINITY Affinity; // which processor uses this irq, unmapped and mapped |
+ |
+ PUSHORT pwCntrl; // LCR Cntrl Offset @ LCR + 0x50 |
+ PUSHORT pwIntCSR; // LCR IntCSR Offset @ LCR + 0x4C |
+ |
+ ULONG dwLinkCount; // how often this interface is requested |
+ BOOLEAN bConnected; // CC32 is connected and powered |
+ USHORT wModuleNumber; // Number (Jumper) of CC32 |
+ USHORT wFPGAVersion; // Revision of (CC32) FPGA |
+ USHORT wModuleType; // Type of (CC32) module |
+ |
+ KDPC kDPCobj; // custom DPC object for irq tunneling |
+ |
+ ULONG dwIrqStatus; // the last unrequested status of a interrupt |
+ PIRP *pBlockingIrp; // points to File or == NULL when no blocking in progress |
+ |
+ FILE_OBJ *pIrqControlFile; // this file controls the global enable / disable IRQ |
+} PCIADA; |
+ |
+typedef struct _DEVICE_EXT |
+{ |
+ PDEVICE_OBJECT DeviceObject; // points to myself and carries the pointer to DriverObject |
+ PIRP actualIrp; // points to .. |
+ |
+ int nPCIADAs; // how many PCIADAs are found |
+ |
+ PCIADA pciada[PCICC32_MAX_PCIADA]; // for each PCIADA a descriptor |
+ |
+ PCIADA *cc32[PCICC32_MAX_CC32]; // points to PCIADA to which it belongs |
+ |
+ int nInitState; // tracks the state of initialisation |
+} DEVICE_EXT; |
+ |
+ |
+// Prototypes to support following pragmas |
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath); |
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP irp); |
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP irp); |
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj); |
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT deviceObj); |
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList); |
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32TranslateBusAddress(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32MapIOspace(PDEVICE_OBJECT device_object); |
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj); |
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object); |
+ |
+/* release all this procedures after init of the driver */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (init, DriverEntry) |
+#pragma alloc_text (init, SearchDevices) |
+#pragma alloc_text (init, PLX9050BugFix) |
+#pragma alloc_text (init, PCICC32ReserveResources) |
+#pragma alloc_text (init, PCICC32ExtractResources) |
+#pragma alloc_text (init, PCICC32TranslateBusAddress) |
+#pragma alloc_text (init, PCICC32MapIOspace) |
+#pragma alloc_text (init, PCICC32SoftInit) |
+#pragma alloc_text (init, InitializeCustomDPCObjects) |
+#endif |
+ |
+/* put all this procedures in the paged memory-pool, all called at passiv Level */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (page, PCICC32Open) |
+#pragma alloc_text (page, PCICC32Close) |
+#pragma alloc_text (page, PCICC32Unload) |
+#pragma alloc_text (page, PCICC32FreeResources) |
+#endif |
+ |
+#endif // __PCICC32_DRV_H__ |
+ |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/vc120.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/vc120.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.20.773 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_v.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_v.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.log (revision 176) |
@@ -0,0 +1,28 @@ |
+Build started 10.2.2014 7:32:20. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>StampInf: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win7Debug\pcicc32.inf |
+ Stamping Win7Debug\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.20.773 |
+ ClCompile: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin7Debug\ /Zi /nologo /W4 /WX /Od /Oi /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D DEPRECATE_DDK_FUNCTIONS=1 /D MSC_NOOPT /D _WIN32_WINNT=0x0601 /D WINVER=0x0601 /D WINNT=1 /D NTDDI_VERSION=0x06010000 /D DBG=1 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win7Debug\\" /Fd"Win7Debug\vc120.pdb" /Gz /wd4748 /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c |
+ pcicc32_drv.c |
+ pcicc32_i.c |
+ pcicc32_io.c |
+ pcicc32_v.c |
+ Generating Code... |
+ Link: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\memcmp.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\BufferOverflowK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win7\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.01" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win7Debug\pcicc32_drv.obj |
+ Win7Debug\pcicc32_i.obj |
+ Win7Debug\pcicc32_io.obj |
+ Win7Debug\pcicc32_v.obj |
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.sys |
+ DriverTestSign: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD" |
+ Done Adding Additional Store |
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win7Debug\pcicc32.sys |
+ |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.76 |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_io.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_io.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_i.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_i.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/pcicc32.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/pcicc32.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win7 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/CL.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/link.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/cl.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32.tlog/cl.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_drv.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/pcicc32_drv.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/signtool.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win7Debug/stampinf.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/vc120.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/vc120.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.19.198 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_v.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_v.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.log (revision 176) |
@@ -0,0 +1,28 @@ |
+Build started 10.2.2014 7:32:19. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>StampInf: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8.1Debug\pcicc32.inf |
+ Stamping Win8.1Debug\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.19.198 |
+ ClCompile: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8.1Debug\ /Zi /nologo /W4 /WX /Od /Oi /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D DEPRECATE_DDK_FUNCTIONS=1 /D MSC_NOOPT /D _WIN32_WINNT=0x0603 /D WINVER=0x0603 /D WINNT=1 /D NTDDI_VERSION=0x06030000 /D DBG=1 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8.1Debug\\" /Fd"Win8.1Debug\vc120.pdb" /Gz /wd4748 /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c |
+ pcicc32_drv.c |
+ pcicc32_i.c |
+ pcicc32_io.c |
+ pcicc32_v.c |
+ Generating Code... |
+ Link: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\winV6.3\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.03" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8.1Debug\pcicc32_drv.obj |
+ Win8.1Debug\pcicc32_i.obj |
+ Win8.1Debug\pcicc32_io.obj |
+ Win8.1Debug\pcicc32_v.obj |
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.sys |
+ DriverTestSign: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD" |
+ Done Adding Additional Store |
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8.1Debug\pcicc32.sys |
+ |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:00.81 |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_io.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_io.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_i.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_i.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/pcicc32.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/pcicc32.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8.1 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/CL.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/link.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/cl.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32.tlog/cl.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_drv.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/pcicc32_drv.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/signtool.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8.1Debug/stampinf.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.c |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.c (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.c (revision 176) |
@@ -0,0 +1,196 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany -------- |
+// all around recognition and basic services of VMEMM |
+// |
+// (c) 2000-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started from pcivme_v.c AR 02.07.2000 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <pcicc32_drv.h> |
+#include <pcicc32_v.h> |
+#include <pcicc32_local.h> // all around the pciada interface |
+ |
+#ifndef WORD // don't touch include files of WIN95 driver |
+#define WORD USHORT |
+#endif |
+ |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+//------------------------------------------------------------------------ |
+// PROTOTYPES |
+// |
+ |
+//------------------------------------------------------------------------ |
+// GLOBALS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// test connection to VMEMM devices without disturbing anything |
+// |
+//--------------------------------------------------------------------- |
+// checks a connection with a small test pattern |
+// |
+NTSTATUS TestConnection(PCIADA *pciada) |
+{ |
+ USHORT *pwADRH = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 1, 0); |
+ USHORT *pwADRL = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 0, 0); |
+ int i; |
+ USHORT wRet; |
+ USHORT wADRHContent; |
+ USHORT wADRLContent; |
+ |
+ |
+ KdPrint(("TestConnection()\n")); |
+ |
+ wADRHContent = READ_REGISTER_USHORT(pwADRH); // save previous content |
+ wADRLContent = READ_REGISTER_USHORT(pwADRL); |
+ |
+ for (i = 0; i < 10000; i++) |
+ { |
+ WRITE_REGISTER_USHORT(pwADRH, 0x5555); |
+ WRITE_REGISTER_USHORT(pwADRL, 0xAAAA); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0x5555) return STATUS_UNSUCCESSFUL; |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, 0xAAAA); |
+ WRITE_REGISTER_USHORT(pwADRL, 0x5555); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0xAAAA) return STATUS_UNSUCCESSFUL; |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, 0x0000); |
+ WRITE_REGISTER_USHORT(pwADRL, 0xFFFF); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0x0000) return STATUS_UNSUCCESSFUL; |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, 0xFFFF); |
+ WRITE_REGISTER_USHORT(pwADRL, 0x0000); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0xFFFF) return STATUS_UNSUCCESSFUL; |
+ } |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, wADRHContent); // restore previous content |
+ WRITE_REGISTER_USHORT(pwADRL, wADRLContent); |
+ |
+ KdPrint(("TestConnection() OK.\n")); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// scan VMEMM devices without disturbing anything |
+// |
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj) |
+{ |
+ int i; |
+ int nPCIADAs = ((DEVICE_EXT*)(deviceObj->DeviceExtension))->nPCIADAs; |
+ PCIADA *pciada; |
+ USHORT wCntrl; |
+ USHORT wIntCSR; |
+ USHORT wModuleStatus; |
+ |
+ KdPrint(("PCICC32ScanCC32(nPCIADAs = %d)\n", nPCIADAs)); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(deviceObj->DeviceExtension))->pciada[i]; |
+ |
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); // save it for later use |
+ wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ |
+ KdPrint(("wCntrl = 0x%04x, wIntCSR = 0x%04x\n", wCntrl, wIntCSR)); |
+ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); // switch off before open |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS); |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32); // open it for test |
+ |
+ if (wCntrl & 0x0800) |
+ { |
+ if (TestConnection(pciada) == STATUS_SUCCESS) |
+ { |
+ wModuleStatus = READ_REGISTER_USHORT(pciada->pvVirtIfr); |
+ |
+ pciada->bConnected = TRUE; |
+ |
+ // interpret the content |
+ pciada->wModuleNumber = (wModuleStatus & MASK_MODNR) >> 4; |
+ pciada->wFPGAVersion = (wModuleStatus & MASK_FPGA) >> 8; |
+ pciada->wModuleType = (wModuleStatus & MASK_MODTYPE) >> 12; |
+ |
+ KdPrint(("PCIADA %d <-> CC32 %d\n", i, pciada->wModuleNumber)); |
+ } |
+ else |
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out |
+ } |
+ else |
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out |
+ |
+ if (pciada->wModuleNumber != 0xFFFF) |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // restore state |
+ else |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); |
+ |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, wIntCSR); // restore interrupt masks |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// deinit all PCIADAs in a passive state |
+// |
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj) |
+{ |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)deviceObj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32DeInitPCIADAs()\n")); |
+ |
+ // dis connect the interrupts to service routines |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); |
+ // this is the same as globalInterruptDisable(pciada); |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS); |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// switches pciada on or off |
+// |
+void enableCC32(PCIADA *pciada) |
+{ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32); |
+} |
+ |
+void disableCC32(PCIADA *pciada) |
+{ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); |
+} |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/vc120.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/vc120.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.21.688 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_v.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_v.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.log |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.log (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.log (revision 176) |
@@ -0,0 +1,28 @@ |
+Build started 10.2.2014 7:32:21. |
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" on node 2 (Rebuild target(s)). |
+ 1>StampInf: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\stampinf.exe -d "*" -a "x86" -v "*" -k "1.11" -u "1.11.0" -f Win8Debug\pcicc32.inf |
+ Stamping Win8Debug\pcicc32.inf [Version] section with DriverVer=02/10/2014,7.32.21.688 |
+ ClCompile: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe /c /IWin8Debug\ /Zi /nologo /W4 /WX /Od /Oi /Oy- /D _X86_=1 /D i386=1 /D STD_CALL /D DEPRECATE_DDK_FUNCTIONS=1 /D MSC_NOOPT /D _WIN32_WINNT=0x0602 /D WINVER=0x0602 /D WINNT=1 /D NTDDI_VERSION=0x06020000 /D DBG=1 /D KMDF_VERSION_MAJOR=1 /D KMDF_VERSION_MINOR=11 /GF /Gm- /Zp8 /GS /Gy /fp:precise /Zc:wchar_t- /Zc:forScope- /GR- /Fo"Win8Debug\\" /Fd"Win8Debug\vc120.pdb" /Gz /wd4748 /wd4603 /wd4627 /wd4986 /wd4987 /wd4996 /FI"C:\Program Files (x86)\Windows Kits\8.1\Include\Shared\warning.h" /analyze- /errorReport:prompt /kernel -cbstring /d1import_no_registry /d2AllowCompatibleILVersions /d2Zi+ pcicc32_drv.c pcicc32_i.c pcicc32_io.c pcicc32_v.c |
+ pcicc32_drv.c |
+ pcicc32_i.c |
+ pcicc32_io.c |
+ pcicc32_v.c |
+ Generating Code... |
+ Link: |
+ C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.sys" /VERSION:"6.3" /INCREMENTAL:NO /NOLOGO /WX /SECTION:"INIT,d" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\BufferOverflowFastFailK.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\ntoskrnl.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\hal.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\win8\KM\x86\wmilib.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfLdr.lib" "C:\Program Files (x86)\Windows Kits\8.1\lib\wdf\kmdf\x86\1.11\WdfDriverEntry.lib" /NODEFAULTLIB /MANIFEST:NO /DEBUG /PDB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.pdb" /SUBSYSTEM:NATIVE,"6.02" /Driver /OPT:REF /OPT:ICF /ENTRY:"FxDriverEntry@8" /RELEASE /IMPLIB:"C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.lib" /MERGE:"_TEXT=.text;_PAGE=PAGE" /MACHINE:X86 /PROFILE /kernel /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /osversion:6.3 /pdbcompress /debugtype:pdata Win8Debug\pcicc32_drv.obj |
+ Win8Debug\pcicc32_i.obj |
+ Win8Debug\pcicc32_io.obj |
+ Win8Debug\pcicc32_v.obj |
+ pcicc32.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.sys |
+ DriverTestSign: |
+ C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe sign /ph /sha1 "582A29F728D647902CAA175FC6F560D6BB7011DD" |
+ Done Adding Additional Store |
+ Successfully signed: C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\Win8Debug\pcicc32.sys |
+ |
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\pcicc32\pcicc32.vcxproj" (Rebuild target(s)). |
+ |
+Build succeeded. |
+ |
+Time Elapsed 00:00:01.03 |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_io.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_io.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_i.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_i.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/pcicc32.lastbuildstate |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/pcicc32.lastbuildstate (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/pcicc32.lastbuildstate (revision 176) |
@@ -0,0 +1,2 @@ |
+#TargetFrameworkVersion=v4.5:PlatformToolSet=WindowsKernelModeDriver8.1:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit |
+Win8 Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciCamac\WIN2000-XP\DRIVER\pcicc32\| |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/CL.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/link.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/cl.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32.tlog/cl.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_drv.obj |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/pcicc32_drv.obj |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.write.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.write.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.command.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/signtool.command.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.read.1.tlog |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/pcicc32/Win8Debug/stampinf.read.1.tlog |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.c |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.c (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.c (revision 176) |
@@ -0,0 +1,770 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------- |
+// the ioctl functions |
+// |
+// (c) 1999-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 03.07.1999 |
+// first release 1.0 AR 17.10.1999 |
+// added access to PLX LC-Register AR 30.03.2001 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// multiple interrupt enable allowed AR 01.06.2002 |
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002 |
+// extended ioctl_irq_status_kernel AR 18.06.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <devioctl.h> |
+#include <pcicc32_drv.h> |
+#include <pcicc32.h> |
+#include <pcicc32_v.h> |
+#include <pcicc32_io.h> |
+#include <pcicc32_local.h> |
+#include <pcicc32_i.h> |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+ |
+// buffers usage must match the corresponding ioctl code! |
+#define SET_BUFFERS_METHOD_OUT_DIRECT \ |
+{\ |
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\ |
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\ |
+ pInputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\ |
+ pOutputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\ |
+} |
+ |
+#define SET_BUFFERS_METHOD_IN_DIRECT \ |
+{\ |
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\ |
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\ |
+ pInputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\ |
+ pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\ |
+} |
+ |
+#define SET_BUFFERS_METHOD_BUFFERED \ |
+{\ |
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\ |
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\ |
+ pInputBuffer = pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\ |
+} |
+ |
+#define COMPLETE_REQUEST \ |
+{\ |
+ if (Status != STATUS_PENDING)\ |
+ {\ |
+ Irp->IoStatus.Status = Status; \ |
+ Irp->IoStatus.Information = irp_info; \ |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); \ |
+ }\ |
+} |
+ |
+// compatibilty issues to WIN95 driver calls |
+#ifndef WORD |
+#define WORD USHORT |
+#endif |
+ |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+#ifndef BYTE |
+#define BYTE UCHAR |
+#endif |
+ |
+#ifndef BOOL |
+#define BOOL BOOLEAN |
+#endif |
+ |
+ |
+//------------------------------------------------------------------------- |
+// TYPEDEFS |
+// |
+typedef struct |
+{ |
+ FILE_OBJ *file_obj; |
+ PCIADA *pciada; |
+ PCICC32_IRQ_RESPONSE *pIrqStatus; |
+ PIRP *Irp; |
+ ULONG *irp_info; |
+ NTSTATUS *Status; |
+} IOCTL_IRQ_STATUS_CONTEXT; |
+ |
+//-------------------------------------------------------------------------- |
+// LOCAL FUNCTIONS |
+// |
+ |
+//-------------------------------------------------------------------------- |
+// fast read or write functions - portable - |
+static void readWord(void *to, void *from) |
+{ |
+ *(PUSHORT)to = READ_REGISTER_USHORT((PUSHORT)from); |
+} |
+ |
+static void readLong(void *to, void *from) |
+{ |
+ *(PULONG)to = READ_REGISTER_ULONG((PULONG)from); |
+} |
+ |
+static void writeWord(void *to, void *from) |
+{ |
+ WRITE_REGISTER_USHORT((PUSHORT)to, *(PUSHORT)from); |
+} |
+ |
+static void writeLong(void *to, void *from) |
+{ |
+ WRITE_REGISTER_ULONG((PULONG)to, *(PULONG)from); |
+} |
+ |
+//------------------------------------------------------------------------ |
+// init the interface with build in and user supplied constants |
+static BOOLEAN InitInterface(PVOID pvLcr, PVOID pvIfr) |
+{ |
+ UNREFERENCED_PARAMETER(pvLcr); |
+ UNREFERENCED_PARAMETER(pvIfr); |
+ return TRUE; |
+} |
+ |
+// deinit the interface with user supplied and build in constants |
+static BOOLEAN DeInitInterface(PVOID pvLcr, PVOID pvIfr) |
+{ |
+ UNREFERENCED_PARAMETER(pvLcr); |
+ UNREFERENCED_PARAMETER(pvIfr); |
+ return TRUE; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the default cancel routine for an queued Irp |
+// |
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp) |
+{ |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[file_obj->uwAssociatedCC32]; |
+ |
+ if (pciada->pBlockingIrp == (PIRP *)NULL) |
+ { |
+ IoReleaseCancelSpinLock(Irp->CancelIrql); |
+ KdPrint(("Nothing to do: CancelRequest(0x%08x)\n", Irp)); |
+ return; |
+ } |
+ else |
+ { |
+ // release control of interrupt |
+ if (pciada->pIrqControlFile == file_obj) |
+ { |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ globalInterruptDisable(pciada); |
+ } |
+ |
+ // cancel any blocking Irp origin from this file |
+ if (file_obj->blockingIrp != (PIRP)NULL) |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ |
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp) |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ |
+ IoReleaseCancelSpinLock(Irp->CancelIrql); |
+ |
+ KdPrint(("Done: CancelRequest(0x%08x)\n", Irp)); |
+ |
+ Irp->IoStatus.Status = STATUS_CANCELLED; |
+ Irp->IoStatus.Information = 0; |
+ |
+ IoCompleteRequest(Irp, IO_NO_INCREMENT); |
+ } |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the custom deffered routine to finish blocking io on irq_block |
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID pdwIrqStatus) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ PIRP Irp = (PIRP)NULL; |
+ PCIADA *pciada = (PCIADA *)pvPciada; |
+ KIRQL oldIrqlCancel; |
+ |
+ UNREFERENCED_PARAMETER(Dpc); |
+ UNREFERENCED_PARAMETER(pdwIrqStatus); |
+ UNREFERENCED_PARAMETER(pvDevice_object); |
+ KdPrint(("fMyDefferedRoutine(0x%08x)\n", pciada->dwIrqStatus)); |
+ |
+ // beware off damage due to intercept at cancel of thread |
+ IoAcquireCancelSpinLock(&oldIrqlCancel); |
+ |
+ // get my associated packet |
+ if (pciada->pBlockingIrp != (PIRP *)NULL) |
+ { |
+ Irp = *pciada->pBlockingIrp; |
+ |
+ if (Irp != (PIRP)NULL) // then a blcoking Irp is waiting |
+ { |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer); |
+ |
+ // fill the response structure |
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus; |
+ pciada->dwIrqStatus = 0; // to prevent a following direct return |
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32; |
+ |
+ // release the cancel routine from this Irp |
+ IoSetCancelRoutine(Irp, NULL); |
+ |
+ COMPLETE_REQUEST; |
+ |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ } |
+ |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ } |
+ |
+ // release the spin locks |
+ IoReleaseCancelSpinLock(oldIrqlCancel); |
+} |
+ |
+//------------------------------------------------------------------------ |
+// if the interrupt is disabled for a blocking path, cancel the block |
+static void ReleaseBlockingIrp(PDEVICE_OBJECT device_Obj, PCIADA *pciada, PFILE_OBJ pFile_obj) |
+{ |
+ NTSTATUS Status = STATUS_CANCELLED; |
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ PIRP Irp = (PIRP)NULL; |
+ KIRQL oldIrqlCancel; |
+ UNREFERENCED_PARAMETER(device_Obj); |
+ UNREFERENCED_PARAMETER(pFile_obj); |
+ |
+ UNREFERENCED_PARAMETER(irp_info); |
+ KdPrint(("ReleaseBlockingIrp()\n")); |
+ |
+ // beware off damage due to intercept with cancel of thread |
+ IoAcquireCancelSpinLock(&oldIrqlCancel); |
+ |
+ if (pciada->pBlockingIrp != (PIRP *)NULL) |
+ { |
+ // get my associated packet |
+ Irp = *pciada->pBlockingIrp; |
+ |
+ if (Irp != (PIRP)NULL) |
+ { |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer); |
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ |
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus; |
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32; |
+ |
+ // release the cancel routine from this Irp |
+ IoSetCancelRoutine(Irp, NULL); |
+ |
+ COMPLETE_REQUEST; |
+ |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ } |
+ |
+ pciada->pBlockingIrp = (PIRP *)NULL; // mark the storage for blocking Irp free |
+ } |
+ |
+ // release the spin locks |
+ IoReleaseCancelSpinLock(oldIrqlCancel); |
+} |
+ |
+//------------------------------------------------------------------------ |
+// all functions called from ioctl jump table |
+// |
+ |
+//------------------------------------------------------------------------ |
+// a dummy entry because of compatibiltiy (near) WIN95 driver |
+static NTSTATUS ioctl_dummy(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ char *pCommand; |
+ |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+#ifndef _DEBUG |
+ UNREFERENCED_PARAMETER(file_obj); |
+#endif |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ UNREFERENCED_PARAMETER(device_Obj); |
+ pCommand = (char *)pInputBuffer; |
+ |
+ KdPrint(("ioctl_dummy(%d)\n", file_obj->uwAssociatedCC32)); |
+ |
+ // do what must be here in between ----------- |
+ |
+ // do what must be here in between --- end --- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_dummy(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// requests status |
+static NTSTATUS ioctl_get_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = sizeof(PCICC32_STATUS); |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCIADA *pciada; |
+ DEVICE_EXT *pDevExt; |
+ PCICC32_STATUS *pStatus; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ |
+ // do what must be here in between ----------- |
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_get_status(%d)\n", wModuleNumber)); |
+ |
+ // do what must be here in between ----------- |
+ if (OutputLength >= sizeof(PCICC32_STATUS)) |
+ { |
+ USHORT temp; |
+ |
+ pStatus = (PCICC32_STATUS *)pOutputBuffer; |
+ |
+ pciada = pDevExt->cc32[wModuleNumber]; |
+ |
+ pStatus->dwInterface = wModuleNumber; |
+ |
+ temp = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ pStatus->bTimeout = (temp & 0x0020) ? 1 : 0; |
+ pStatus->bInterrupt = (temp & 0x0004) ? 1 : 0; |
+ } |
+ else |
+ Status = STATUS_BUFFER_TOO_SMALL; |
+ // do what must be here in between --- end --- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_get_status(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// clears status |
+static BOOLEAN ioctl_clear_status_kernel(PVOID pvContext) |
+{ |
+ PCIADA *pciada = (PCIADA *)pvContext; |
+ USHORT wCntrl; |
+ |
+ // get current Cntrl - and clear interrupt |
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); |
+ wCntrl &= ~0x0100; // disable |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); |
+ wCntrl |= 0x0100; // enable again |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); |
+ |
+ return TRUE; |
+} |
+ |
+static NTSTATUS ioctl_clear_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCIADA *pciada; |
+ DEVICE_EXT *pDevExt; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ |
+ // do what must be here in between ----------- |
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_clear_status(%d)\n", wModuleNumber)); |
+ |
+ // do what must be here in between ----------- |
+ pciada = pDevExt->cc32[wModuleNumber]; |
+ |
+ KeSynchronizeExecution(pciada->InterruptObject, ioctl_clear_status_kernel, pciada); |
+ |
+ // do what must be here in between --- end --- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_clear_status() OK\n")); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// set parameter for this path for future access to CC32 |
+static NTSTATUS ioctl_access_para(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCICC32_ACCESS_COMMAND *pAccessPara; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber]; |
+ UNREFERENCED_PARAMETER(pciada); |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_access_para(%d)\n", wModuleNumber)); |
+ |
+ pAccessPara = (PCICC32_ACCESS_COMMAND *)pInputBuffer; |
+ |
+ // do here in between what has to be done ----------------- |
+ file_obj->wAccessType = pAccessPara->wAccessType; |
+ file_obj->wBlockTransfer = pAccessPara->wBlockTransfer; |
+ |
+ pAccessPara->dwInterface = wModuleNumber; |
+ |
+ switch (pAccessPara->wAccessType) |
+ { |
+ case WORD_ACCESS: file_obj->fRead = readWord; |
+ file_obj->fWrite = writeWord; |
+ break; |
+ case LONG_ACCESS: file_obj->fRead = readLong; |
+ file_obj->fWrite = writeLong; |
+ break; |
+ default: Status = STATUS_UNSUCCESSFUL; |
+ break; |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_access_para(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// allow or inhibit interrupt requests from either CC32 or thru local timeout |
+static NTSTATUS ioctl_control_interrupts(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCICC32_IRQ_CONTROL *pIrqControlIn, *pIrqControlOut; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber]; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_control_interrupts(%d)\n", wModuleNumber)); |
+ |
+ pIrqControlIn = (PCICC32_IRQ_CONTROL *)pInputBuffer; |
+ pIrqControlOut = (PCICC32_IRQ_CONTROL *)pOutputBuffer; |
+ |
+ // do here in between what has to be done ----------------- |
+ if (pIrqControlIn->wEnable) |
+ { |
+ // reserve the controlling of interrupts for this path |
+ if ((pciada->pIrqControlFile == (FILE_OBJ *)NULL) || |
+ (pciada->pIrqControlFile == file_obj)) |
+ { |
+ pciada->pIrqControlFile = file_obj; |
+ globalInterruptEnable(pciada); |
+ } |
+ else |
+ Status = STATUS_DEVICE_BUSY; |
+ } |
+ else |
+ { |
+ // nobody else is allowed to disable interrupts |
+ if (pciada->pIrqControlFile == file_obj) |
+ { |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ globalInterruptDisable(pciada); |
+ } |
+ else |
+ Status = STATUS_DEVICE_BUSY; |
+ } |
+ |
+ // give back if the user grants space |
+ if (OutputLength >= sizeof(PCICC32_IRQ_CONTROL)) |
+ { |
+ pIrqControlOut->dwInterface = wModuleNumber; |
+ pIrqControlOut->wEnable = globalInterruptEnabledStatus(pciada); |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_control_interrupts(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// implements a blocking io-call to get irq status. |
+static BOOLEAN ioctl_irq_status_kernel(PVOID pvContext) |
+{ |
+ IOCTL_IRQ_STATUS_CONTEXT *context = (IOCTL_IRQ_STATUS_CONTEXT *)pvContext; |
+ KIRQL oldIrql; |
+ |
+ if (context->pciada->dwIrqStatus) |
+ { |
+ // there is a pending interrupt - return immediately |
+ KdPrint(("ioctl_irq_status(), direct return (0x%08x)\n", context->pciada->dwIrqStatus)); |
+ |
+ context->pIrqStatus->dwInterruptFlags = context->pciada->dwIrqStatus; |
+ context->pciada->dwIrqStatus = 0; // release pending status |
+ |
+ *context->irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ } |
+ else |
+ { |
+ // make the request blocking |
+ IoAcquireCancelSpinLock(&oldIrql); |
+ |
+ if ((*context->Irp)->Cancel) // cancel while doing |
+ { |
+ KdPrint(("ioctl_irq_status(), canceled return\n")); |
+ *context->Status = STATUS_CANCELLED; |
+ } |
+ else |
+ { |
+ KdPrint(("ioctl_irq_status(), blocking\n")); |
+ |
+ if (context->pciada->pBlockingIrp != (PIRP *)NULL) |
+ { |
+ // a Irp is still waiting |
+ *context->Status = STATUS_DEVICE_BUSY; |
+ } |
+ else |
+ { |
+ context->file_obj->blockingIrp = *context->Irp; |
+ context->pciada->pBlockingIrp = &context->file_obj->blockingIrp; |
+ |
+ *context->Status = STATUS_PENDING; |
+ |
+ // mark irp as pending and return |
+ IoMarkIrpPending(*context->Irp); |
+ IoSetCancelRoutine(*context->Irp, CancelRequest); |
+ } |
+ } // if (Irp->Cancel) ... |
+ } |
+ |
+ return TRUE; |
+} |
+ |
+static NTSTATUS ioctl_irq_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ USHORT wModuleNumber; |
+ IOCTL_IRQ_STATUS_CONTEXT context; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ wModuleNumber = context.file_obj->uwAssociatedCC32; |
+ context.pciada = pDevExt->cc32[wModuleNumber]; |
+ context.pIrqStatus = (PCICC32_IRQ_RESPONSE *)pOutputBuffer; |
+ context.Status = &Status; |
+ context.irp_info = &irp_info; |
+ context.Irp = &Irp; |
+ |
+ |
+ KdPrint(("ioctl_irq_status(%d)\n", wModuleNumber)); |
+ |
+ // do here in between what has to be done ----------------- |
+ if (OutputLength < sizeof(PCICC32_IRQ_RESPONSE)) |
+ Status = STATUS_BUFFER_TOO_SMALL; |
+ else |
+ { |
+ context.pIrqStatus->dwInterface = wModuleNumber; |
+ |
+ KeSynchronizeExecution(context.pciada->InterruptObject, ioctl_irq_status_kernel, &context); |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_irq_status(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// for test and debug purposes: direkt access to PLX LCR space |
+static NTSTATUS ioctl_access_lcr(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber]; |
+ PCICC32_LCR_ACCESS *pAccessOut; |
+ PCICC32_LCR_ACCESS *pAccessIn; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_access_lcr(%d)\n", wModuleNumber)); |
+ |
+ pAccessOut = (PCICC32_LCR_ACCESS *)pOutputBuffer; |
+ pAccessIn = (PCICC32_LCR_ACCESS *)pInputBuffer; |
+ |
+ // do here in between what has to be done ----------------- |
+ if (OutputLength < sizeof(PCICC32_LCR_ACCESS)) |
+ Status = STATUS_BUFFER_TOO_SMALL; |
+ else |
+ { |
+ *pAccessOut = *pAccessIn; |
+ pAccessOut->dwInterface = wModuleNumber; |
+ |
+ if (pAccessIn->wRegisterAddress <= 0x52) |
+ { |
+ // 1st part: long word accesses |
+ if (pAccessIn->bBytesLane == LONG_ACCESS) |
+ { |
+ if (pAccessIn->wRegisterAddress & 0x0003) |
+ Status = STATUS_INSTRUCTION_MISALIGNMENT; |
+ else |
+ { |
+ ULONG *pdwVirtAddress; |
+ ULONG dwDummy; |
+ |
+ pdwVirtAddress = (ULONG *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress); |
+ |
+ switch (pAccessIn->bAccessMode) |
+ { |
+ case LCR_WRITE: |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent); |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ case LCR_OR: |
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress); |
+ dwDummy |= pAccessIn->dwContent; |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy); |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ case LCR_AND: |
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress); |
+ dwDummy &= pAccessIn->dwContent; |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy); |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ case LCR_WRITE_ONLY: |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent); |
+ break; |
+ case LCR_READ: |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ |
+ default: Status = STATUS_ILLEGAL_INSTRUCTION; |
+ } |
+ } |
+ } |
+ |
+ // 2nd part: short word accesses |
+ if (pAccessIn->bBytesLane == WORD_ACCESS) |
+ { |
+ if (pAccessIn->wRegisterAddress & 0x0001) |
+ Status = STATUS_INSTRUCTION_MISALIGNMENT; |
+ else |
+ { |
+ USHORT *pwVirtAddress; |
+ USHORT wDummy; |
+ |
+ pwVirtAddress = (USHORT *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress); |
+ |
+ switch (pAccessIn->bAccessMode) |
+ { |
+ case LCR_WRITE: |
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent); |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ case LCR_OR: |
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress); |
+ wDummy |= (USHORT)pAccessIn->dwContent; |
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy); |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ case LCR_AND: |
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress); |
+ wDummy &= (USHORT)pAccessIn->dwContent; |
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy); |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ case LCR_WRITE_ONLY: |
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent); |
+ break; |
+ case LCR_READ: |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ |
+ default: Status = STATUS_ILLEGAL_INSTRUCTION; |
+ break; |
+ } |
+ } |
+ } |
+ |
+ // 3rd part: check illegal byte lanes |
+ if (!((pAccessIn->bBytesLane == LONG_ACCESS) || (pAccessIn->bBytesLane == WORD_ACCESS))) |
+ Status = STATUS_ILLEGAL_INSTRUCTION; |
+ } |
+ else |
+ Status = STATUS_ILLEGAL_INSTRUCTION; |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ if (Status == STATUS_SUCCESS) |
+ irp_info = sizeof(PCICC32_LCR_ACCESS); |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_access_lcr(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// the ultimate jumptable for ioctl |
+// |
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) = |
+{ |
+ ioctl_dummy, // 0 |
+ ioctl_dummy, // 4 |
+ ioctl_get_status, // 8 |
+ ioctl_clear_status, // 0x0c |
+ ioctl_access_para, // 0x10 |
+ ioctl_control_interrupts, // 0x14 |
+ ioctl_dummy, // 0x18 |
+ ioctl_irq_status, // 0x1c |
+ ioctl_access_lcr // 0x20 |
+}; |
+ |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer= ; TODO: set DriverVer in stampinf property pages |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NT$ARCH$ |
+ |
+[Standard.NT$ARCH$] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = $KMDFVERSION$ |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.h |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.h (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_v.h (revision 176) |
@@ -0,0 +1,34 @@ |
+#ifndef __PCICC32_V_H__ |
+#define __PCICC32_V_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32terface from ARW Elektronik, Germany --------- |
+// header file belonging to pcicc32_v.c |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 02.07.2000 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// DEFINES |
+// |
+#include <pcicc32_drv.h> |
+ |
+//------------------------------------------------------------------------- |
+// PROTOTYPES |
+// |
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj); |
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj); |
+void enableCC32(PCIADA *pciada); |
+void disableCC32(PCIADA *pciada); |
+ |
+#endif // __PCICC32_V_H__ |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.h |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.h (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32_io.h (revision 176) |
@@ -0,0 +1,30 @@ |
+#ifndef __PCIVME_IO_H__ |
+#define __PCIVME_IO_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCIVME interface from ARW Elektronik, Germany --------- |
+// the ioctl functions header file |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// ntddk.h must included first! |
+// |
+// what who when |
+// started AR 03.07.99 |
+// |
+ |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS + EXTERNALS |
+// |
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP irp, PIO_STACK_LOCATION IrpStack); |
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID Nothing); |
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp); |
+ |
+#endif // __PCIVME_IO_H__ |
Index: wiener_pcicc32/pcicc32/pcicc32/pcicc32.h |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/pcicc32.h (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/pcicc32.h (revision 176) |
@@ -0,0 +1,157 @@ |
+#ifndef __PCICC32_H__ |
+#define __PCICC32_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany -------- |
+// IO definitions and common data structures between application and driver |
+// |
+// (c) 2000,2001 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 16.04.2000 |
+// added irq functionality AR 24.02.2001 |
+// added until 'not Q' read/write mode AR 03.03.2001 |
+// added AUTOREAD AR 17.03.2001 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+// #include <devioctl.h> must be declared before inclusion when used for driver |
+// #include <winioctl.h> must be declared before inclusion when used for applications |
+ |
+//------------------------------------------------------------------------- |
+// DEFINES |
+// |
+ |
+//---------------------------------------------------------------------------------------- |
+// macros for simple CAMAC NAF address calculation |
+// |
+#define NAF(n, a, f) ((ULONG)((n << 10) + (a << 6) + ((f & 0xf) << 2))) |
+ |
+// to get a compatible view to WIN95 driver |
+#define USER_CONTROL_CODE(x) (x) |
+ |
+// VPCIC32D_ATTACH_CC32 and VPCIC32D_DETACH_CC32 are incompatible to WINNT - please use read and write commands |
+ |
+// get the interrupt and timeout status from a CC32 interface (0x00220008) |
+#define PCICC32_GET_STATUS CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(2),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// clear the timeout status of a CC32 interface (0x0022000C) |
+#define PCICC32_CLEAR_STATUS CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(3),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// set the access parameter for this file (0x00220010) |
+#define PCICC32_SET_ACCESS_PARA CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(4),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// allow or inhibit CC32 interrupt requests (0x00220014) |
+#define PCICC32_CONTROL_INTERRUPTS CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(5),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// requests thru blocking io the status of a pending or a rising interrupt (0x0022001C) |
+#define PCICC32_INSTALL_IRQ_BLOCK CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(7),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// requests to access the PLX LCR for test and debug (0x00220020) |
+#define PCICC32_ACCESS_LCR CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(8),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// set to check for control-code overflow |
+#define PCICC32_LAST_CTL_CODE PCICC32_ACCESS_LCR |
+ |
+// mask bits for interrupt status |
+#define LAM_IRQ 0x00FFFFFF // there was a LAM responible for the timeout |
+#define CONNECTION_TIMEOUT 0x08000000 // irq raised through a connection timout |
+#define LAM_BUS_OR 0x10000000 // a LAM-BUS-OR is pending |
+#define LAM_NOT_OR 0x20000000 // a LAM-NOT-OR is pending |
+#define LAM_AND_OR 0x40000000 // a LAM-AND-OR is pending |
+#define LAM_FF 0x80000000 // the LAM-Flip-Flop was set |
+ |
+// switches for PCICC32_ACCESS_COMMAND.wAccessType |
+#define WORD_ACCESS (UCHAR)2 // word |
+#define LONG_ACCESS (UCHAR)4 // long |
+ |
+// define bits for PCICC32_ACCESS_COMMAND.wBlockTransfer |
+#define UNTIL_NOT_Q 0x0001 // read/write unttil 'not Q' switch |
+#define AUTOREAD 0x0002 // PCIADA data pipelining access tuner switch |
+ |
+// data lane size constants for PCICC32_ACCESS_LCR |
+#define BYTE_ACCESS (UCHAR)1 // write byte wise (illegal) |
+#define WORD_ACCESS (UCHAR)2 // word |
+#define LONG_ACCESS (UCHAR)4 // long |
+ |
+// PCICC32_ACCESS_LCR access constants |
+#define LCR_READ 0 // read only access |
+#define LCR_WRITE 1 // write and read back access |
+#define LCR_OR 2 // read, bitwise 'or' content and read back access |
+#define LCR_AND 3 // read, bitwise 'and' content and read back access |
+#define LCR_WRITE_ONLY 4 // do not read back after write |
+ |
+// this structure is output from VPCIC32_GET_STATUS call |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ USHORT bTimeout; // denotes a pending PCIADA timeout |
+ USHORT bInterrupt; // denotes a pending LAM interrupt |
+} PCICC32_STATUS; |
+ |
+// this structure sets the access parameter for following reads or writes to this path |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ USHORT wAccessType; // set the current access type (WORD_ACCESS, LONG_ACCESS) |
+ USHORT wBlockTransfer; // set AUTOREAD or UNTIL_NOT_Q |
+} PCICC32_ACCESS_COMMAND; |
+ |
+// this structure is used to control the interrupts |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ USHORT wEnable; // a 1 allows, a 0 inhibits interrupt requests |
+} PCICC32_IRQ_CONTROL; |
+ |
+// this structure returns from a blocking interrupt status call |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ ULONG dwInterruptFlags; // the return status at the return of the blocking call |
+} PCICC32_IRQ_RESPONSE; |
+ |
+// structure to access the local configuration space of PLX chip (test / debug only) with PCICC32_ACCESS_LCR |
+typedef struct |
+{ |
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95 |
+ ULONG dwContent; // content to write, and, or |
+ USHORT wRegisterAddress; // address offset of LCR register |
+ UCHAR bAccessMode; // LCR_READ, write, or, and |
+ UCHAR bBytesLane; // the data access width |
+} PCICC32_LCR_ACCESS; |
+ |
+#endif // __PCICC32_H__ |
Index: wiener_pcicc32/pcicc32/pcicc32/guid.h |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32/guid.h (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32/guid.h (revision 176) |
@@ -0,0 +1,6 @@ |
+INTERFACENAME = { /* c4ad1dfa-3e35-4659-bf2b-c83cda6833e1 */ |
+ 0xc4ad1dfa, |
+ 0x3e35, |
+ 0x4659, |
+ {0xbf, 0x2b, 0xc8, 0x3c, 0xda, 0x68, 0x33, 0xe1} |
+ }; |
Index: wiener_pcicc32/pcicc32/pcicc32.sln |
=================================================================== |
--- wiener_pcicc32/pcicc32/pcicc32.sln (nonexistent) |
+++ wiener_pcicc32/pcicc32/pcicc32.sln (revision 176) |
@@ -0,0 +1,105 @@ |
+ |
+Microsoft Visual Studio Solution File, Format Version 12.00 |
+# Visual Studio 2013 |
+VisualStudioVersion = 12.0.30110.0 |
+MinimumVisualStudioVersion = 10.0.40219.1 |
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcicc32", "pcicc32\pcicc32.vcxproj", "{E355652A-FAA5-429D-8308-AFEA65C58B53}" |
+EndProject |
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcicc32 Package", "pcicc32 Package\pcicc32 Package.vcxproj", "{E52219C0-0B63-42B6-BBBD-5718FDE46FDB}" |
+ ProjectSection(ProjectDependencies) = postProject |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53} = {E355652A-FAA5-429D-8308-AFEA65C58B53} |
+ EndProjectSection |
+EndProject |
+Global |
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution |
+ Win7 Debug|Win32 = Win7 Debug|Win32 |
+ Win7 Debug|x64 = Win7 Debug|x64 |
+ Win7 Release|Win32 = Win7 Release|Win32 |
+ Win7 Release|x64 = Win7 Release|x64 |
+ Win8 Debug|Win32 = Win8 Debug|Win32 |
+ Win8 Debug|x64 = Win8 Debug|x64 |
+ Win8 Release|Win32 = Win8 Release|Win32 |
+ Win8 Release|x64 = Win8 Release|x64 |
+ Win8.1 Debug|Win32 = Win8.1 Debug|Win32 |
+ Win8.1 Debug|x64 = Win8.1 Debug|x64 |
+ Win8.1 Release|Win32 = Win8.1 Release|Win32 |
+ Win8.1 Release|x64 = Win8.1 Release|x64 |
+ EndGlobalSection |
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|x64.Build.0 = Win7 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|Win32.Build.0 = Win7 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|Win32.Deploy.0 = Win7 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|x64.ActiveCfg = Win7 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|x64.Build.0 = Win7 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win7 Release|x64.Deploy.0 = Win7 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|Win32.Deploy.0 = Win8 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|Win32.Build.0 = Win8 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|Win32.Deploy.0 = Win8 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|x64.Build.0 = Win8 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8 Release|x64.Deploy.0 = Win8 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|Win32.Deploy.0 = Win8.1 Release|Win32 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 |
+ {E355652A-FAA5-429D-8308-AFEA65C58B53}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|Win32.ActiveCfg = Win7 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|Win32.Build.0 = Win7 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|Win32.Deploy.0 = Win7 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|x64.ActiveCfg = Win7 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|x64.Build.0 = Win7 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Debug|x64.Deploy.0 = Win7 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|Win32.ActiveCfg = Win7 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|Win32.Build.0 = Win7 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|Win32.Deploy.0 = Win7 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|x64.ActiveCfg = Win7 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|x64.Build.0 = Win7 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win7 Release|x64.Deploy.0 = Win7 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|Win32.ActiveCfg = Win8 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|Win32.Build.0 = Win8 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|Win32.Deploy.0 = Win8 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|Win32.ActiveCfg = Win8 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|Win32.Build.0 = Win8 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|Win32.Deploy.0 = Win8 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|x64.Build.0 = Win8 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8 Release|x64.Deploy.0 = Win8 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|Win32.ActiveCfg = Win8.1 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|Win32.Build.0 = Win8.1 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|Win32.Deploy.0 = Win8.1 Debug|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|Win32.ActiveCfg = Win8.1 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|Win32.Build.0 = Win8.1 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|Win32.Deploy.0 = Win8.1 Release|Win32 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 |
+ {E52219C0-0B63-42B6-BBBD-5718FDE46FDB}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64 |
+ EndGlobalSection |
+ GlobalSection(SolutionProperties) = preSolution |
+ HideSolutionNode = FALSE |
+ EndGlobalSection |
+EndGlobal |
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win7Release/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win7Release/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.20.51 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.20.51 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.cat |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/pcicc32.cat |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/WdfCoinstaller01011.dll |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Release/pcicc32 Package/WdfCoinstaller01011.dll |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Release/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Release/pcicc32.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Release/pcicc32.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.17.794 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.17.794 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.cat |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/pcicc32.cat |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/WdfCoinstaller01011.dll |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32 Package/WdfCoinstaller01011.dll |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Release/pcicc32.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8Release/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8Release/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.18.506 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.18.506 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.cat |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/pcicc32.cat |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/WdfCoinstaller01011.dll |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Release/pcicc32 Package/WdfCoinstaller01011.dll |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Release/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Release/pcicc32.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Release/pcicc32.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win7Debug/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win7Debug/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.20.773 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.20.773 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.cat |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/pcicc32.cat |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/WdfCoinstaller01011.dll |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32 Package/WdfCoinstaller01011.dll |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32Package.cer |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32Package.cer |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win7Debug/pcicc32.cer |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win7Debug/pcicc32.cer |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.19.198 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.19.198 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.cat |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/pcicc32.cat |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/WdfCoinstaller01011.dll |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32 Package/WdfCoinstaller01011.dll |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32Package.cer |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32Package.cer |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.cer |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8.1Debug/pcicc32.cer |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8Debug/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8Debug/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.21.688 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.inf (revision 176) |
@@ -0,0 +1,91 @@ |
+; |
+; pcicc32.inf |
+; |
+ |
+[Version] |
+Signature="$WINDOWS NT$" |
+Class=Sample ; TODO: edit Class |
+ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171} ; TODO: edit ClassGuid |
+Provider=%ManufacturerName% |
+CatalogFile=pcicc32.cat |
+DriverVer=02/10/2014,7.32.21.688 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 |
+ |
+; ================= Class section ===================== |
+ |
+[ClassInstall32] |
+Addreg=SampleClassReg |
+ |
+[SampleClassReg] |
+HKR,,,0,%ClassName% |
+HKR,,Icon,,-5 |
+ |
+[SourceDisksNames] |
+1 = %DiskName%,,,"" |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1,, |
+ |
+;***************************************** |
+; Install Section |
+;***************************************** |
+ |
+[Manufacturer] |
+%ManufacturerName%=Standard,NTx86 |
+ |
+[Standard.NTx86] |
+%pcicc32.DeviceDesc%=pcicc32_Device, Root\pcicc32 ; TODO: edit hw-id |
+ |
+[pcicc32_Device.NT] |
+CopyFiles=Drivers_Dir |
+ |
+[Drivers_Dir] |
+pcicc32.sys |
+ |
+;-------------- Service installation |
+[pcicc32_Device.NT.Services] |
+AddService = pcicc32,%SPSVCINST_ASSOCSERVICE%, pcicc32_Service_Inst |
+ |
+; -------------- pcicc32 driver install sections |
+[pcicc32_Service_Inst] |
+DisplayName = %pcicc32.SVCDESC% |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 1 ; SERVICE_ERROR_NORMAL |
+ServiceBinary = %12%\pcicc32.sys |
+LoadOrderGroup = Extended Base |
+ |
+; |
+;--- pcicc32_Device Coinstaller installation ------ |
+; |
+ |
+[DestinationDirs] |
+pcicc32_Device_CoInstaller_CopyFiles = 11 |
+ |
+[pcicc32_Device.NT.CoInstallers] |
+AddReg=pcicc32_Device_CoInstaller_AddReg |
+CopyFiles=pcicc32_Device_CoInstaller_CopyFiles |
+ |
+[pcicc32_Device_CoInstaller_AddReg] |
+HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01011.dll,WdfCoInstaller" |
+ |
+[pcicc32_Device_CoInstaller_CopyFiles] |
+WdfCoInstaller01011.dll |
+ |
+[SourceDisksFiles] |
+WdfCoInstaller01011.dll=1 ; make sure the number matches with SourceDisksNames |
+ |
+[pcicc32_Device.NT.Wdf] |
+KmdfService = pcicc32, pcicc32_wdfsect |
+[pcicc32_wdfsect] |
+KmdfLibraryVersion = 1.11 |
+ |
+[Strings] |
+SPSVCINST_ASSOCSERVICE= 0x00000002 |
+ManufacturerName="" ; TODO: add ManufacturerName |
+ClassName="Samples" ; TODO: edit ClassName |
+DiskName = "pcicc32 Installation Disk" |
+pcicc32.DeviceDesc = "pcicc32 Device" |
+pcicc32.SVCDESC = "pcicc32 Service" |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.cat |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/pcicc32.cat |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/WdfCoinstaller01011.dll |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32 Package/WdfCoinstaller01011.dll |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.sys |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32.sys |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.pdb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32.pdb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32Package.cer |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32Package.cer |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32/Win8Debug/pcicc32.cer |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32/Win8Debug/pcicc32.cer |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/SOURCE/pcicc32_i.c |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_i.c (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_i.c (revision 176) |
@@ -0,0 +1,275 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany -------- |
+// all around irq handling |
+// |
+// (c) 1999-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 01.08.1999 |
+// first release 1.0 AR 17.10.1999 |
+// IoConnectInterrupt, share vector now true AR 04.03.2000 |
+// globalInterruptEnabledStatus() added AR 24.02.2001 |
+// added IRQ handling AR 24.02.2001 |
+// added WITH_IRQS switch to switsch off irqs AR 04.10.2001 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#define WITH_IRQS // comment out for interrupt handling excludes |
+// ACHTUNG TEST |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <pcicc32_drv.h> |
+#include <pcicc32_i.h> |
+#include <pcicc32.h> |
+#include <pcicc32_local.h> |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+#ifndef WORD |
+#define WORD USHORT |
+#endif |
+ |
+//------------------------------------------------------------------------ |
+// GLOBALS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// enable and disable of interrupts |
+// |
+void globalInterruptEnable(PCIADA *pciada) |
+{ |
+#ifdef WITH_IRQS |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, ENABLE_PCIADA_IRQS); |
+#endif |
+} |
+ |
+void globalInterruptDisable(PCIADA *pciada) |
+{ |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS); |
+} |
+ |
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada) |
+{ |
+ unsigned short wStatus; |
+ |
+ wStatus = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ |
+ if ((wStatus & ENABLE_PCIADA_IRQS) == ENABLE_PCIADA_IRQS) |
+ return 1; |
+ |
+ return 0; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// determine which interrupt and evaluates status if appropriate |
+// |
+static int evaluateIrqStatus(PCIADA *pciada, ULONG *dwIrqStatus) |
+{ |
+ volatile USHORT wCntrl; |
+ int result = 0; |
+ |
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); |
+ if (wCntrl & 0x100) // pciada switched on ? |
+ { |
+ volatile USHORT wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ |
+ if (wIntCSR & 0x0040) // are the interrupts enabled? |
+ { |
+ if (wIntCSR & 0x20) |
+ { |
+ // it's the pci interrupt # 2 |
+ globalInterruptDisable(pciada); // disable following interrupts |
+ |
+ // get current Cntrl - and clear interrupt |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, (USHORT)(wCntrl & ~0x0100)); // disable |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // enable again |
+ |
+ *dwIrqStatus = CONNECTION_TIMEOUT; |
+ |
+ result = 1; |
+ } |
+ |
+ if (wIntCSR & 0x04) |
+ { |
+ globalInterruptDisable(pciada); // disable following interrupts |
+ |
+ *dwIrqStatus = READ_REGISTER_ULONG(_DWORD_NAF(pciada->pvVirtIfr, 28, 2, 0)); |
+ |
+ // clear pending interrupt - LAM-FF |
+ WRITE_REGISTER_USHORT(_WORD_NAF(pciada->pvVirtIfr, 28, 0, 16), 0); |
+ |
+ result = 1; |
+ } |
+ } |
+ } |
+ |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// main interrupt handler function |
+// |
+static BOOLEAN irq_service(PKINTERRUPT Interrupt, PVOID ServiceContext) |
+{ |
+ PCIADA *pciada = (PCIADA *)ServiceContext; |
+ |
+#ifndef WITH_IRQS |
+ return FALSE; |
+#endif |
+ |
+ if (!evaluateIrqStatus(pciada, &pciada->dwIrqStatus)) |
+ { |
+ // KdPrint(("Not my irq.\n")); |
+ return FALSE; |
+ } |
+ |
+ // fire custom deffered procedure call |
+ KeInsertQueueDpc(&pciada->kDPCobj, (PVOID)pciada, (PVOID)&pciada->dwIrqStatus); |
+ |
+ KdPrint(("irq_service(0x%08x)\n", pciada->dwIrqStatus)); |
+ return TRUE; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// translate interrupt resources for PCIADAs to hardware independent ones |
+// |
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32TranslateInterrupt()\n")); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ KdPrint(("In - Bus:%d, IrqLine:%d\n", pciada->Bus, pciada->Irql)); |
+ |
+ if (pciada->Irql) |
+ { |
+ pciada->Vector = HalGetInterruptVector(PCIBus, pciada->Bus, |
+ pciada->Irql, pciada->Vector, |
+ &pciada->Irql, &pciada->Affinity); |
+ |
+ KdPrint(("Out - Irql:%d, Vector: %d, Affinity:%d\n", pciada->Irql, pciada->Vector, pciada->Affinity)); |
+ |
+ } |
+ else |
+ result = STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT; |
+ } |
+ |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// connect service routines to all PCIADA interrupts |
+// |
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj) |
+{ |
+#ifdef WITH_IRQS |
+ int i; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32ConnectInterrupt()\n")); |
+ |
+ // connect the interrupts to service routines |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ pciada->InterruptObject = NULL; |
+ |
+ if (pciada->Vector) |
+ result = IoConnectInterrupt(&pciada->InterruptObject, |
+ irq_service, |
+ (PVOID)pciada, |
+ NULL, |
+ pciada->Vector, |
+ pciada->Irql, |
+ pciada->Irql, |
+ LevelSensitive, |
+ TRUE, |
+ pciada->Affinity, |
+ FALSE); |
+ |
+ KdPrint(("irq_service:%p, VirtVect:%d, Irql:%d, hIrql:%d, Aff:0x%08x, Status:0x%08x\n", |
+ irq_service, pciada->Vector, pciada->Irql, |
+ pciada->Irql, pciada->Affinity, result)); |
+ |
+ if (result != STATUS_SUCCESS) |
+ break; |
+ } |
+ |
+ if (result == STATUS_SUCCESS) |
+ { |
+ KdPrint(("PCICC32ConnectInterrupt() OK.\n")); |
+ } |
+ |
+ return result; |
+#else |
+ return STATUS_SUCCESS; |
+#endif |
+} |
+ |
+//------------------------------------------------------------------------ |
+// dis-connect service routines to all PCIADA interrupts |
+// |
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj) |
+{ |
+#ifdef WITH_IRQS |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("DisConnectInterrupt()\n")); |
+ |
+ // dis connect the interrupts to service routines |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ KdPrint(("IrqObj:0x%08x\n", pciada->InterruptObject)); |
+ |
+ if (pciada->InterruptObject) |
+ { |
+ IoDisconnectInterrupt(pciada->InterruptObject); |
+ pciada->InterruptObject = 0; |
+ } |
+ } |
+#endif |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
Index: wiener_pcicc32/SOURCE/Release/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/SOURCE/Release/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/SOURCE/Release/pcicc32.inf (revision 176) |
@@ -0,0 +1,104 @@ |
+;=========================================================== |
+; File : pcicc32.inf |
+; |
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany |
+; |
+;=========================================================== |
+ |
+ |
+[Version] |
+Signature = $CHICAGO$ |
+Provider = %ARW% |
+Class = %PCICC32_class_name% |
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1} |
+DriverVer = 06/18/2002,2.3.0.4 |
+ |
+ |
+;----------------------------------------------------------- |
+; Driver information |
+;----------------------------------------------------------- |
+ |
+[Manufacturer] |
+%ARW_MFG% = ARW.Mfg |
+ |
+[ARW.Mfg] |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02 |
+ |
+[ClassInstall32] |
+AddReg=PCICC32_class_addreg |
+ |
+[PCICC32_class_addreg] |
+HKR,,,,%PCICC32_class_name% |
+HKR,,Icon,0,0 |
+ |
+ |
+;----------------------------------------------------------- |
+; General installation section |
+;----------------------------------------------------------- |
+ |
+[CopyFiles_9050] |
+pcicc32.sys,,,2 |
+ |
+ |
+;----------------------------------------------------------- |
+; Windows 2000 installation section |
+;----------------------------------------------------------- |
+ |
+[Install_PCICC32.NT] |
+AddReg = AddRegistry_NT_9050 |
+CopyFiles = CopyFiles_9050 |
+ |
+ |
+[Install_PCICC32.NT.Services] |
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050 |
+ |
+ |
+[AddRegistry_NT_9050] |
+ |
+ |
+[Service_Inst_9050] |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE |
+ServiceBinary = %12%\pcicc32.sys |
+ |
+ |
+;----------------------------------------------------------- |
+; Event log registry entries |
+;----------------------------------------------------------- |
+ |
+[EventLog_Inst_9050] |
+AddReg = EventLog_AddReg_9050 |
+ |
+ |
+[EventLog_AddReg_9050] |
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys" |
+HKR,,TypesSupported,0x00010001,7 |
+ |
+ |
+;----------------------------------------------------------- |
+; Source file information |
+;----------------------------------------------------------- |
+ |
+[SourceDisksNames.x86] |
+1 = %InstallDisk%,"",1 |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 ; drivers |
+ |
+ |
+;----------------------------------------------------------- |
+; String information |
+;----------------------------------------------------------- |
+ |
+[Strings] |
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk" |
+ARW_MFG = "ARW Elektronik, Germany" |
+ARW = "ARW Elektronik, Germany" |
+PCICC32_class_name = "ARW BUS Interfaces" |
Index: wiener_pcicc32/SOURCE/Release/pcicc32.SYS |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/SOURCE/Release/pcicc32.SYS |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/SOURCE/pcicc32.dsw |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32.dsw (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32.dsw (revision 176) |
@@ -0,0 +1,29 @@ |
+Microsoft Developer Studio Workspace File, Format Version 6.00 |
+# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! |
+ |
+############################################################################### |
+ |
+Project: "pcicc32"=.\pcicc32.dsp - Package Owner=<4> |
+ |
+Package=<5> |
+{{{ |
+}}} |
+ |
+Package=<4> |
+{{{ |
+}}} |
+ |
+############################################################################### |
+ |
+Global: |
+ |
+Package=<5> |
+{{{ |
+}}} |
+ |
+Package=<3> |
+{{{ |
+}}} |
+ |
+############################################################################### |
+ |
Index: wiener_pcicc32/SOURCE/pcicc32_drv.c |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_drv.c (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_drv.c (revision 176) |
@@ -0,0 +1,1062 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 (CAMAC) interface of ARW Elektronik, Germany -- |
+// the main body of the driver |
+// |
+// (c) 2000-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistribute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started out of pcivme sources AR 25.03.2000 |
+// added IRQ handling AR 24.02.2001 |
+// Added AUTOREAD functionality AR 17.03.2001 |
+// Added LCR_READ AR 31.03.2001 |
+// resource allocation registers idle entries too AR 25.11.2001 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// totally rearanged resource alloc for WIN2000 AR 01.06.2002 |
+// version 2.14 eleminates PLXBUG in WIN2000 AR 05.06.2002 |
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002 |
+// |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+#ifndef WORD |
+#define WORD USHORT |
+#endif |
+ |
+#define CTL_INDEX(x) ((x >> 2) & 0xFF) // get user control code as index |
+#define RESOURCE_ENTRY_COUNT 6 // WIN2000 forces to claim all entries |
+ |
+#define DOS_DEVICE_NAME L"\\DosDevices\\PCICC32:" |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+ |
+#include <ntddk.h> |
+#include <devioctl.h> |
+// #include <wdm.h> |
+ |
+#include <pcicc32_drv.h> |
+#include <pcicc32.h> |
+#include <pcicc32_v.h> |
+#include <pcicc32_i.h> |
+#include <pcicc32_io.h> |
+ |
+ |
+//------------------------------------------------------------------------ |
+// TYPEDEFS |
+// |
+typedef struct |
+{ |
+ FILE_OBJ *file_obj; |
+ PCIADA *pciada; |
+ PVOID pOutputBuffer; |
+ PVOID pInputBuffer; |
+ ULONG Address; |
+ DWORD Length; |
+} SYNC_CONTEXT; |
+ |
+//------------------------------------------------------------------------ |
+// GLOBALS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// for debug only - print interrupt line |
+// |
+#if DBG |
+void PrintInterruptLine(int Bus, int Slot) |
+{ |
+ PCI_COMMON_CONFIG pci_config; |
+ |
+ HalGetBusData( PCIConfiguration, // Bustype |
+ Bus, // PCI-Busnumber |
+ Slot, // Slotnumber |
+ (PVOID) &(pci_config), // Pointer for the PCI-Information |
+ sizeof(PCI_COMMON_CONFIG)); |
+ |
+ KdPrint(("Irql: %d\n", pci_config.u.type0.InterruptLine)); |
+} |
+#endif |
+ |
+//------------------------------------------------------------------------ |
+// get the cc32 number out of the filename |
+// |
+NTSTATUS InterpreteFileName(PCHAR name, int *nCC32) |
+{ |
+ char *ptr = name; |
+ char *n = "cc32_"; |
+ int h = -1; // high part |
+ int l = -1; // low part |
+ |
+ if (*ptr == '\\') ptr++; // jump over leading ... |
+ |
+ while (*n) // compare the basename |
+ if (*n == tolower(*ptr)) |
+ { |
+ n++; |
+ ptr++; |
+ } |
+ else |
+ return STATUS_NO_SUCH_FILE; |
+ |
+ h = *ptr - '0'; // get the number |
+ ptr++; |
+ l = *ptr - '0'; |
+ |
+ if (*ptr == 0) // still over the end ?? |
+ { |
+ l = h; |
+ h = 0; |
+ } |
+ else |
+ ptr++; |
+ |
+ if ((h < 0) || (l < 0) || (*ptr != 0)) // anything wrong ?? |
+ return STATUS_NO_SUCH_FILE; |
+ |
+ *nCC32 = (h * 10) + l; // calculate number |
+ |
+ if (*nCC32 >= PCICC32_MAX_CC32) // out of range ?? |
+ return STATUS_NO_SUCH_FILE; |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the ultimate driver unload |
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj) |
+{ |
+ int i; |
+ UNICODE_STRING symbol_name; |
+ DEVICE_EXT *ext = (DEVICE_EXT*)(driverObj->DeviceObject->DeviceExtension); |
+ int nPCIADAs = ext->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32Unload()\n")); |
+ |
+ switch (ext->nInitState) |
+ { |
+ case 8: |
+ case 7: |
+ case 6: |
+ // stop interrupts and shut off |
+ PCICC32DeInitPCIADAs(driverObj->DeviceObject); |
+ PCICC32DisConnectInterrupt(driverObj->DeviceObject); |
+ case 5: |
+ // KeInitializeDpc has no counterpart |
+ case 4: |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &ext->pciada[i]; |
+ if (pciada->pvVirtLcr != NULL) |
+ MmUnmapIoSpace(pciada->pvVirtLcr, LCR_SPACE); |
+ if (pciada->pvVirtIfr != NULL) |
+ MmUnmapIoSpace(pciada->pvVirtIfr, IFR_SPACE); |
+ } |
+ case 3: |
+ // HalGetInterruptVector has no counterpart |
+ case 2: |
+ // HalTranslateBusAddress has no counterpart |
+ case 1: |
+ PCICC32FreeResources(driverObj->DeviceObject); |
+ default: |
+ case 0: |
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME); |
+ |
+ // delete the symbolicLink in the registry |
+ IoDeleteSymbolicLink( &symbol_name); |
+ |
+ // delete the deviceObject |
+ IoDeleteDevice(driverObj->DeviceObject); |
+ } |
+ |
+ KdPrint(("PCICC32Unload() OK.\n")); |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// called at CreateFile() |
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP Irp) |
+{ |
+ NTSTATUS result = STATUS_SUCCESS; |
+ ANSI_STRING name; |
+ int nCC32; |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension); |
+ PCIADA *pciada; |
+ FILE_OBJ *file_obj; |
+ |
+ name.Buffer = NULL; |
+ name.MaximumLength = 80; |
+ |
+ result = RtlUnicodeStringToAnsiString(&name, &(Irp->Tail.Overlay.OriginalFileObject->FileName), TRUE); |
+ if (result != STATUS_SUCCESS) goto fin; |
+ |
+ KdPrint(("PCICC32Open(%s)\n", name.Buffer)); |
+ |
+ result = InterpreteFileName(name.Buffer, &nCC32); |
+ if (result != STATUS_SUCCESS) goto fin; |
+ |
+ KdPrint(("PCICC32Open(%d)\n", nCC32)); |
+ RtlFreeAnsiString(&name); |
+ |
+ file_obj = (FILE_OBJ *)ExAllocatePool(NonPagedPool, sizeof(FILE_OBJ)); |
+ if (file_obj == (FILE_OBJ *)NULL) |
+ { |
+ result = STATUS_NO_MEMORY; |
+ goto fin; |
+ } |
+ |
+ file_obj->uwAssociatedCC32 = nCC32; |
+ |
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (PVOID)file_obj; |
+ |
+ result = PCICC32ScanCC32(deviceObj); |
+ if (result != STATUS_SUCCESS) goto fin; |
+ |
+ for (i = 0; i < pDevExt->nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ if (pciada->wModuleNumber == nCC32) |
+ { |
+ pDevExt->cc32[nCC32] = pciada; // create association |
+ pciada->dwLinkCount++; |
+ |
+ enableCC32(pciada); |
+ break; |
+ } |
+ } |
+ |
+ if (i >= pDevExt->nPCIADAs) |
+ { |
+ result = STATUS_NO_SUCH_FILE; |
+ goto fin; |
+ } |
+ |
+ fin: |
+ Irp->IoStatus.Status = result; |
+ Irp->IoStatus.Information = 0; |
+ IoCompleteRequest(Irp, IO_NO_INCREMENT); |
+ |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// called at close() |
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP Irp) |
+{ |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(deviceObj->DeviceExtension); |
+ FILE_OBJ *file_obj = (FILE_OBJ *)NULL; |
+ PCIADA *pciada; |
+ |
+ file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ |
+ KdPrint(("PCICC32Close(%d)\n", file_obj->uwAssociatedCC32)); |
+ |
+ if (file_obj != (FILE_OBJ *)NULL) |
+ { |
+ pciada = pDevExt->cc32[file_obj->uwAssociatedCC32]; |
+ pciada->dwLinkCount--; |
+ |
+ // disable interrupts when closing |
+ if (pciada->pIrqControlFile == file_obj) |
+ { |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ globalInterruptDisable(pciada); |
+ } |
+ |
+ // cancel any blocking Irp origin from this file |
+ if (file_obj->blockingIrp != (PIRP)NULL) |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ |
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp) |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ |
+ if (!pciada->dwLinkCount) |
+ disableCC32(pciada); |
+ |
+ ExFreePool(file_obj); |
+ Irp->Tail.Overlay.OriginalFileObject->FsContext = (FILE_OBJ *)NULL; |
+ } |
+ |
+ KdPrint(("PCICC32Close OK\n")); |
+ |
+ Irp->IoStatus.Status = STATUS_SUCCESS; |
+ Irp->IoStatus.Information = 0; |
+ IoCompleteRequest(Irp, IO_NO_INCREMENT); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// called at |
+NTSTATUS PCICC32Shutdown(PDEVICE_OBJECT deviceObj, PIRP irp) |
+{ |
+ KdPrint(("PCICC32Shutdown()\n")); |
+ |
+ // deinit interfaces and interrupts |
+ PCICC32DeInitPCIADAs(deviceObj); |
+ |
+ KdPrint(("PCICC32Shutdown() OK\n")); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// called at ioctl() |
+NTSTATUS PCICC32DeviceControl(PDEVICE_OBJECT deviceObj, PIRP Irp) |
+{ |
+ PIO_STACK_LOCATION IrpStack; |
+ int nIndex; |
+ |
+ IrpStack = IoGetCurrentIrpStackLocation(Irp); |
+ nIndex = CTL_INDEX(IrpStack->Parameters.DeviceIoControl.IoControlCode); |
+ |
+ KdPrint(("PCICC32DeviceControl(%d / 0x%08x)\n", nIndex, Irp->Tail.Overlay.OriginalFileObject)); |
+ |
+ if (nIndex > CTL_INDEX(PCICC32_LAST_CTL_CODE)) |
+ { |
+ KdPrint(("LastIndex(%d)\n", CTL_INDEX(PCICC32_LAST_CTL_CODE))); |
+ Irp->IoStatus.Status = STATUS_UNSUCCESSFUL; |
+ Irp->IoStatus.Information = 0; |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); |
+ |
+ KdPrint(("PCICC32DeviceControl() FAIL.\n")); |
+ |
+ return STATUS_UNSUCCESSFUL; |
+ } |
+ |
+ return ioctl[nIndex](deviceObj, Irp, IrpStack); |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// called at read() |
+static BOOLEAN PCICC32Read_kernel(PVOID pvContext) |
+{ |
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext; |
+ register ULONG i = 0; |
+ USHORT wCntrl; |
+ |
+ wCntrl = READ_REGISTER_USHORT(context->pciada->pwCntrl); |
+ if (context->file_obj->wBlockTransfer & AUTOREAD) |
+ { |
+ wCntrl &= ~0x0004; // enable autoread - set bit to 0 |
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl); |
+ } |
+ |
+ // do the read --- |
+ if (context->file_obj->wBlockTransfer & UNTIL_NOT_Q) |
+ { |
+ // read first time to get Q information |
+ register ULONG tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); |
+ |
+ if (context->file_obj->wAccessType == WORD_ACCESS) |
+ { |
+ PUSHORT pwBuffer = (PUSHORT)context->pOutputBuffer; |
+ PUSHORT pwBufEnd = (PUSHORT)((PUCHAR)context->pOutputBuffer + context->Length); |
+ |
+ while ((tempBuffer & 0x80000000) && (pwBuffer < pwBufEnd)) |
+ { |
+ *pwBuffer++ = (USHORT)tempBuffer; |
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q |
+ i++; |
+ } |
+ } |
+ else |
+ { |
+ // LONG_ACCESS |
+ PULONG pdwBuffer = (PULONG)context->pOutputBuffer; |
+ PULONG pdwBufEnd = (PULONG)((PUCHAR)context->pOutputBuffer + context->Length); |
+ |
+ while ((tempBuffer & 0x80000000) && (pdwBuffer < pdwBufEnd)) |
+ { |
+ *pdwBuffer++ = tempBuffer; |
+ tempBuffer = READ_REGISTER_ULONG((ULONG *)context->Address); // read the same address multiple times as long to get Q |
+ i++; |
+ } |
+ } |
+ |
+ i *= context->file_obj->wAccessType; |
+ |
+ KdPrint(("UNTIL_NOT_Q, 0x%08x bytes read\n", i)); |
+ } |
+ else // no UNTIL_NOT_Q |
+ { |
+ while (i < context->Length) |
+ { |
+ context->file_obj->fRead((void *)((PUCHAR)context->pOutputBuffer + i), (void *)context->Address); // read the same address multiple times |
+ i += context->file_obj->wAccessType; |
+ } |
+ } |
+ |
+ // disable autoread unconditionally - set bit to 1 |
+ wCntrl |= 0x0004; |
+ WRITE_REGISTER_USHORT(context->pciada->pwCntrl, wCntrl); |
+ |
+ context->Length = i; |
+ |
+ return TRUE; |
+} |
+ |
+NTSTATUS PCICC32Read(PDEVICE_OBJECT device_Obj, PIRP Irp) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp); |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ SYNC_CONTEXT context; |
+ |
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32]; |
+ context.pOutputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress))); |
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart; |
+ context.Length = 0; |
+ |
+ KdPrint(("PCICC32Read(%d)\n", context.file_obj->uwAssociatedCC32)); |
+ |
+ if (context.Address > IFR_SPACE) |
+ Status = STATUS_ACCESS_VIOLATION; |
+ else |
+ { |
+ // do here in between what has to be done ----------------- |
+ context.Length = IrpStack->Parameters.Read.Length; |
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length)); |
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address; |
+ |
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Read_kernel, &context); |
+ // do here in between what has to be done end ------------- |
+ } |
+ |
+ Irp->IoStatus.Status = Status; |
+ Irp->IoStatus.Information = context.Length; |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); |
+ |
+ KdPrint(("PCICC32Read(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// called at write() |
+static BOOLEAN PCICC32Write_kernel(PVOID pvContext) |
+{ |
+ register SYNC_CONTEXT *context = (SYNC_CONTEXT *)pvContext; |
+ register ULONG i = 0; |
+ |
+ // do the write --- |
+ while (i < context->Length) |
+ { |
+ context->file_obj->fWrite((void *)context->Address, (void *)((PUCHAR)context->pInputBuffer + i)); // write the same address multiple times |
+ i += context->file_obj->wAccessType; |
+ } |
+ |
+ context->Length = i; |
+ |
+ return TRUE; |
+} |
+ |
+NTSTATUS PCICC32Write(PDEVICE_OBJECT device_Obj, PIRP Irp) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp); |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ SYNC_CONTEXT context; |
+ |
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ context.pciada = pDevExt->cc32[context.file_obj->uwAssociatedCC32]; |
+ context.pInputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress))); |
+ context.Address = IrpStack->Parameters.Read.ByteOffset.LowPart; |
+ context.Length = 0; |
+ |
+ KdPrint(("PCICC32Write(%d)\n", context.file_obj->uwAssociatedCC32)); |
+ |
+ if (context.Address > IFR_SPACE) |
+ Status = STATUS_ACCESS_VIOLATION; |
+ else |
+ { |
+ register ULONG i = 0; |
+ |
+ // do here in between what has to be done ----------------- |
+ context.Length = IrpStack->Parameters.Read.Length; |
+ KdPrint(("Address = 0x%08x, Length = 0x%08x\n", context.Address, context.Length)); |
+ context.Address = (ULONG)context.pciada->pvVirtIfr + context.Address; |
+ |
+ KeSynchronizeExecution(context.pciada->InterruptObject, PCICC32Write_kernel, &context); |
+ // do here in between what has to be done end ------------- |
+ } |
+ |
+ |
+ Irp->IoStatus.Status = Status; |
+ Irp->IoStatus.Information = context.Length; |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); |
+ |
+ KdPrint(("PCICC32Write(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// search for pciada's |
+// |
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj) |
+{ |
+ PCI_SLOT_NUMBER SlotNumber; |
+ PCI_COMMON_CONFIG pci_config; |
+ PCIADA *pciada; |
+ ULONG length; |
+ int *found; |
+ int i,j,k; |
+ |
+ KdPrint(("SearchDevices()\n")); |
+ |
+ // prepare structures ---------------------------------------- |
+ found = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs; |
+ *found = 0; |
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i]; |
+ |
+ pciada->Bus = -1; |
+ pciada->Slot.u.AsULONG = 0xFFFFFFFF; |
+ } |
+ |
+ // search for pciada's --------------------------------------- |
+ SlotNumber.u.bits.Reserved = 0; |
+ |
+ for (j = 0; j < PCI_MAX_BUSES; j++) |
+ { |
+ for (i = 0; i < PCI_MAX_DEVICES; i++) |
+ { |
+ SlotNumber.u.bits.DeviceNumber = i; |
+ for (k = 0; k < PCI_MAX_FUNCTION; k++) |
+ { |
+ SlotNumber.u.bits.FunctionNumber = k; |
+ length = HalGetBusData( PCIConfiguration, // Bustype |
+ j, // PCI-Busnumber |
+ SlotNumber.u.AsULONG, // Slotnumber |
+ (PVOID) &(pci_config), // Pointer for the PCI-Information |
+ sizeof(PCI_COMMON_CONFIG) ); |
+ |
+ if ((pci_config.VendorID == PCICC32_VENDOR_ID) && |
+ (pci_config.DeviceID == PCICC32_DEVICE_ID) && |
+ (pci_config.u.type0.SubSystemID == PCICC32_SUBSYS_ID) && |
+ (pci_config.u.type0.SubVendorID == PCICC32_SUBVEN_ID) && |
+ (pci_config.u.type0.BaseAddresses[3])) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[*found]; |
+ |
+ memcpy(&pciada->PCIDevice, &pci_config, sizeof(pci_config)); |
+ pciada->Slot = SlotNumber; |
+ pciada->Bus = j; |
+ |
+ KdPrint(("PCIADA found @ Bus/Slot %d/%d.\n", pciada->Bus, pciada->Slot.u.AsULONG)); |
+ |
+ (*found)++; |
+ if (*found >= PCICC32_MAX_PCIADA) return STATUS_SUCCESS; |
+ } |
+ } |
+ } |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//--------------------------------------------------------------- |
+// function to call for bug fix of PLX9050 build in bug |
+// |
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT device_Obj) |
+{ |
+ DEVICE_EXT *DeviceExtension = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int i; |
+ ULONG dwData; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PLX9050BugFix()\n")); |
+ |
+ for (i = 0; i < DeviceExtension->nPCIADAs; i++) |
+ { |
+ pciada = &DeviceExtension->pciada[i]; |
+ |
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[0]) & 0x80) |
+ { |
+ KdPrint(("Changing address 0:0x%p with 4:0x%p\n", |
+ pciada->PCIDevice.u.type0.BaseAddresses[0], |
+ pciada->PCIDevice.u.type0.BaseAddresses[4])); |
+ |
+ pciada->PCIDevice.u.type0.BaseAddresses[0] = // exchange |
+ pciada->PCIDevice.u.type0.BaseAddresses[4]; |
+ pciada->PCIDevice.u.type0.BaseAddresses[4] = dwData; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[0], |
+ 0x10, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[4], |
+ 0x20, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ } |
+ |
+ if ((dwData = pciada->PCIDevice.u.type0.BaseAddresses[1]) & 0x80) |
+ { |
+ KdPrint(("Changing address 1:0x%p with 5:0x%p\n", |
+ pciada->PCIDevice.u.type0.BaseAddresses[1], |
+ pciada->PCIDevice.u.type0.BaseAddresses[5])); |
+ |
+ pciada->PCIDevice.u.type0.BaseAddresses[1] = // exchange |
+ pciada->PCIDevice.u.type0.BaseAddresses[5]; |
+ pciada->PCIDevice.u.type0.BaseAddresses[5] = dwData; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[1], |
+ 0x14, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ |
+ if (HalSetBusDataByOffset(PCIConfiguration, pciada->Bus, |
+ pciada->Slot.u.AsULONG, |
+ (PVOID)&pciada->PCIDevice.u.type0.BaseAddresses[5], |
+ 0x24, 4) != 4) |
+ return STATUS_UNSUCCESSFUL; |
+ } |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// reserve resources for PCIADAs |
+// |
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList) |
+{ |
+ PCM_RESOURCE_LIST pResourceList; |
+ PCM_FULL_RESOURCE_DESCRIPTOR pFullDescriptor; |
+ PCM_PARTIAL_RESOURCE_LIST pPartialList; |
+ PCM_PARTIAL_RESOURCE_DESCRIPTOR pPartialDescriptor; |
+ int i; |
+ int bug = 0; |
+ |
+ KdPrint(("PCICC32ExtractResources()\n")); |
+ |
+ pResourceList = pList; |
+ pFullDescriptor = pResourceList->List; |
+ pPartialList = &pFullDescriptor->PartialResourceList; |
+ |
+ for (i=0; i<(int)pPartialList->Count; i++) |
+ { |
+ pPartialDescriptor = &pPartialList->PartialDescriptors[i]; |
+ switch (pPartialDescriptor->Type) |
+ { |
+ case CmResourceTypeInterrupt: |
+ pciada->Irql = (KIRQL)pPartialDescriptor->u.Interrupt.Level; |
+ pciada->Vector = pPartialDescriptor->u.Interrupt.Vector; |
+ pciada->Affinity = pPartialDescriptor->u.Interrupt.Affinity; |
+ |
+ KdPrint(("Irq : Irql: %d, Vector: %d, Affinity: %d\n", |
+ pciada->Irql, pciada->Vector, pciada->Affinity)); |
+ break; |
+ case CmResourceTypeDma: |
+ KdPrint(("Dma : \n")); |
+ break; |
+ case CmResourceTypePort: |
+ |
+ KdPrint(("Port : 0x%p\n", pPartialDescriptor->u.Port.Start)); |
+ break; |
+ case CmResourceTypeMemory: |
+ // special handling of PLXBUG here because of WIN2000 |
+ // WIN2000 doesn't recognize late address changes |
+ if (!bug) |
+ { |
+ if (i == 0) |
+ { |
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start; |
+ |
+ if (pciada->pvPhysLcr.LowPart & 0x80) |
+ bug = 1; |
+ } |
+ } |
+ else |
+ { |
+ if (i == 3) |
+ pciada->pvPhysLcr = pPartialDescriptor->u.Memory.Start; |
+ } |
+ |
+ if (i == 2) |
+ pciada->pvPhysIfr = pPartialDescriptor->u.Memory.Start; |
+ |
+ KdPrint(("Memory : 0x%p\n", (PUCHAR)pPartialDescriptor->u.Memory.Start.LowPart)); |
+ break; |
+ } |
+ } |
+ |
+ if (pciada->Irql == 0) |
+ return STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT; |
+ |
+ KdPrint(("PCICC32ExtractResources() OK.\n")); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj) |
+{ |
+ PCM_RESOURCE_LIST pList = NULL; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_Obj->DeviceExtension); |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ UNICODE_STRING DriverClassName; |
+ |
+ KdPrint(("PCICC32ReserveResources()\n")); |
+ |
+ // prepare resource claiming |
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32"); |
+ |
+ // cycle through all busses and slots assigned to PCIADAs |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ result = HalAssignSlotResources(NULL, &DriverClassName, device_Obj->DriverObject, device_Obj, |
+ PCIBus, pciada->Bus, pciada->Slot.u.AsULONG, &pList); |
+ |
+ if (result != STATUS_SUCCESS) |
+ break; |
+ |
+ result = PCICC32ExtractResources(pciada, pList); |
+ |
+ if (result != STATUS_SUCCESS) |
+ break; |
+ } |
+ |
+ // its my part to free allocated resources |
+ ExFreePool(pList); |
+ |
+ KdPrint(("PCICC32ReserveResources(0x%08x)\n", result)); |
+ |
+ return result; |
+}; |
+ |
+//------------------------------------------------------------------------ |
+// free resources from PCIADAs |
+// |
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj) |
+{ |
+ CM_RESOURCE_LIST ResList; |
+ BOOLEAN bConflict; |
+ UNICODE_STRING DriverClassName; |
+ |
+ KdPrint(("PCICC32FreeResources()\n")); |
+ |
+ RtlInitUnicodeString(&DriverClassName, L"PCICC32"); |
+ |
+ ResList.Count = 0; |
+ |
+ IoReportResourceUsage(&DriverClassName, device_Obj->DriverObject, |
+ &ResList, sizeof(ResList), device_Obj, |
+ NULL, 0, FALSE, &bConflict); |
+ return STATUS_SUCCESS; |
+}; |
+ |
+ |
+//------------------------------------------------------------------------ |
+// translate memory resources to neutral for PCIADAs |
+// |
+NTSTATUS PCICC32TranslateBusAddresses(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ int nPCIADAs = ((DEVICE_EXT*)(device_Obj->DeviceExtension))->nPCIADAs; |
+ ULONG memType0, memType2; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("TranslateBusAddresseses()\n")); |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i]; |
+ |
+ memType0 = memType2 = 0; |
+ |
+ if (!(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysLcr, &memType0, |
+ &pciada->pvPhysLcr)) || |
+ !(HalTranslateBusAddress(PCIBus, pciada->Bus, pciada->pvPhysIfr, &memType2, |
+ &pciada->pvPhysIfr))) |
+ { |
+ result = STATUS_UNSUCCESSFUL; |
+ break; |
+ } |
+ |
+ if ((memType0) || (memType2)) |
+ { |
+ result = STATUS_UNSUCCESSFUL; |
+ break; |
+ } |
+ } |
+ return result; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// map address spaces to virtual addresses |
+// |
+NTSTATUS PCICC32MapIOspaces(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)device_Obj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32MapIOspaces()\n")); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ if ((pciada->pvVirtLcr = MmMapIoSpace(pciada->pvPhysLcr, LCR_SPACE, FALSE)) == NULL) |
+ return STATUS_UNSUCCESSFUL; |
+ if ((pciada->pvVirtIfr = MmMapIoSpace(pciada->pvPhysIfr, IFR_SPACE, FALSE)) == NULL) |
+ return STATUS_UNSUCCESSFUL; |
+ |
+ KdPrint(("PCIADA %d: LCR 0x%08x IFR 0x%08x\n", i, pciada->pvVirtLcr, pciada->pvVirtIfr)); |
+ |
+ pciada->pwIntCSR = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x4C); |
+ pciada->pwCntrl = (PUSHORT)((PUCHAR)pciada->pvVirtLcr + 0x50); |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// initializes and registers a DPC routine for each pciada |
+// |
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object) |
+{ |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)(device_object->DeviceExtension); |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("InitializeCustomDPCObject()\n")); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ KeInitializeDpc(&pciada->kDPCobj, fMyDefferedRoutine, (PVOID)device_object); |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// init structures a.s.o. |
+// |
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj) |
+{ |
+ int i; |
+ PCIADA *pciada; |
+ |
+ for (i = 0; i < PCICC32_MAX_PCIADA; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(device_Obj->DeviceExtension))->pciada[i]; |
+ |
+ pciada->pvPhysLcr.QuadPart = pciada->pvPhysIfr.QuadPart = 0; |
+ pciada->pvVirtLcr = pciada->pvVirtIfr = NULL; |
+ |
+ pciada->bConnected = FALSE; // connection still not verified |
+ pciada->wModuleNumber = 0xFFFF; |
+ pciada->wFPGAVersion = 0xFFFF; |
+ pciada->wModuleType = 1; // always CC32 |
+ |
+ pciada->InterruptObject = NULL; |
+ pciada->Irql = 0; |
+ pciada->Vector = 0; |
+ pciada->Affinity = 0; |
+ |
+ pciada->dwLinkCount = 0; |
+ |
+ pciada->dwIrqStatus = 0; |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ } |
+ |
+ // no CC32 associated to any PCIADA |
+ for (i = 0; i < PCICC32_MAX_CC32; i++) |
+ ((DEVICE_EXT*)(device_Obj->DeviceExtension))->cc32[i] = NULL; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the ultimate starting point of a driver |
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath) |
+{ |
+ int i; |
+ PDEVICE_OBJECT device_object; // pointer to the device object |
+ UNICODE_STRING device_name; |
+ UNICODE_STRING symbol_name; |
+ NTSTATUS result = STATUS_SUCCESS; |
+ PCIADA *pciada; // pointer to a PCIADA |
+ int nPCIADAs; // count of PCIADAs |
+ DEVICE_EXT *DeviceExtension = NULL; |
+ |
+ KdPrint(("DriverEntry() ----%d.%d-------------------------\n", (DRIVER_VERSION >> 16) & 0xFFFF, DRIVER_VERSION & 0xFFFF)); |
+ |
+ driverObj->DriverUnload = PCICC32Unload; |
+ driverObj->MajorFunction[IRP_MJ_CREATE] = PCICC32Open; |
+ driverObj->MajorFunction[IRP_MJ_CLOSE] = PCICC32Close; |
+ driverObj->MajorFunction[IRP_MJ_READ] = PCICC32Read; |
+ driverObj->MajorFunction[IRP_MJ_WRITE] = PCICC32Write; |
+ driverObj->MajorFunction[IRP_MJ_DEVICE_CONTROL] = PCICC32DeviceControl; |
+ driverObj->MajorFunction[IRP_MJ_SHUTDOWN] = PCICC32Shutdown; |
+ |
+ RtlInitUnicodeString(&device_name, L"\\Device\\CC32"); |
+ |
+ /* DeviceObject durch IO-Manager erzeugen */ |
+ result = IoCreateDevice( driverObj, // DriverObject received by the DriverEntry Call |
+ sizeof(DEVICE_EXT), // required Memory for the DeviceExtension |
+ &device_name, // Name of the device in the device-Directory |
+ FILE_DEVICE_UNKNOWN, // Device-ID |
+ 0, // Device-Characteristics normal 0 |
+ FALSE, // TRUE : one Thread can open the driver |
+ &device_object); // DeviceObject returned from the IO-Manager |
+ |
+ // defines how the data are handled between user / kernel Adress-Space |
+ device_object->Flags |= DO_DIRECT_IO; |
+ |
+ // anounce driver as symbolic device --------------------------------- |
+ if (result == STATUS_SUCCESS) |
+ { |
+ /* now the symbolic Link is created. If there is no S.L. a program cannot connect to the driver */ |
+ RtlInitUnicodeString(&symbol_name, DOS_DEVICE_NAME); |
+ result = IoCreateSymbolicLink(&symbol_name,&device_name); |
+ if (result != STATUS_SUCCESS) |
+ { |
+ IoDeleteDevice(device_object); |
+ return result; |
+ } |
+ } |
+ else |
+ return result; |
+ |
+ DeviceExtension = (DEVICE_EXT*)device_object->DeviceExtension; |
+ |
+ DeviceExtension->actualIrp = NULL; |
+ DeviceExtension->nInitState = 0; |
+ |
+ // init pciada structures ------------------------------------ |
+ PCICC32SoftInit(device_object); |
+ |
+ // search for PCIADAs ---------------------------------------- |
+ result = SearchDevices(device_object); |
+ nPCIADAs = DeviceExtension->nPCIADAs; |
+ |
+ if ((result != STATUS_SUCCESS) || !(nPCIADAs)) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ |
+ // request exclusive ownership of .. --------------------------------- |
+ if ((result = PCICC32ReserveResources(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return result; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // fix PLX9050 Bug ------------------------------------------- |
+ if ((result = PLX9050BugFix(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return result; |
+ } |
+ |
+ // translate BUS relative addresses ---------------------------------- |
+ if ((result = PCICC32TranslateBusAddresses(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // translate Interrupt Resources used -------------------------------- |
+ if ((result = PCICC32TranslateInterrupt(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // map address spaces to virtual addresses --------------------------- |
+ if ((result = PCICC32MapIOspaces(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // initialze my custom DPC objects ----------------------------------- |
+ if ((result = InitializeCustomDPCObjects(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return result; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // disable all interrupts -------------------------------------------- |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &DeviceExtension->pciada[i]; |
+ |
+ globalInterruptDisable(pciada); |
+ } |
+ |
+ // connect interrupts to service routines ---------------------------- |
+ if ((result = PCICC32ConnectInterrupt(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ else |
+ DeviceExtension->nInitState++; |
+ |
+ // scan all connected CC32 for info and later use ------------------- |
+ if ((result = PCICC32ScanCC32(device_object)) != STATUS_SUCCESS) |
+ { |
+ PCICC32Unload(driverObj); |
+ return STATUS_DEVICE_DOES_NOT_EXIST; |
+ } |
+ |
+ device_object->Flags &= ~DO_DEVICE_INITIALIZING; |
+ |
+ KdPrint(("DriverEntry() OK.\n")); |
+ |
+ return result; |
+} |
+ |
Index: wiener_pcicc32/SOURCE/SOURCES |
=================================================================== |
--- wiener_pcicc32/SOURCE/SOURCES (nonexistent) |
+++ wiener_pcicc32/SOURCE/SOURCES (revision 176) |
@@ -0,0 +1,14 @@ |
+TARGETNAME=pcicc32 |
+ |
+#VisualStudio 5 |
+#TARGETPATH=d:\Programme\DevStudio\MyProjects\pcicc32 |
+#VisualStudio 6 |
+#TARGETPATH=d:\Programme\VisualStudio\MyProjects\pcicc32 |
+#new installation |
+TARGETPATH=d:\work\MyProjects\pcicc32 |
+ |
+TARGETTYPE=DRIVER |
+TARGETLIBS= |
+ |
+INCLUDES=$(BASEDIR)\inc |
+SOURCES=pcicc32_drv.c pcicc32_v.c pcicc32_io.c pcicc32_i.c |
Index: wiener_pcicc32/SOURCE/pcicc32_i.h |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_i.h (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_i.h (revision 176) |
@@ -0,0 +1,55 @@ |
+#ifndef __PCICC33_I_H__ |
+#define __PCICC32_I_H__ |
+ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------- |
+// the header file to pcicc32_i.c - all around interrupt handling |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 15.06.1999 |
+// added globalInterruptEnabledStatus() AR 24.02.2001 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <pcicc32_drv.h> |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+ |
+//------------------------------------------------------------------------ |
+// PROTOTYPES |
+// |
+void globalInterruptEnable(PCIADA *pciada); |
+void globalInterruptDisable(PCIADA *pciada); |
+unsigned short globalInterruptEnabledStatus(PCIADA *pciada); |
+NTSTATUS PCICC32TranslateInterrupt(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32ConnectInterrupt(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32DisConnectInterrupt(PDEVICE_OBJECT device_Obj); |
+ |
+ |
+/* release all this procedures after init of the driver */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (init, PCICC32ConnectInterrupt) |
+#pragma alloc_text (init, PCICC32TranslateInterrupt) |
+#endif |
+ |
+/* put all this procedures in the paged memory-pool, all called at passiv Level */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (page, PCICC32DisConnectInterrupt) |
+#endif |
+ |
+#endif //__PCICC32_I_H__ |
Index: wiener_pcicc32/SOURCE/pcicc32_local.h |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_local.h (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_local.h (revision 176) |
@@ -0,0 +1,36 @@ |
+#ifndef _PCICC32_LOCAL_H__ |
+#define _PCICC32_LOCAL_H__ |
+//----------------------------------------------------------------------- |
+// Address definitions and constants for PCIADA of PCICC32 interface |
+// designed by A.Rausch |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// first parts derived from PCIVME AR 10.03.2000 |
+// added initialisation for AUTOREAD AR 17.03.2001 |
+// |
+ |
+/*-----------------------------------------------------------------------*/ |
+/* all addresses relative to PCI-Window */ |
+ |
+/*--------- some masks in CSR -------------------------------------------*/ |
+#define MASK_MODNR (WORD)0x00F0 /* the mask to get the module No */ |
+#define MASK_FPGA (WORD)0x0F00 /* the mask to get the FPGA rev. */ |
+#define MASK_MODTYPE (WORD)0xF000 /* the mask to get type of module*/ |
+ |
+/*---------- release und inhibit into 0x50 of PLX ------------------------*/ |
+#define RELEASE_CC32 (WORD)0x4186 /* write this to release access ..*/ |
+#define INHIBIT_CC32 (WORD)0x4086 /* write this to inhibit access ..*/ |
+#define ENABLE_PCIADA_IRQS (WORD)0x0049 /* enable PCIADA IRQs */ |
+#define DISABLE_PCIADA_IRQS (WORD)0x0009 /* disable PCIADA IRQs */ |
+ |
+#endif // _PCICC32_LOCAL_H__ |
Index: wiener_pcicc32/SOURCE/Debug/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/SOURCE/Debug/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/SOURCE/Debug/pcicc32.inf (revision 176) |
@@ -0,0 +1,104 @@ |
+;=========================================================== |
+; File : pcicc32.inf |
+; |
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany |
+; |
+;=========================================================== |
+ |
+ |
+[Version] |
+Signature = $CHICAGO$ |
+Provider = %ARW% |
+Class = %PCICC32_class_name% |
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1} |
+DriverVer = 06/18/2002,2.3.0.4 |
+ |
+ |
+;----------------------------------------------------------- |
+; Driver information |
+;----------------------------------------------------------- |
+ |
+[Manufacturer] |
+%ARW_MFG% = ARW.Mfg |
+ |
+[ARW.Mfg] |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02 |
+ |
+[ClassInstall32] |
+AddReg=PCICC32_class_addreg |
+ |
+[PCICC32_class_addreg] |
+HKR,,,,%PCICC32_class_name% |
+HKR,,Icon,0,0 |
+ |
+ |
+;----------------------------------------------------------- |
+; General installation section |
+;----------------------------------------------------------- |
+ |
+[CopyFiles_9050] |
+pcicc32.sys,,,2 |
+ |
+ |
+;----------------------------------------------------------- |
+; Windows 2000 installation section |
+;----------------------------------------------------------- |
+ |
+[Install_PCICC32.NT] |
+AddReg = AddRegistry_NT_9050 |
+CopyFiles = CopyFiles_9050 |
+ |
+ |
+[Install_PCICC32.NT.Services] |
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050 |
+ |
+ |
+[AddRegistry_NT_9050] |
+ |
+ |
+[Service_Inst_9050] |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE |
+ServiceBinary = %12%\pcicc32.sys |
+ |
+ |
+;----------------------------------------------------------- |
+; Event log registry entries |
+;----------------------------------------------------------- |
+ |
+[EventLog_Inst_9050] |
+AddReg = EventLog_AddReg_9050 |
+ |
+ |
+[EventLog_AddReg_9050] |
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys" |
+HKR,,TypesSupported,0x00010001,7 |
+ |
+ |
+;----------------------------------------------------------- |
+; Source file information |
+;----------------------------------------------------------- |
+ |
+[SourceDisksNames.x86] |
+1 = %InstallDisk%,"",1 |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 ; drivers |
+ |
+ |
+;----------------------------------------------------------- |
+; String information |
+;----------------------------------------------------------- |
+ |
+[Strings] |
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk" |
+ARW_MFG = "ARW Elektronik, Germany" |
+ARW = "ARW Elektronik, Germany" |
+PCICC32_class_name = "ARW BUS Interfaces" |
Index: wiener_pcicc32/SOURCE/Debug/pcicc32.SYS |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/SOURCE/Debug/pcicc32.SYS |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/SOURCE/pcicc32.ncb |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/SOURCE/pcicc32.ncb |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/SOURCE/pcicc32.opt |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/SOURCE/pcicc32.opt |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/SOURCE/pcicc32_drv.h |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_drv.h (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_drv.h (revision 176) |
@@ -0,0 +1,172 @@ |
+#ifndef __PCICC32_DRV_H__ |
+#define __PCICC32_DRV_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------- |
+// the main header file of the driver |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistribute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 10.03.2000 |
+// dwIrqStatus added, version 2 AR 24.02.2001 |
+// with AUTOREAD, version 2.01 AR 17.03.2001 |
+// with support for LCR_READ, version 2.02 AR 31.03.2001 |
+// changed to VisualStudio 6.0 AR 30.09.2001 |
+// compiled with DDK 1/2001 AR 20.11.2001 |
+// removed alloc_text cause of WIN2000 problems AR 25.11.2001 |
+// version 2.7 released AR 25.11.2001 |
+// version 2.8 still experimental AR 26.05.2002 |
+// version 2.16 eliminates PLXBUG in WIN2000 AR 05.06.2002 |
+// version 2.17 added KeSynchronizeExecution AR 16.06.2002 |
+// version 2.18 improved snchronisation AR 18.06.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+#define DRIVER_VERSION ((2 << 16) | 18) // the only place for version info |
+#define DRIVER_VARIANT 0 // mark customisation here |
+//------------------------------------------------------------------------- |
+ |
+//------------------------------------------------------------------------- |
+// precautions for debug compile |
+#define PCICC32_DEBUG |
+ |
+#ifndef PCICC32_DEBUG |
+#ifdef KdPrint |
+#undef KdPrint |
+#define KdPrint(x) /* x */ |
+#endif |
+#endif |
+//------------------------------------------------------------------------- |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#define PCI_MAX_BUSES 4 // buses to search for pciada |
+ |
+#define PCICC32_MAX_PCIADA 4 // maximum of PCIADA to search for |
+#define PCICC32_MAX_CC32 16 // maximum number of CC32 modules connected |
+ |
+//------------------------------------------------------------------------- |
+// DEFINES |
+// |
+#define PCICC32_VENDOR_ID 0x10B5 |
+#define PCICC32_DEVICE_ID 0x2258 |
+#define PCICC32_SUBSYS_ID 0x2258 |
+#define PCICC32_SUBVEN_ID 0x9050 |
+ |
+#define LCR_SPACE 256 // space in bytes of LCR |
+#define IFR_SPACE 32768 // space in bytes of IFR |
+ |
+//---------------------------------------------------------------------------------------- |
+// macros for simple address calculation |
+// |
+#define _WORD_NAF(base, n, a, f) ((USHORT *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2))) |
+#define _DWORD_NAF(base, n, a, f) ((ULONG *)((ULONG)base + (n << 10) + (a << 6) + ((f & 0xf) << 2))) |
+ |
+//------------------------------------------------------------------------- |
+// TYPEDEFS |
+// |
+typedef struct _FILE_OBJ |
+{ |
+ USHORT uwAssociatedCC32; // which CC32 number it belongs |
+ USHORT wAccessType; // WORD or LONGWORD |
+ USHORT wBlockTransfer; // != 0 for block transfer |
+ void (*fRead)(void *to, void *from); // resulting read |
+ void (*fWrite)(void *to, void *from); // resulting write |
+ PIRP blockingIrp; // if != 0 then a blocking IRP is waiting |
+} FILE_OBJ, *PFILE_OBJ; |
+ |
+typedef struct |
+{ |
+ int Bus; // bus number of pciada |
+ PCI_SLOT_NUMBER Slot; // slot + function number encoded |
+ PCI_COMMON_CONFIG PCIDevice; // content of pcr, only for direct HW related functions |
+ |
+ PHYSICAL_ADDRESS pvPhysLcr; // local config register, unmapped and mapped |
+ PHYSICAL_ADDRESS pvPhysIfr; // interface registers, unmapped and mapped |
+ PVOID pvVirtLcr; // virtual LCR space |
+ PVOID pvVirtIfr; // virtual IFR space |
+ |
+ PKINTERRUPT InterruptObject; // points to the associated interrupt obj |
+ KIRQL Irql; // virtual Irq level, unmapped and mapped |
+ ULONG Vector; // mapped system vector, unmapped and mapped |
+ KAFFINITY Affinity; // which processor uses this irq, unmapped and mapped |
+ |
+ PUSHORT pwCntrl; // LCR Cntrl Offset @ LCR + 0x50 |
+ PUSHORT pwIntCSR; // LCR IntCSR Offset @ LCR + 0x4C |
+ |
+ ULONG dwLinkCount; // how often this interface is requested |
+ BOOLEAN bConnected; // CC32 is connected and powered |
+ USHORT wModuleNumber; // Number (Jumper) of CC32 |
+ USHORT wFPGAVersion; // Revision of (CC32) FPGA |
+ USHORT wModuleType; // Type of (CC32) module |
+ |
+ KDPC kDPCobj; // custom DPC object for irq tunneling |
+ |
+ ULONG dwIrqStatus; // the last unrequested status of a interrupt |
+ PIRP *pBlockingIrp; // points to File or == NULL when no blocking in progress |
+ |
+ FILE_OBJ *pIrqControlFile; // this file controls the global enable / disable IRQ |
+} PCIADA; |
+ |
+typedef struct _DEVICE_EXT |
+{ |
+ PDEVICE_OBJECT DeviceObject; // points to myself and carries the pointer to DriverObject |
+ PIRP actualIrp; // points to .. |
+ |
+ int nPCIADAs; // how many PCIADAs are found |
+ |
+ PCIADA pciada[PCICC32_MAX_PCIADA]; // for each PCIADA a descriptor |
+ |
+ PCIADA *cc32[PCICC32_MAX_CC32]; // points to PCIADA to which it belongs |
+ |
+ int nInitState; // tracks the state of initialisation |
+} DEVICE_EXT; |
+ |
+ |
+// Prototypes to support following pragmas |
+NTSTATUS DriverEntry(PDRIVER_OBJECT driverObj, PUNICODE_STRING regPath); |
+NTSTATUS PCICC32Open(PDEVICE_OBJECT deviceObj, PIRP irp); |
+NTSTATUS PCICC32Close(PDEVICE_OBJECT deviceObj, PIRP irp); |
+VOID PCICC32Unload(PDRIVER_OBJECT driverObj); |
+NTSTATUS SearchDevices(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PLX9050BugFix(PDEVICE_OBJECT deviceObj); |
+NTSTATUS PCICC32ReserveResources(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32ExtractResources(PCIADA *pciada, PCM_RESOURCE_LIST pList); |
+NTSTATUS PCICC32FreeResources(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32TranslateBusAddress(PDEVICE_OBJECT device_Obj); |
+NTSTATUS PCICC32MapIOspace(PDEVICE_OBJECT device_object); |
+VOID PCICC32SoftInit(PDEVICE_OBJECT device_Obj); |
+NTSTATUS InitializeCustomDPCObjects(PDEVICE_OBJECT device_object); |
+ |
+/* release all this procedures after init of the driver */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (init, DriverEntry) |
+#pragma alloc_text (init, SearchDevices) |
+#pragma alloc_text (init, PLX9050BugFix) |
+#pragma alloc_text (init, PCICC32ReserveResources) |
+#pragma alloc_text (init, PCICC32ExtractResources) |
+#pragma alloc_text (init, PCICC32TranslateBusAddress) |
+#pragma alloc_text (init, PCICC32MapIOspace) |
+#pragma alloc_text (init, PCICC32SoftInit) |
+#pragma alloc_text (init, InitializeCustomDPCObjects) |
+#endif |
+ |
+/* put all this procedures in the paged memory-pool, all called at passiv Level */ |
+#ifdef ALLOC_PRAGMA |
+#pragma alloc_text (page, PCICC32Open) |
+#pragma alloc_text (page, PCICC32Close) |
+#pragma alloc_text (page, PCICC32Unload) |
+#pragma alloc_text (page, PCICC32FreeResources) |
+#endif |
+ |
+#endif // __PCICC32_DRV_H__ |
+ |
Index: wiener_pcicc32/SOURCE/pcicc32_v.c |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_v.c (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_v.c (revision 176) |
@@ -0,0 +1,196 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany -------- |
+// all around recognition and basic services of VMEMM |
+// |
+// (c) 2000-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started from pcivme_v.c AR 02.07.2000 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <pcicc32_drv.h> |
+#include <pcicc32_v.h> |
+#include <pcicc32_local.h> // all around the pciada interface |
+ |
+#ifndef WORD // don't touch include files of WIN95 driver |
+#define WORD USHORT |
+#endif |
+ |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+//------------------------------------------------------------------------ |
+// PROTOTYPES |
+// |
+ |
+//------------------------------------------------------------------------ |
+// GLOBALS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS |
+// |
+ |
+//------------------------------------------------------------------------ |
+// test connection to VMEMM devices without disturbing anything |
+// |
+//--------------------------------------------------------------------- |
+// checks a connection with a small test pattern |
+// |
+NTSTATUS TestConnection(PCIADA *pciada) |
+{ |
+ USHORT *pwADRH = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 1, 0); |
+ USHORT *pwADRL = (USHORT *)_WORD_NAF(pciada->pvVirtIfr, 30, 0, 0); |
+ int i; |
+ USHORT wRet; |
+ USHORT wADRHContent; |
+ USHORT wADRLContent; |
+ |
+ |
+ KdPrint(("TestConnection()\n")); |
+ |
+ wADRHContent = READ_REGISTER_USHORT(pwADRH); // save previous content |
+ wADRLContent = READ_REGISTER_USHORT(pwADRL); |
+ |
+ for (i = 0; i < 10000; i++) |
+ { |
+ WRITE_REGISTER_USHORT(pwADRH, 0x5555); |
+ WRITE_REGISTER_USHORT(pwADRL, 0xAAAA); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0x5555) return STATUS_UNSUCCESSFUL; |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, 0xAAAA); |
+ WRITE_REGISTER_USHORT(pwADRL, 0x5555); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0xAAAA) return STATUS_UNSUCCESSFUL; |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, 0x0000); |
+ WRITE_REGISTER_USHORT(pwADRL, 0xFFFF); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0x0000) return STATUS_UNSUCCESSFUL; |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, 0xFFFF); |
+ WRITE_REGISTER_USHORT(pwADRL, 0x0000); |
+ wRet = READ_REGISTER_USHORT(pwADRH); |
+ if (wRet != 0xFFFF) return STATUS_UNSUCCESSFUL; |
+ } |
+ |
+ WRITE_REGISTER_USHORT(pwADRH, wADRHContent); // restore previous content |
+ WRITE_REGISTER_USHORT(pwADRL, wADRLContent); |
+ |
+ KdPrint(("TestConnection() OK.\n")); |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// scan VMEMM devices without disturbing anything |
+// |
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj) |
+{ |
+ int i; |
+ int nPCIADAs = ((DEVICE_EXT*)(deviceObj->DeviceExtension))->nPCIADAs; |
+ PCIADA *pciada; |
+ USHORT wCntrl; |
+ USHORT wIntCSR; |
+ USHORT wModuleStatus; |
+ |
+ KdPrint(("PCICC32ScanCC32(nPCIADAs = %d)\n", nPCIADAs)); |
+ |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &((DEVICE_EXT*)(deviceObj->DeviceExtension))->pciada[i]; |
+ |
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); // save it for later use |
+ wIntCSR = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ |
+ KdPrint(("wCntrl = 0x%04x, wIntCSR = 0x%04x\n", wCntrl, wIntCSR)); |
+ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); // switch off before open |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS); |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32); // open it for test |
+ |
+ if (wCntrl & 0x0800) |
+ { |
+ if (TestConnection(pciada) == STATUS_SUCCESS) |
+ { |
+ wModuleStatus = READ_REGISTER_USHORT(pciada->pvVirtIfr); |
+ |
+ pciada->bConnected = TRUE; |
+ |
+ // interpret the content |
+ pciada->wModuleNumber = (wModuleStatus & MASK_MODNR) >> 4; |
+ pciada->wFPGAVersion = (wModuleStatus & MASK_FPGA) >> 8; |
+ pciada->wModuleType = (wModuleStatus & MASK_MODTYPE) >> 12; |
+ |
+ KdPrint(("PCIADA %d <-> CC32 %d\n", i, pciada->wModuleNumber)); |
+ } |
+ else |
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out |
+ } |
+ else |
+ pciada->wModuleNumber = 0xFFFF; // not recognized, take it out |
+ |
+ if (pciada->wModuleNumber != 0xFFFF) |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); // restore state |
+ else |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); |
+ |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, wIntCSR); // restore interrupt masks |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// deinit all PCIADAs in a passive state |
+// |
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj) |
+{ |
+ int i; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT*)deviceObj->DeviceExtension; |
+ int nPCIADAs = pDevExt->nPCIADAs; |
+ PCIADA *pciada; |
+ |
+ KdPrint(("PCICC32DeInitPCIADAs()\n")); |
+ |
+ // dis connect the interrupts to service routines |
+ for (i = 0; i < nPCIADAs; i++) |
+ { |
+ pciada = &pDevExt->pciada[i]; |
+ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); |
+ // this is the same as globalInterruptDisable(pciada); |
+ WRITE_REGISTER_USHORT(pciada->pwIntCSR, DISABLE_PCIADA_IRQS); |
+ } |
+ |
+ return STATUS_SUCCESS; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// switches pciada on or off |
+// |
+void enableCC32(PCIADA *pciada) |
+{ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, RELEASE_CC32); |
+} |
+ |
+void disableCC32(PCIADA *pciada) |
+{ |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, INHIBIT_CC32); |
+} |
Index: wiener_pcicc32/SOURCE/pcicc32_io.c |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_io.c (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_io.c (revision 176) |
@@ -0,0 +1,757 @@ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany --------- |
+// the ioctl functions |
+// |
+// (c) 1999-2002 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 03.07.1999 |
+// first release 1.0 AR 17.10.1999 |
+// added access to PLX LC-Register AR 30.03.2001 |
+// changed making procedure (only VCC > 6.0) AR 30.05.2002 |
+// multiple interrupt enable allowed AR 01.06.2002 |
+// added KeSynchronizeExecution for interrupt sync AR 16.06.2002 |
+// extended ioctl_irq_status_kernel AR 18.06.2002 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+#include <ntddk.h> |
+#include <devioctl.h> |
+#include <pcicc32_drv.h> |
+#include <pcicc32.h> |
+#include <pcicc32_v.h> |
+#include <pcicc32_io.h> |
+#include <pcicc32_local.h> |
+#include <pcicc32_i.h> |
+ |
+//------------------------------------------------------------------------ |
+// DEFINES |
+// |
+ |
+// buffers usage must match the corresponding ioctl code! |
+#define SET_BUFFERS_METHOD_OUT_DIRECT \ |
+{\ |
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\ |
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\ |
+ pInputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\ |
+ pOutputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\ |
+} |
+ |
+#define SET_BUFFERS_METHOD_IN_DIRECT \ |
+{\ |
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\ |
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\ |
+ pInputBuffer = ((void *)(MmGetSystemAddressForMdl(Irp->MdlAddress)));\ |
+ pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\ |
+} |
+ |
+#define SET_BUFFERS_METHOD_BUFFERED \ |
+{\ |
+ InputLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;\ |
+ OutputLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;\ |
+ pInputBuffer = pOutputBuffer = ((void *)(Irp->AssociatedIrp.SystemBuffer));\ |
+} |
+ |
+#define COMPLETE_REQUEST \ |
+{\ |
+ if (Status != STATUS_PENDING)\ |
+ {\ |
+ Irp->IoStatus.Status = Status; \ |
+ Irp->IoStatus.Information = irp_info; \ |
+ IoCompleteRequest(Irp,IO_NO_INCREMENT); \ |
+ }\ |
+} |
+ |
+// compatibilty issues to WIN95 driver calls |
+#ifndef WORD |
+#define WORD USHORT |
+#endif |
+ |
+#ifndef DWORD |
+#define DWORD ULONG |
+#endif |
+ |
+#ifndef BYTE |
+#define BYTE UCHAR |
+#endif |
+ |
+#ifndef BOOL |
+#define BOOL BOOLEAN |
+#endif |
+ |
+ |
+//------------------------------------------------------------------------- |
+// TYPEDEFS |
+// |
+typedef struct |
+{ |
+ FILE_OBJ *file_obj; |
+ PCIADA *pciada; |
+ PCICC32_IRQ_RESPONSE *pIrqStatus; |
+ PIRP *Irp; |
+ ULONG *irp_info; |
+ NTSTATUS *Status; |
+} IOCTL_IRQ_STATUS_CONTEXT; |
+ |
+//-------------------------------------------------------------------------- |
+// LOCAL FUNCTIONS |
+// |
+ |
+//-------------------------------------------------------------------------- |
+// fast read or write functions - portable - |
+static void readWord(void *to, void *from) |
+{ |
+ *(PUSHORT)to = READ_REGISTER_USHORT((PUSHORT)from); |
+} |
+ |
+static void readLong(void *to, void *from) |
+{ |
+ *(PULONG)to = READ_REGISTER_ULONG((PULONG)from); |
+} |
+ |
+static void writeWord(void *to, void *from) |
+{ |
+ WRITE_REGISTER_USHORT((PUSHORT)to, *(PUSHORT)from); |
+} |
+ |
+static void writeLong(void *to, void *from) |
+{ |
+ WRITE_REGISTER_ULONG((PULONG)to, *(PULONG)from); |
+} |
+ |
+//------------------------------------------------------------------------ |
+// init the interface with build in and user supplied constants |
+static BOOLEAN InitInterface(PVOID pvLcr, PVOID pvIfr) |
+{ |
+ return TRUE; |
+} |
+ |
+// deinit the interface with user supplied and build in constants |
+static BOOLEAN DeInitInterface(PVOID pvLcr, PVOID pvIfr) |
+{ |
+ return TRUE; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the default cancel routine for an queued Irp |
+// |
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp) |
+{ |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[file_obj->uwAssociatedCC32]; |
+ |
+ if (pciada->pBlockingIrp == (PIRP *)NULL) |
+ { |
+ IoReleaseCancelSpinLock(Irp->CancelIrql); |
+ KdPrint(("Nothing to do: CancelRequest(0x%08x)\n", Irp)); |
+ return; |
+ } |
+ else |
+ { |
+ // release control of interrupt |
+ if (pciada->pIrqControlFile == file_obj) |
+ { |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ globalInterruptDisable(pciada); |
+ } |
+ |
+ // cancel any blocking Irp origin from this file |
+ if (file_obj->blockingIrp != (PIRP)NULL) |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ |
+ if (pciada->pBlockingIrp == &file_obj->blockingIrp) |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ |
+ IoReleaseCancelSpinLock(Irp->CancelIrql); |
+ |
+ KdPrint(("Done: CancelRequest(0x%08x)\n", Irp)); |
+ |
+ Irp->IoStatus.Status = STATUS_CANCELLED; |
+ Irp->IoStatus.Information = 0; |
+ |
+ IoCompleteRequest(Irp, IO_NO_INCREMENT); |
+ } |
+} |
+ |
+//------------------------------------------------------------------------ |
+// the custom deffered routine to finish blocking io on irq_block |
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID pdwIrqStatus) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ PIRP Irp = (PIRP)NULL; |
+ PCIADA *pciada = (PCIADA *)pvPciada; |
+ KIRQL oldIrqlCancel; |
+ |
+ KdPrint(("fMyDefferedRoutine(0x%08x)\n", pciada->dwIrqStatus)); |
+ |
+ // beware off damage due to intercept at cancel of thread |
+ IoAcquireCancelSpinLock(&oldIrqlCancel); |
+ |
+ // get my associated packet |
+ if (pciada->pBlockingIrp != (PIRP *)NULL) |
+ { |
+ Irp = *pciada->pBlockingIrp; |
+ |
+ if (Irp != (PIRP)NULL) // then a blcoking Irp is waiting |
+ { |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer); |
+ |
+ // fill the response structure |
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus; |
+ pciada->dwIrqStatus = 0; // to prevent a following direct return |
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32; |
+ |
+ // release the cancel routine from this Irp |
+ IoSetCancelRoutine(Irp, NULL); |
+ |
+ COMPLETE_REQUEST; |
+ |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ } |
+ |
+ pciada->pBlockingIrp = (PIRP *)NULL; |
+ } |
+ |
+ // release the spin locks |
+ IoReleaseCancelSpinLock(oldIrqlCancel); |
+} |
+ |
+//------------------------------------------------------------------------ |
+// if the interrupt is disabled for a blocking path, cancel the block |
+static void ReleaseBlockingIrp(PDEVICE_OBJECT device_Obj, PCIADA *pciada, PFILE_OBJ pFile_obj) |
+{ |
+ NTSTATUS Status = STATUS_CANCELLED; |
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ PIRP Irp = (PIRP)NULL; |
+ KIRQL oldIrqlCancel; |
+ |
+ KdPrint(("ReleaseBlockingIrp()\n")); |
+ |
+ // beware off damage due to intercept with cancel of thread |
+ IoAcquireCancelSpinLock(&oldIrqlCancel); |
+ |
+ if (pciada->pBlockingIrp != (PIRP *)NULL) |
+ { |
+ // get my associated packet |
+ Irp = *pciada->pBlockingIrp; |
+ |
+ if (Irp != (PIRP)NULL) |
+ { |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ PCICC32_IRQ_RESPONSE *pIrqStatus = (PCICC32_IRQ_RESPONSE *)(Irp->AssociatedIrp.SystemBuffer); |
+ ULONG irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ |
+ pIrqStatus->dwInterruptFlags = pciada->dwIrqStatus; |
+ pIrqStatus->dwInterface = file_obj->uwAssociatedCC32; |
+ |
+ // release the cancel routine from this Irp |
+ IoSetCancelRoutine(Irp, NULL); |
+ |
+ COMPLETE_REQUEST; |
+ |
+ file_obj->blockingIrp = (PIRP)NULL; |
+ } |
+ |
+ pciada->pBlockingIrp = (PIRP *)NULL; // mark the storage for blocking Irp free |
+ } |
+ |
+ // release the spin locks |
+ IoReleaseCancelSpinLock(oldIrqlCancel); |
+} |
+ |
+//------------------------------------------------------------------------ |
+// all functions called from ioctl jump table |
+// |
+ |
+//------------------------------------------------------------------------ |
+// a dummy entry because of compatibiltiy (near) WIN95 driver |
+static NTSTATUS ioctl_dummy(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ char *pCommand; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ pCommand = (char *)pInputBuffer; |
+ |
+ KdPrint(("ioctl_dummy(%d)\n", file_obj->uwAssociatedCC32)); |
+ |
+ // do what must be here in between ----------- |
+ |
+ // do what must be here in between --- end --- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_dummy(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// requests status |
+static NTSTATUS ioctl_get_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = sizeof(PCICC32_STATUS); |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCIADA *pciada; |
+ DEVICE_EXT *pDevExt; |
+ PCICC32_STATUS *pStatus; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ |
+ // do what must be here in between ----------- |
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_get_status(%d)\n", wModuleNumber)); |
+ |
+ // do what must be here in between ----------- |
+ if (OutputLength >= sizeof(PCICC32_STATUS)) |
+ { |
+ USHORT temp; |
+ |
+ pStatus = (PCICC32_STATUS *)pOutputBuffer; |
+ |
+ pciada = pDevExt->cc32[wModuleNumber]; |
+ |
+ pStatus->dwInterface = wModuleNumber; |
+ |
+ temp = READ_REGISTER_USHORT(pciada->pwIntCSR); |
+ pStatus->bTimeout = (temp & 0x0020) ? 1 : 0; |
+ pStatus->bInterrupt = (temp & 0x0004) ? 1 : 0; |
+ } |
+ else |
+ Status = STATUS_BUFFER_TOO_SMALL; |
+ // do what must be here in between --- end --- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_get_status(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// clears status |
+static BOOLEAN ioctl_clear_status_kernel(PVOID pvContext) |
+{ |
+ PCIADA *pciada = (PCIADA *)pvContext; |
+ USHORT wCntrl; |
+ |
+ // get current Cntrl - and clear interrupt |
+ wCntrl = READ_REGISTER_USHORT(pciada->pwCntrl); |
+ wCntrl &= ~0x0100; // disable |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); |
+ wCntrl |= 0x0100; // enable again |
+ WRITE_REGISTER_USHORT(pciada->pwCntrl, wCntrl); |
+ |
+ return TRUE; |
+} |
+ |
+static NTSTATUS ioctl_clear_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCIADA *pciada; |
+ DEVICE_EXT *pDevExt; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ |
+ // do what must be here in between ----------- |
+ pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_clear_status(%d)\n", wModuleNumber)); |
+ |
+ // do what must be here in between ----------- |
+ pciada = pDevExt->cc32[wModuleNumber]; |
+ |
+ KeSynchronizeExecution(pciada->InterruptObject, ioctl_clear_status_kernel, pciada); |
+ |
+ // do what must be here in between --- end --- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_clear_status() OK\n")); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// set parameter for this path for future access to CC32 |
+static NTSTATUS ioctl_access_para(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCICC32_ACCESS_COMMAND *pAccessPara; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber]; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_access_para(%d)\n", wModuleNumber)); |
+ |
+ pAccessPara = (PCICC32_ACCESS_COMMAND *)pInputBuffer; |
+ |
+ // do here in between what has to be done ----------------- |
+ file_obj->wAccessType = pAccessPara->wAccessType; |
+ file_obj->wBlockTransfer = pAccessPara->wBlockTransfer; |
+ |
+ pAccessPara->dwInterface = wModuleNumber; |
+ |
+ switch (pAccessPara->wAccessType) |
+ { |
+ case WORD_ACCESS: file_obj->fRead = readWord; |
+ file_obj->fWrite = writeWord; |
+ break; |
+ case LONG_ACCESS: file_obj->fRead = readLong; |
+ file_obj->fWrite = writeLong; |
+ break; |
+ default: Status = STATUS_UNSUCCESSFUL; |
+ break; |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_access_para(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// allow or inhibit interrupt requests from either CC32 or thru local timeout |
+static NTSTATUS ioctl_control_interrupts(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ PCICC32_IRQ_CONTROL *pIrqControlIn, *pIrqControlOut; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber]; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_control_interrupts(%d)\n", wModuleNumber)); |
+ |
+ pIrqControlIn = (PCICC32_IRQ_CONTROL *)pInputBuffer; |
+ pIrqControlOut = (PCICC32_IRQ_CONTROL *)pOutputBuffer; |
+ |
+ // do here in between what has to be done ----------------- |
+ if (pIrqControlIn->wEnable) |
+ { |
+ // reserve the controlling of interrupts for this path |
+ if ((pciada->pIrqControlFile == (FILE_OBJ *)NULL) || |
+ (pciada->pIrqControlFile == file_obj)) |
+ { |
+ pciada->pIrqControlFile = file_obj; |
+ globalInterruptEnable(pciada); |
+ } |
+ else |
+ Status = STATUS_DEVICE_BUSY; |
+ } |
+ else |
+ { |
+ // nobody else is allowed to disable interrupts |
+ if (pciada->pIrqControlFile == file_obj) |
+ { |
+ pciada->pIrqControlFile = (FILE_OBJ *)NULL; |
+ globalInterruptDisable(pciada); |
+ } |
+ else |
+ Status = STATUS_DEVICE_BUSY; |
+ } |
+ |
+ // give back if the user grants space |
+ if (OutputLength >= sizeof(PCICC32_IRQ_CONTROL)) |
+ { |
+ pIrqControlOut->dwInterface = wModuleNumber; |
+ pIrqControlOut->wEnable = globalInterruptEnabledStatus(pciada); |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_control_interrupts(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+//------------------------------------------------------------------------ |
+// implements a blocking io-call to get irq status. |
+static BOOLEAN ioctl_irq_status_kernel(PVOID pvContext) |
+{ |
+ IOCTL_IRQ_STATUS_CONTEXT *context = (IOCTL_IRQ_STATUS_CONTEXT *)pvContext; |
+ KIRQL oldIrql; |
+ |
+ if (context->pciada->dwIrqStatus) |
+ { |
+ // there is a pending interrupt - return immediately |
+ KdPrint(("ioctl_irq_status(), direct return (0x%08x)\n", context->pciada->dwIrqStatus)); |
+ |
+ context->pIrqStatus->dwInterruptFlags = context->pciada->dwIrqStatus; |
+ context->pciada->dwIrqStatus = 0; // release pending status |
+ |
+ *context->irp_info = sizeof(PCICC32_IRQ_RESPONSE); |
+ } |
+ else |
+ { |
+ // make the request blocking |
+ IoAcquireCancelSpinLock(&oldIrql); |
+ |
+ if ((*context->Irp)->Cancel) // cancel while doing |
+ { |
+ KdPrint(("ioctl_irq_status(), canceled return\n")); |
+ *context->Status = STATUS_CANCELLED; |
+ } |
+ else |
+ { |
+ KdPrint(("ioctl_irq_status(), blocking\n")); |
+ |
+ if (context->pciada->pBlockingIrp != (PIRP *)NULL) |
+ { |
+ // a Irp is still waiting |
+ *context->Status = STATUS_DEVICE_BUSY; |
+ } |
+ else |
+ { |
+ context->file_obj->blockingIrp = *context->Irp; |
+ context->pciada->pBlockingIrp = &context->file_obj->blockingIrp; |
+ |
+ *context->Status = STATUS_PENDING; |
+ |
+ // mark irp as pending and return |
+ IoMarkIrpPending(*context->Irp); |
+ IoSetCancelRoutine(*context->Irp, CancelRequest); |
+ } |
+ } // if (Irp->Cancel) ... |
+ } |
+ |
+ return TRUE; |
+} |
+ |
+static NTSTATUS ioctl_irq_status(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ USHORT wModuleNumber; |
+ IOCTL_IRQ_STATUS_CONTEXT context; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ context.file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ wModuleNumber = context.file_obj->uwAssociatedCC32; |
+ context.pciada = pDevExt->cc32[wModuleNumber]; |
+ context.pIrqStatus = (PCICC32_IRQ_RESPONSE *)pOutputBuffer; |
+ context.Status = &Status; |
+ context.irp_info = &irp_info; |
+ context.Irp = &Irp; |
+ |
+ |
+ KdPrint(("ioctl_irq_status(%d)\n", wModuleNumber)); |
+ |
+ // do here in between what has to be done ----------------- |
+ if (OutputLength < sizeof(PCICC32_IRQ_RESPONSE)) |
+ Status = STATUS_BUFFER_TOO_SMALL; |
+ else |
+ { |
+ context.pIrqStatus->dwInterface = wModuleNumber; |
+ |
+ KeSynchronizeExecution(context.pciada->InterruptObject, ioctl_irq_status_kernel, &context); |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_irq_status(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// for test and debug purposes: direkt access to PLX LCR space |
+static NTSTATUS ioctl_access_lcr(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) |
+{ |
+ NTSTATUS Status = STATUS_SUCCESS; |
+ ULONG irp_info = 0; |
+ PVOID pInputBuffer,pOutputBuffer; |
+ ULONG InputLength, OutputLength; |
+ FILE_OBJ *file_obj = (FILE_OBJ *)Irp->Tail.Overlay.OriginalFileObject->FsContext; |
+ USHORT wModuleNumber = file_obj->uwAssociatedCC32; |
+ DEVICE_EXT *pDevExt = (DEVICE_EXT *)(device_Obj->DeviceExtension); |
+ PCIADA *pciada = pDevExt->cc32[wModuleNumber]; |
+ PCICC32_LCR_ACCESS *pAccessOut; |
+ PCICC32_LCR_ACCESS *pAccessIn; |
+ |
+ SET_BUFFERS_METHOD_BUFFERED; |
+ |
+ KdPrint(("ioctl_access_lcr(%d)\n", wModuleNumber)); |
+ |
+ pAccessOut = (PCICC32_LCR_ACCESS *)pOutputBuffer; |
+ pAccessIn = (PCICC32_LCR_ACCESS *)pInputBuffer; |
+ |
+ // do here in between what has to be done ----------------- |
+ if (OutputLength < sizeof(PCICC32_LCR_ACCESS)) |
+ Status = STATUS_BUFFER_TOO_SMALL; |
+ else |
+ { |
+ *pAccessOut = *pAccessIn; |
+ pAccessOut->dwInterface = wModuleNumber; |
+ |
+ if (pAccessIn->wRegisterAddress <= 0x52) |
+ { |
+ // 1st part: long word accesses |
+ if (pAccessIn->bBytesLane == LONG_ACCESS) |
+ { |
+ if (pAccessIn->wRegisterAddress & 0x0003) |
+ Status = STATUS_INSTRUCTION_MISALIGNMENT; |
+ else |
+ { |
+ ULONG *pdwVirtAddress; |
+ ULONG dwDummy; |
+ |
+ pdwVirtAddress = (ULONG *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress); |
+ |
+ switch (pAccessIn->bAccessMode) |
+ { |
+ case LCR_WRITE: |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent); |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ case LCR_OR: |
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress); |
+ dwDummy |= pAccessIn->dwContent; |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy); |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ case LCR_AND: |
+ dwDummy = READ_REGISTER_ULONG(pdwVirtAddress); |
+ dwDummy &= pAccessIn->dwContent; |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, dwDummy); |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ case LCR_WRITE_ONLY: |
+ WRITE_REGISTER_ULONG(pdwVirtAddress, pAccessIn->dwContent); |
+ break; |
+ case LCR_READ: |
+ pAccessOut->dwContent = READ_REGISTER_ULONG(pdwVirtAddress); |
+ break; |
+ |
+ default: Status = STATUS_ILLEGAL_INSTRUCTION; |
+ } |
+ } |
+ } |
+ |
+ // 2nd part: short word accesses |
+ if (pAccessIn->bBytesLane == WORD_ACCESS) |
+ { |
+ if (pAccessIn->wRegisterAddress & 0x0001) |
+ Status = STATUS_INSTRUCTION_MISALIGNMENT; |
+ else |
+ { |
+ USHORT *pwVirtAddress; |
+ USHORT wDummy; |
+ |
+ pwVirtAddress = (USHORT *)((ULONG)pciada->pvVirtLcr + pAccessIn->wRegisterAddress); |
+ |
+ switch (pAccessIn->bAccessMode) |
+ { |
+ case LCR_WRITE: |
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent); |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ case LCR_OR: |
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress); |
+ wDummy |= (USHORT)pAccessIn->dwContent; |
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy); |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ case LCR_AND: |
+ wDummy = READ_REGISTER_USHORT(pwVirtAddress); |
+ wDummy &= (USHORT)pAccessIn->dwContent; |
+ WRITE_REGISTER_USHORT(pwVirtAddress, wDummy); |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ case LCR_WRITE_ONLY: |
+ WRITE_REGISTER_USHORT(pwVirtAddress, (USHORT)pAccessIn->dwContent); |
+ break; |
+ case LCR_READ: |
+ pAccessOut->dwContent = READ_REGISTER_USHORT(pwVirtAddress); |
+ break; |
+ |
+ default: Status = STATUS_ILLEGAL_INSTRUCTION; |
+ break; |
+ } |
+ } |
+ } |
+ |
+ // 3rd part: check illegal byte lanes |
+ if (!((pAccessIn->bBytesLane == LONG_ACCESS) || (pAccessIn->bBytesLane == WORD_ACCESS))) |
+ Status = STATUS_ILLEGAL_INSTRUCTION; |
+ } |
+ else |
+ Status = STATUS_ILLEGAL_INSTRUCTION; |
+ } |
+ // do here in between what has to be done end ------------- |
+ |
+ if (Status == STATUS_SUCCESS) |
+ irp_info = sizeof(PCICC32_LCR_ACCESS); |
+ |
+ COMPLETE_REQUEST; |
+ |
+ KdPrint(("ioctl_access_lcr(), Status = 0x%08x\n", Status)); |
+ |
+ return Status; |
+} |
+ |
+ |
+//------------------------------------------------------------------------ |
+// the ultimate jumptable for ioctl |
+// |
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP Irp, PIO_STACK_LOCATION IrpStack) = |
+{ |
+ ioctl_dummy, // 0 |
+ ioctl_dummy, // 4 |
+ ioctl_get_status, // 8 |
+ ioctl_clear_status, // 0x0c |
+ ioctl_access_para, // 0x10 |
+ ioctl_control_interrupts, // 0x14 |
+ ioctl_dummy, // 0x18 |
+ ioctl_irq_status, // 0x1c |
+ ioctl_access_lcr // 0x20 |
+}; |
+ |
Index: wiener_pcicc32/SOURCE/pcicc32_v.h |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_v.h (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_v.h (revision 176) |
@@ -0,0 +1,34 @@ |
+#ifndef __PCICC32_V_H__ |
+#define __PCICC32_V_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32terface from ARW Elektronik, Germany --------- |
+// header file belonging to pcicc32_v.c |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 02.07.2000 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// DEFINES |
+// |
+#include <pcicc32_drv.h> |
+ |
+//------------------------------------------------------------------------- |
+// PROTOTYPES |
+// |
+NTSTATUS PCICC32ScanCC32(PDEVICE_OBJECT deviceObj); |
+NTSTATUS PCICC32DeInitPCIADAs(PDEVICE_OBJECT deviceObj); |
+void enableCC32(PCIADA *pciada); |
+void disableCC32(PCIADA *pciada); |
+ |
+#endif // __PCICC32_V_H__ |
Index: wiener_pcicc32/SOURCE/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32.inf (revision 176) |
@@ -0,0 +1,104 @@ |
+;=========================================================== |
+; File : pcicc32.inf |
+; |
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany |
+; |
+;=========================================================== |
+ |
+ |
+[Version] |
+Signature = $CHICAGO$ |
+Provider = %ARW% |
+Class = %PCICC32_class_name% |
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1} |
+DriverVer = 11/25/2001,2.3.0.0 |
+ |
+ |
+;----------------------------------------------------------- |
+; Driver information |
+;----------------------------------------------------------- |
+ |
+[Manufacturer] |
+%ARW_MFG% = ARW.Mfg |
+ |
+[ARW.Mfg] |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02 |
+ |
+[ClassInstall32] |
+AddReg=PCICC32_class_addreg |
+ |
+[PCICC32_class_addreg] |
+HKR,,,,%PCICC32_class_name% |
+HKR,,Icon,0,0 |
+ |
+ |
+;----------------------------------------------------------- |
+; General installation section |
+;----------------------------------------------------------- |
+ |
+[CopyFiles_9050] |
+pcicc32.sys,,,2 |
+ |
+ |
+;----------------------------------------------------------- |
+; Windows 2000 installation section |
+;----------------------------------------------------------- |
+ |
+[Install_PCICC32.NT] |
+AddReg = AddRegistry_NT_9050 |
+CopyFiles = CopyFiles_9050 |
+ |
+ |
+[Install_PCICC32.NT.Services] |
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050 |
+ |
+ |
+[AddRegistry_NT_9050] |
+ |
+ |
+[Service_Inst_9050] |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE |
+ServiceBinary = %12%\pcicc32.sys |
+ |
+ |
+;----------------------------------------------------------- |
+; Event log registry entries |
+;----------------------------------------------------------- |
+ |
+[EventLog_Inst_9050] |
+AddReg = EventLog_AddReg_9050 |
+ |
+ |
+[EventLog_AddReg_9050] |
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys" |
+HKR,,TypesSupported,0x00010001,7 |
+ |
+ |
+;----------------------------------------------------------- |
+; Source file information |
+;----------------------------------------------------------- |
+ |
+[SourceDisksNames.x86] |
+1 = %InstallDisk%,"",1 |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 ; drivers |
+ |
+ |
+;----------------------------------------------------------- |
+; String information |
+;----------------------------------------------------------- |
+ |
+[Strings] |
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk" |
+ARW_MFG = "ARW Elektronik, Germany" |
+ARW = "ARW Elektronik, Germany" |
+PCICC32_class_name = "ARW BUS Interfaces" |
Index: wiener_pcicc32/SOURCE/pcicc32_io.h |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32_io.h (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32_io.h (revision 176) |
@@ -0,0 +1,30 @@ |
+#ifndef __PCIVME_IO_H__ |
+#define __PCIVME_IO_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCIVME interface from ARW Elektronik, Germany --------- |
+// the ioctl functions header file |
+// |
+// (c) 1999 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// ntddk.h must included first! |
+// |
+// what who when |
+// started AR 03.07.99 |
+// |
+ |
+ |
+//------------------------------------------------------------------------ |
+// FUNCTIONS + EXTERNALS |
+// |
+NTSTATUS (*ioctl[])(PDEVICE_OBJECT device_Obj, PIRP irp, PIO_STACK_LOCATION IrpStack); |
+void fMyDefferedRoutine(PKDPC Dpc, PVOID pvDevice_object, PVOID pvPciada, PVOID Nothing); |
+void CancelRequest(PDEVICE_OBJECT device_Obj, PIRP Irp); |
+ |
+#endif // __PCIVME_IO_H__ |
Index: wiener_pcicc32/SOURCE/pcicc32.plg |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32.plg (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32.plg (revision 176) |
@@ -0,0 +1,49 @@ |
+<html> |
+<body> |
+<pre> |
+<h1>Erstellungsprotokoll</h1> |
+<h3> |
+--------------------Konfiguration: pcicc32 - Win32 Debug-------------------- |
+</h3> |
+<h3>Befehlszeilen</h3> |
+Erstellen der temporären Datei "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP21.tmp" mit Inhalten |
+[ |
+/nologo /Gz /MLd /W3 /Gm /Gi /Zi /Od /I "\DDK\inc" /I "." /D DBG=1 /D "_X86_" /D _WIN32_WINNT=0x500 /Fp"Debug/pcicc32.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /Gs -GF /c |
+"D:\Work\MyProjects\pcicc32\pcicc32_drv.c" |
+"D:\Work\MyProjects\pcicc32\pcicc32_i.c" |
+"D:\Work\MyProjects\pcicc32\pcicc32_io.c" |
+"D:\Work\MyProjects\pcicc32\pcicc32_v.c" |
+] |
+Creating command line "cl.exe @C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP21.tmp" |
+Erstellen der temporären Datei "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP22.tmp" mit Inhalten |
+[ |
+int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /incremental:no /pdb:"Debug/pcicc32.pdb" /debug /machine:I386 /nodefaultlib /out:"Debug\pcicc32.SYS" /pdbtype:con /libpath:"\DDK\lib\i386\checked" -driver -subsystem:NATIVE,4.00 |
+.\Debug\pcicc32_drv.obj |
+.\Debug\pcicc32_i.obj |
+.\Debug\pcicc32_io.obj |
+.\Debug\pcicc32_v.obj |
+] |
+Erstellen der Befehlzeile "link.exe @C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP22.tmp" |
+Erstellen der temporären Datei "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP23.bat" mit Inhalten |
+[ |
+@echo off |
+copy .\Debug\pcicc32.SYS C:\WINNT\System32\Drivers\*.* |
+] |
+Erstellen der Befehlzeile "C:\DOKUME~1\klaus\LOKALE~1\Temp\RSP23.bat" |
+Kompilierung läuft... |
+pcicc32_drv.c |
+pcicc32_i.c |
+pcicc32_io.c |
+pcicc32_v.c |
+Linker-Vorgang läuft... |
+<h3>Ausgabefenster</h3> |
+Copying Driver to System32\Drivers |
+ 1 Datei(en) kopiert. |
+ |
+ |
+ |
+<h3>Ergebnisse</h3> |
+pcicc32.SYS - 0 Fehler, 0 Warnung(en) |
+</pre> |
+</body> |
+</html> |
Index: wiener_pcicc32/SOURCE/pcicc32.dsp |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32.dsp (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32.dsp (revision 176) |
@@ -0,0 +1,163 @@ |
+# Microsoft Developer Studio Project File - Name="pcicc32" - Package Owner=<4> |
+# Microsoft Developer Studio Generated Build File, Format Version 6.00 |
+# ** NICHT BEARBEITEN ** |
+ |
+# TARGTYPE "Win32 (x86) Application" 0x0101 |
+ |
+CFG=pcicc32 - Win32 Debug |
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE |
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl |
+!MESSAGE |
+!MESSAGE NMAKE /f "pcicc32.mak". |
+!MESSAGE |
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben |
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: |
+!MESSAGE |
+!MESSAGE NMAKE /f "pcicc32.mak" CFG="pcicc32 - Win32 Debug" |
+!MESSAGE |
+!MESSAGE Für die Konfiguration stehen zur Auswahl: |
+!MESSAGE |
+!MESSAGE "pcicc32 - Win32 Release" (basierend auf "Win32 (x86) Application") |
+!MESSAGE "pcicc32 - Win32 Debug" (basierend auf "Win32 (x86) Application") |
+!MESSAGE |
+ |
+# Begin Project |
+# PROP AllowPerConfigDependencies 0 |
+# PROP Scc_ProjName "" |
+# PROP Scc_LocalPath "" |
+CPP=cl.exe |
+MTL=midl.exe |
+RSC=rc.exe |
+ |
+!IF "$(CFG)" == "pcicc32 - Win32 Release" |
+ |
+# PROP BASE Use_MFC 0 |
+# PROP BASE Use_Debug_Libraries 0 |
+# PROP BASE Output_Dir "Release" |
+# PROP BASE Intermediate_Dir "Release" |
+# PROP BASE Target_Dir "" |
+# PROP Use_MFC 0 |
+# PROP Use_Debug_Libraries 0 |
+# PROP Output_Dir "Release" |
+# PROP Intermediate_Dir "Release" |
+# PROP Ignore_Export_Lib 0 |
+# PROP Target_Dir "" |
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D DBG=0 /YX /FD /c |
+# ADD CPP /nologo /Gz /W3 /Gi /O2 /I "\DDK\inc" /I "." /D "NDEBUG" /D DBG=0 /D "_X86_" /D _WIN32_WINNT=0x500 /YX /FD /Gs -GF /c |
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 |
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 |
+# ADD BASE RSC /l 0x407 /d "NDEBUG" |
+# ADD RSC /l 0x407 /d "NDEBUG" |
+BSC32=bscmake.exe |
+# ADD BASE BSC32 /nologo |
+# ADD BSC32 /nologo |
+LINK32=link.exe |
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 |
+# ADD LINK32 int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /machine:I386 /nodefaultlib /out:"Release\pcicc32.SYS" /libpath:"\DDK\lib\i386\free" -driver -subsystem:NATIVE,4.00 |
+# Begin Custom Build - Copying Driver to System32\Drivers |
+TargetPath=.\Release\pcicc32.SYS |
+TargetName=pcicc32 |
+InputPath=.\Release\pcicc32.SYS |
+SOURCE="$(InputPath)" |
+ |
+"$(SystemRoot)\System32\Drivers\$(TargetName)" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" |
+ copy $(TargetPath) $(SystemRoot)\System32\Drivers\*.* |
+ |
+# End Custom Build |
+ |
+!ELSEIF "$(CFG)" == "pcicc32 - Win32 Debug" |
+ |
+# PROP BASE Use_MFC 0 |
+# PROP BASE Use_Debug_Libraries 1 |
+# PROP BASE Output_Dir "Debug" |
+# PROP BASE Intermediate_Dir "Debug" |
+# PROP BASE Target_Dir "" |
+# PROP Use_MFC 0 |
+# PROP Use_Debug_Libraries 1 |
+# PROP Output_Dir "Debug" |
+# PROP Intermediate_Dir "Debug" |
+# PROP Ignore_Export_Lib 0 |
+# PROP Target_Dir "" |
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D DBG=1 /YX /FD /GZ /c |
+# ADD CPP /nologo /Gz /W3 /Gm /Gi /Zi /Od /I "\DDK\inc" /I "." /D DBG=1 /D "_X86_" /D _WIN32_WINNT=0x500 /YX /FD /Gs -GF /c |
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 |
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 |
+# ADD BASE RSC /l 0x407 /d "_DEBUG" |
+# ADD RSC /l 0x407 /d "_DEBUG" |
+BSC32=bscmake.exe |
+# ADD BASE BSC32 /nologo |
+# ADD BSC32 /nologo |
+LINK32=link.exe |
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept |
+# ADD LINK32 int64.lib ntoskrnl.lib hal.lib /nologo /base:"0x10000" /entry:"DriverEntry" /incremental:no /debug /machine:I386 /nodefaultlib /out:"Debug\pcicc32.SYS" /pdbtype:con /libpath:"\DDK\lib\i386\checked" -driver -subsystem:NATIVE,4.00 |
+# Begin Custom Build - Copying Driver to System32\Drivers |
+TargetPath=.\Debug\pcicc32.SYS |
+TargetName=pcicc32 |
+InputPath=.\Debug\pcicc32.SYS |
+SOURCE="$(InputPath)" |
+ |
+"$(SystemRoot)\System32\Drivers\$(TargetName)" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" |
+ copy $(TargetPath) $(SystemRoot)\System32\Drivers\*.* |
+ |
+# End Custom Build |
+ |
+!ENDIF |
+ |
+# Begin Target |
+ |
+# Name "pcicc32 - Win32 Release" |
+# Name "pcicc32 - Win32 Debug" |
+# Begin Group "Quellcodedateien" |
+ |
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_drv.c |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_i.c |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_io.c |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_v.c |
+# End Source File |
+# End Group |
+# Begin Group "Header-Dateien" |
+ |
+# PROP Default_Filter "h;hpp;hxx;hm;inl" |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32.h |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_drv.h |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_i.h |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_io.h |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_local.h |
+# End Source File |
+# Begin Source File |
+ |
+SOURCE=.\pcicc32_v.h |
+# End Source File |
+# End Group |
+# Begin Group "Ressourcendateien" |
+ |
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" |
+# End Group |
+# End Target |
+# End Project |
Index: wiener_pcicc32/SOURCE/pcicc32.h |
=================================================================== |
--- wiener_pcicc32/SOURCE/pcicc32.h (nonexistent) |
+++ wiener_pcicc32/SOURCE/pcicc32.h (revision 176) |
@@ -0,0 +1,157 @@ |
+#ifndef __PCICC32_H__ |
+#define __PCICC32_H__ |
+//------------------------------------------------------------------------- |
+// WINNT driver for PCICC32 interface from ARW Elektronik, Germany -------- |
+// IO definitions and common data structures between application and driver |
+// |
+// (c) 2000,2001 ARW Elektronik |
+// |
+// this source code is published under GPL (Open Source). You can use, redistrubute and |
+// modify it unless this header is not modified or deleted. No warranty is given that |
+// this software will work like expected. |
+// This product is not authorized for use as critical component in life support systems |
+// wihout the express written approval of ARW Elektronik Germany. |
+// |
+// Please announce changes and hints to ARW Elektronik |
+// |
+// what who when |
+// started AR 16.04.2000 |
+// added irq functionality AR 24.02.2001 |
+// added until 'not Q' read/write mode AR 03.03.2001 |
+// added AUTOREAD AR 17.03.2001 |
+// |
+ |
+//------------------------------------------------------------------------- |
+// INCLUDES |
+// |
+// #include <devioctl.h> must be declared before inclusion when used for driver |
+// #include <winioctl.h> must be declared before inclusion when used for applications |
+ |
+//------------------------------------------------------------------------- |
+// DEFINES |
+// |
+ |
+//---------------------------------------------------------------------------------------- |
+// macros for simple CAMAC NAF address calculation |
+// |
+#define NAF(n, a, f) ((ULONG)((n << 10) + (a << 6) + ((f & 0xf) << 2))) |
+ |
+// to get a compatible view to WIN95 driver |
+#define USER_CONTROL_CODE(x) (x) |
+ |
+// VPCIC32D_ATTACH_CC32 and VPCIC32D_DETACH_CC32 are incompatible to WINNT - please use read and write commands |
+ |
+// get the interrupt and timeout status from a CC32 interface (0x00220008) |
+#define PCICC32_GET_STATUS CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(2),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// clear the timeout status of a CC32 interface (0x0022000C) |
+#define PCICC32_CLEAR_STATUS CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(3),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// set the access parameter for this file (0x00220010) |
+#define PCICC32_SET_ACCESS_PARA CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(4),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// allow or inhibit CC32 interrupt requests (0x00220014) |
+#define PCICC32_CONTROL_INTERRUPTS CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(5),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// requests thru blocking io the status of a pending or a rising interrupt (0x0022001C) |
+#define PCICC32_INSTALL_IRQ_BLOCK CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(7),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// requests to access the PLX LCR for test and debug (0x00220020) |
+#define PCICC32_ACCESS_LCR CTL_CODE(\ |
+ FILE_DEVICE_UNKNOWN,\ |
+ USER_CONTROL_CODE(8),\ |
+ METHOD_BUFFERED,\ |
+ FILE_ANY_ACCESS) |
+ |
+// set to check for control-code overflow |
+#define PCICC32_LAST_CTL_CODE PCICC32_ACCESS_LCR |
+ |
+// mask bits for interrupt status |
+#define LAM_IRQ 0x00FFFFFF // there was a LAM responible for the timeout |
+#define CONNECTION_TIMEOUT 0x08000000 // irq raised through a connection timout |
+#define LAM_BUS_OR 0x10000000 // a LAM-BUS-OR is pending |
+#define LAM_NOT_OR 0x20000000 // a LAM-NOT-OR is pending |
+#define LAM_AND_OR 0x40000000 // a LAM-AND-OR is pending |
+#define LAM_FF 0x80000000 // the LAM-Flip-Flop was set |
+ |
+// switches for PCICC32_ACCESS_COMMAND.wAccessType |
+#define WORD_ACCESS (UCHAR)2 // word |
+#define LONG_ACCESS (UCHAR)4 // long |
+ |
+// define bits for PCICC32_ACCESS_COMMAND.wBlockTransfer |
+#define UNTIL_NOT_Q 0x0001 // read/write unttil 'not Q' switch |
+#define AUTOREAD 0x0002 // PCIADA data pipelining access tuner switch |
+ |
+// data lane size constants for PCICC32_ACCESS_LCR |
+#define BYTE_ACCESS (UCHAR)1 // write byte wise (illegal) |
+#define WORD_ACCESS (UCHAR)2 // word |
+#define LONG_ACCESS (UCHAR)4 // long |
+ |
+// PCICC32_ACCESS_LCR access constants |
+#define LCR_READ 0 // read only access |
+#define LCR_WRITE 1 // write and read back access |
+#define LCR_OR 2 // read, bitwise 'or' content and read back access |
+#define LCR_AND 3 // read, bitwise 'and' content and read back access |
+#define LCR_WRITE_ONLY 4 // do not read back after write |
+ |
+// this structure is output from VPCIC32_GET_STATUS call |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ USHORT bTimeout; // denotes a pending PCIADA timeout |
+ USHORT bInterrupt; // denotes a pending LAM interrupt |
+} PCICC32_STATUS; |
+ |
+// this structure sets the access parameter for following reads or writes to this path |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ USHORT wAccessType; // set the current access type (WORD_ACCESS, LONG_ACCESS) |
+ USHORT wBlockTransfer; // set AUTOREAD or UNTIL_NOT_Q |
+} PCICC32_ACCESS_COMMAND; |
+ |
+// this structure is used to control the interrupts |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ USHORT wEnable; // a 1 allows, a 0 inhibits interrupt requests |
+} PCICC32_IRQ_CONTROL; |
+ |
+// this structure returns from a blocking interrupt status call |
+typedef struct |
+{ |
+ ULONG dwInterface; // CC32 module number (for compatibility to win95/98 only - not used) |
+ ULONG dwInterruptFlags; // the return status at the return of the blocking call |
+} PCICC32_IRQ_RESPONSE; |
+ |
+// structure to access the local configuration space of PLX chip (test / debug only) with PCICC32_ACCESS_LCR |
+typedef struct |
+{ |
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95 |
+ ULONG dwContent; // content to write, and, or |
+ USHORT wRegisterAddress; // address offset of LCR register |
+ UCHAR bAccessMode; // LCR_READ, write, or, and |
+ UCHAR bBytesLane; // the data access width |
+} PCICC32_LCR_ACCESS; |
+ |
+#endif // __PCICC32_H__ |
Index: wiener_pcicc32/SOURCE/guid.h |
=================================================================== |
--- wiener_pcicc32/SOURCE/guid.h (nonexistent) |
+++ wiener_pcicc32/SOURCE/guid.h (revision 176) |
@@ -0,0 +1,6 @@ |
+INTERFACENAME = { /* c4ad1dfa-3e35-4659-bf2b-c83cda6833e1 */ |
+ 0xc4ad1dfa, |
+ 0x3e35, |
+ 0x4659, |
+ {0xbf, 0x2b, 0xc8, 0x3c, 0xda, 0x68, 0x33, 0xe1} |
+ }; |
Index: wiener_pcicc32/pcicc32.inf |
=================================================================== |
--- wiener_pcicc32/pcicc32.inf (nonexistent) |
+++ wiener_pcicc32/pcicc32.inf (revision 176) |
@@ -0,0 +1,104 @@ |
+;=========================================================== |
+; File : pcicc32.inf |
+; |
+; Abstract: Windows 2000 INF for PCICC32 boards from ARW Elektronik, Germany |
+; |
+;=========================================================== |
+ |
+ |
+[Version] |
+Signature = $CHICAGO$ |
+Provider = %ARW% |
+Class = %PCICC32_class_name% |
+ClassGUID = {c4ad1dfa-3e35-4659-bf2b-c83cda6833e1} |
+DriverVer = 06/18/2002,2.3.0.4 |
+ |
+ |
+;----------------------------------------------------------- |
+; Driver information |
+;----------------------------------------------------------- |
+ |
+[Manufacturer] |
+%ARW_MFG% = ARW.Mfg |
+ |
+[ARW.Mfg] |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_01 |
+PCICC32 CAMAC Interface = Install_PCICC32, PCI\VEN_10B5&DEV_2258&SUBSYS_22589050&REV_02 |
+ |
+[ClassInstall32] |
+AddReg=PCICC32_class_addreg |
+ |
+[PCICC32_class_addreg] |
+HKR,,,,%PCICC32_class_name% |
+HKR,,Icon,0,0 |
+ |
+ |
+;----------------------------------------------------------- |
+; General installation section |
+;----------------------------------------------------------- |
+ |
+[CopyFiles_9050] |
+pcicc32.sys,,,2 |
+ |
+ |
+;----------------------------------------------------------- |
+; Windows 2000 installation section |
+;----------------------------------------------------------- |
+ |
+[Install_PCICC32.NT] |
+AddReg = AddRegistry_NT_9050 |
+CopyFiles = CopyFiles_9050 |
+ |
+ |
+[Install_PCICC32.NT.Services] |
+AddService = pcicc32, 0x00000002, Service_Inst_9050, EventLog_Inst_9050 |
+ |
+ |
+[AddRegistry_NT_9050] |
+ |
+ |
+[Service_Inst_9050] |
+ServiceType = 1 ; SERVICE_KERNEL_DRIVER |
+StartType = 3 ; SERVICE_DEMAND_START |
+ErrorControl = 0 ; SERVICE_ERROR_IGNORE |
+ServiceBinary = %12%\pcicc32.sys |
+ |
+ |
+;----------------------------------------------------------- |
+; Event log registry entries |
+;----------------------------------------------------------- |
+ |
+[EventLog_Inst_9050] |
+AddReg = EventLog_AddReg_9050 |
+ |
+ |
+[EventLog_AddReg_9050] |
+HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\Drivers\pcicc32.sys" |
+HKR,,TypesSupported,0x00010001,7 |
+ |
+ |
+;----------------------------------------------------------- |
+; Source file information |
+;----------------------------------------------------------- |
+ |
+[SourceDisksNames.x86] |
+1 = %InstallDisk%,"",1 |
+ |
+[SourceDisksFiles] |
+pcicc32.sys = 1 |
+ |
+[DestinationDirs] |
+DefaultDestDir = 12 ; drivers |
+ |
+ |
+;----------------------------------------------------------- |
+; String information |
+;----------------------------------------------------------- |
+ |
+[Strings] |
+InstallDisk = "ARW Elektronik Windows Driver Installation Disk" |
+ARW_MFG = "ARW Elektronik, Germany" |
+ARW = "ARW Elektronik, Germany" |
+PCICC32_class_name = "ARW BUS Interfaces" |
Index: wiener_pcicc32/pcicc32_VC2013_Win7_Win8_Win8.1.zip |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32_VC2013_Win7_Win8_Win8.1.zip |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: wiener_pcicc32/pcicc32.SYS |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/wiener_pcicc32/pcicc32.SYS |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |