aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h
blob: 3f4207fd1597c1843b661ada1136ddf5ae47a235 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//---------------------------------------------------------------------------
// FT1000 driver for Flarion Flash OFDM NIC Device
//
// Copyright (C) 2002 Flarion Technologies, All rights reserved.
//
// This program is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 of the License, or (at your option) any
// later version. This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
// more details. You should have received a copy of the GNU General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc., 59 Temple Place -
// Suite 330, Boston, MA 02111-1307, USA.
//---------------------------------------------------------------------------
//
// File:         ft1000_ioctl.h
//
// Description:    Common structures and defines relating to IOCTL
//
// History:
// 11/5/02    Whc                Created.
//
//---------------------------------------------------------------------------//---------------------------------------------------------------------------
#ifndef _FT1000IOCTLH_
#define _FT1000IOCTLH_

typedef struct _IOCTL_GET_VER
{
    unsigned long drv_ver;
} __attribute__ ((packed)) IOCTL_GET_VER, *PIOCTL_GET_VER;

//Data structure for Dsp statistics
typedef struct _IOCTL_GET_DSP_STAT
{
    unsigned char DspVer[DSPVERSZ];        // DSP version number
    unsigned char HwSerNum[HWSERNUMSZ];    // Hardware Serial Number
    unsigned char Sku[SKUSZ];              // SKU
    unsigned char eui64[EUISZ];            // EUI64
    unsigned short ConStat;                // Connection Status
                                //    Bits 0-3 = Connection Status Field
                                //               0000=Idle (Disconnect)
                                //               0001=Searching
                                //               0010=Active (Connected)
                                //               0011=Waiting for L2 down
                                //               0100=Sleep
    unsigned short LedStat;                // Led Status
                                //    Bits 0-3   = Signal Strength Field
                                //                 0000 = -105dBm to -92dBm
                                //                 0001 = -92dBm to -85dBm
                                //                 0011 = -85dBm to -75dBm
                                //                 0111 = -75dBm to -50dBm
                                //                 1111 = -50dBm to 0dBm
                                //    Bits 4-7   = Reserved
                                //    Bits 8-11  = SNR Field
                                //                 0000 = <2dB
                                //                 0001 = 2dB to 8dB
                                //                 0011 = 8dB to 15dB
                                //                 0111 = 15dB to 22dB
                                //                 1111 = >22dB
                                //    Bits 12-15 = Reserved
    unsigned long nTxPkts;                // Number of packets transmitted from host to dsp
    unsigned long nRxPkts;                // Number of packets received from dsp to host
    unsigned long nTxBytes;               // Number of bytes transmitted from host to dsp
    unsigned long nRxBytes;               // Number of bytes received from dsp to host
    unsigned long ConTm;                  // Current session connection time in seconds
    unsigned char CalVer[CALVERSZ];       // Proprietary Calibration Version
    unsigned char CalDate[CALDATESZ];     // Proprietary Calibration Date
} __attribute__ ((packed)) IOCTL_GET_DSP_STAT, *PIOCTL_GET_DSP_STAT;

//Data structure for Dual Ported RAM messaging between Host and Dsp
typedef struct _IOCTL_DPRAM_BLK
{
    unsigned short total_len;
	struct pseudo_hdr pseudohdr;
    unsigned char buffer[1780];
} __attribute__ ((packed)) IOCTL_DPRAM_BLK, *PIOCTL_DPRAM_BLK;

typedef struct _IOCTL_DPRAM_COMMAND
{
    unsigned short extra;
    IOCTL_DPRAM_BLK dpram_blk;
} __attribute__ ((packed)) IOCTL_DPRAM_COMMAND, *PIOCTL_DPRAM_COMMAND;

//
// Custom IOCTL command codes
//
#define FT1000_MAGIC_CODE      'F'

#define IOCTL_REGISTER_CMD					0
#define IOCTL_SET_DPRAM_CMD					3
#define IOCTL_GET_DPRAM_CMD					4
#define IOCTL_GET_DSP_STAT_CMD      6
#define IOCTL_GET_VER_CMD           7
#define IOCTL_CONNECT               10
#define IOCTL_DISCONNECT            11

#define IOCTL_FT1000_GET_DSP_STAT _IOR (FT1000_MAGIC_CODE, IOCTL_GET_DSP_STAT_CMD, sizeof(IOCTL_GET_DSP_STAT) )
#define IOCTL_FT1000_GET_VER _IOR (FT1000_MAGIC_CODE, IOCTL_GET_VER_CMD, sizeof(IOCTL_GET_VER) )
#define IOCTL_FT1000_CONNECT _IOW (FT1000_MAGIC_CODE, IOCTL_CONNECT, 0 )
#define IOCTL_FT1000_DISCONNECT _IOW (FT1000_MAGIC_CODE, IOCTL_DISCONNECT, 0 )
#define IOCTL_FT1000_SET_DPRAM _IOW (FT1000_MAGIC_CODE, IOCTL_SET_DPRAM_CMD, sizeof(IOCTL_DPRAM_BLK) )
#define IOCTL_FT1000_GET_DPRAM _IOR (FT1000_MAGIC_CODE, IOCTL_GET_DPRAM_CMD, sizeof(IOCTL_DPRAM_BLK) )
#define IOCTL_FT1000_REGISTER  _IOW (FT1000_MAGIC_CODE, IOCTL_REGISTER_CMD, sizeof(unsigned short *) )
#endif // _FT1000IOCTLH_