/* $NetBSD: hopf6039.h,v 1.2 2003/12/04 16:23:36 drochner Exp $ */ /****************************************************************************/ /* hopf6039.h */ /* hopf Elektronik 6039 PCI radio clock header */ /* (c) 1999, 2000 Bernd Altmeier */ /* 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_ */