• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 *---------------------------------------------------------------------------
3 * FT1000 driver for Flarion Flash OFDM NIC Device
4 *
5 * Copyright (C) 2002 Flarion Technologies, All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the Free
9 * Software Foundation; either version 2 of the License, or (at your option) any
10 * later version. This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13 * more details. You should have received a copy of the GNU General Public
14 * License along with this program; if not, write to the
15 * Free Software Foundation, Inc., 59 Temple Place -
16 * Suite 330, Boston, MA 02111-1307, USA.
17 *---------------------------------------------------------------------------
18 *
19 * File:         ft1000_ioctl.h
20 *
21 * Description:    Common structures and defines relating to IOCTL
22 *
23 * History:
24 * 11/5/02    Whc                Created.
25 *
26 *---------------------------------------------------------------------------
27 */
28 #ifndef _FT1000IOCTLH_
29 #define _FT1000IOCTLH_
30 
31 struct IOCTL_GET_VER {
32 	unsigned long drv_ver;
33 } __packed;
34 
35 /* Data structure for Dsp statistics */
36 struct IOCTL_GET_DSP_STAT {
37 	unsigned char DspVer[DSPVERSZ];        /* DSP version number */
38 	unsigned char HwSerNum[HWSERNUMSZ];    /* Hardware Serial Number */
39 	unsigned char Sku[SKUSZ];              /* SKU */
40 	unsigned char eui64[EUISZ];            /* EUI64 */
41 	unsigned short ConStat;                /* Connection Status */
42 	/*    Bits 0-3 = Connection Status Field */
43 	/*               0000=Idle (Disconnect) */
44 	/*               0001=Searching */
45 	/*               0010=Active (Connected) */
46 	/*               0011=Waiting for L2 down */
47 	/*               0100=Sleep */
48 	unsigned short LedStat;                /* Led Status */
49 	/*    Bits 0-3   = Signal Strength Field */
50 	/*                 0000 = -105dBm to -92dBm */
51 	/*                 0001 = -92dBm to -85dBm */
52 	/*                 0011 = -85dBm to -75dBm */
53 	/*                 0111 = -75dBm to -50dBm */
54 	/*                 1111 = -50dBm to 0dBm */
55 	/*    Bits 4-7   = Reserved */
56 	/*    Bits 8-11  = SNR Field */
57 	/*                 0000 = <2dB */
58 	/*                 0001 = 2dB to 8dB */
59 	/*                 0011 = 8dB to 15dB */
60 	/*                 0111 = 15dB to 22dB */
61 	/*                 1111 = >22dB */
62 	/*    Bits 12-15 = Reserved */
63 	unsigned long nTxPkts;                /* Number of packets transmitted
64 					       * from host to dsp
65 					       */
66 	unsigned long nRxPkts;                /* Number of packets received from
67 					       * dsp to host
68 					       */
69 	unsigned long nTxBytes;               /* Number of bytes transmitted
70 					       * from host to dsp
71 					       */
72 	unsigned long nRxBytes;               /* Number of bytes received from
73 					       * dsp to host
74 					       */
75 	unsigned long ConTm;                  /* Current session connection time
76 					       * in seconds
77 					       */
78 	unsigned char CalVer[CALVERSZ];       /* Proprietary Calibration
79 					       * Version
80 					       */
81 	unsigned char CalDate[CALDATESZ];     /* Proprietary Calibration Date */
82 } __packed;
83 
84 /* Data structure for Dual Ported RAM messaging between Host and Dsp */
85 struct IOCTL_DPRAM_BLK {
86 	unsigned short total_len;
87 	struct pseudo_hdr pseudohdr;
88 	unsigned char buffer[1780];
89 } __packed;
90 
91 struct IOCTL_DPRAM_COMMAND {
92 	unsigned short extra;
93 	struct IOCTL_DPRAM_BLK dpram_blk;
94 } __packed;
95 
96 /*
97 * Custom IOCTL command codes
98 */
99 #define FT1000_MAGIC_CODE      'F'
100 
101 #define IOCTL_REGISTER_CMD	0
102 #define IOCTL_SET_DPRAM_CMD	3
103 #define IOCTL_GET_DPRAM_CMD	4
104 #define IOCTL_GET_DSP_STAT_CMD	6
105 #define IOCTL_GET_VER_CMD	7
106 #define IOCTL_CONNECT		10
107 #define IOCTL_DISCONNECT	11
108 
109 #define IOCTL_FT1000_GET_DSP_STAT _IOR(FT1000_MAGIC_CODE,      \
110 				       IOCTL_GET_DSP_STAT_CMD, \
111 				       struct IOCTL_GET_DSP_STAT)
112 #define IOCTL_FT1000_GET_VER _IOR(FT1000_MAGIC_CODE, IOCTL_GET_VER_CMD, \
113 				  struct IOCTL_GET_VER)
114 #define IOCTL_FT1000_CONNECT _IO(FT1000_MAGIC_CODE, IOCTL_CONNECT)
115 #define IOCTL_FT1000_DISCONNECT _IO(FT1000_MAGIC_CODE, IOCTL_DISCONNECT)
116 #define IOCTL_FT1000_SET_DPRAM _IOW(FT1000_MAGIC_CODE, IOCTL_SET_DPRAM_CMD, \
117 				    struct IOCTL_DPRAM_BLK)
118 #define IOCTL_FT1000_GET_DPRAM _IOR(FT1000_MAGIC_CODE, IOCTL_GET_DPRAM_CMD, \
119 				    struct IOCTL_DPRAM_BLK)
120 #define IOCTL_FT1000_REGISTER  _IOW(FT1000_MAGIC_CODE, IOCTL_REGISTER_CMD, \
121 				    unsigned short *)
122 
123 #endif /* _FT1000IOCTLH_ */
124