linux/drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h
<<
>>
Prefs
   1//---------------------------------------------------------------------------
   2// FT1000 driver for Flarion Flash OFDM NIC Device
   3//
   4// Copyright (C) 2002 Flarion Technologies, All rights reserved.
   5//
   6// This program is free software; you can redistribute it and/or modify it
   7// under the terms of the GNU General Public License as published by the Free
   8// Software Foundation; either version 2 of the License, or (at your option) any
   9// later version. This program is distributed in the hope that it will be useful,
  10// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  11// or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  12// more details. You should have received a copy of the GNU General Public
  13// License along with this program; if not, write to the
  14// Free Software Foundation, Inc., 59 Temple Place -
  15// Suite 330, Boston, MA 02111-1307, USA.
  16//---------------------------------------------------------------------------
  17//
  18// File:         ft1000_ioctl.h
  19//
  20// Description:    Common structures and defines relating to IOCTL
  21//
  22// History:
  23// 11/5/02    Whc                Created.
  24//
  25//---------------------------------------------------------------------------//---------------------------------------------------------------------------
  26#ifndef _FT1000IOCTLH_
  27#define _FT1000IOCTLH_
  28
  29typedef struct _IOCTL_GET_VER
  30{
  31    unsigned long drv_ver;
  32} __attribute__ ((packed)) IOCTL_GET_VER, *PIOCTL_GET_VER;
  33
  34//Data structure for Dsp statistics
  35typedef struct _IOCTL_GET_DSP_STAT
  36{
  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 from host to dsp
  64    unsigned long nRxPkts;                // Number of packets received from dsp to host
  65    unsigned long nTxBytes;               // Number of bytes transmitted from host to dsp
  66    unsigned long nRxBytes;               // Number of bytes received from dsp to host
  67    unsigned long ConTm;                  // Current session connection time in seconds
  68    unsigned char CalVer[CALVERSZ];       // Proprietary Calibration Version
  69    unsigned char CalDate[CALDATESZ];     // Proprietary Calibration Date
  70} __attribute__ ((packed)) IOCTL_GET_DSP_STAT, *PIOCTL_GET_DSP_STAT;
  71
  72//Data structure for Dual Ported RAM messaging between Host and Dsp
  73typedef struct _IOCTL_DPRAM_BLK
  74{
  75    unsigned short total_len;
  76        struct pseudo_hdr pseudohdr;
  77    unsigned char buffer[1780];
  78} __attribute__ ((packed)) IOCTL_DPRAM_BLK, *PIOCTL_DPRAM_BLK;
  79
  80typedef struct _IOCTL_DPRAM_COMMAND
  81{
  82    unsigned short extra;
  83    IOCTL_DPRAM_BLK dpram_blk;
  84} __attribute__ ((packed)) IOCTL_DPRAM_COMMAND, *PIOCTL_DPRAM_COMMAND;
  85
  86//
  87// Custom IOCTL command codes
  88//
  89#define FT1000_MAGIC_CODE      'F'
  90
  91#define IOCTL_REGISTER_CMD                                      0
  92#define IOCTL_SET_DPRAM_CMD                                     3
  93#define IOCTL_GET_DPRAM_CMD                                     4
  94#define IOCTL_GET_DSP_STAT_CMD      6
  95#define IOCTL_GET_VER_CMD           7
  96#define IOCTL_CONNECT               10
  97#define IOCTL_DISCONNECT            11
  98
  99#define IOCTL_FT1000_GET_DSP_STAT _IOR (FT1000_MAGIC_CODE, IOCTL_GET_DSP_STAT_CMD, sizeof(IOCTL_GET_DSP_STAT) )
 100#define IOCTL_FT1000_GET_VER _IOR (FT1000_MAGIC_CODE, IOCTL_GET_VER_CMD, sizeof(IOCTL_GET_VER) )
 101#define IOCTL_FT1000_CONNECT _IOW (FT1000_MAGIC_CODE, IOCTL_CONNECT, 0 )
 102#define IOCTL_FT1000_DISCONNECT _IOW (FT1000_MAGIC_CODE, IOCTL_DISCONNECT, 0 )
 103#define IOCTL_FT1000_SET_DPRAM _IOW (FT1000_MAGIC_CODE, IOCTL_SET_DPRAM_CMD, sizeof(IOCTL_DPRAM_BLK) )
 104#define IOCTL_FT1000_GET_DPRAM _IOR (FT1000_MAGIC_CODE, IOCTL_GET_DPRAM_CMD, sizeof(IOCTL_DPRAM_BLK) )
 105#define IOCTL_FT1000_REGISTER  _IOW (FT1000_MAGIC_CODE, IOCTL_REGISTER_CMD, sizeof(unsigned short *) )
 106#endif // _FT1000IOCTLH_
 107
 108