Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 16 → Rev 17

/wiener_pciada/os_info.h
File deleted
/wiener_pciada/pcivme_ni.sdf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/pcivme_ni.v11.suo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/pcivme_ni.v11.suo
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.exp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/pcivme_ni.exp
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.write.1.tlog
===================================================================
--- wiener_pciada/Debug/pcivme_ni.write.1.tlog (revision 16)
+++ wiener_pciada/Debug/pcivme_ni.write.1.tlog (nonexistent)
@@ -1,5 +0,0 @@
-^C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.lib
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.lib
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.exp
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.exp
Index: wiener_pciada/Debug/os_info.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/os_info.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/link.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/CL.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/link-rc.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/link-rc.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/pcivme_ni.pdb
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/link.command.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/cl.command.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/pcivme_ni.lib
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/link-cvtres.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/link-cvtres.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/pcivme_ni.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni_NT.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/pcivme_ni_NT.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/pcivme_ni.dll
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.ilk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/pcivme_ni.ilk
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/vc110.idb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/vc110.idb
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.log
===================================================================
--- wiener_pciada/Debug/pcivme_ni.log (revision 16)
+++ wiener_pciada/Debug/pcivme_ni.log (nonexistent)
@@ -1,18 +0,0 @@
-Build started 10.2.2014 9:28:27.
- 1>Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" on node 2 (Build target(s)).
- 1>ClCompile:
- C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I. /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D _VC80_UPGRADE=0x0600 /D _WINDLL /Gm /EHsc /MTd /GS /Gy- /fp:precise /Zc:wchar_t /Zc:forScope /Fo".\Debug\\" /Fd".\Debug\vc110.pdb" /Gd /TC /analyze- /errorReport:prompt pcivme_ni.c
- pcivme_ni.c
- Link:
- C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:".\Debug\pcivme_ni.dll" /INCREMENTAL /NOLOGO odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:".\Debug\pcivme_ni.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\Debug\pcivme_ni.lib" /MACHINE:X86 /SAFESEH /DLL .\Debug\Klist.obj
- .\Debug\os_info.obj
- .\Debug\pcivme_ni.obj
- .\Debug\pcivme_ni_NT.obj
- 1>Klist.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/SAFESEH' specification
- Creating library .\Debug\pcivme_ni.lib and object .\Debug\pcivme_ni.exp
- pcivme_ni.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\.\Debug\pcivme_ni.dll
- 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" (Build target(s)).
-
-Build succeeded.
-
-Time Elapsed 00:00:00.64
Index: wiener_pciada/Debug/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/link.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/CL.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/link-rc.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/link-rc.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/pcivme_ni.lastbuildstate
===================================================================
--- wiener_pciada/Debug/pcivme_ni.lastbuildstate (revision 16)
+++ wiener_pciada/Debug/pcivme_ni.lastbuildstate (nonexistent)
@@ -1,2 +0,0 @@
-#v4.0:v110:false
-Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\|
Index: wiener_pciada/Debug/link-cvtres.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/link-cvtres.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/vc110.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/vc110.pdb
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Debug/Klist.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Debug/Klist.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/pcivme_ni.plg
===================================================================
--- wiener_pciada/pcivme_ni.plg (revision 16)
+++ wiener_pciada/pcivme_ni.plg (nonexistent)
@@ -1,37 +0,0 @@
-<html>
-<body>
-<pre>
-<h1>Erstellungsprotokoll</h1>
-<h3>
---------------------Konfiguration: pcivme_ni - Win32 Release--------------------
-</h3>
-<h3>Befehlszeilen</h3>
-Erstellen der temporären Datei "E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD7.tmp" mit Inhalten
-[
-/nologo /MT /W3 /GX /O2 /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"Release/pcivme_ni.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
-"E:\Work\projects\pcivme_ni\pcivme_ni.c"
-]
-Creating command line "cl.exe @E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD7.tmp"
-Erstellen der temporären Datei "E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD8.tmp" mit Inhalten
-[
-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 /dll /incremental:no /pdb:"Release/pcivme_ni.pdb" /machine:I386 /out:"Release/pcivme_ni.dll" /implib:"Release/pcivme_ni.lib"
-.\Release\Klist.obj
-.\Release\os_info.obj
-.\Release\pcivme_ni.obj
-.\Release\pcivme_ni_95.obj
-.\Release\pcivme_ni_NT.obj
-]
-Erstellen der Befehlzeile "link.exe @E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD8.tmp"
-<h3>Ausgabefenster</h3>
-Kompilierung läuft...
-pcivme_ni.c
-Linker-Vorgang läuft...
- Bibliothek Release/pcivme_ni.lib und Objekt Release/pcivme_ni.exp wird erstellt
-
-
-
-<h3>Ergebnisse</h3>
-pcivme_ni.dll - 0 Fehler, 0 Warnung(en)
-</pre>
-</body>
-</html>
Index: wiener_pciada/pcivme_ni.c
===================================================================
--- wiener_pciada/pcivme_ni.c (revision 16)
+++ wiener_pciada/pcivme_ni.c (nonexistent)
@@ -1,145 +0,0 @@
-//-------------------------------------------------------------------------------------------
-// pcivme_ni.c - a ni labview dll skeleton for the ARW pcivme interface
-//
-// (c) 1999-2004 ARW Elektronik, Germany
-//
-// 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
-//
-//
-// $Log: pcivme_ni.c,v $
-// Revision 1.2 2004/07/24 07:47:00 klaus
-// Update copyright to 2004
-//
-// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
-// First put into repository
-//
-// Revision 1.2 2002/10/27 17:05:33 klaus
-// CVS log added, file addressing bug > 2 Gbtye circumvent
-//
-// what who when
-// first steps AR 07.11.1999
-//
-
-//-------------------------------------------------------------------------------------------
-// INCLUDES
-//
-#include <windows.h>
-#include <os_info.h>
-#include <pcivme_ni_NT.h>
-#include <pcivme_ni.h>
-
-//-------------------------------------------------------------------------------------------
-// DEFINES
-//
-
-//-------------------------------------------------------------------------------------------
-// TYPEDEFS
-//
-typedef struct
-{
- int (*VMEinit)(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
- int (*VMEread)(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
- int (*VMEwrite)(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
- int (*VMEaccessVIC)(int Handle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
- int (*VMEreset)(int Handle);
- int (*VMETAS)(int Handle, unsigned long ulAddress, unsigned char *ubResult);
- int (*VMEinterrupt)(int Handle, unsigned char *ubVector);
- int (*VMEsysfailGet)(int nHandle, BOOLEAN *bResult);
- int (*VMEsysfailSet)(int nHandle, BOOLEAN bForce);
- int (*VMEclose)(int nHandle);
-} MY_ACTIONS;
-
-//-------------------------------------------------------------------------------------------
-// LOCALS
-//
-static MY_ACTIONS ma; // the selected actions
-static BOOLEAN firstTime = TRUE;
-
-//-------------------------------------------------------------------------------------------
-// EXTERNALS
-//
-
-//-------------------------------------------------------------------------------------------
-// GLOBALS
-//
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-int __declspec(dllexport) VMEinit(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle)
-{
- if (firstTime)
- {
- if (IsWindowsNT())
- {
- ma.VMEinit = VMEinitNT;
- ma.VMEread = VMEreadNT;
- ma.VMEwrite = VMEwriteNT;
- ma.VMEaccessVIC = VMEaccessVICNT;
- ma.VMEreset = VMEresetNT;
- ma.VMETAS = VMETASNT;
- ma.VMEinterrupt = VMEinterruptNT;
- ma.VMEsysfailGet = VMEsysfailGetNT;
- ma.VMEsysfailSet = VMEsysfailSetNT;
- ma.VMEclose = VMEcloseNT;
- }
-
- else
- return -1;
-
- firstTime = FALSE;
- }
-
- return ma.VMEinit(cszDeviceName, nVMEMM, ubAddressModifier, pnHandle);
-}
-
-int __declspec(dllexport) VMEread(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
-{
- return ma.VMEread(nHandle, ulAddress, ubAccessWidth, ulElementCount, pvBuffer);
-}
-
-int __declspec(dllexport) VMEwrite(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
-{
- return ma.VMEwrite(nHandle, ulAddress, ubAccessWidth, ulElementCount, pvBuffer);
-}
-
-int __declspec(dllexport) VMEaccessVIC(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent)
-{
- return ma.VMEaccessVIC(nHandle, ubAccessMode, uwAddress, ubContent);
-}
-
-int __declspec(dllexport) VMEreset(int nHandle)
-{
- return ma.VMEreset(nHandle);
-}
-
-int __declspec(dllexport) VMETAS(int nHandle, unsigned long ulAddress, unsigned char *ubResult)
-{
- return ma.VMETAS(nHandle, ulAddress, ubResult);
-}
-
-int __declspec(dllexport) VMEsysfailGet(int nHandle, BOOLEAN *bResult)
-{
- return ma.VMEsysfailGet(nHandle, bResult);
-}
-
-int __declspec(dllexport) VMEsysfailSet(int nHandle, BOOLEAN bForce)
-{
- return ma.VMEsysfailSet(nHandle, bForce);
-}
-
-int __declspec(dllexport) VMEinterrupt(int nHandle, unsigned char *ubVector)
-{
- return ma.VMEinterrupt(nHandle, ubVector);
-}
-
-int __declspec(dllexport) VMEclose(int nHandle)
-{
- return ma.VMEclose(nHandle);
-}
\ No newline at end of file
Index: wiener_pciada/pcivme_ni.h.bak
===================================================================
--- wiener_pciada/pcivme_ni.h.bak (revision 16)
+++ wiener_pciada/pcivme_ni.h.bak (nonexistent)
@@ -1,53 +0,0 @@
-#ifndef __PCIVME_NI_H__
-#define __PCIVME_NI_H__
-
-//-------------------------------------------------------------------------------------------
-// pcivme_ni.h - header for ni-labview dll for ARW pcivme interface
-//
-// (c) 1999-2002 ARW Elektronik, Germany
-//
-// 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
-//
-//
-// $Log: pcivme_ni.h,v $
-// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
-// First put into repository
-//
-// Revision 1.2 2002/10/27 17:05:33 klaus
-// CVS log added, file addressing bug > 2 Gbtye circumvent
-//
-// what who when
-// first steps AR 17.11.1999
-// modified for use with C++ AR 08.06.2002
-//
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-int __declspec(dllexport) VMEinit(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
-int __declspec(dllexport) VMEread(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
-int __declspec(dllexport) VMEwrite(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
-int __declspec(dllexport) VMEaccessVIC(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
-int __declspec(dllexport) VMEreset(int nHandle);
-int __declspec(dllexport) VMETAS(int nHandle, unsigned long ulAddress, unsigned char *ubResult);
-int __declspec(dllexport) VMEinterrupt(int nHandle, unsigned char *ubVector);
-int __declspec(dllexport) VMEsysfailGet(int nHandle, BOOLEAN *bResult);
-int __declspec(dllexport) VMEsysfailSet(int nHandle, BOOLEAN bForce);
-int __declspec(dllexport) VMEclose(int nHandle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __PCIVME_NI_H__ */
\ No newline at end of file
Index: wiener_pciada/pcivme_ni_NT.c
===================================================================
--- wiener_pciada/pcivme_ni_NT.c (revision 16)
+++ wiener_pciada/pcivme_ni_NT.c (nonexistent)
@@ -1,448 +0,0 @@
-//-------------------------------------------------------------------------------------------
-// pcivme_ni_NT.c - a ni labview dll skeleton for the ARW pcivme interface, winNT
-//
-// (c) 1999-2004 ARW Elektronik, Germany
-//
-// 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
-//
-// $Log: pcivme_ni_NT.c,v $
-// Revision 1.2 2004/07/24 07:47:00 klaus
-// Update copyright to 2004
-//
-// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
-// First put into repository
-//
-// Revision 1.4 2002/10/27 21:32:35 klaus
-// compatibility improved
-//
-// Revision 1.3 2002/10/27 19:22:58 klaus
-// backward compatibilty problem for 2 Gbyte limit solved
-//
-// Revision 1.2 2002/10/27 17:05:33 klaus
-// CVS log added, file addressing bug > 2 Gbtye circumvent
-//
-// what who when
-// first steps AR 07.11.1999
-//
-
-//-------------------------------------------------------------------------------------------
-// INCLUDES
-//
-#include <windows.h>
-#include <winioctl.h>
-#include <pcivme.h> // header for win-NT
-#include <vic.h>
-#include <vme.h>
-#include <pcivme_ni_NT.h>
-#include <Klist.h>
-
-//-------------------------------------------------------------------------------------------
-// DEFINES
-//
-#define DEFDEVICENAME "\\\\.\\PCIVME:\\VMEMMxx"
-#define LIMIT_2GBYTE 0x80000000 // 2 GByte addressing limit of WINNT ...
-
-//-------------------------------------------------------------------------------------------
-// TYPEDEFS
-//
-typedef struct // a element associated to a open path (between VMEinit and VMEclose)
-{
- HANDLE nHandle;
- PCIVME_ACCESS_COMMAND access;
-} OPEN_PATH;
-
-//-------------------------------------------------------------------------------------------
-// LOCALS
-//
-// user initialisation table for pcivme
-static PCIVME_INIT_COMMAND sUserInitStruct = {2, {{STOP, WORD_ACCESS, 0, 0}}};
-// user deinitialisation table
-static PCIVME_INIT_COMMAND sUserDeInitStruct = {2, {{STOP, WORD_ACCESS, 0, 0}}};
-
-// the list of Path specific data (a element lives between VMEinit and VMEclose)
-static LIST liPathList = (LIST)NULL;
-
-//-------------------------------------------------------------------------------------------
-// EXTERNALS
-//
-
-//-------------------------------------------------------------------------------------------
-// GLOBALS
-//
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-// not only delete a element - even remove the whole list if it is empty
-static void removeListElement(OPEN_PATH *open_path)
-{
- List_Delete((LPVOID)open_path);
-
- // remove the list if the last item was deleted ----
- if ((liPathList != NULL) && (List_IsEmpty(liPathList) == TRUE))
- {
- List_Destroy(&liPathList);
- liPathList = (LIST)NULL;
- }
-}
-
-//-------------------------------------------------------------------------
-// create a DeviceName out of cszDeviceName and nIfcNum
-static char *DeviceName(const char *cszDeviceName, int nIfcNum)
-{
- static char buffer[255];
- char *ptr = buffer;
-
- if (cszDeviceName == NULL)
- strcpy(buffer, DEFDEVICENAME);
- else
- strcpy(buffer, cszDeviceName);
-
- while (*ptr) ptr++;
-
- do
- {
- ptr--;
- } while (*ptr != 'M');
-
- ptr++;
-
- if (nIfcNum >= 10)
- {
- *ptr++ = '1';
- nIfcNum -= 10;
- }
-
- *ptr++ = '0' + nIfcNum;
- *ptr = 0;
-
- return buffer;
-}
-
-int VMEinitNT(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle)
-{
- OPEN_PATH *open_path;
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- DWORD result;
-
- if (liPathList == NULL) // create a list to hold the paths and its variables
- {
- liPathList = List_Create();
- if (liPathList == (LIST)NULL)
- return GetLastError();
- }
-
- open_path = (OPEN_PATH *)List_NewFirst(liPathList, sizeof(OPEN_PATH));
-
- *pnHandle = -1;
-
- if ((open_path->nHandle = CreateFile(
- DeviceName(cszDeviceName, nVMEMM),
- GENERIC_READ | GENERIC_WRITE,
- 0,
- NULL,
- OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL,
- NULL)) != ((HANDLE)-1))
- {
- // init hardware (only one time after the first init it works OK)
- result = DeviceIoControl(open_path->nHandle,
- PCIVME_INIT_HARDWARE,
- &sUserInitStruct,
- (DWORD)sizeof(sUserInitStruct),
- NULL,
- (DWORD)0,
- &DIOC_count,
- NULL);
-
- // set the current access parameters ------------------
- open_path->access.bAddressModifier = ubAddressModifier;
- open_path->access.bAccessType =
- open_path->access.bIncrement = BYTE_ACCESS;
- open_path->access.dwAccessBase = 0;
-
- result = DeviceIoControl(open_path->nHandle,
- PCIVME_SET_ACCESS_PARA,
- &open_path->access,
- (DWORD)sizeof(open_path->access),
- NULL,
- 0,
- &DIOC_count,
- NULL);
-
- if (!result)
- {
- result = GetLastError();
- CloseHandle(open_path->nHandle);
- removeListElement(open_path);
- return result;
- }
-
- *pnHandle = (int)open_path;
-
- return 0;
- }
- else
- {
- result = GetLastError();
- removeListElement(open_path);
- return result;
- }
-}
-
-int VMEreadNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- unsigned long ulNumberOfBytes = ulElementCount * ubAccessWidth;
- unsigned long bytesRead;
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- // set the current access parameters ------------------
- open_path->access.bAccessType =
- open_path->access.bIncrement = ubAccessWidth;
-
- // take care of only 2 Gbyte addressing capabilities of WINNT ...
- if (ulAddress >= LIMIT_2GBYTE)
- {
- ulAddress -= LIMIT_2GBYTE;
- open_path->access.dwAccessBase = LIMIT_2GBYTE;
- }
- else
- open_path->access.dwAccessBase = 0;
-
- if (!DeviceIoControl(open_path->nHandle,
- PCIVME_SET_ACCESS_PARA,
- &open_path->access,
- (DWORD)sizeof(open_path->access),
- NULL,
- 0,
- &DIOC_count,
- NULL))
- return GetLastError();
-
- SetFilePointer(open_path->nHandle, ulAddress, NULL, FILE_BEGIN);
-
- if (!ReadFile(open_path->nHandle, pvBuffer, ulNumberOfBytes, &bytesRead, NULL))
- return GetLastError();
-
- return 0;
-}
-
-int VMEwriteNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- unsigned long ulNumberOfBytes = ulElementCount * ubAccessWidth;
- unsigned long bytesRead;
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- // set the current access parameters ------------------
- open_path->access.bAccessType =
- open_path->access.bIncrement = ubAccessWidth;
-
- // take care of only 2 Gbyte addressing capabilities of WINNT ...
- if (ulAddress >= LIMIT_2GBYTE)
- {
- ulAddress -= LIMIT_2GBYTE;
- open_path->access.dwAccessBase = LIMIT_2GBYTE;
- }
- else
- open_path->access.dwAccessBase = 0;
-
- if (!DeviceIoControl(open_path->nHandle,
- PCIVME_SET_ACCESS_PARA,
- &open_path->access,
- (DWORD)sizeof(open_path->access),
- NULL,
- 0,
- &DIOC_count,
- NULL))
- return GetLastError();
-
- SetFilePointer(open_path->nHandle, ulAddress, NULL, FILE_BEGIN);
-
- if (!WriteFile(open_path->nHandle, pvBuffer, ulNumberOfBytes, &bytesRead, NULL))
- return GetLastError();
-
- return 0;
-}
-
-int VMEaccessVICNT(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
- PCIVME_VIC68A_ACTION sAction; // structure to access vic chip
- DWORD result;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- sAction.wRegisterAddress = uwAddress;
- sAction.wAccessMode = ubAccessMode;
- sAction.bContent = *ubContent;
-
- result = DeviceIoControl(open_path->nHandle, PCIVME_ACCESS_VIC68A,
- &sAction, sizeof(sAction), &sAction,
- sizeof(sAction), &DIOC_count, NULL);
-
- *ubContent = sAction.bContent;
-
- if (!result)
- return GetLastError();
- else
- return 0;
-}
-
-int VMEresetNT(int nHandle)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
- DWORD result;
- PCIVME_RESET_COMMAND reset_command;
- PCIVME_RESET_RESULT reset_result;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- reset_command.wCommand = VME_RESET_CMD;
- reset_result.wResult = 0;
- result = DeviceIoControl(open_path->nHandle, PCIVME_RESET,
- &reset_command, sizeof(reset_command),
- &reset_result, sizeof(reset_result),
- &DIOC_count, NULL);
-
- if (!result)
- return GetLastError();
- else
- {
- result = 1;
-
- while (reset_result.wResult && result)
- {
- reset_command.wCommand = POLL_RESET_CMD;
- result = DeviceIoControl(open_path->nHandle, PCIVME_RESET,
- &reset_command, sizeof(reset_command),
- &reset_result, sizeof(reset_result),
- &DIOC_count, NULL);
- Sleep(10);
- }
- }
-
- if (!result)
- return GetLastError();
- else
- return 0;
-}
-
-int VMETASNT(int nHandle, unsigned long ulAddress, unsigned char *ubResult)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
- PCIVME_TAS_STRUCT sTAS; // structure to do a Test and Set
- DWORD result;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- sTAS.wModifier = open_path->access.bAddressModifier;
- sTAS.dwAddress = ulAddress;
- sTAS.bContent = 0x80;
-
- result = DeviceIoControl(open_path->nHandle, PCIVME_TAS,
- &sTAS, (DWORD)sizeof(sTAS), &sTAS,
- (DWORD)sizeof(sTAS), &DIOC_count, NULL);
-
- *ubResult = sTAS.bContent;
-
- if (!result)
- return GetLastError();
- else
- return 0;
-}
-
-int VMEinterruptNT(int nHandle, unsigned char *ubVector)
-{
-// DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- return 0;
-}
-
-int VMEsysfailGetNT(int nHandle, BOOLEAN *bResult)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
- PCIVME_VIC68A_ACTION sAction; // structure to access vic chip
- DWORD result;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- sAction.wRegisterAddress = EGICR;
- sAction.wAccessMode = VIC68A_READ;
- sAction.bContent = 0;
-
- result = DeviceIoControl(open_path->nHandle, PCIVME_ACCESS_VIC68A,
- &sAction, sizeof(sAction), &sAction,
- sizeof(sAction), &DIOC_count, NULL);
-
-
- *bResult = (sAction.bContent & 0x08) ? FALSE : TRUE;
-
- if (!result)
- return GetLastError();
- else
- return 0;
-}
-
-int VMEsysfailSetNT(int nHandle, BOOLEAN bForce)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
- PCIVME_VIC68A_ACTION sAction; // structure to access vic chip
- DWORD result;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- sAction.wRegisterAddress = ICR7;
- sAction.wAccessMode = (bForce == TRUE) ? VIC68A_AND : VIC68A_OR;
- sAction.bContent = (bForce == TRUE) ? 0x3F : 0x80;
-
- result = DeviceIoControl(open_path->nHandle, PCIVME_ACCESS_VIC68A,
- &sAction, (DWORD)sizeof(sAction), &sAction,
- (DWORD)sizeof(sAction), &DIOC_count, NULL);
- if (!result)
- return GetLastError();
- else
- return 0;
-}
-
-int VMEcloseNT(int nHandle)
-{
- DWORD DIOC_count; // count of returned bytes of DeviceIoControl
- OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
-
- if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
-
- DeviceIoControl(open_path->nHandle,
- PCIVME_DEINIT_HARDWARE,
- &sUserDeInitStruct,
- (DWORD)sizeof(sUserDeInitStruct),
- NULL,
- 0,
- &DIOC_count,
- NULL);
-
- CloseHandle(open_path->nHandle);
- removeListElement(open_path);
-
- return 0;
-}
-
Index: wiener_pciada/pcivme_ni.dsp
===================================================================
--- wiener_pciada/pcivme_ni.dsp (revision 16)
+++ wiener_pciada/pcivme_ni.dsp (nonexistent)
@@ -1,131 +0,0 @@
-# Microsoft Developer Studio Project File - Name="pcivme_ni" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** NICHT BEARBEITEN **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=pcivme_ni - 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 "pcivme_ni.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 "pcivme_ni.mak" CFG="pcivme_ni - Win32 Debug"
-!MESSAGE
-!MESSAGE Für die Konfiguration stehen zur Auswahl:
-!MESSAGE
-!MESSAGE "pcivme_ni - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "pcivme_ni - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "pcivme_ni"
-# PROP Scc_LocalPath "."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "pcivme_ni - 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 /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /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 /dll /machine:I386
-# ADD 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 /dll /machine:I386
-
-!ELSEIF "$(CFG)" == "pcivme_ni - 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 /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /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 /dll /debug /machine:I386 /pdbtype:sept
-# ADD 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 /dll /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "pcivme_ni - Win32 Release"
-# Name "pcivme_ni - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Klist.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Klist.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\os_info.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\os_info.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pcivme_ni.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\pcivme_ni.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pcivme_ni_95.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\pcivme_ni_95.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pcivme_ni_NT.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\pcivme_ni_NT.h
-# End Source File
-# End Target
-# End Project
Index: wiener_pciada/pcivme_ni.h
===================================================================
--- wiener_pciada/pcivme_ni.h (revision 16)
+++ wiener_pciada/pcivme_ni.h (nonexistent)
@@ -1,56 +0,0 @@
-#ifndef __PCIVME_NI_H__
-#define __PCIVME_NI_H__
-
-//-------------------------------------------------------------------------------------------
-// pcivme_ni.h - header for ni-labview dll for ARW pcivme interface
-//
-// (c) 1999-2004 ARW Elektronik, Germany
-//
-// 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
-//
-//
-// $Log: pcivme_ni.h,v $
-// Revision 1.2 2004/07/24 08:05:31 klaus
-// Update copyright to 2004
-//
-// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
-// First put into repository
-//
-// Revision 1.2 2002/10/27 17:05:33 klaus
-// CVS log added, file addressing bug > 2 Gbtye circumvent
-//
-// what who when
-// first steps AR 17.11.1999
-// modified for use with C++ AR 08.06.2002
-//
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-int __declspec(dllexport) VMEinit(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
-int __declspec(dllexport) VMEread(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
-int __declspec(dllexport) VMEwrite(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
-int __declspec(dllexport) VMEaccessVIC(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
-int __declspec(dllexport) VMEreset(int nHandle);
-int __declspec(dllexport) VMETAS(int nHandle, unsigned long ulAddress, unsigned char *ubResult);
-int __declspec(dllexport) VMEinterrupt(int nHandle, unsigned char *ubVector);
-int __declspec(dllexport) VMEsysfailGet(int nHandle, BOOLEAN *bResult);
-int __declspec(dllexport) VMEsysfailSet(int nHandle, BOOLEAN bForce);
-int __declspec(dllexport) VMEclose(int nHandle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __PCIVME_NI_H__ */
\ No newline at end of file
Index: wiener_pciada/pcivme_ni_NT.h
===================================================================
--- wiener_pciada/pcivme_ni_NT.h (revision 16)
+++ wiener_pciada/pcivme_ni_NT.h (nonexistent)
@@ -1,51 +0,0 @@
-#ifndef __PCIVME_NI_NT_H__
-#define __PCIVME_NI_NT_H__
-
-//-------------------------------------------------------------------------------------------
-// pcivme_ni_NT.c - a ni labview dll skeleton for the ARW pcivme interface, winNT
-//
-// (c) 1999-2004 ARW Elektronik, Germany
-//
-// 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
-//
-//
-// $Log: pcivme_ni_NT.h,v $
-// Revision 1.2 2004/07/24 07:47:00 klaus
-// Update copyright to 2004
-//
-// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
-// First put into repository
-//
-// Revision 1.2 2002/10/27 17:05:33 klaus
-// CVS log added, file addressing bug > 2 Gbtye circumvent
-//
-// what who when
-// first steps AR 07.11.1999
-//
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-#include <windows.h>
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-int VMEinitNT(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
-int VMEreadNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
-int VMEwriteNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
-int VMEaccessVICNT(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
-int VMEresetNT(int nHandle);
-int VMETASNT(int nHandle, unsigned long ulAddress, unsigned char *ubResult);
-int VMEinterruptNT(int nHandle, unsigned char *ubVector);
-int VMEsysfailGetNT(int nHandle, BOOLEAN *bResult);
-int VMEsysfailSetNT(int nHandle, BOOLEAN bForce);
-int VMEcloseNT(int nHandle);
-
-#endif /* __PCIVME_NI_NT_H__ */
\ No newline at end of file
Index: wiener_pciada/pcivme_ni.vcxproj
===================================================================
--- wiener_pciada/pcivme_ni.vcxproj (revision 16)
+++ wiener_pciada/pcivme_ni.vcxproj (nonexistent)
@@ -1,150 +0,0 @@
-<?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="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <SccProjectName>pcivme_ni</SccProjectName>
- <SccLocalPath>.</SccLocalPath>
- <ProjectGuid>{A549E673-98F7-439F-8F28-CDE063B35DD5}</ProjectGuid>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <UseOfMfc>false</UseOfMfc>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <PlatformToolset>v110</PlatformToolset>
- <UseOfMfc>false</UseOfMfc>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>.\Debug\</OutDir>
- <IntDir>.\Debug\</IntDir>
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>.\Release\</OutDir>
- <IntDir>.\Release\</IntDir>
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <FunctionLevelLinking>false</FunctionLevelLinking>
- <Optimization>Disabled</Optimization>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <WarningLevel>Level3</WarningLevel>
- <MinimalRebuild>true</MinimalRebuild>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- <AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AssemblerListingLocation>.\Debug\</AssemblerListingLocation>
- <PrecompiledHeaderOutputFile>.\Debug\pcivme_ni.pch</PrecompiledHeaderOutputFile>
- <ObjectFileName>.\Debug\</ObjectFileName>
- <ProgramDataBaseFileName>.\Debug\</ProgramDataBaseFileName>
- </ClCompile>
- <Midl>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <TypeLibraryName>.\Debug\pcivme_ni.tlb</TypeLibraryName>
- <MkTypLibCompatible>true</MkTypLibCompatible>
- <RedirectOutputAndErrors>NUL</RedirectOutputAndErrors>
- <TargetEnvironment>Win32</TargetEnvironment>
- </Midl>
- <ResourceCompile>
- <Culture>0x0407</Culture>
- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ResourceCompile>
- <Bscmake>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <OutputFile>.\Debug\pcivme_ni.bsc</OutputFile>
- </Bscmake>
- <Link>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <LinkDLL>true</LinkDLL>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Windows</SubSystem>
- <OutputFile>.\Debug\pcivme_ni.dll</OutputFile>
- <ImportLibrary>.\Debug\pcivme_ni.lib</ImportLibrary>
- <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- <InlineFunctionExpansion>Default</InlineFunctionExpansion>
- <StringPooling>true</StringPooling>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <Optimization>MaxSpeed</Optimization>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <WarningLevel>Level3</WarningLevel>
- <AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AssemblerListingLocation>.\Release\</AssemblerListingLocation>
- <PrecompiledHeaderOutputFile>.\Release\pcivme_ni.pch</PrecompiledHeaderOutputFile>
- <ObjectFileName>.\Release\</ObjectFileName>
- <ProgramDataBaseFileName>.\Release\</ProgramDataBaseFileName>
- </ClCompile>
- <Midl>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <TypeLibraryName>.\Release\pcivme_ni.tlb</TypeLibraryName>
- <MkTypLibCompatible>true</MkTypLibCompatible>
- <RedirectOutputAndErrors>NUL</RedirectOutputAndErrors>
- <TargetEnvironment>Win32</TargetEnvironment>
- </Midl>
- <ResourceCompile>
- <Culture>0x0407</Culture>
- <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- </ResourceCompile>
- <Bscmake>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <OutputFile>.\Release\pcivme_ni.bsc</OutputFile>
- </Bscmake>
- <Link>
- <SuppressStartupBanner>true</SuppressStartupBanner>
- <LinkDLL>true</LinkDLL>
- <SubSystem>Windows</SubSystem>
- <OutputFile>.\Release\pcivme_ni.dll</OutputFile>
- <ImportLibrary>.\Release\pcivme_ni.lib</ImportLibrary>
- <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="Klist.c" />
- <ClCompile Include="os_info.c" />
- <ClCompile Include="pcivme_ni.c" />
- <ClCompile Include="pcivme_ni_NT.c" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="Klist.h" />
- <ClInclude Include="os_info.h" />
- <ClInclude Include="pcivme_ni.h" />
- <ClInclude Include="pcivme_ni_NT.h" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
\ No newline at end of file
Index: wiener_pciada/pcivme_ni.sln
===================================================================
--- wiener_pciada/pcivme_ni.sln (revision 16)
+++ wiener_pciada/pcivme_ni.sln (nonexistent)
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Express 2012 for Windows Desktop
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcivme_ni", "pcivme_ni.vcxproj", "{A549E673-98F7-439F-8F28-CDE063B35DD5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A549E673-98F7-439F-8F28-CDE063B35DD5}.Debug|Win32.ActiveCfg = Debug|Win32
- {A549E673-98F7-439F-8F28-CDE063B35DD5}.Debug|Win32.Build.0 = Debug|Win32
- {A549E673-98F7-439F-8F28-CDE063B35DD5}.Release|Win32.ActiveCfg = Release|Win32
- {A549E673-98F7-439F-8F28-CDE063B35DD5}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
Index: wiener_pciada/pcivme_ni.dsw
===================================================================
--- wiener_pciada/pcivme_ni.dsw (revision 16)
+++ wiener_pciada/pcivme_ni.dsw (nonexistent)
@@ -1,33 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN!
-
-###############################################################################
-
-Project: "pcivme_ni"=.\pcivme_ni.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
- begin source code control
- pcivme_ni
- ..\..\..\programme\devstudio\myprojects\pcivme_ni
- end source code control
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
Index: wiener_pciada/Vic.h
===================================================================
--- wiener_pciada/Vic.h (revision 16)
+++ wiener_pciada/Vic.h (nonexistent)
@@ -1,116 +0,0 @@
-#ifndef __VIC_H__
-#define __VIC_H__
-
-//------------------------------------------------------------------------------------------
-// vic.h - some constants about the VIC68A chip from cypress semiconductor
-//
-// (c) 1999-2004 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
-//
-//
-// $Log: Vic.h,v $
-// Revision 1.3 2004/07/24 07:07:26 klaus
-// Update copyright to 2004
-//
-// Revision 1.2 2003/11/15 19:12:51 klaus
-// Update copyright to 2003
-//
-// Revision 1.1.1.1 2003/11/14 23:16:33 klaus
-// First put into repository
-//
-// Revision 1.3 2002/10/27 16:17:48 klaus
-// Typing bug fixed caused at log addition
-//
-// Revision 1.2 2002/10/27 16:11:03 klaus
-// Added CVS log into header
-//
-// what who when
-// finished first release to use with the PCIVME interface of ARW AR 24.11.1997
-// SRR corrected from SSR AR 18.04.1999
-//
-
-/* all address offsets relative to vic base */
-
-#define VICR1 (WORD)0x07 /* VMEbus Interrupt Control Register #.. */
-#define VICR2 (WORD)0x0b
-#define VICR3 (WORD)0x0f
-#define VICR4 (WORD)0x13
-#define VICR5 (WORD)0x17
-#define VICR6 (WORD)0x1b
-#define VICR7 (WORD)0x1f
-
-#define LICR1 (WORD)0x27 /* Local interrupt control register .. */
-#define LICR2 (WORD)0x2b
-#define LICR3 (WORD)0x2f
-#define LICR4 (WORD)0x33
-#define LICR5 (WORD)0x37
-#define LICR6 (WORD)0x3b
-#define LICR7 (WORD)0x3f
-#define LIVBR (WORD)0x57 /* Local interrupt vector base register */
-
-#define ICGSICR (WORD)0x43 /* ICGS interrupt control register */
-#define ICGSVBR (WORD)0x4f /* ICGS vector base register */
-
-#define ICMSICR (WORD)0x47 /* ICMS interrupt control register */
-#define ICMSVBR (WORD)0x53 /* ICMS vector base register */
-
-#define EGICR (WORD)0x4b /* Error group interrupt control register */
-#define EGIVBR (WORD)0x5b /* Error group interrupt vector base rg */
-
-#define ICSR (WORD)0x5f /* Interprozessor communication switch rg */
-#define ICR0 (WORD)0x63
-#define ICR1 (WORD)0x67
-#define ICR2 (WORD)0x6b
-#define ICR3 (WORD)0x6f
-#define ICR4 (WORD)0x73
-#define ICR5 (WORD)0x77
-#define ICR6 (WORD)0x7b
-#define ICR7 (WORD)0x7f
-
-#define VIICR (WORD)0x03 /* VMEbus Interrupter Interrupt Control */
-#define VIRSR (WORD)0x83 /* VMEbus interrupt request status reg */
-#define VIVR1 (WORD)0x87 /* VMEbus interrupt vector register .. */
-#define VIVR2 (WORD)0x8b
-#define VIVR3 (WORD)0x8f
-#define VIVR4 (WORD)0x93
-#define VIVR5 (WORD)0x97
-#define VIVR6 (WORD)0x9b
-#define VIVR7 (WORD)0x9f
-
-#define TTR (WORD)0xa3 /* transfer timeout register */
-#define LTR (WORD)0xa7 /* local timing register */
-#define ICR (WORD)0xaf /* interface configuration register */
-
-#define ARCR (WORD)0xb3 /* arbiter/requester configuration register*/
-#define AMSR (WORD)0xb7 /* address modifier source register */
-#define BESR (WORD)0xbb /* bus error source register */
-
-#define DSICR (WORD)0x23 /* DMA status interrupt control register */
-#define DSR (WORD)0xbf /* DMA status register */
-
-#define SSCR00 (WORD)0xc3 /* slave select 0 control register 0 */
-#define SSCR01 (WORD)0xc7 /* slave select 0 control register 1 */
-#define SSCR10 (WORD)0xcb /* slave select 1 control register 0 */
-#define SSCR11 (WORD)0xcf /* slave select 1 control register 1 */
-
-#define RCR (WORD)0xd3 /* release control register */
-
-#define BTDR (WORD)0xab /* block transfer definition register */
-#define BTCR (WORD)0xd7 /* block transfer control register */
-#define BTLR0 (WORD)0xdb /* block transfer length register 0 */
-#define BTLR1 (WORD)0xdf /* block transfer length register 1 */
-
-#define SRR (WORD)0xe3 /* system reset register */
-
-#endif
-
-//-------------------------------------------------------------------------------------------
-//-------------------------------------------------------------------------------------------
-//-------------------------------------------------------------------------------------------
Index: wiener_pciada/Klist.c
===================================================================
--- wiener_pciada/Klist.c (revision 16)
+++ wiener_pciada/Klist.c (nonexistent)
@@ -1,337 +0,0 @@
-//-------------------------------------------------------------------------------------------
-// klist.c - parts to maintain a doubly linked list (org microsoft)
-//
-// Please announce changes and hints to ARW Elektronik
-//
-//
-// $Log: Klist.c,v $
-// Revision 1.2 2004/07/24 07:47:46 klaus
-// revised, removed wrong license terms
-//
-// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
-// First put into repository
-//
-// Revision 1.2 2002/10/27 17:05:33 klaus
-// CVS log added, file addressing bug > 2 Gbtye circumvent
-//
-// what who when
-// first steps AR 07.11.1999
-//
-
-//-------------------------------------------------------------------------------------------
-// INCLUDES
-//
-#include <memory.h>
-#include <windows.h>
-#include <Klist.h>
-
-//-------------------------------------------------------------------------------------------
-// DEFINES
-//
-#define memcpy memcpy
-#define BLOCKSIZE 0x4000
-
-//-------------------------------------------------------------------------------------------
-// TYPEDEFS
-//
-typedef struct
-{
- HANDLE hMem; // memory handle for this block
- int iInUse; // number of allocations taken out of it. 0 => free it
- int iNext; // next byte to use
- char chData[BLOCKSIZE];
-} BLOCK, FAR *PBLOCK;
-
-/* The following definition tells the truth about what an ITEM is. The
-| header file says only that there's a structure with the tag item_tag and
-| that a LIST is a pointer to one. Here we spell out what that structure
-| is (and a LIST is still a pointer to one). A PLIST is defined as a
-| pointer to one of those, but is only really used because the C
-| parameter mechanism demands an extra level of indirection for a
-| parameter that can be updated. (Modula-2 VAR parameter).
-*/
-typedef struct item_tag
-{
- struct item_tag FAR *pitNext; /* to next in circular list */
- struct item_tag FAR *pitPrev; /* to prev in circular list */
- PBLOCK pBlock; /* to memory block */
- BOOL bAnchor; /* TRUE iff an anchor block */
- BOOL bOK; /* true unless a list op has failed */
- int iLen; /* length of data only */
- char Data[1]; /* the caller's data. The '1' is a lie */
-} ITEM;
-
-/* For an anchor block, only the fields pitNext thru bAnchor are allocated.
-| For a normal list element, Data may well be longer than 1 byte.
-| The bOK flag is to support a style of programming where several
-| successive operations can be done without having to check the return
-| code at each stage. At the end, the list can be examined to see if
-| the data in it is valid or if it has been made invalid by the failure
-| of any of the previous operations. Certain operations may result in
-| having no list at all if they fail (e.g. create) and for these, you'd
-| better check the result at once!
-| ??? Some of this screed belongs in the header!!!
-*/
-
-//-------------------------------------------------------------------------------------------
-// LOCALS
-//
-static CRITICAL_SECTION CritSec; /* to protect pCurrent */
-
-#define List_Enter_Crit(x) EnterCriticalSection(x)
-#define List_Leave_Crit(x) LeaveCriticalSection(x)
-
-static PBLOCK pCurrent = NULL; // block currently in use
- // must always be either NULL or valid
-
-static int iAnchorSize; /* Size of anchor block (no data, no dummy) */
-static int iHeaderSize; /* Size of data block not counting Data
- and offset from cursor back to item. */
-static BOOL bInited = FALSE; /* TRUE <=> iAnchorSize and iHeaderSize are OK*/
-
-#define MOVEBACK(Curs) \
- { Curs = ((char FAR *)Curs-iHeaderSize); } /*move from Data to pitNext*/
-
-//-------------------------------------------------------------------------------------------
-// EXTERNALS
-//
-
-//-------------------------------------------------------------------------------------------
-// GLOBALS
-//
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-
-/* Allocate storage for List elements. n.b. after a call to this
- you MUST record the value of pCurrent as you need to hand that in
- to Free. You don't hand in the value of the actual storage.
- See screed above.
- This function Enters the critical section. The caller must Leave it.
-*/
-static LPVOID Alloc(int size)
-{
- HANDLE hMem;
- LPVOID pRet;
- List_Enter_Crit(&CritSec);
- if ((pCurrent==NULL)||(pCurrent->iNext+size>BLOCKSIZE+1))
- {
- hMem = GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,(DWORD)(sizeof(BLOCK)));
- if (hMem==NULL)
- {
- pCurrent = NULL;
- OutputDebugString("GlobalAlloc failed!!\n");
- return NULL;
- }
- pCurrent = (PBLOCK)GlobalLock(hMem);
- if (pCurrent==NULL)
- {
- OutputDebugString("GlobalLock failed!!\n");
- return NULL;
- }
- pCurrent->hMem = hMem;
- pCurrent->iInUse = 0;
- pCurrent->iNext = 0;
- }
- pRet = &(pCurrent->chData[pCurrent->iNext]);
- ++(pCurrent->iInUse);
- pCurrent->iNext += size;
-
- // ensure that the data is aligned 4 byte
- pCurrent->iNext += 3;
- pCurrent->iNext -= pCurrent->iNext % 4;
-
- return pRet;
-}
-
-static void Free(PBLOCK pBlock, LPVOID p)
-{
- HANDLE hMem;
- List_Enter_Crit(&CritSec);
- --pBlock->iInUse;
- if (pBlock->iInUse<=0)
- {
- if (pBlock->iInUse<0)
- {
- // don't know what to do with it
- }
-
- hMem = pBlock->hMem;
- GlobalUnlock(hMem);
- GlobalFree(hMem);
- if (pCurrent==pBlock) pCurrent = NULL; /* defend the invariant */
- }
- List_Leave_Crit(&CritSec);
-}
-
- /*==================================================================
- || Lists are circular, doubly linked with an anchor block which holds
- || pointers to both ends. Every block has a flag which shows whether
- || it's an anchor or not.
- ||
- || Empty list:
- ||
- || -------------
- || | |
- || | Anchor |
- || v ------- |
- || Ul--->| Next--+--|
- || |-------| |
- || | Prev--+--
- || -------
- ||
- || One entry list:
- ||
- || ------------------------------------
- || | |
- || | Anchor |
- || v ------- ------ |
- || Ul--->| Next--+------------->| Next-+---|
- || |-------| | |------| |
- || | Prev--+---- | Prev-+---
- || ------- |------|
- || | Len |
- || |------|
- || | Data |
- || ------
- || Two entry list:
- ||
- || -------------------------------------------------
- || | --------------- --------------- |
- || || | | | |
- || || Anchor | | | |
- || vv -------- | v ------ | ------ |
- || Ul--->| Next--+-----+----->| Next-+----+-->| Next-+--
- || |-------| | |------| | | |------|
- || | Prev--+-- ------+-Prev | | ---+-Prev |
- || ------- | |------| | |------|
- || | | Len | | | Len |
- || | |------| | |------|<----Cursor
- || | | Data | | | Data |
- || | ------ | ------
- || | |
- || -------------------
- ||
- || etc.
- ||
- || Note that an external cursor (i.e one which is seen by the caller)
- || points to the Data field, not to the start of the structure.
- || This allows easy access to the data by the user at the cost of a
- || slightly slower traverse.
- || Within this module, we may sometimes traverse a list with a cursor
- || that points to the start of an item. This is called an item cursor.
- È===================================================================*/
-
- /*------------------------------------------------------------------
- | Set iAnchorSize and iHeaderSize. Implementation independent!
- -------------------------------------------------------------------*/
-void APIENTRY List_Init(void)
-{
- LIST P;
-
- P = (LIST)&P; /* really any old address will do */
- iAnchorSize = (char FAR *)&(P->iLen) - (char FAR *)&(P->pitNext);
- iHeaderSize = (char FAR *)&(P->Data) - (char FAR *)&(P->pitNext);
- InitializeCriticalSection(&CritSec);
- /* assumes layout in storage is linear */
-}
-
- /*------------------------------------------------------------------
- | Create a list. It will be initially empty
- -------------------------------------------------------------------*/
-LIST APIENTRY List_Create(void)
-{
- LIST lst;
-
- if (!bInited) {List_Init(); } /* prevent some silly errors */
- lst = Alloc(iAnchorSize);
- if (lst==NULL) { return NULL; }
- lst->pBlock = pCurrent;
- List_Leave_Crit(&CritSec);
- lst->bOK = TRUE;
- lst->pitNext = lst;
- lst->pitPrev = lst;
- lst->bAnchor = TRUE;
- /* no length field set in an anchor block */
- return lst;
-}
-
- /*------------------------------------------------------------------
- | Destroy *plst. It does not need to be empty first
- -------------------------------------------------------------------*/
-void APIENTRY List_Destroy(PLIST plst)
-{
- LIST pitP; /* item cursor on * plst */
- LIST pitQ; /* item cursor runs one step ahead of pitQ */
-
- if (plst==NULL)
- return;
- /* There is at least an anchor block to destroy */
- pitP = *plst;
- do
- {
- pitQ = pitP->pitNext;
- Free(pitP->pBlock, pitP);
- pitP = pitQ;
- }while(pitP != *plst);
- *plst = NULL;
-}
-
- /*------------------------------------------------------------------
- | Return the address of the place for Len bytes of data in a new
- | item at the start of lst
- -------------------------------------------------------------------*/
-LPVOID APIENTRY List_NewFirst(LIST lst, UINT uLen)
-{
- LIST pit;
-
- if (lst==NULL)
- return NULL;
- pit = Alloc(iHeaderSize+uLen);
- if (pit==NULL) { lst->bOK = FALSE; return NULL; }
- pit->pBlock = pCurrent;
- List_Leave_Crit(&CritSec);
- pit->iLen = uLen;
- pit->pitPrev = lst;
- pit->pitNext = lst->pitNext;
- lst->pitNext->pitPrev = pit; /* for empty list that set lst->pitPrev */
- lst->pitNext = pit;
- pit->bAnchor = FALSE;
- return (char FAR *)&(pit->Data);
-}
-
-
- /*------------------------------------------------------------------
- | Delete the item that Curs identifies.
- | This will be only a few (maybe as little as 3) machine instructions
- | quicker than DeleteForwards or DeleteBackwards but leaves Curs dangling.
- | It is therefore NOT usually to be preferred.
- | It may be useful when you have a function which returns an LPVOID
- | since the argument does not need to be a variable.
- | Trivial example: List_Delete(List_First(L));
- -------------------------------------------------------------------*/
-void APIENTRY List_Delete(LPVOID Curs)
-{
- LIST pit;
-
- if(Curs==NULL)
- return;
- MOVEBACK(Curs)
- pit = (LIST)Curs;
- pit->pitNext->pitPrev = pit->pitPrev;
- pit->pitPrev->pitNext = pit->pitNext;
- Free(pit->pBlock, pit);
-}
-
-
- /*---------------------------------------------------------------------
- | Return TRUE if and only if lst is empty
- ----------------------------------------------------------------------*/
-BOOL APIENTRY List_IsEmpty(LIST lst)
-{
- if (lst==NULL)
- return TRUE; /* well it's sort of true isn't it? */
- return lst->pitNext ==lst;
-}
-
Index: wiener_pciada/pcivme.h
===================================================================
--- wiener_pciada/pcivme.h (revision 16)
+++ wiener_pciada/pcivme.h (nonexistent)
@@ -1,289 +0,0 @@
-#ifndef __PCIVME_H__
-#define __PCIVME_H__
-//-------------------------------------------------------------------------
-// WINNT driver for PCIVME interface from ARW Elektronik, Germany ---------
-// IO definitions and common data structures between application and driver
-//
-// (c) 1999-2004 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
-//
-// $Log: pcivme.h,v $
-// Revision 1.3 2004/07/24 07:07:26 klaus
-// Update copyright to 2004
-//
-// Revision 1.2 2003/11/15 19:12:50 klaus
-// Update copyright to 2003
-//
-// Revision 1.1.1.1 2003/11/14 23:16:33 klaus
-// First put into repository
-//
-// Revision 1.4 2002/10/27 17:02:30 klaus
-// File addressing bug > 2 Gbtye circumvent
-//
-// Revision 1.3 2002/10/27 16:17:48 klaus
-// Typing bug fixed caused at log addition
-//
-// Revision 1.2 2002/10/27 16:11:02 klaus
-// Added CVS log into header
-//
-// what who when
-// started AR 15.06.99
-//
-
-//-------------------------------------------------------------------------
-// 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
-//
-
-// to get a compatible view to WIN95 driver
-#define USER_CONTROL_CODE(x) (0x800 + x)
-
-// initialise a dedicated VMEMM hardware
-#define PCIVME_INIT_HARDWARE CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(0),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// de-initialise a dedicated VMEMM hardware
-#define PCIVME_DEINIT_HARDWARE CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(1),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// get a static status info from a dedicted VMEMM+PCIADA hardware
-#define PCIVME_GET_STATIC_STATUS CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(4),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// get dynamically changing status from PCIADA+VMEMM
-#define PCIVME_GET_DYNAMIC_STATUS CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(5),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// read a vector in case of interrupt from VMEMM or PCIADA
-#define PCIVME_READ_VECTOR CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(6),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// access VIC68A registers direct
-#define PCIVME_ACCESS_VIC68A CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(7),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// enable or disable interrupts from user space
-#define PCIVME_CONTROL_INTERRUPTS CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(9),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// generate a (undivisible) test-and-set instruction
-#define PCIVME_TAS CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(10),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// generate a reset on VME BUS for a dedicated VMEMM interface
-#define PCIVME_RESET CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(12),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// set the access parameter for this file (vmemm)
-#define PCIVME_SET_ACCESS_PARA CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(13),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// my last usefull control code - change each time you add a ctl_code
-#define PCIVME_LAST_CTL_CODE PCIVME_SET_ACCESS_PARA
-
-// to make standard entries for not compatible WIN95 call codes
-#define PCIVME_INCOMPATIBLE CTL_CODE(\
- FILE_DEVICE_UNKNOWN,\
- USER_CONTROL_CODE(255),\
- METHOD_BUFFERED,\
- FILE_ANY_ACCESS)
-
-// to get a compatible view to WIN95 driver
-#define VPCIVMED_INIT_HARDWARE PCIVME_INIT_HARDWARE
-#define VPCIVMED_DEINIT_HARDWARE PCIVME_DEINIT_HARDWARE
-#define VPCIVMED_ATTACH_WINDOW PCIVME_INCOMPATIBLE // no compatibility!
-#define VPCIVMED_DETACH_WINDOW PCIVME_INCOMPATIBLE // no compatibility!
-#define VPCIVMED_GET_STATIC_STATUS PCIVME_GET_STATIC_STATUS
-#define VPCIVMED_GET_DYNAMIC_STATUS PCIVME_GET_DYNAMIC_STATUS
-#define VPCIVMED_READ_VECTOR PCIVME_READ_VECTOR
-#define VPCIVMED_ACCESS_VIC68A PCIVME_ACCESS_VIC68A
-#define VPCIVMED_CONTROL_INTERRUPTS PCIVME_CONTROL_INTERRUPTS
-#define VPCIVMED_TAS PCIVME_TAS
-#define VPCIVMED_GET_PCIADA_STATUS PCIVME_GET_PCIADA_STATUS
-#define VPCIVMED_RESET PCIVME_RESET
-
-// switches for PCIVME_(DE)INIT_HARDWARE ------------------------
-#define LCR (UCHAR)0 // destination is LCR register
-#define IFR (UCHAR)1 // destination is VME-Interface register
-#define VIC (UCHAR)2 // destination is VIC68A register
-#define STOP (UCHAR)255 // this command stops the init machine
-
-#define BYTE_ACCESS (UCHAR)1 // write byte wise
-#define WORD_ACCESS (UCHAR)2 // word
-#define LONG_ACCESS (UCHAR)4 // long
-
-// switches for PCIVME_ACCESS_VIC68A --------------------------
-#define VIC68A_READ 0 // read only access
-#define VIC68A_WRITE 1 // write and read back access
-#define VIC68A_OR 2 // read, bitwise 'or' content and read back access
-#define VIC68A_AND 3 // read, bitwise 'and' content and read back access
-#define VIC68A_WRITE_ONLY 4 // do not read back after write
-
-// switches for the PCIVME_RESET ------------------------------
-#define VME_RESET_CMD 0 // raise a VME reset only
-#define LOCAL_RESET_CMD 1 // raise a local reset only
-#define GLOBAL_RESET_CMD 2 // raise a global reset
-#define POLL_RESET_CMD 3 // ask if reset is finished
-
-#define BOGUSADDRESS 0xFFFFFFFF // compatibilty to WIN95
-
-#ifndef PHYSICAL_ADDRESS
-#define PHYSICAL_ADDRESS LARGE_INTEGER
-#endif
-
-//-------------------------------------------------------------------------
-// TYPEDEFS
-//
-typedef struct // one command element to initialize interface or deinitialize
-{
- UCHAR range; // 0 = lcr, 1 = vme-interface, -1 = stop, default = vme-if
- UCHAR type; // 1 = byte access, 2 = word access, 4 = dword access, default byte
- USHORT offset; // offset into interface address range for initialisation
- ULONG value; // value to initialize
-} PCIVME_INIT_ELEMENT;
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
- PCIVME_INIT_ELEMENT sVie[8]; // at least one zero element must be the last
-} PCIVME_INIT_COMMAND;
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
- UCHAR bAddressModifier; // set the current modifier
- UCHAR bAccessType; // set the current access type (1,2,4)
- UCHAR bIncrement; // set the current byte increment count
- ULONG dwAccessBase; // base address of seek operation (extended modifiers only, else must = 0)
-} PCIVME_ACCESS_COMMAND;
-
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
- USHORT wRegisterAddress; // address offset of vic68a register
- USHORT wAccessMode; // read, write, or, and
- UCHAR bContent; // content to write, and, or
-} PCIVME_VIC68A_ACTION;
-
-// includes static information about driver parameters ------
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
- ULONG dwLinkCount; // how often this interface is requested
-
- USHORT wNumMemWindows; // aus der aktuellen konfiguration
- USHORT wNumIOPorts;
- USHORT wNumIRQs;
- USHORT wNumDMAs;
-
- USHORT wModuleType; // von der angeschlossenen hardware gelesen
- USHORT wFPGAVersion;
- USHORT wModuleNumber;
- USHORT wWordMode;
-
- USHORT wSysControl; // if the associated VMEMM has slot 1 function
- USHORT wConnected; // is the VMEMM connected (obsolete sometimes)
-
- PHYSICAL_ADDRESS pvLcr; // physikalische adresse des lcr
- PHYSICAL_ADDRESS pvIfr; // physikalische adresse des interfaces ohne vme
-
- ULONG dwDriverVersion; // highWord.lowWord
- ULONG dwDriverVariant; // show customized variants here
-} PCIVME_STATIC_STATUS;
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
-
- USHORT wVMEMM_connected; // status: VMEMM is connected and powered
- USHORT wVMEMM_enable; // status: VMEMM access is enabled
- USHORT wPCIADAIrq; // status: PCIADA timeout IRQ pending
- USHORT wVMEMMIrq; // status: VMEMM IRQ pending
-} PCIVME_DYNAMIC_STATUS;
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
- ULONG dwAddress; // tas to address
- USHORT wModifier; // VME address modifier for this window
- UCHAR bContent; // byte content to store and get back
-} PCIVME_TAS_STRUCT;
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
- USHORT wCommand; // the appropriate reset command
-} PCIVME_RESET_COMMAND;
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
- USHORT wResult;
-} PCIVME_RESET_RESULT; // polling result: in progress if (wResult != 0)
-
-typedef struct
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95..
- USHORT wEnable; // a 1 enables the queue filling, a 0 disables
-} PCIVME_IRQ_CONTROL;
-
-typedef struct // to request vectors from a interface
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95..
- USHORT wRequestCount; // maximum number of vectors to requests
- BOOLEAN bPoll; // no blocking allowed - poll always
-} PCIVME_VECTOR_REQUEST;
-
-typedef struct // the response to the above request
-{
- ULONG dwInterface; // here dummy 'cause of compatibility to WIN95..
- USHORT wPendingCount; // represents the number of vectors pending
- USHORT wCount; // actual delivered count of vectors
- BOOLEAN bOverflow; // there was a irq overflow @ this channel
- UCHAR bStatusID; // base of following vector array
-} PCIVME_VECTOR_RESPONSE;
-
-#endif // __PCIVME_H__
Index: wiener_pciada/pcivme_ni.ncb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/pcivme_ni.ncb
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/pcivme_ni.opt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/pcivme_ni.opt
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Klist.h
===================================================================
--- wiener_pciada/Klist.h (revision 16)
+++ wiener_pciada/Klist.h (nonexistent)
@@ -1,52 +0,0 @@
-#ifndef __KLIST_H__
-#define __KLIST_H__
-
-//-------------------------------------------------------------------------------------------
-// klist.h - header parts to maintain a doubly linked list (org microsoft)
-//
-// Please announce changes and hints to ARW Elektronik
-//
-//
-// $Log: Klist.h,v $
-// Revision 1.2 2004/07/24 07:47:46 klaus
-// revised, removed wrong license terms
-//
-//
-// what who when
-// first steps AR 07.11.1999
-//
-
-typedef struct item_tag FAR * LIST;
-typedef LIST FAR * PLIST;
-
-void APIENTRY List_Init(void);
-/* MUST BE CALLED BEFORE ANY OF THE OTHER FUNCTIONS. */
-
-LIST APIENTRY List_Create(void);
-/* Create a list. It will be initially empty */
-
-void APIENTRY List_Destroy(PLIST plst);
-/* Destroy *plst. It does not need to be empty first.
-| All storage directly in the list wil be freed.
-*/
-
-LPVOID APIENTRY List_NewFirst(LIST lst, UINT uLen);
-/* Return the address of the place for Len bytes of data in a new
-| item at the start of *plst
-*/
-
-void APIENTRY List_Delete(LPVOID Curs);
-/*------------------------------------------------------------------
-| Delete the item that Curs identifies.
-| This will be only a few (maybe as little as 3) machine instructions
-| quicker than DeleteAndNext or DeleteAndPrev but leaves Curs dangling.
-| It is therefore NOT usually to be preferred.
-| It may be useful when you have a function which returns an LPVOID
-| since the argument does not need to be a variable.
-| Trivial example: List_Delete(List_First(L));
--------------------------------------------------------------------*/
-
-BOOL APIENTRY List_IsEmpty(LIST lst);
-/* Return TRUE if and only if lst is empty */
-
-#endif /* __KLIST_H__ */
\ No newline at end of file
Index: wiener_pciada/Vme.h
===================================================================
--- wiener_pciada/Vme.h (revision 16)
+++ wiener_pciada/Vme.h (nonexistent)
@@ -1,57 +0,0 @@
-#ifndef __VME_H__
-#define __VME_H__
-
-//------------------------------------------------------------------------------------------
-// vme.h - some constants about VME address modifiers in a more readable kind
-//
-// (c) 1999-2004 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
-//
-//
-// $Log: Vme.h,v $
-// Revision 1.3 2004/07/24 07:07:26 klaus
-// Update copyright to 2004
-//
-// Revision 1.2 2003/11/15 19:12:51 klaus
-// Update copyright to 2003
-//
-// Revision 1.1.1.1 2003/11/14 23:16:33 klaus
-// First put into repository
-//
-// Revision 1.3 2002/10/27 16:17:48 klaus
-// Typing bug fixed caused at log addition
-//
-// Revision 1.2 2002/10/27 16:11:03 klaus
-// Added CVS log into header
-//
-// what who when
-// finished first release to use with the PCIVME interface of ARW AR 22.03.1999
-//
-
-typedef WORD ADDRESS_MODIFIER;
-
-#define Std_Sup_Data (ADDRESS_MODIFIER)0x3d
-#define Std_Sup_Prog (ADDRESS_MODIFIER)0x3e
-#define Std_NoPriv_Data (ADDRESS_MODIFIER)0x39
-#define Std_NoPriv_Prog (ADDRESS_MODIFIER)0x3a
-
-#define Short_Sup (ADDRESS_MODIFIER)0x2d
-#define Short_NoPriv (ADDRESS_MODIFIER)0x29
-
-#define Ext_Sup_Data (ADDRESS_MODIFIER)0x0d
-#define Ext_Sup_Prog (ADDRESS_MODIFIER)0x0e
-#define Ext_NoPriv_Data (ADDRESS_MODIFIER)0x09
-#define Ext_NoPriv_Prog (ADDRESS_MODIFIER)0x0a
-
-#endif
-
-//-------------------------------------------------------------------------------------------
-//-------------------------------------------------------------------------------------------
-//-------------------------------------------------------------------------------------------
Index: wiener_pciada/os_info.c
===================================================================
--- wiener_pciada/os_info.c (revision 16)
+++ wiener_pciada/os_info.c (nonexistent)
@@ -1,116 +0,0 @@
-//-------------------------------------------------------------------------------------------
-// os_info.c - request the OS type and version
-//
-// (c) 1999-2004 ARW Elektronik, Germany
-//
-// 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
-//
-//
-// $Log: os_info.c,v $
-// Revision 1.2 2004/07/24 07:47:00 klaus
-// Update copyright to 2004
-//
-// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
-// First put into repository
-//
-// Revision 1.2 2002/10/27 17:05:33 klaus
-// CVS log added, file addressing bug > 2 Gbtye circumvent
-//
-// what who when
-// first steps AR 07.11.1999
-// small change in OS version recognition AR 21.05.2002
-//
-
-//-------------------------------------------------------------------------------------------
-// INCLUDES
-//
-#include <windows.h>
-
-//-------------------------------------------------------------------------------------------
-// DEFINES
-//
-
-//-------------------------------------------------------------------------------------------
-// TYPEDEFS
-//
-
-//-------------------------------------------------------------------------------------------
-// LOCALS
-//
-
-//-------------------------------------------------------------------------------------------
-// EXTERNALS
-//
-
-//-------------------------------------------------------------------------------------------
-// GLOBALS
-//
-
-//-------------------------------------------------------------------------------------------
-// FUNCTIONS
-//
-BOOLEAN IsWindowsNT(void)
-{
- OSVERSIONINFO osvi;
-
- osvi.dwOSVersionInfoSize = sizeof(osvi);
- if (!GetVersionEx(&osvi)) return FALSE; // can't get info
-
- if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
- {
- return TRUE;
- }
- else
- return FALSE;
-}
-
-BOOLEAN IsWindows95(void)
-{
- OSVERSIONINFO osvi;
-
- osvi.dwOSVersionInfoSize = sizeof(osvi);
- if (!GetVersionEx(&osvi)) return FALSE; // can't get info
-
- if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
- {
- if ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion == 0))
- return TRUE;
- else
- return FALSE;
- }
- else
- return FALSE;
-}
-
-BOOLEAN IsWindows98(void)
-{
- OSVERSIONINFO osvi;
-
- osvi.dwOSVersionInfoSize = sizeof(osvi);
- if (!GetVersionEx(&osvi)) return FALSE; // can't get info
-
- if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
- {
- if ((osvi.dwMajorVersion > 4) ||
- ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion > 0)))
- return TRUE;
- else
- return FALSE;
- }
- else
- return FALSE;
-}
-
-/*
-BOOLEAN IsWindowsBlaBla(void)
-{
-
-}
-*/
-
Index: wiener_pciada/Release/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/link.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/CL.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.Build.CppClean.log
===================================================================
--- wiener_pciada/Release/pcivme_ni.Build.CppClean.log (revision 16)
+++ wiener_pciada/Release/pcivme_ni.Build.CppClean.log (nonexistent)
@@ -1,25 +0,0 @@
-C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\PCIVME_NI_NT.OBJ
-C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\PCIVME_NI.OBJ
-C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\OS_INFO.OBJ
-C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\KLIST.OBJ
-C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\VC110.PDB
-C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\PCIVME_NI.DLL
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.lib
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.exp
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\Klist.obj
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\os_info.obj
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.obj
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni_NT.obj
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\cl.command.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\CL.read.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\CL.write.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-cvtres.read.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-cvtres.write.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-rc.read.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-rc.write.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link.command.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link.read.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link.write.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.write.1.tlog
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\vc110.pdb
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\.\Release\pcivme_ni.dll
Index: wiener_pciada/Release/link-rc.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/link-rc.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/link.command.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/cl.command.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/pcivme_ni.lib
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/link-cvtres.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/link-cvtres.read.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/pcivme_ni.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni_NT.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/pcivme_ni_NT.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/pcivme_ni.dll
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.log
===================================================================
--- wiener_pciada/Release/pcivme_ni.log (revision 16)
+++ wiener_pciada/Release/pcivme_ni.log (nonexistent)
@@ -1,23 +0,0 @@
-Build started 10.2.2014 9:31:30.
- 1>Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" on node 2 (Rebuild target(s)).
- 1>ClCompile:
- C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I. /Zi /nologo /W3 /WX- /O2 /Oy- /D WIN32 /D NDEBUG /D _WINDOWS /D _VC80_UPGRADE=0x0600 /D _WINDLL /GF /Gm- /EHsc /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo".\Release\\" /Fd".\Release\vc110.pdb" /Gd /TC /analyze- /errorReport:prompt Klist.c os_info.c pcivme_ni.c pcivme_ni_NT.c
- Klist.c
- os_info.c
- pcivme_ni.c
- pcivme_ni_NT.c
- 1>pcivme_ni_NT.c(103): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- 1>pcivme_ni_NT.c(105): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
- Generating Code...
- Link:
- C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:".\Release\pcivme_ni.dll" /INCREMENTAL:NO /NOLOGO odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\Release\pcivme_ni.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\Release\pcivme_ni.lib" /MACHINE:X86 /SAFESEH /DLL .\Release\Klist.obj
- .\Release\os_info.obj
- .\Release\pcivme_ni.obj
- .\Release\pcivme_ni_NT.obj
- Creating library .\Release\pcivme_ni.lib and object .\Release\pcivme_ni.exp
- pcivme_ni.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\.\Release\pcivme_ni.dll
- 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" (Rebuild target(s)).
-
-Build succeeded.
-
-Time Elapsed 00:00:01.17
Index: wiener_pciada/Release/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/link.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/CL.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/link-rc.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/link-rc.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.lastbuildstate
===================================================================
--- wiener_pciada/Release/pcivme_ni.lastbuildstate (revision 16)
+++ wiener_pciada/Release/pcivme_ni.lastbuildstate (nonexistent)
@@ -1,2 +0,0 @@
-#v4.0:v110:false
-Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\|
Index: wiener_pciada/Release/link-cvtres.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/link-cvtres.write.1.tlog
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/vc110.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/vc110.pdb
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/Klist.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/Klist.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.exp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/pcivme_ni.exp
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pciada/Release/pcivme_ni.write.1.tlog
===================================================================
--- wiener_pciada/Release/pcivme_ni.write.1.tlog (revision 16)
+++ wiener_pciada/Release/pcivme_ni.write.1.tlog (nonexistent)
@@ -1,5 +0,0 @@
-^C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.lib
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.lib
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.exp
-C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.exp
Index: wiener_pciada/Release/os_info.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pciada/Release/os_info.obj
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/pcivme_ni.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni_NT.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/pcivme_ni_NT.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/pcivme_ni.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.log
===================================================================
--- wiener_pcivme_dll/Release/pcivme_ni.log (nonexistent)
+++ wiener_pcivme_dll/Release/pcivme_ni.log (revision 17)
@@ -0,0 +1,23 @@
+Build started 10.2.2014 9:31:30.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" on node 2 (Rebuild target(s)).
+ 1>ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I. /Zi /nologo /W3 /WX- /O2 /Oy- /D WIN32 /D NDEBUG /D _WINDOWS /D _VC80_UPGRADE=0x0600 /D _WINDLL /GF /Gm- /EHsc /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo".\Release\\" /Fd".\Release\vc110.pdb" /Gd /TC /analyze- /errorReport:prompt Klist.c os_info.c pcivme_ni.c pcivme_ni_NT.c
+ Klist.c
+ os_info.c
+ pcivme_ni.c
+ pcivme_ni_NT.c
+ 1>pcivme_ni_NT.c(103): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ 1>pcivme_ni_NT.c(105): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ Generating Code...
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:".\Release\pcivme_ni.dll" /INCREMENTAL:NO /NOLOGO odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:".\Release\pcivme_ni.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\Release\pcivme_ni.lib" /MACHINE:X86 /SAFESEH /DLL .\Release\Klist.obj
+ .\Release\os_info.obj
+ .\Release\pcivme_ni.obj
+ .\Release\pcivme_ni_NT.obj
+ Creating library .\Release\pcivme_ni.lib and object .\Release\pcivme_ni.exp
+ pcivme_ni.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\.\Release\pcivme_ni.dll
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" (Rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:01.17
Index: wiener_pcivme_dll/Release/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/link-rc.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/link-rc.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.lastbuildstate
===================================================================
--- wiener_pcivme_dll/Release/pcivme_ni.lastbuildstate (nonexistent)
+++ wiener_pcivme_dll/Release/pcivme_ni.lastbuildstate (revision 17)
@@ -0,0 +1,2 @@
+#v4.0:v110:false
+Release|Win32|C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\|
Index: wiener_pcivme_dll/Release/link-cvtres.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/link-cvtres.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/vc110.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/vc110.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/Klist.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/Klist.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.exp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/pcivme_ni.exp
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.write.1.tlog
===================================================================
--- wiener_pcivme_dll/Release/pcivme_ni.write.1.tlog (nonexistent)
+++ wiener_pcivme_dll/Release/pcivme_ni.write.1.tlog (revision 17)
@@ -0,0 +1,5 @@
+^C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.lib
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.lib
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.exp
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.exp
Index: wiener_pcivme_dll/Release/os_info.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/os_info.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.Build.CppClean.log
===================================================================
--- wiener_pcivme_dll/Release/pcivme_ni.Build.CppClean.log (nonexistent)
+++ wiener_pcivme_dll/Release/pcivme_ni.Build.CppClean.log (revision 17)
@@ -0,0 +1,25 @@
+C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\PCIVME_NI_NT.OBJ
+C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\PCIVME_NI.OBJ
+C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\OS_INFO.OBJ
+C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\KLIST.OBJ
+C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\VC110.PDB
+C:\USERS\F9DAQ\ROK\WIENERPCIADA\PCIVME\DLL-SOURCE\RELEASE\PCIVME_NI.DLL
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.lib
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.exp
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\Klist.obj
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\os_info.obj
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.obj
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni_NT.obj
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\cl.command.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\CL.read.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\CL.write.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-cvtres.read.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-cvtres.write.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-rc.read.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link-rc.write.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link.command.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link.read.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\link.write.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\pcivme_ni.write.1.tlog
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Release\vc110.pdb
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\.\Release\pcivme_ni.dll
Index: wiener_pcivme_dll/Release/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/link-rc.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/link-rc.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/link-cvtres.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/link-cvtres.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Release/pcivme_ni.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Release/pcivme_ni.lib
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/os_info.h
===================================================================
--- wiener_pcivme_dll/os_info.h (nonexistent)
+++ wiener_pcivme_dll/os_info.h (revision 17)
@@ -0,0 +1,32 @@
+#ifndef __OS_INFO_H__
+#define __OS_INFO_H__
+//-------------------------------------------------------------------------------------------
+// os_info.h - request the OS type and version - the prototypes
+//
+// (c) 1999-2004 ARW Elektronik, Germany
+//
+//
+// 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
+//
+//
+// $Log: os_info.h,v $
+// Revision 1.2 2004/07/24 08:05:31 klaus
+// Update copyright to 2004
+//
+//
+// what who when
+// first steps AR 07.11.1999
+//
+
+BOOLEAN IsWindowsNT(void);
+BOOLEAN IsWindows98(void);
+BOOLEAN IsWindows95(void);
+
+#endif
+
Index: wiener_pcivme_dll/pcivme_ni.v11.suo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/pcivme_ni.v11.suo
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/pcivme_ni.sdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/pcivme_ni.sdf
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/pcivme_ni.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni_NT.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/pcivme_ni_NT.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.dll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/pcivme_ni.dll
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/vc110.idb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/vc110.idb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.ilk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/pcivme_ni.ilk
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.log
===================================================================
--- wiener_pcivme_dll/Debug/pcivme_ni.log (nonexistent)
+++ wiener_pcivme_dll/Debug/pcivme_ni.log (revision 17)
@@ -0,0 +1,18 @@
+Build started 10.2.2014 9:28:27.
+ 1>Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" on node 2 (Build target(s)).
+ 1>ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\CL.exe /c /I. /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D _VC80_UPGRADE=0x0600 /D _WINDLL /Gm /EHsc /MTd /GS /Gy- /fp:precise /Zc:wchar_t /Zc:forScope /Fo".\Debug\\" /Fd".\Debug\vc110.pdb" /Gd /TC /analyze- /errorReport:prompt pcivme_ni.c
+ pcivme_ni.c
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:".\Debug\pcivme_ni.dll" /INCREMENTAL /NOLOGO odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:".\Debug\pcivme_ni.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:".\Debug\pcivme_ni.lib" /MACHINE:X86 /SAFESEH /DLL .\Debug\Klist.obj
+ .\Debug\os_info.obj
+ .\Debug\pcivme_ni.obj
+ .\Debug\pcivme_ni_NT.obj
+ 1>Klist.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/SAFESEH' specification
+ Creating library .\Debug\pcivme_ni.lib and object .\Debug\pcivme_ni.exp
+ pcivme_ni.vcxproj -> C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\.\Debug\pcivme_ni.dll
+ 1>Done Building Project "C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj" (Build target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:00.64
Index: wiener_pcivme_dll/Debug/link.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/link.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/CL.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/CL.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/link-rc.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/link-rc.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.lastbuildstate
===================================================================
--- wiener_pcivme_dll/Debug/pcivme_ni.lastbuildstate (nonexistent)
+++ wiener_pcivme_dll/Debug/pcivme_ni.lastbuildstate (revision 17)
@@ -0,0 +1,2 @@
+#v4.0:v110:false
+Debug|Win32|C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\|
Index: wiener_pcivme_dll/Debug/link-cvtres.write.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/link-cvtres.write.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/vc110.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/vc110.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/Klist.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/Klist.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.exp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/pcivme_ni.exp
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.write.1.tlog
===================================================================
--- wiener_pcivme_dll/Debug/pcivme_ni.write.1.tlog (nonexistent)
+++ wiener_pcivme_dll/Debug/pcivme_ni.write.1.tlog (revision 17)
@@ -0,0 +1,5 @@
+^C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\pcivme_ni.vcxproj
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.lib
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.lib
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.exp
+C:\Users\f9daq\rok\wienerpciada\PciVme\Dll-source\Debug\pcivme_ni.exp
Index: wiener_pcivme_dll/Debug/os_info.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/os_info.obj
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/link.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/link.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/CL.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/CL.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/link-rc.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/link-rc.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/link.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/link.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.pdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/pcivme_ni.pdb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/link-cvtres.read.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/link-cvtres.read.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/cl.command.1.tlog
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/cl.command.1.tlog
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Debug/pcivme_ni.lib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/Debug/pcivme_ni.lib
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/pcivme_ni.plg
===================================================================
--- wiener_pcivme_dll/pcivme_ni.plg (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.plg (revision 17)
@@ -0,0 +1,37 @@
+<html>
+<body>
+<pre>
+<h1>Erstellungsprotokoll</h1>
+<h3>
+--------------------Konfiguration: pcivme_ni - Win32 Release--------------------
+</h3>
+<h3>Befehlszeilen</h3>
+Erstellen der temporären Datei "E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD7.tmp" mit Inhalten
+[
+/nologo /MT /W3 /GX /O2 /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"Release/pcivme_ni.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+"E:\Work\projects\pcivme_ni\pcivme_ni.c"
+]
+Creating command line "cl.exe @E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD7.tmp"
+Erstellen der temporären Datei "E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD8.tmp" mit Inhalten
+[
+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 /dll /incremental:no /pdb:"Release/pcivme_ni.pdb" /machine:I386 /out:"Release/pcivme_ni.dll" /implib:"Release/pcivme_ni.lib"
+.\Release\Klist.obj
+.\Release\os_info.obj
+.\Release\pcivme_ni.obj
+.\Release\pcivme_ni_95.obj
+.\Release\pcivme_ni_NT.obj
+]
+Erstellen der Befehlzeile "link.exe @E:\DOKUME~1\klaus\LOKALE~1\Temp\RSPD8.tmp"
+<h3>Ausgabefenster</h3>
+Kompilierung läuft...
+pcivme_ni.c
+Linker-Vorgang läuft...
+ Bibliothek Release/pcivme_ni.lib und Objekt Release/pcivme_ni.exp wird erstellt
+
+
+
+<h3>Ergebnisse</h3>
+pcivme_ni.dll - 0 Fehler, 0 Warnung(en)
+</pre>
+</body>
+</html>
Index: wiener_pcivme_dll/pcivme_ni.c
===================================================================
--- wiener_pcivme_dll/pcivme_ni.c (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.c (revision 17)
@@ -0,0 +1,145 @@
+//-------------------------------------------------------------------------------------------
+// pcivme_ni.c - a ni labview dll skeleton for the ARW pcivme interface
+//
+// (c) 1999-2004 ARW Elektronik, Germany
+//
+// 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
+//
+//
+// $Log: pcivme_ni.c,v $
+// Revision 1.2 2004/07/24 07:47:00 klaus
+// Update copyright to 2004
+//
+// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
+// First put into repository
+//
+// Revision 1.2 2002/10/27 17:05:33 klaus
+// CVS log added, file addressing bug > 2 Gbtye circumvent
+//
+// what who when
+// first steps AR 07.11.1999
+//
+
+//-------------------------------------------------------------------------------------------
+// INCLUDES
+//
+#include <windows.h>
+#include <os_info.h>
+#include <pcivme_ni_NT.h>
+#include <pcivme_ni.h>
+
+//-------------------------------------------------------------------------------------------
+// DEFINES
+//
+
+//-------------------------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct
+{
+ int (*VMEinit)(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
+ int (*VMEread)(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+ int (*VMEwrite)(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+ int (*VMEaccessVIC)(int Handle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
+ int (*VMEreset)(int Handle);
+ int (*VMETAS)(int Handle, unsigned long ulAddress, unsigned char *ubResult);
+ int (*VMEinterrupt)(int Handle, unsigned char *ubVector);
+ int (*VMEsysfailGet)(int nHandle, BOOLEAN *bResult);
+ int (*VMEsysfailSet)(int nHandle, BOOLEAN bForce);
+ int (*VMEclose)(int nHandle);
+} MY_ACTIONS;
+
+//-------------------------------------------------------------------------------------------
+// LOCALS
+//
+static MY_ACTIONS ma; // the selected actions
+static BOOLEAN firstTime = TRUE;
+
+//-------------------------------------------------------------------------------------------
+// EXTERNALS
+//
+
+//-------------------------------------------------------------------------------------------
+// GLOBALS
+//
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+int __declspec(dllexport) VMEinit(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle)
+{
+ if (firstTime)
+ {
+ if (IsWindowsNT())
+ {
+ ma.VMEinit = VMEinitNT;
+ ma.VMEread = VMEreadNT;
+ ma.VMEwrite = VMEwriteNT;
+ ma.VMEaccessVIC = VMEaccessVICNT;
+ ma.VMEreset = VMEresetNT;
+ ma.VMETAS = VMETASNT;
+ ma.VMEinterrupt = VMEinterruptNT;
+ ma.VMEsysfailGet = VMEsysfailGetNT;
+ ma.VMEsysfailSet = VMEsysfailSetNT;
+ ma.VMEclose = VMEcloseNT;
+ }
+
+ else
+ return -1;
+
+ firstTime = FALSE;
+ }
+
+ return ma.VMEinit(cszDeviceName, nVMEMM, ubAddressModifier, pnHandle);
+}
+
+int __declspec(dllexport) VMEread(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
+{
+ return ma.VMEread(nHandle, ulAddress, ubAccessWidth, ulElementCount, pvBuffer);
+}
+
+int __declspec(dllexport) VMEwrite(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
+{
+ return ma.VMEwrite(nHandle, ulAddress, ubAccessWidth, ulElementCount, pvBuffer);
+}
+
+int __declspec(dllexport) VMEaccessVIC(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent)
+{
+ return ma.VMEaccessVIC(nHandle, ubAccessMode, uwAddress, ubContent);
+}
+
+int __declspec(dllexport) VMEreset(int nHandle)
+{
+ return ma.VMEreset(nHandle);
+}
+
+int __declspec(dllexport) VMETAS(int nHandle, unsigned long ulAddress, unsigned char *ubResult)
+{
+ return ma.VMETAS(nHandle, ulAddress, ubResult);
+}
+
+int __declspec(dllexport) VMEsysfailGet(int nHandle, BOOLEAN *bResult)
+{
+ return ma.VMEsysfailGet(nHandle, bResult);
+}
+
+int __declspec(dllexport) VMEsysfailSet(int nHandle, BOOLEAN bForce)
+{
+ return ma.VMEsysfailSet(nHandle, bForce);
+}
+
+int __declspec(dllexport) VMEinterrupt(int nHandle, unsigned char *ubVector)
+{
+ return ma.VMEinterrupt(nHandle, ubVector);
+}
+
+int __declspec(dllexport) VMEclose(int nHandle)
+{
+ return ma.VMEclose(nHandle);
+}
\ No newline at end of file
Index: wiener_pcivme_dll/pcivme_ni_NT.c
===================================================================
--- wiener_pcivme_dll/pcivme_ni_NT.c (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni_NT.c (revision 17)
@@ -0,0 +1,448 @@
+//-------------------------------------------------------------------------------------------
+// pcivme_ni_NT.c - a ni labview dll skeleton for the ARW pcivme interface, winNT
+//
+// (c) 1999-2004 ARW Elektronik, Germany
+//
+// 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
+//
+// $Log: pcivme_ni_NT.c,v $
+// Revision 1.2 2004/07/24 07:47:00 klaus
+// Update copyright to 2004
+//
+// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
+// First put into repository
+//
+// Revision 1.4 2002/10/27 21:32:35 klaus
+// compatibility improved
+//
+// Revision 1.3 2002/10/27 19:22:58 klaus
+// backward compatibilty problem for 2 Gbyte limit solved
+//
+// Revision 1.2 2002/10/27 17:05:33 klaus
+// CVS log added, file addressing bug > 2 Gbtye circumvent
+//
+// what who when
+// first steps AR 07.11.1999
+//
+
+//-------------------------------------------------------------------------------------------
+// INCLUDES
+//
+#include <windows.h>
+#include <winioctl.h>
+#include <pcivme.h> // header for win-NT
+#include <vic.h>
+#include <vme.h>
+#include <pcivme_ni_NT.h>
+#include <Klist.h>
+
+//-------------------------------------------------------------------------------------------
+// DEFINES
+//
+#define DEFDEVICENAME "\\\\.\\PCIVME:\\VMEMMxx"
+#define LIMIT_2GBYTE 0x80000000 // 2 GByte addressing limit of WINNT ...
+
+//-------------------------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct // a element associated to a open path (between VMEinit and VMEclose)
+{
+ HANDLE nHandle;
+ PCIVME_ACCESS_COMMAND access;
+} OPEN_PATH;
+
+//-------------------------------------------------------------------------------------------
+// LOCALS
+//
+// user initialisation table for pcivme
+static PCIVME_INIT_COMMAND sUserInitStruct = {2, {{STOP, WORD_ACCESS, 0, 0}}};
+// user deinitialisation table
+static PCIVME_INIT_COMMAND sUserDeInitStruct = {2, {{STOP, WORD_ACCESS, 0, 0}}};
+
+// the list of Path specific data (a element lives between VMEinit and VMEclose)
+static LIST liPathList = (LIST)NULL;
+
+//-------------------------------------------------------------------------------------------
+// EXTERNALS
+//
+
+//-------------------------------------------------------------------------------------------
+// GLOBALS
+//
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+// not only delete a element - even remove the whole list if it is empty
+static void removeListElement(OPEN_PATH *open_path)
+{
+ List_Delete((LPVOID)open_path);
+
+ // remove the list if the last item was deleted ----
+ if ((liPathList != NULL) && (List_IsEmpty(liPathList) == TRUE))
+ {
+ List_Destroy(&liPathList);
+ liPathList = (LIST)NULL;
+ }
+}
+
+//-------------------------------------------------------------------------
+// create a DeviceName out of cszDeviceName and nIfcNum
+static char *DeviceName(const char *cszDeviceName, int nIfcNum)
+{
+ static char buffer[255];
+ char *ptr = buffer;
+
+ if (cszDeviceName == NULL)
+ strcpy(buffer, DEFDEVICENAME);
+ else
+ strcpy(buffer, cszDeviceName);
+
+ while (*ptr) ptr++;
+
+ do
+ {
+ ptr--;
+ } while (*ptr != 'M');
+
+ ptr++;
+
+ if (nIfcNum >= 10)
+ {
+ *ptr++ = '1';
+ nIfcNum -= 10;
+ }
+
+ *ptr++ = '0' + nIfcNum;
+ *ptr = 0;
+
+ return buffer;
+}
+
+int VMEinitNT(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle)
+{
+ OPEN_PATH *open_path;
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ DWORD result;
+
+ if (liPathList == NULL) // create a list to hold the paths and its variables
+ {
+ liPathList = List_Create();
+ if (liPathList == (LIST)NULL)
+ return GetLastError();
+ }
+
+ open_path = (OPEN_PATH *)List_NewFirst(liPathList, sizeof(OPEN_PATH));
+
+ *pnHandle = -1;
+
+ if ((open_path->nHandle = CreateFile(
+ DeviceName(cszDeviceName, nVMEMM),
+ GENERIC_READ | GENERIC_WRITE,
+ 0,
+ NULL,
+ OPEN_EXISTING,
+ FILE_ATTRIBUTE_NORMAL,
+ NULL)) != ((HANDLE)-1))
+ {
+ // init hardware (only one time after the first init it works OK)
+ result = DeviceIoControl(open_path->nHandle,
+ PCIVME_INIT_HARDWARE,
+ &sUserInitStruct,
+ (DWORD)sizeof(sUserInitStruct),
+ NULL,
+ (DWORD)0,
+ &DIOC_count,
+ NULL);
+
+ // set the current access parameters ------------------
+ open_path->access.bAddressModifier = ubAddressModifier;
+ open_path->access.bAccessType =
+ open_path->access.bIncrement = BYTE_ACCESS;
+ open_path->access.dwAccessBase = 0;
+
+ result = DeviceIoControl(open_path->nHandle,
+ PCIVME_SET_ACCESS_PARA,
+ &open_path->access,
+ (DWORD)sizeof(open_path->access),
+ NULL,
+ 0,
+ &DIOC_count,
+ NULL);
+
+ if (!result)
+ {
+ result = GetLastError();
+ CloseHandle(open_path->nHandle);
+ removeListElement(open_path);
+ return result;
+ }
+
+ *pnHandle = (int)open_path;
+
+ return 0;
+ }
+ else
+ {
+ result = GetLastError();
+ removeListElement(open_path);
+ return result;
+ }
+}
+
+int VMEreadNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ unsigned long ulNumberOfBytes = ulElementCount * ubAccessWidth;
+ unsigned long bytesRead;
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ // set the current access parameters ------------------
+ open_path->access.bAccessType =
+ open_path->access.bIncrement = ubAccessWidth;
+
+ // take care of only 2 Gbyte addressing capabilities of WINNT ...
+ if (ulAddress >= LIMIT_2GBYTE)
+ {
+ ulAddress -= LIMIT_2GBYTE;
+ open_path->access.dwAccessBase = LIMIT_2GBYTE;
+ }
+ else
+ open_path->access.dwAccessBase = 0;
+
+ if (!DeviceIoControl(open_path->nHandle,
+ PCIVME_SET_ACCESS_PARA,
+ &open_path->access,
+ (DWORD)sizeof(open_path->access),
+ NULL,
+ 0,
+ &DIOC_count,
+ NULL))
+ return GetLastError();
+
+ SetFilePointer(open_path->nHandle, ulAddress, NULL, FILE_BEGIN);
+
+ if (!ReadFile(open_path->nHandle, pvBuffer, ulNumberOfBytes, &bytesRead, NULL))
+ return GetLastError();
+
+ return 0;
+}
+
+int VMEwriteNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ unsigned long ulNumberOfBytes = ulElementCount * ubAccessWidth;
+ unsigned long bytesRead;
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ // set the current access parameters ------------------
+ open_path->access.bAccessType =
+ open_path->access.bIncrement = ubAccessWidth;
+
+ // take care of only 2 Gbyte addressing capabilities of WINNT ...
+ if (ulAddress >= LIMIT_2GBYTE)
+ {
+ ulAddress -= LIMIT_2GBYTE;
+ open_path->access.dwAccessBase = LIMIT_2GBYTE;
+ }
+ else
+ open_path->access.dwAccessBase = 0;
+
+ if (!DeviceIoControl(open_path->nHandle,
+ PCIVME_SET_ACCESS_PARA,
+ &open_path->access,
+ (DWORD)sizeof(open_path->access),
+ NULL,
+ 0,
+ &DIOC_count,
+ NULL))
+ return GetLastError();
+
+ SetFilePointer(open_path->nHandle, ulAddress, NULL, FILE_BEGIN);
+
+ if (!WriteFile(open_path->nHandle, pvBuffer, ulNumberOfBytes, &bytesRead, NULL))
+ return GetLastError();
+
+ return 0;
+}
+
+int VMEaccessVICNT(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+ PCIVME_VIC68A_ACTION sAction; // structure to access vic chip
+ DWORD result;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ sAction.wRegisterAddress = uwAddress;
+ sAction.wAccessMode = ubAccessMode;
+ sAction.bContent = *ubContent;
+
+ result = DeviceIoControl(open_path->nHandle, PCIVME_ACCESS_VIC68A,
+ &sAction, sizeof(sAction), &sAction,
+ sizeof(sAction), &DIOC_count, NULL);
+
+ *ubContent = sAction.bContent;
+
+ if (!result)
+ return GetLastError();
+ else
+ return 0;
+}
+
+int VMEresetNT(int nHandle)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+ DWORD result;
+ PCIVME_RESET_COMMAND reset_command;
+ PCIVME_RESET_RESULT reset_result;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ reset_command.wCommand = VME_RESET_CMD;
+ reset_result.wResult = 0;
+ result = DeviceIoControl(open_path->nHandle, PCIVME_RESET,
+ &reset_command, sizeof(reset_command),
+ &reset_result, sizeof(reset_result),
+ &DIOC_count, NULL);
+
+ if (!result)
+ return GetLastError();
+ else
+ {
+ result = 1;
+
+ while (reset_result.wResult && result)
+ {
+ reset_command.wCommand = POLL_RESET_CMD;
+ result = DeviceIoControl(open_path->nHandle, PCIVME_RESET,
+ &reset_command, sizeof(reset_command),
+ &reset_result, sizeof(reset_result),
+ &DIOC_count, NULL);
+ Sleep(10);
+ }
+ }
+
+ if (!result)
+ return GetLastError();
+ else
+ return 0;
+}
+
+int VMETASNT(int nHandle, unsigned long ulAddress, unsigned char *ubResult)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+ PCIVME_TAS_STRUCT sTAS; // structure to do a Test and Set
+ DWORD result;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ sTAS.wModifier = open_path->access.bAddressModifier;
+ sTAS.dwAddress = ulAddress;
+ sTAS.bContent = 0x80;
+
+ result = DeviceIoControl(open_path->nHandle, PCIVME_TAS,
+ &sTAS, (DWORD)sizeof(sTAS), &sTAS,
+ (DWORD)sizeof(sTAS), &DIOC_count, NULL);
+
+ *ubResult = sTAS.bContent;
+
+ if (!result)
+ return GetLastError();
+ else
+ return 0;
+}
+
+int VMEinterruptNT(int nHandle, unsigned char *ubVector)
+{
+// DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ return 0;
+}
+
+int VMEsysfailGetNT(int nHandle, BOOLEAN *bResult)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+ PCIVME_VIC68A_ACTION sAction; // structure to access vic chip
+ DWORD result;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ sAction.wRegisterAddress = EGICR;
+ sAction.wAccessMode = VIC68A_READ;
+ sAction.bContent = 0;
+
+ result = DeviceIoControl(open_path->nHandle, PCIVME_ACCESS_VIC68A,
+ &sAction, sizeof(sAction), &sAction,
+ sizeof(sAction), &DIOC_count, NULL);
+
+
+ *bResult = (sAction.bContent & 0x08) ? FALSE : TRUE;
+
+ if (!result)
+ return GetLastError();
+ else
+ return 0;
+}
+
+int VMEsysfailSetNT(int nHandle, BOOLEAN bForce)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+ PCIVME_VIC68A_ACTION sAction; // structure to access vic chip
+ DWORD result;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ sAction.wRegisterAddress = ICR7;
+ sAction.wAccessMode = (bForce == TRUE) ? VIC68A_AND : VIC68A_OR;
+ sAction.bContent = (bForce == TRUE) ? 0x3F : 0x80;
+
+ result = DeviceIoControl(open_path->nHandle, PCIVME_ACCESS_VIC68A,
+ &sAction, (DWORD)sizeof(sAction), &sAction,
+ (DWORD)sizeof(sAction), &DIOC_count, NULL);
+ if (!result)
+ return GetLastError();
+ else
+ return 0;
+}
+
+int VMEcloseNT(int nHandle)
+{
+ DWORD DIOC_count; // count of returned bytes of DeviceIoControl
+ OPEN_PATH *open_path = (OPEN_PATH *)nHandle;
+
+ if (nHandle == -1) return ERROR_PATH_NOT_FOUND;
+
+ DeviceIoControl(open_path->nHandle,
+ PCIVME_DEINIT_HARDWARE,
+ &sUserDeInitStruct,
+ (DWORD)sizeof(sUserDeInitStruct),
+ NULL,
+ 0,
+ &DIOC_count,
+ NULL);
+
+ CloseHandle(open_path->nHandle);
+ removeListElement(open_path);
+
+ return 0;
+}
+
Index: wiener_pcivme_dll/pcivme_ni.h.bak
===================================================================
--- wiener_pcivme_dll/pcivme_ni.h.bak (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.h.bak (revision 17)
@@ -0,0 +1,53 @@
+#ifndef __PCIVME_NI_H__
+#define __PCIVME_NI_H__
+
+//-------------------------------------------------------------------------------------------
+// pcivme_ni.h - header for ni-labview dll for ARW pcivme interface
+//
+// (c) 1999-2002 ARW Elektronik, Germany
+//
+// 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
+//
+//
+// $Log: pcivme_ni.h,v $
+// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
+// First put into repository
+//
+// Revision 1.2 2002/10/27 17:05:33 klaus
+// CVS log added, file addressing bug > 2 Gbtye circumvent
+//
+// what who when
+// first steps AR 17.11.1999
+// modified for use with C++ AR 08.06.2002
+//
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+int __declspec(dllexport) VMEinit(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
+int __declspec(dllexport) VMEread(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+int __declspec(dllexport) VMEwrite(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+int __declspec(dllexport) VMEaccessVIC(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
+int __declspec(dllexport) VMEreset(int nHandle);
+int __declspec(dllexport) VMETAS(int nHandle, unsigned long ulAddress, unsigned char *ubResult);
+int __declspec(dllexport) VMEinterrupt(int nHandle, unsigned char *ubVector);
+int __declspec(dllexport) VMEsysfailGet(int nHandle, BOOLEAN *bResult);
+int __declspec(dllexport) VMEsysfailSet(int nHandle, BOOLEAN bForce);
+int __declspec(dllexport) VMEclose(int nHandle);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PCIVME_NI_H__ */
\ No newline at end of file
Index: wiener_pcivme_dll/pcivme_ni.dsp
===================================================================
--- wiener_pcivme_dll/pcivme_ni.dsp (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.dsp (revision 17)
@@ -0,0 +1,131 @@
+# Microsoft Developer Studio Project File - Name="pcivme_ni" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=pcivme_ni - 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 "pcivme_ni.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 "pcivme_ni.mak" CFG="pcivme_ni - Win32 Debug"
+!MESSAGE
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE
+!MESSAGE "pcivme_ni - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "pcivme_ni - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName "pcivme_ni"
+# PROP Scc_LocalPath "."
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "pcivme_ni - 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 /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O2 /I "." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /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 /dll /machine:I386
+# ADD 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 /dll /machine:I386
+
+!ELSEIF "$(CFG)" == "pcivme_ni - 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 /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /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 /dll /debug /machine:I386 /pdbtype:sept
+# ADD 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 /dll /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "pcivme_ni - Win32 Release"
+# Name "pcivme_ni - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\Klist.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\Klist.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\os_info.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\os_info.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcivme_ni.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcivme_ni.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcivme_ni_95.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcivme_ni_95.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcivme_ni_NT.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\pcivme_ni_NT.h
+# End Source File
+# End Target
+# End Project
Index: wiener_pcivme_dll/pcivme_ni.h
===================================================================
--- wiener_pcivme_dll/pcivme_ni.h (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.h (revision 17)
@@ -0,0 +1,56 @@
+#ifndef __PCIVME_NI_H__
+#define __PCIVME_NI_H__
+
+//-------------------------------------------------------------------------------------------
+// pcivme_ni.h - header for ni-labview dll for ARW pcivme interface
+//
+// (c) 1999-2004 ARW Elektronik, Germany
+//
+// 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
+//
+//
+// $Log: pcivme_ni.h,v $
+// Revision 1.2 2004/07/24 08:05:31 klaus
+// Update copyright to 2004
+//
+// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
+// First put into repository
+//
+// Revision 1.2 2002/10/27 17:05:33 klaus
+// CVS log added, file addressing bug > 2 Gbtye circumvent
+//
+// what who when
+// first steps AR 17.11.1999
+// modified for use with C++ AR 08.06.2002
+//
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+int __declspec(dllexport) VMEinit(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
+int __declspec(dllexport) VMEread(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+int __declspec(dllexport) VMEwrite(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+int __declspec(dllexport) VMEaccessVIC(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
+int __declspec(dllexport) VMEreset(int nHandle);
+int __declspec(dllexport) VMETAS(int nHandle, unsigned long ulAddress, unsigned char *ubResult);
+int __declspec(dllexport) VMEinterrupt(int nHandle, unsigned char *ubVector);
+int __declspec(dllexport) VMEsysfailGet(int nHandle, BOOLEAN *bResult);
+int __declspec(dllexport) VMEsysfailSet(int nHandle, BOOLEAN bForce);
+int __declspec(dllexport) VMEclose(int nHandle);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PCIVME_NI_H__ */
\ No newline at end of file
Index: wiener_pcivme_dll/pcivme_ni_NT.h
===================================================================
--- wiener_pcivme_dll/pcivme_ni_NT.h (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni_NT.h (revision 17)
@@ -0,0 +1,51 @@
+#ifndef __PCIVME_NI_NT_H__
+#define __PCIVME_NI_NT_H__
+
+//-------------------------------------------------------------------------------------------
+// pcivme_ni_NT.c - a ni labview dll skeleton for the ARW pcivme interface, winNT
+//
+// (c) 1999-2004 ARW Elektronik, Germany
+//
+// 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
+//
+//
+// $Log: pcivme_ni_NT.h,v $
+// Revision 1.2 2004/07/24 07:47:00 klaus
+// Update copyright to 2004
+//
+// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
+// First put into repository
+//
+// Revision 1.2 2002/10/27 17:05:33 klaus
+// CVS log added, file addressing bug > 2 Gbtye circumvent
+//
+// what who when
+// first steps AR 07.11.1999
+//
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+#include <windows.h>
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+int VMEinitNT(const char *cszDeviceName, unsigned short nVMEMM, unsigned char ubAddressModifier, int *pnHandle);
+int VMEreadNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+int VMEwriteNT(int nHandle, unsigned long ulAddress, unsigned char ubAccessWidth, unsigned long ulElementCount, void *pvBuffer);
+int VMEaccessVICNT(int nHandle, unsigned char ubAccessMode, unsigned short uwAddress, unsigned char *ubContent);
+int VMEresetNT(int nHandle);
+int VMETASNT(int nHandle, unsigned long ulAddress, unsigned char *ubResult);
+int VMEinterruptNT(int nHandle, unsigned char *ubVector);
+int VMEsysfailGetNT(int nHandle, BOOLEAN *bResult);
+int VMEsysfailSetNT(int nHandle, BOOLEAN bForce);
+int VMEcloseNT(int nHandle);
+
+#endif /* __PCIVME_NI_NT_H__ */
\ No newline at end of file
Index: wiener_pcivme_dll/pcivme_ni.vcxproj
===================================================================
--- wiener_pcivme_dll/pcivme_ni.vcxproj (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.vcxproj (revision 17)
@@ -0,0 +1,150 @@
+<?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="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <SccProjectName>pcivme_ni</SccProjectName>
+ <SccLocalPath>.</SccLocalPath>
+ <ProjectGuid>{A549E673-98F7-439F-8F28-CDE063B35DD5}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.Cpp.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>.\Debug\</OutDir>
+ <IntDir>.\Debug\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>.\Release\</OutDir>
+ <IntDir>.\Release\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <Optimization>Disabled</Optimization>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <WarningLevel>Level3</WarningLevel>
+ <MinimalRebuild>true</MinimalRebuild>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AssemblerListingLocation>.\Debug\</AssemblerListingLocation>
+ <PrecompiledHeaderOutputFile>.\Debug\pcivme_ni.pch</PrecompiledHeaderOutputFile>
+ <ObjectFileName>.\Debug\</ObjectFileName>
+ <ProgramDataBaseFileName>.\Debug\</ProgramDataBaseFileName>
+ </ClCompile>
+ <Midl>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <TypeLibraryName>.\Debug\pcivme_ni.tlb</TypeLibraryName>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <RedirectOutputAndErrors>NUL</RedirectOutputAndErrors>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ </Midl>
+ <ResourceCompile>
+ <Culture>0x0407</Culture>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\Debug\pcivme_ni.bsc</OutputFile>
+ </Bscmake>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <LinkDLL>true</LinkDLL>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OutputFile>.\Debug\pcivme_ni.dll</OutputFile>
+ <ImportLibrary>.\Debug\pcivme_ni.lib</ImportLibrary>
+ <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <Optimization>MaxSpeed</Optimization>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <WarningLevel>Level3</WarningLevel>
+ <AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AssemblerListingLocation>.\Release\</AssemblerListingLocation>
+ <PrecompiledHeaderOutputFile>.\Release\pcivme_ni.pch</PrecompiledHeaderOutputFile>
+ <ObjectFileName>.\Release\</ObjectFileName>
+ <ProgramDataBaseFileName>.\Release\</ProgramDataBaseFileName>
+ </ClCompile>
+ <Midl>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <TypeLibraryName>.\Release\pcivme_ni.tlb</TypeLibraryName>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <RedirectOutputAndErrors>NUL</RedirectOutputAndErrors>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ </Midl>
+ <ResourceCompile>
+ <Culture>0x0407</Culture>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>.\Release\pcivme_ni.bsc</OutputFile>
+ </Bscmake>
+ <Link>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <LinkDLL>true</LinkDLL>
+ <SubSystem>Windows</SubSystem>
+ <OutputFile>.\Release\pcivme_ni.dll</OutputFile>
+ <ImportLibrary>.\Release\pcivme_ni.lib</ImportLibrary>
+ <AdditionalDependencies>odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="Klist.c" />
+ <ClCompile Include="os_info.c" />
+ <ClCompile Include="pcivme_ni.c" />
+ <ClCompile Include="pcivme_ni_NT.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="Klist.h" />
+ <ClInclude Include="os_info.h" />
+ <ClInclude Include="pcivme_ni.h" />
+ <ClInclude Include="pcivme_ni_NT.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
Index: wiener_pcivme_dll/pcivme_ni.sln
===================================================================
--- wiener_pcivme_dll/pcivme_ni.sln (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.sln (revision 17)
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Express 2012 for Windows Desktop
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcivme_ni", "pcivme_ni.vcxproj", "{A549E673-98F7-439F-8F28-CDE063B35DD5}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A549E673-98F7-439F-8F28-CDE063B35DD5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A549E673-98F7-439F-8F28-CDE063B35DD5}.Debug|Win32.Build.0 = Debug|Win32
+ {A549E673-98F7-439F-8F28-CDE063B35DD5}.Release|Win32.ActiveCfg = Release|Win32
+ {A549E673-98F7-439F-8F28-CDE063B35DD5}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Index: wiener_pcivme_dll/pcivme_ni.dsw
===================================================================
--- wiener_pcivme_dll/pcivme_ni.dsw (nonexistent)
+++ wiener_pcivme_dll/pcivme_ni.dsw (revision 17)
@@ -0,0 +1,33 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN!
+
+###############################################################################
+
+Project: "pcivme_ni"=.\pcivme_ni.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+ begin source code control
+ pcivme_ni
+ ..\..\..\programme\devstudio\myprojects\pcivme_ni
+ end source code control
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
Index: wiener_pcivme_dll/Vic.h
===================================================================
--- wiener_pcivme_dll/Vic.h (nonexistent)
+++ wiener_pcivme_dll/Vic.h (revision 17)
@@ -0,0 +1,116 @@
+#ifndef __VIC_H__
+#define __VIC_H__
+
+//------------------------------------------------------------------------------------------
+// vic.h - some constants about the VIC68A chip from cypress semiconductor
+//
+// (c) 1999-2004 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
+//
+//
+// $Log: Vic.h,v $
+// Revision 1.3 2004/07/24 07:07:26 klaus
+// Update copyright to 2004
+//
+// Revision 1.2 2003/11/15 19:12:51 klaus
+// Update copyright to 2003
+//
+// Revision 1.1.1.1 2003/11/14 23:16:33 klaus
+// First put into repository
+//
+// Revision 1.3 2002/10/27 16:17:48 klaus
+// Typing bug fixed caused at log addition
+//
+// Revision 1.2 2002/10/27 16:11:03 klaus
+// Added CVS log into header
+//
+// what who when
+// finished first release to use with the PCIVME interface of ARW AR 24.11.1997
+// SRR corrected from SSR AR 18.04.1999
+//
+
+/* all address offsets relative to vic base */
+
+#define VICR1 (WORD)0x07 /* VMEbus Interrupt Control Register #.. */
+#define VICR2 (WORD)0x0b
+#define VICR3 (WORD)0x0f
+#define VICR4 (WORD)0x13
+#define VICR5 (WORD)0x17
+#define VICR6 (WORD)0x1b
+#define VICR7 (WORD)0x1f
+
+#define LICR1 (WORD)0x27 /* Local interrupt control register .. */
+#define LICR2 (WORD)0x2b
+#define LICR3 (WORD)0x2f
+#define LICR4 (WORD)0x33
+#define LICR5 (WORD)0x37
+#define LICR6 (WORD)0x3b
+#define LICR7 (WORD)0x3f
+#define LIVBR (WORD)0x57 /* Local interrupt vector base register */
+
+#define ICGSICR (WORD)0x43 /* ICGS interrupt control register */
+#define ICGSVBR (WORD)0x4f /* ICGS vector base register */
+
+#define ICMSICR (WORD)0x47 /* ICMS interrupt control register */
+#define ICMSVBR (WORD)0x53 /* ICMS vector base register */
+
+#define EGICR (WORD)0x4b /* Error group interrupt control register */
+#define EGIVBR (WORD)0x5b /* Error group interrupt vector base rg */
+
+#define ICSR (WORD)0x5f /* Interprozessor communication switch rg */
+#define ICR0 (WORD)0x63
+#define ICR1 (WORD)0x67
+#define ICR2 (WORD)0x6b
+#define ICR3 (WORD)0x6f
+#define ICR4 (WORD)0x73
+#define ICR5 (WORD)0x77
+#define ICR6 (WORD)0x7b
+#define ICR7 (WORD)0x7f
+
+#define VIICR (WORD)0x03 /* VMEbus Interrupter Interrupt Control */
+#define VIRSR (WORD)0x83 /* VMEbus interrupt request status reg */
+#define VIVR1 (WORD)0x87 /* VMEbus interrupt vector register .. */
+#define VIVR2 (WORD)0x8b
+#define VIVR3 (WORD)0x8f
+#define VIVR4 (WORD)0x93
+#define VIVR5 (WORD)0x97
+#define VIVR6 (WORD)0x9b
+#define VIVR7 (WORD)0x9f
+
+#define TTR (WORD)0xa3 /* transfer timeout register */
+#define LTR (WORD)0xa7 /* local timing register */
+#define ICR (WORD)0xaf /* interface configuration register */
+
+#define ARCR (WORD)0xb3 /* arbiter/requester configuration register*/
+#define AMSR (WORD)0xb7 /* address modifier source register */
+#define BESR (WORD)0xbb /* bus error source register */
+
+#define DSICR (WORD)0x23 /* DMA status interrupt control register */
+#define DSR (WORD)0xbf /* DMA status register */
+
+#define SSCR00 (WORD)0xc3 /* slave select 0 control register 0 */
+#define SSCR01 (WORD)0xc7 /* slave select 0 control register 1 */
+#define SSCR10 (WORD)0xcb /* slave select 1 control register 0 */
+#define SSCR11 (WORD)0xcf /* slave select 1 control register 1 */
+
+#define RCR (WORD)0xd3 /* release control register */
+
+#define BTDR (WORD)0xab /* block transfer definition register */
+#define BTCR (WORD)0xd7 /* block transfer control register */
+#define BTLR0 (WORD)0xdb /* block transfer length register 0 */
+#define BTLR1 (WORD)0xdf /* block transfer length register 1 */
+
+#define SRR (WORD)0xe3 /* system reset register */
+
+#endif
+
+//-------------------------------------------------------------------------------------------
+//-------------------------------------------------------------------------------------------
+//-------------------------------------------------------------------------------------------
Index: wiener_pcivme_dll/Klist.c
===================================================================
--- wiener_pcivme_dll/Klist.c (nonexistent)
+++ wiener_pcivme_dll/Klist.c (revision 17)
@@ -0,0 +1,337 @@
+//-------------------------------------------------------------------------------------------
+// klist.c - parts to maintain a doubly linked list (org microsoft)
+//
+// Please announce changes and hints to ARW Elektronik
+//
+//
+// $Log: Klist.c,v $
+// Revision 1.2 2004/07/24 07:47:46 klaus
+// revised, removed wrong license terms
+//
+// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
+// First put into repository
+//
+// Revision 1.2 2002/10/27 17:05:33 klaus
+// CVS log added, file addressing bug > 2 Gbtye circumvent
+//
+// what who when
+// first steps AR 07.11.1999
+//
+
+//-------------------------------------------------------------------------------------------
+// INCLUDES
+//
+#include <memory.h>
+#include <windows.h>
+#include <Klist.h>
+
+//-------------------------------------------------------------------------------------------
+// DEFINES
+//
+#define memcpy memcpy
+#define BLOCKSIZE 0x4000
+
+//-------------------------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct
+{
+ HANDLE hMem; // memory handle for this block
+ int iInUse; // number of allocations taken out of it. 0 => free it
+ int iNext; // next byte to use
+ char chData[BLOCKSIZE];
+} BLOCK, FAR *PBLOCK;
+
+/* The following definition tells the truth about what an ITEM is. The
+| header file says only that there's a structure with the tag item_tag and
+| that a LIST is a pointer to one. Here we spell out what that structure
+| is (and a LIST is still a pointer to one). A PLIST is defined as a
+| pointer to one of those, but is only really used because the C
+| parameter mechanism demands an extra level of indirection for a
+| parameter that can be updated. (Modula-2 VAR parameter).
+*/
+typedef struct item_tag
+{
+ struct item_tag FAR *pitNext; /* to next in circular list */
+ struct item_tag FAR *pitPrev; /* to prev in circular list */
+ PBLOCK pBlock; /* to memory block */
+ BOOL bAnchor; /* TRUE iff an anchor block */
+ BOOL bOK; /* true unless a list op has failed */
+ int iLen; /* length of data only */
+ char Data[1]; /* the caller's data. The '1' is a lie */
+} ITEM;
+
+/* For an anchor block, only the fields pitNext thru bAnchor are allocated.
+| For a normal list element, Data may well be longer than 1 byte.
+| The bOK flag is to support a style of programming where several
+| successive operations can be done without having to check the return
+| code at each stage. At the end, the list can be examined to see if
+| the data in it is valid or if it has been made invalid by the failure
+| of any of the previous operations. Certain operations may result in
+| having no list at all if they fail (e.g. create) and for these, you'd
+| better check the result at once!
+| ??? Some of this screed belongs in the header!!!
+*/
+
+//-------------------------------------------------------------------------------------------
+// LOCALS
+//
+static CRITICAL_SECTION CritSec; /* to protect pCurrent */
+
+#define List_Enter_Crit(x) EnterCriticalSection(x)
+#define List_Leave_Crit(x) LeaveCriticalSection(x)
+
+static PBLOCK pCurrent = NULL; // block currently in use
+ // must always be either NULL or valid
+
+static int iAnchorSize; /* Size of anchor block (no data, no dummy) */
+static int iHeaderSize; /* Size of data block not counting Data
+ and offset from cursor back to item. */
+static BOOL bInited = FALSE; /* TRUE <=> iAnchorSize and iHeaderSize are OK*/
+
+#define MOVEBACK(Curs) \
+ { Curs = ((char FAR *)Curs-iHeaderSize); } /*move from Data to pitNext*/
+
+//-------------------------------------------------------------------------------------------
+// EXTERNALS
+//
+
+//-------------------------------------------------------------------------------------------
+// GLOBALS
+//
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+
+/* Allocate storage for List elements. n.b. after a call to this
+ you MUST record the value of pCurrent as you need to hand that in
+ to Free. You don't hand in the value of the actual storage.
+ See screed above.
+ This function Enters the critical section. The caller must Leave it.
+*/
+static LPVOID Alloc(int size)
+{
+ HANDLE hMem;
+ LPVOID pRet;
+ List_Enter_Crit(&CritSec);
+ if ((pCurrent==NULL)||(pCurrent->iNext+size>BLOCKSIZE+1))
+ {
+ hMem = GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,(DWORD)(sizeof(BLOCK)));
+ if (hMem==NULL)
+ {
+ pCurrent = NULL;
+ OutputDebugString("GlobalAlloc failed!!\n");
+ return NULL;
+ }
+ pCurrent = (PBLOCK)GlobalLock(hMem);
+ if (pCurrent==NULL)
+ {
+ OutputDebugString("GlobalLock failed!!\n");
+ return NULL;
+ }
+ pCurrent->hMem = hMem;
+ pCurrent->iInUse = 0;
+ pCurrent->iNext = 0;
+ }
+ pRet = &(pCurrent->chData[pCurrent->iNext]);
+ ++(pCurrent->iInUse);
+ pCurrent->iNext += size;
+
+ // ensure that the data is aligned 4 byte
+ pCurrent->iNext += 3;
+ pCurrent->iNext -= pCurrent->iNext % 4;
+
+ return pRet;
+}
+
+static void Free(PBLOCK pBlock, LPVOID p)
+{
+ HANDLE hMem;
+ List_Enter_Crit(&CritSec);
+ --pBlock->iInUse;
+ if (pBlock->iInUse<=0)
+ {
+ if (pBlock->iInUse<0)
+ {
+ // don't know what to do with it
+ }
+
+ hMem = pBlock->hMem;
+ GlobalUnlock(hMem);
+ GlobalFree(hMem);
+ if (pCurrent==pBlock) pCurrent = NULL; /* defend the invariant */
+ }
+ List_Leave_Crit(&CritSec);
+}
+
+ /*==================================================================
+ || Lists are circular, doubly linked with an anchor block which holds
+ || pointers to both ends. Every block has a flag which shows whether
+ || it's an anchor or not.
+ ||
+ || Empty list:
+ ||
+ || -------------
+ || | |
+ || | Anchor |
+ || v ------- |
+ || Ul--->| Next--+--|
+ || |-------| |
+ || | Prev--+--
+ || -------
+ ||
+ || One entry list:
+ ||
+ || ------------------------------------
+ || | |
+ || | Anchor |
+ || v ------- ------ |
+ || Ul--->| Next--+------------->| Next-+---|
+ || |-------| | |------| |
+ || | Prev--+---- | Prev-+---
+ || ------- |------|
+ || | Len |
+ || |------|
+ || | Data |
+ || ------
+ || Two entry list:
+ ||
+ || -------------------------------------------------
+ || | --------------- --------------- |
+ || || | | | |
+ || || Anchor | | | |
+ || vv -------- | v ------ | ------ |
+ || Ul--->| Next--+-----+----->| Next-+----+-->| Next-+--
+ || |-------| | |------| | | |------|
+ || | Prev--+-- ------+-Prev | | ---+-Prev |
+ || ------- | |------| | |------|
+ || | | Len | | | Len |
+ || | |------| | |------|<----Cursor
+ || | | Data | | | Data |
+ || | ------ | ------
+ || | |
+ || -------------------
+ ||
+ || etc.
+ ||
+ || Note that an external cursor (i.e one which is seen by the caller)
+ || points to the Data field, not to the start of the structure.
+ || This allows easy access to the data by the user at the cost of a
+ || slightly slower traverse.
+ || Within this module, we may sometimes traverse a list with a cursor
+ || that points to the start of an item. This is called an item cursor.
+ È===================================================================*/
+
+ /*------------------------------------------------------------------
+ | Set iAnchorSize and iHeaderSize. Implementation independent!
+ -------------------------------------------------------------------*/
+void APIENTRY List_Init(void)
+{
+ LIST P;
+
+ P = (LIST)&P; /* really any old address will do */
+ iAnchorSize = (char FAR *)&(P->iLen) - (char FAR *)&(P->pitNext);
+ iHeaderSize = (char FAR *)&(P->Data) - (char FAR *)&(P->pitNext);
+ InitializeCriticalSection(&CritSec);
+ /* assumes layout in storage is linear */
+}
+
+ /*------------------------------------------------------------------
+ | Create a list. It will be initially empty
+ -------------------------------------------------------------------*/
+LIST APIENTRY List_Create(void)
+{
+ LIST lst;
+
+ if (!bInited) {List_Init(); } /* prevent some silly errors */
+ lst = Alloc(iAnchorSize);
+ if (lst==NULL) { return NULL; }
+ lst->pBlock = pCurrent;
+ List_Leave_Crit(&CritSec);
+ lst->bOK = TRUE;
+ lst->pitNext = lst;
+ lst->pitPrev = lst;
+ lst->bAnchor = TRUE;
+ /* no length field set in an anchor block */
+ return lst;
+}
+
+ /*------------------------------------------------------------------
+ | Destroy *plst. It does not need to be empty first
+ -------------------------------------------------------------------*/
+void APIENTRY List_Destroy(PLIST plst)
+{
+ LIST pitP; /* item cursor on * plst */
+ LIST pitQ; /* item cursor runs one step ahead of pitQ */
+
+ if (plst==NULL)
+ return;
+ /* There is at least an anchor block to destroy */
+ pitP = *plst;
+ do
+ {
+ pitQ = pitP->pitNext;
+ Free(pitP->pBlock, pitP);
+ pitP = pitQ;
+ }while(pitP != *plst);
+ *plst = NULL;
+}
+
+ /*------------------------------------------------------------------
+ | Return the address of the place for Len bytes of data in a new
+ | item at the start of lst
+ -------------------------------------------------------------------*/
+LPVOID APIENTRY List_NewFirst(LIST lst, UINT uLen)
+{
+ LIST pit;
+
+ if (lst==NULL)
+ return NULL;
+ pit = Alloc(iHeaderSize+uLen);
+ if (pit==NULL) { lst->bOK = FALSE; return NULL; }
+ pit->pBlock = pCurrent;
+ List_Leave_Crit(&CritSec);
+ pit->iLen = uLen;
+ pit->pitPrev = lst;
+ pit->pitNext = lst->pitNext;
+ lst->pitNext->pitPrev = pit; /* for empty list that set lst->pitPrev */
+ lst->pitNext = pit;
+ pit->bAnchor = FALSE;
+ return (char FAR *)&(pit->Data);
+}
+
+
+ /*------------------------------------------------------------------
+ | Delete the item that Curs identifies.
+ | This will be only a few (maybe as little as 3) machine instructions
+ | quicker than DeleteForwards or DeleteBackwards but leaves Curs dangling.
+ | It is therefore NOT usually to be preferred.
+ | It may be useful when you have a function which returns an LPVOID
+ | since the argument does not need to be a variable.
+ | Trivial example: List_Delete(List_First(L));
+ -------------------------------------------------------------------*/
+void APIENTRY List_Delete(LPVOID Curs)
+{
+ LIST pit;
+
+ if(Curs==NULL)
+ return;
+ MOVEBACK(Curs)
+ pit = (LIST)Curs;
+ pit->pitNext->pitPrev = pit->pitPrev;
+ pit->pitPrev->pitNext = pit->pitNext;
+ Free(pit->pBlock, pit);
+}
+
+
+ /*---------------------------------------------------------------------
+ | Return TRUE if and only if lst is empty
+ ----------------------------------------------------------------------*/
+BOOL APIENTRY List_IsEmpty(LIST lst)
+{
+ if (lst==NULL)
+ return TRUE; /* well it's sort of true isn't it? */
+ return lst->pitNext ==lst;
+}
+
Index: wiener_pcivme_dll/pcivme.h
===================================================================
--- wiener_pcivme_dll/pcivme.h (nonexistent)
+++ wiener_pcivme_dll/pcivme.h (revision 17)
@@ -0,0 +1,289 @@
+#ifndef __PCIVME_H__
+#define __PCIVME_H__
+//-------------------------------------------------------------------------
+// WINNT driver for PCIVME interface from ARW Elektronik, Germany ---------
+// IO definitions and common data structures between application and driver
+//
+// (c) 1999-2004 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
+//
+// $Log: pcivme.h,v $
+// Revision 1.3 2004/07/24 07:07:26 klaus
+// Update copyright to 2004
+//
+// Revision 1.2 2003/11/15 19:12:50 klaus
+// Update copyright to 2003
+//
+// Revision 1.1.1.1 2003/11/14 23:16:33 klaus
+// First put into repository
+//
+// Revision 1.4 2002/10/27 17:02:30 klaus
+// File addressing bug > 2 Gbtye circumvent
+//
+// Revision 1.3 2002/10/27 16:17:48 klaus
+// Typing bug fixed caused at log addition
+//
+// Revision 1.2 2002/10/27 16:11:02 klaus
+// Added CVS log into header
+//
+// what who when
+// started AR 15.06.99
+//
+
+//-------------------------------------------------------------------------
+// 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
+//
+
+// to get a compatible view to WIN95 driver
+#define USER_CONTROL_CODE(x) (0x800 + x)
+
+// initialise a dedicated VMEMM hardware
+#define PCIVME_INIT_HARDWARE CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(0),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// de-initialise a dedicated VMEMM hardware
+#define PCIVME_DEINIT_HARDWARE CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(1),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// get a static status info from a dedicted VMEMM+PCIADA hardware
+#define PCIVME_GET_STATIC_STATUS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(4),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// get dynamically changing status from PCIADA+VMEMM
+#define PCIVME_GET_DYNAMIC_STATUS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(5),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// read a vector in case of interrupt from VMEMM or PCIADA
+#define PCIVME_READ_VECTOR CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(6),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// access VIC68A registers direct
+#define PCIVME_ACCESS_VIC68A CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(7),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// enable or disable interrupts from user space
+#define PCIVME_CONTROL_INTERRUPTS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(9),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// generate a (undivisible) test-and-set instruction
+#define PCIVME_TAS CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(10),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// generate a reset on VME BUS for a dedicated VMEMM interface
+#define PCIVME_RESET CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(12),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// set the access parameter for this file (vmemm)
+#define PCIVME_SET_ACCESS_PARA CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(13),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// my last usefull control code - change each time you add a ctl_code
+#define PCIVME_LAST_CTL_CODE PCIVME_SET_ACCESS_PARA
+
+// to make standard entries for not compatible WIN95 call codes
+#define PCIVME_INCOMPATIBLE CTL_CODE(\
+ FILE_DEVICE_UNKNOWN,\
+ USER_CONTROL_CODE(255),\
+ METHOD_BUFFERED,\
+ FILE_ANY_ACCESS)
+
+// to get a compatible view to WIN95 driver
+#define VPCIVMED_INIT_HARDWARE PCIVME_INIT_HARDWARE
+#define VPCIVMED_DEINIT_HARDWARE PCIVME_DEINIT_HARDWARE
+#define VPCIVMED_ATTACH_WINDOW PCIVME_INCOMPATIBLE // no compatibility!
+#define VPCIVMED_DETACH_WINDOW PCIVME_INCOMPATIBLE // no compatibility!
+#define VPCIVMED_GET_STATIC_STATUS PCIVME_GET_STATIC_STATUS
+#define VPCIVMED_GET_DYNAMIC_STATUS PCIVME_GET_DYNAMIC_STATUS
+#define VPCIVMED_READ_VECTOR PCIVME_READ_VECTOR
+#define VPCIVMED_ACCESS_VIC68A PCIVME_ACCESS_VIC68A
+#define VPCIVMED_CONTROL_INTERRUPTS PCIVME_CONTROL_INTERRUPTS
+#define VPCIVMED_TAS PCIVME_TAS
+#define VPCIVMED_GET_PCIADA_STATUS PCIVME_GET_PCIADA_STATUS
+#define VPCIVMED_RESET PCIVME_RESET
+
+// switches for PCIVME_(DE)INIT_HARDWARE ------------------------
+#define LCR (UCHAR)0 // destination is LCR register
+#define IFR (UCHAR)1 // destination is VME-Interface register
+#define VIC (UCHAR)2 // destination is VIC68A register
+#define STOP (UCHAR)255 // this command stops the init machine
+
+#define BYTE_ACCESS (UCHAR)1 // write byte wise
+#define WORD_ACCESS (UCHAR)2 // word
+#define LONG_ACCESS (UCHAR)4 // long
+
+// switches for PCIVME_ACCESS_VIC68A --------------------------
+#define VIC68A_READ 0 // read only access
+#define VIC68A_WRITE 1 // write and read back access
+#define VIC68A_OR 2 // read, bitwise 'or' content and read back access
+#define VIC68A_AND 3 // read, bitwise 'and' content and read back access
+#define VIC68A_WRITE_ONLY 4 // do not read back after write
+
+// switches for the PCIVME_RESET ------------------------------
+#define VME_RESET_CMD 0 // raise a VME reset only
+#define LOCAL_RESET_CMD 1 // raise a local reset only
+#define GLOBAL_RESET_CMD 2 // raise a global reset
+#define POLL_RESET_CMD 3 // ask if reset is finished
+
+#define BOGUSADDRESS 0xFFFFFFFF // compatibilty to WIN95
+
+#ifndef PHYSICAL_ADDRESS
+#define PHYSICAL_ADDRESS LARGE_INTEGER
+#endif
+
+//-------------------------------------------------------------------------
+// TYPEDEFS
+//
+typedef struct // one command element to initialize interface or deinitialize
+{
+ UCHAR range; // 0 = lcr, 1 = vme-interface, -1 = stop, default = vme-if
+ UCHAR type; // 1 = byte access, 2 = word access, 4 = dword access, default byte
+ USHORT offset; // offset into interface address range for initialisation
+ ULONG value; // value to initialize
+} PCIVME_INIT_ELEMENT;
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ PCIVME_INIT_ELEMENT sVie[8]; // at least one zero element must be the last
+} PCIVME_INIT_COMMAND;
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ UCHAR bAddressModifier; // set the current modifier
+ UCHAR bAccessType; // set the current access type (1,2,4)
+ UCHAR bIncrement; // set the current byte increment count
+ ULONG dwAccessBase; // base address of seek operation (extended modifiers only, else must = 0)
+} PCIVME_ACCESS_COMMAND;
+
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ USHORT wRegisterAddress; // address offset of vic68a register
+ USHORT wAccessMode; // read, write, or, and
+ UCHAR bContent; // content to write, and, or
+} PCIVME_VIC68A_ACTION;
+
+// includes static information about driver parameters ------
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ ULONG dwLinkCount; // how often this interface is requested
+
+ USHORT wNumMemWindows; // aus der aktuellen konfiguration
+ USHORT wNumIOPorts;
+ USHORT wNumIRQs;
+ USHORT wNumDMAs;
+
+ USHORT wModuleType; // von der angeschlossenen hardware gelesen
+ USHORT wFPGAVersion;
+ USHORT wModuleNumber;
+ USHORT wWordMode;
+
+ USHORT wSysControl; // if the associated VMEMM has slot 1 function
+ USHORT wConnected; // is the VMEMM connected (obsolete sometimes)
+
+ PHYSICAL_ADDRESS pvLcr; // physikalische adresse des lcr
+ PHYSICAL_ADDRESS pvIfr; // physikalische adresse des interfaces ohne vme
+
+ ULONG dwDriverVersion; // highWord.lowWord
+ ULONG dwDriverVariant; // show customized variants here
+} PCIVME_STATIC_STATUS;
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+
+ USHORT wVMEMM_connected; // status: VMEMM is connected and powered
+ USHORT wVMEMM_enable; // status: VMEMM access is enabled
+ USHORT wPCIADAIrq; // status: PCIADA timeout IRQ pending
+ USHORT wVMEMMIrq; // status: VMEMM IRQ pending
+} PCIVME_DYNAMIC_STATUS;
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ ULONG dwAddress; // tas to address
+ USHORT wModifier; // VME address modifier for this window
+ UCHAR bContent; // byte content to store and get back
+} PCIVME_TAS_STRUCT;
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ USHORT wCommand; // the appropriate reset command
+} PCIVME_RESET_COMMAND;
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95
+ USHORT wResult;
+} PCIVME_RESET_RESULT; // polling result: in progress if (wResult != 0)
+
+typedef struct
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95..
+ USHORT wEnable; // a 1 enables the queue filling, a 0 disables
+} PCIVME_IRQ_CONTROL;
+
+typedef struct // to request vectors from a interface
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95..
+ USHORT wRequestCount; // maximum number of vectors to requests
+ BOOLEAN bPoll; // no blocking allowed - poll always
+} PCIVME_VECTOR_REQUEST;
+
+typedef struct // the response to the above request
+{
+ ULONG dwInterface; // here dummy 'cause of compatibility to WIN95..
+ USHORT wPendingCount; // represents the number of vectors pending
+ USHORT wCount; // actual delivered count of vectors
+ BOOLEAN bOverflow; // there was a irq overflow @ this channel
+ UCHAR bStatusID; // base of following vector array
+} PCIVME_VECTOR_RESPONSE;
+
+#endif // __PCIVME_H__
Index: wiener_pcivme_dll/pcivme_ni.opt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/pcivme_ni.opt
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/pcivme_ni.ncb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/wiener_pcivme_dll/pcivme_ni.ncb
Property changes:
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: wiener_pcivme_dll/Klist.h
===================================================================
--- wiener_pcivme_dll/Klist.h (nonexistent)
+++ wiener_pcivme_dll/Klist.h (revision 17)
@@ -0,0 +1,52 @@
+#ifndef __KLIST_H__
+#define __KLIST_H__
+
+//-------------------------------------------------------------------------------------------
+// klist.h - header parts to maintain a doubly linked list (org microsoft)
+//
+// Please announce changes and hints to ARW Elektronik
+//
+//
+// $Log: Klist.h,v $
+// Revision 1.2 2004/07/24 07:47:46 klaus
+// revised, removed wrong license terms
+//
+//
+// what who when
+// first steps AR 07.11.1999
+//
+
+typedef struct item_tag FAR * LIST;
+typedef LIST FAR * PLIST;
+
+void APIENTRY List_Init(void);
+/* MUST BE CALLED BEFORE ANY OF THE OTHER FUNCTIONS. */
+
+LIST APIENTRY List_Create(void);
+/* Create a list. It will be initially empty */
+
+void APIENTRY List_Destroy(PLIST plst);
+/* Destroy *plst. It does not need to be empty first.
+| All storage directly in the list wil be freed.
+*/
+
+LPVOID APIENTRY List_NewFirst(LIST lst, UINT uLen);
+/* Return the address of the place for Len bytes of data in a new
+| item at the start of *plst
+*/
+
+void APIENTRY List_Delete(LPVOID Curs);
+/*------------------------------------------------------------------
+| Delete the item that Curs identifies.
+| This will be only a few (maybe as little as 3) machine instructions
+| quicker than DeleteAndNext or DeleteAndPrev but leaves Curs dangling.
+| It is therefore NOT usually to be preferred.
+| It may be useful when you have a function which returns an LPVOID
+| since the argument does not need to be a variable.
+| Trivial example: List_Delete(List_First(L));
+-------------------------------------------------------------------*/
+
+BOOL APIENTRY List_IsEmpty(LIST lst);
+/* Return TRUE if and only if lst is empty */
+
+#endif /* __KLIST_H__ */
\ No newline at end of file
Index: wiener_pcivme_dll/os_info.c
===================================================================
--- wiener_pcivme_dll/os_info.c (nonexistent)
+++ wiener_pcivme_dll/os_info.c (revision 17)
@@ -0,0 +1,116 @@
+//-------------------------------------------------------------------------------------------
+// os_info.c - request the OS type and version
+//
+// (c) 1999-2004 ARW Elektronik, Germany
+//
+// 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
+//
+//
+// $Log: os_info.c,v $
+// Revision 1.2 2004/07/24 07:47:00 klaus
+// Update copyright to 2004
+//
+// Revision 1.1.1.1 2003/11/14 23:17:18 klaus
+// First put into repository
+//
+// Revision 1.2 2002/10/27 17:05:33 klaus
+// CVS log added, file addressing bug > 2 Gbtye circumvent
+//
+// what who when
+// first steps AR 07.11.1999
+// small change in OS version recognition AR 21.05.2002
+//
+
+//-------------------------------------------------------------------------------------------
+// INCLUDES
+//
+#include <windows.h>
+
+//-------------------------------------------------------------------------------------------
+// DEFINES
+//
+
+//-------------------------------------------------------------------------------------------
+// TYPEDEFS
+//
+
+//-------------------------------------------------------------------------------------------
+// LOCALS
+//
+
+//-------------------------------------------------------------------------------------------
+// EXTERNALS
+//
+
+//-------------------------------------------------------------------------------------------
+// GLOBALS
+//
+
+//-------------------------------------------------------------------------------------------
+// FUNCTIONS
+//
+BOOLEAN IsWindowsNT(void)
+{
+ OSVERSIONINFO osvi;
+
+ osvi.dwOSVersionInfoSize = sizeof(osvi);
+ if (!GetVersionEx(&osvi)) return FALSE; // can't get info
+
+ if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
+ {
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
+BOOLEAN IsWindows95(void)
+{
+ OSVERSIONINFO osvi;
+
+ osvi.dwOSVersionInfoSize = sizeof(osvi);
+ if (!GetVersionEx(&osvi)) return FALSE; // can't get info
+
+ if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
+ {
+ if ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion == 0))
+ return TRUE;
+ else
+ return FALSE;
+ }
+ else
+ return FALSE;
+}
+
+BOOLEAN IsWindows98(void)
+{
+ OSVERSIONINFO osvi;
+
+ osvi.dwOSVersionInfoSize = sizeof(osvi);
+ if (!GetVersionEx(&osvi)) return FALSE; // can't get info
+
+ if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
+ {
+ if ((osvi.dwMajorVersion > 4) ||
+ ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion > 0)))
+ return TRUE;
+ else
+ return FALSE;
+ }
+ else
+ return FALSE;
+}
+
+/*
+BOOLEAN IsWindowsBlaBla(void)
+{
+
+}
+*/
+
Index: wiener_pcivme_dll/Vme.h
===================================================================
--- wiener_pcivme_dll/Vme.h (nonexistent)
+++ wiener_pcivme_dll/Vme.h (revision 17)
@@ -0,0 +1,57 @@
+#ifndef __VME_H__
+#define __VME_H__
+
+//------------------------------------------------------------------------------------------
+// vme.h - some constants about VME address modifiers in a more readable kind
+//
+// (c) 1999-2004 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
+//
+//
+// $Log: Vme.h,v $
+// Revision 1.3 2004/07/24 07:07:26 klaus
+// Update copyright to 2004
+//
+// Revision 1.2 2003/11/15 19:12:51 klaus
+// Update copyright to 2003
+//
+// Revision 1.1.1.1 2003/11/14 23:16:33 klaus
+// First put into repository
+//
+// Revision 1.3 2002/10/27 16:17:48 klaus
+// Typing bug fixed caused at log addition
+//
+// Revision 1.2 2002/10/27 16:11:03 klaus
+// Added CVS log into header
+//
+// what who when
+// finished first release to use with the PCIVME interface of ARW AR 22.03.1999
+//
+
+typedef WORD ADDRESS_MODIFIER;
+
+#define Std_Sup_Data (ADDRESS_MODIFIER)0x3d
+#define Std_Sup_Prog (ADDRESS_MODIFIER)0x3e
+#define Std_NoPriv_Data (ADDRESS_MODIFIER)0x39
+#define Std_NoPriv_Prog (ADDRESS_MODIFIER)0x3a
+
+#define Short_Sup (ADDRESS_MODIFIER)0x2d
+#define Short_NoPriv (ADDRESS_MODIFIER)0x29
+
+#define Ext_Sup_Data (ADDRESS_MODIFIER)0x0d
+#define Ext_Sup_Prog (ADDRESS_MODIFIER)0x0e
+#define Ext_NoPriv_Data (ADDRESS_MODIFIER)0x09
+#define Ext_NoPriv_Prog (ADDRESS_MODIFIER)0x0a
+
+#endif
+
+//-------------------------------------------------------------------------------------------
+//-------------------------------------------------------------------------------------------
+//-------------------------------------------------------------------------------------------