Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  *    Disk Array driver for Compaq SMART2 Controllers
  3  *    Copyright 1998 Compaq Computer Corporation
  4  *
  5  *    This program is free software; you can redistribute it and/or modify
  6  *    it under the terms of the GNU General Public License as published by
  7  *    the Free Software Foundation; either version 2 of the License, or
  8  *    (at your option) any later version.
  9  *
 10  *    This program is distributed in the hope that it will be useful,
 11  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 12  *    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
 13  *    NON INFRINGEMENT.  See the GNU General Public License for more details.
 14  *
 15  *    You should have received a copy of the GNU General Public License
 16  *    along with this program; if not, write to the Free Software
 17  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 18  *
 19  *    Questions/Comments/Bugfixes to iss_storagedev@hp.com
 20  *
 21  */
 22 #ifndef IDA_IOCTL_H
 23 #define IDA_IOCTL_H
 24 
 25 #include "ida_cmd.h"
 26 #include "cpqarray.h"
 27 
 28 #define IDAGETDRVINFO           0x27272828
 29 #define IDAPASSTHRU             0x28282929
 30 #define IDAGETCTLRSIG           0x29293030
 31 #define IDAREVALIDATEVOLS       0x30303131
 32 #define IDADRIVERVERSION        0x31313232
 33 #define IDAGETPCIINFO           0x32323333
 34 
 35 typedef struct _ida_pci_info_struct
 36 {
 37         unsigned char   bus;
 38         unsigned char   dev_fn;
 39         __u32           board_id;
 40 } ida_pci_info_struct;
 41 /*
 42  * Normally, the ioctl determines the logical unit for this command by
 43  * the major,minor number of the fd passed to ioctl.  If you need to send
 44  * a command to a different/nonexistant unit (such as during config), you
 45  * can override the normal behavior by setting the unit valid bit. (Normally,
 46  * it should be zero) The controller the command is sent to is still
 47  * determined by the major number of the open device.
 48  */
 49 
 50 #define UNITVALID       0x80
 51 typedef struct {
 52         __u8    cmd;
 53         __u8    rcode;
 54         __u8    unit;
 55         __u32   blk;
 56         __u16   blk_cnt;
 57 
 58 /* currently, sg_cnt is assumed to be 1: only the 0th element of sg is used */
 59         struct {
 60                 void    __user *addr;
 61                 size_t  size;
 62         } sg[SG_MAX];
 63         int     sg_cnt;
 64 
 65         union ctlr_cmds {
 66                 drv_info_t              drv;
 67                 unsigned char           buf[1024];
 68 
 69                 id_ctlr_t               id_ctlr;
 70                 drv_param_t             drv_param;
 71                 id_log_drv_t            id_log_drv;
 72                 id_log_drv_ext_t        id_log_drv_ext;
 73                 sense_log_drv_stat_t    sense_log_drv_stat;
 74                 id_phys_drv_t           id_phys_drv;
 75                 blink_drv_leds_t        blink_drv_leds;
 76                 sense_blink_leds_t      sense_blink_leds;
 77                 config_t                config;
 78                 reorder_log_drv_t       reorder_log_drv;
 79                 label_log_drv_t         label_log_drv;
 80                 surf_delay_t            surf_delay;
 81                 overhead_delay_t        overhead_delay;
 82                 mp_delay_t              mp_delay;
 83                 scsi_param_t            scsi_param;
 84         } c;
 85 } ida_ioctl_t;
 86 
 87 #endif /* IDA_IOCTL_H */
 88 
  This page was automatically generated by the LXR engine.