linux/drivers/block/ida_ioctl.h
<<
>>
Prefs
   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
  35typedef 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
  51typedef 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