1: /****************************************************************************/
2: /* hopf6039.h */
3: /* hopf Elektronik 6039 PCI radio clock header */
4: /* (c) 1999, 2000 Bernd Altmeier <altmeier@ATLSoft.de> */
5: /* Rev. 1.00 Date 25.03.2000 */
6: /* History: */
7: /****************************************************************************/
8:
9: #ifndef _hopf6039_H_
10: #define _hopf6039_H_
11:
12: #define HOPF_MAXVERSION 8
13: #define HOPF_CNTR_MEM_LEN 0x7f
14: #define HOPF_DATA_MEM_LEN 0x3ff /* this is our memory size */
15:
16: /* macros and definition for 32 to 16 to 8 bit conversion */
17:
18: typedef unsigned long DWORD;
19: typedef unsigned char BYTE;
20: typedef unsigned short WORD;
21:
22: #define LOWORD(l) ((WORD)(l))
23: #define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
24: #define LOBYTE(w) ((BYTE)(w))
25: #define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))
26:
27: /* iocntl codes for driver access */
28:
29: #define HOPF_CLOCK_CMD_MASK 0xff000
30:
31: #define HOPF_CLOCK_GET_LOCAL 0x10000
32: #define HOPF_CLOCK_GET_UTC 0x20000
33: #define HOPF_CLOCK_GET_ANTENNA 0x30000
34: #define HOPF_CLOCK_GET_DIFFERENCE 0x40000
35: #define HOPF_CLOCK_GET_VERSION 0x50000
36: #define HOPF_CLOCK_GET_POSITION 0x60000
37: #define HOPF_CLOCK_GET_SATDATA 0x70000
38: #define HOPF_CLOCK_GET_SYSTEMBYTE 0x80000
39: #define HOPF_CLOCK_GET_IRIG 0x90000
40:
41: #define HOPF_CLOCK_SET_DIFFERENCE 0x01000
42: #define HOPF_CLOCK_SET_ANTENNA 0x02000
43: #define HOPF_CLOCK_SET_TIME 0x03000
44: #define HOPF_CLOCK_SET_POSITION 0x04000
45: #define HOPF_CLOCK_SET_SATMODE 0x05000
46: #define HOPF_CLOCK_SET_SYSTEMBYTE 0x06000
47: #define HOPF_CLOCK_SET_RESET 0x07000
48: #define HOPF_CLOCK_SET_IRIG 0x08000
49:
50: /* clock command codes */
51:
52: #define HOPF_CLOCK_HARDRESET 0x00008000
53: #define HOPF_CLOCK_SOFTRESET 0x00004000
54:
55: /* sat-information */
56:
57: typedef struct SatStat{
58: BYTE wVisible;
59: BYTE wMode;
60: BYTE wSat0;
61: BYTE wRat0;
62: BYTE wSat1;
63: BYTE wRat1;
64: BYTE wSat2;
65: BYTE wRat2;
66: BYTE wSat3;
67: BYTE wRat3;
68: BYTE wSat4;
69: BYTE wRat4;
70: BYTE wSat5;
71: BYTE wRat5;
72: BYTE wSat6;
73: BYTE wRat6;
74: BYTE wSat7;
75: BYTE wRat7;
76: } SatStat;
77:
78: /* GPS position */
79:
80: typedef struct GPSPos { /* Position */
81: long wAltitude;
82: long wLongitude;
83: long wLatitude;
84: } GPSPos;
85:
86: /* clock hardware version */
87:
88: typedef struct ClockVersion {
89: char cVersion[255]; /* Hardware Version like " DCF-RECEIVER, VERSION 01.01, DAT: 23.NOV.1999" */
90: char dVersion[255]; /* Driver Version */
91: } ClockVersion;
92:
93: /* hopftime what you think */
94:
95: typedef struct HOPFTIME {
96: unsigned int wYear;
97: unsigned int wMonth;
98: unsigned int wDayOfWeek;
99: unsigned int wDay;
100: unsigned int wHour;
101: unsigned int wMinute;
102: unsigned int wSecond;
103: unsigned int wMilliseconds;
104: unsigned int wStatus;
105: } HOPFTIME;
106:
107: /* DCF77 antenna alignment */
108:
109: typedef struct DcfAntenne {
110: BYTE bStatus;
111: BYTE bStatus1;
112: WORD wAntValue;
113: } DcfAntenne;
114:
115: /* hopf PCI clock */
116:
117: typedef struct hopfCard {
118: char name[32];
119: unsigned irq;
120: unsigned long membase; /* without mmap */
121: unsigned int port;
122:
123: int versionlen;
124: char versionbuf[1024];
125: char *version[HOPF_MAXVERSION];
126: char cardname[32];
127: int interrupt;
128: void *mbase; /* this will be our memory base address */
129:
130: } hopfCard;
131:
132: typedef struct cardparams {
133: unsigned int port;
134: unsigned irq;
135: int cardtype;
136: int cardnr;
137: unsigned int membase;
138: } cardparams;
139:
140:
141: #define WRITE_REGISTER 0x00
142: #define READ_REGISTER 0x01
143:
144: #endif /* _hopf6039_H_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>