summaryrefslogtreecommitdiff
path: root/include/hopf6039.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/hopf6039.h')
-rw-r--r--include/hopf6039.h144
1 files changed, 144 insertions, 0 deletions
diff --git a/include/hopf6039.h b/include/hopf6039.h
new file mode 100644
index 0000000..8532099
--- /dev/null
+++ b/include/hopf6039.h
@@ -0,0 +1,144 @@
+/****************************************************************************/
+/* hopf6039.h */
+/* hopf Elektronik 6039 PCI radio clock header */
+/* (c) 1999, 2000 Bernd Altmeier <altmeier@ATLSoft.de> */
+/* Rev. 1.00 Date 25.03.2000 */
+/* History: */
+/****************************************************************************/
+
+#ifndef _hopf6039_H_
+#define _hopf6039_H_
+
+#define HOPF_MAXVERSION 8
+#define HOPF_CNTR_MEM_LEN 0x7f
+#define HOPF_DATA_MEM_LEN 0x3ff /* this is our memory size */
+
+/* macros and definition for 32 to 16 to 8 bit conversion */
+
+typedef unsigned long DWORD;
+typedef unsigned char BYTE;
+typedef unsigned short WORD;
+
+#define LOWORD(l) ((WORD)(l))
+#define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
+#define LOBYTE(w) ((BYTE)(w))
+#define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))
+
+/* iocntl codes for driver access */
+
+#define HOPF_CLOCK_CMD_MASK 0xff000
+
+#define HOPF_CLOCK_GET_LOCAL 0x10000
+#define HOPF_CLOCK_GET_UTC 0x20000
+#define HOPF_CLOCK_GET_ANTENNA 0x30000
+#define HOPF_CLOCK_GET_DIFFERENCE 0x40000
+#define HOPF_CLOCK_GET_VERSION 0x50000
+#define HOPF_CLOCK_GET_POSITION 0x60000
+#define HOPF_CLOCK_GET_SATDATA 0x70000
+#define HOPF_CLOCK_GET_SYSTEMBYTE 0x80000
+#define HOPF_CLOCK_GET_IRIG 0x90000
+
+#define HOPF_CLOCK_SET_DIFFERENCE 0x01000
+#define HOPF_CLOCK_SET_ANTENNA 0x02000
+#define HOPF_CLOCK_SET_TIME 0x03000
+#define HOPF_CLOCK_SET_POSITION 0x04000
+#define HOPF_CLOCK_SET_SATMODE 0x05000
+#define HOPF_CLOCK_SET_SYSTEMBYTE 0x06000
+#define HOPF_CLOCK_SET_RESET 0x07000
+#define HOPF_CLOCK_SET_IRIG 0x08000
+
+/* clock command codes */
+
+#define HOPF_CLOCK_HARDRESET 0x00008000
+#define HOPF_CLOCK_SOFTRESET 0x00004000
+
+/* sat-information */
+
+typedef struct SatStat{
+ BYTE wVisible;
+ BYTE wMode;
+ BYTE wSat0;
+ BYTE wRat0;
+ BYTE wSat1;
+ BYTE wRat1;
+ BYTE wSat2;
+ BYTE wRat2;
+ BYTE wSat3;
+ BYTE wRat3;
+ BYTE wSat4;
+ BYTE wRat4;
+ BYTE wSat5;
+ BYTE wRat5;
+ BYTE wSat6;
+ BYTE wRat6;
+ BYTE wSat7;
+ BYTE wRat7;
+} SatStat;
+
+/* GPS position */
+
+typedef struct GPSPos { /* Position */
+ long wAltitude;
+ long wLongitude;
+ long wLatitude;
+} GPSPos;
+
+/* clock hardware version */
+
+typedef struct ClockVersion {
+ char cVersion[255]; /* Hardware Version like " DCF-RECEIVER, VERSION 01.01, DAT: 23.NOV.1999" */
+ char dVersion[255]; /* Driver Version */
+} ClockVersion;
+
+/* hopftime what you think */
+
+typedef struct HOPFTIME {
+ unsigned int wYear;
+ unsigned int wMonth;
+ unsigned int wDayOfWeek;
+ unsigned int wDay;
+ unsigned int wHour;
+ unsigned int wMinute;
+ unsigned int wSecond;
+ unsigned int wMilliseconds;
+ unsigned int wStatus;
+} HOPFTIME;
+
+/* DCF77 antenna alignment */
+
+typedef struct DcfAntenne {
+ BYTE bStatus;
+ BYTE bStatus1;
+ WORD wAntValue;
+} DcfAntenne;
+
+/* hopf PCI clock */
+
+typedef struct hopfCard {
+ char name[32];
+ unsigned irq;
+ unsigned long membase; /* without mmap */
+ unsigned int port;
+
+ int versionlen;
+ char versionbuf[1024];
+ char *version[HOPF_MAXVERSION];
+ char cardname[32];
+ int interrupt;
+ void *mbase; /* this will be our memory base address */
+
+} hopfCard;
+
+typedef struct cardparams {
+ unsigned int port;
+ unsigned irq;
+ int cardtype;
+ int cardnr;
+ unsigned int membase;
+} cardparams;
+
+
+#define WRITE_REGISTER 0x00
+#define READ_REGISTER 0x01
+
+#endif /* _hopf6039_H_ */