1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker /* 3*f80ad8b4SAndroid Build Coastguard Worker * I2O user space accessible structures/APIs 4*f80ad8b4SAndroid Build Coastguard Worker * 5*f80ad8b4SAndroid Build Coastguard Worker * (c) Copyright 1999, 2000 Red Hat Software 6*f80ad8b4SAndroid Build Coastguard Worker * 7*f80ad8b4SAndroid Build Coastguard Worker * This program is free software; you can redistribute it and/or 8*f80ad8b4SAndroid Build Coastguard Worker * modify it under the terms of the GNU General Public License 9*f80ad8b4SAndroid Build Coastguard Worker * as published by the Free Software Foundation; either version 10*f80ad8b4SAndroid Build Coastguard Worker * 2 of the License, or (at your option) any later version. 11*f80ad8b4SAndroid Build Coastguard Worker * 12*f80ad8b4SAndroid Build Coastguard Worker ************************************************************************* 13*f80ad8b4SAndroid Build Coastguard Worker * 14*f80ad8b4SAndroid Build Coastguard Worker * This header file defines the I2O APIs that are available to both 15*f80ad8b4SAndroid Build Coastguard Worker * the kernel and user level applications. Kernel specific structures 16*f80ad8b4SAndroid Build Coastguard Worker * are defined in i2o_osm. OSMs should include _only_ i2o_osm.h which 17*f80ad8b4SAndroid Build Coastguard Worker * automatically includes this file. 18*f80ad8b4SAndroid Build Coastguard Worker * 19*f80ad8b4SAndroid Build Coastguard Worker */ 20*f80ad8b4SAndroid Build Coastguard Worker 21*f80ad8b4SAndroid Build Coastguard Worker #ifndef _I2O_DEV_H 22*f80ad8b4SAndroid Build Coastguard Worker #define _I2O_DEV_H 23*f80ad8b4SAndroid Build Coastguard Worker 24*f80ad8b4SAndroid Build Coastguard Worker /* How many controllers are we allowing */ 25*f80ad8b4SAndroid Build Coastguard Worker #define MAX_I2O_CONTROLLERS 32 26*f80ad8b4SAndroid Build Coastguard Worker 27*f80ad8b4SAndroid Build Coastguard Worker #include <linux/ioctl.h> 28*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 29*f80ad8b4SAndroid Build Coastguard Worker 30*f80ad8b4SAndroid Build Coastguard Worker /* 31*f80ad8b4SAndroid Build Coastguard Worker * I2O Control IOCTLs and structures 32*f80ad8b4SAndroid Build Coastguard Worker */ 33*f80ad8b4SAndroid Build Coastguard Worker #define I2O_MAGIC_NUMBER 'i' 34*f80ad8b4SAndroid Build Coastguard Worker #define I2OGETIOPS _IOR(I2O_MAGIC_NUMBER,0,__u8[MAX_I2O_CONTROLLERS]) 35*f80ad8b4SAndroid Build Coastguard Worker #define I2OHRTGET _IOWR(I2O_MAGIC_NUMBER,1,struct i2o_cmd_hrtlct) 36*f80ad8b4SAndroid Build Coastguard Worker #define I2OLCTGET _IOWR(I2O_MAGIC_NUMBER,2,struct i2o_cmd_hrtlct) 37*f80ad8b4SAndroid Build Coastguard Worker #define I2OPARMSET _IOWR(I2O_MAGIC_NUMBER,3,struct i2o_cmd_psetget) 38*f80ad8b4SAndroid Build Coastguard Worker #define I2OPARMGET _IOWR(I2O_MAGIC_NUMBER,4,struct i2o_cmd_psetget) 39*f80ad8b4SAndroid Build Coastguard Worker #define I2OSWDL _IOWR(I2O_MAGIC_NUMBER,5,struct i2o_sw_xfer) 40*f80ad8b4SAndroid Build Coastguard Worker #define I2OSWUL _IOWR(I2O_MAGIC_NUMBER,6,struct i2o_sw_xfer) 41*f80ad8b4SAndroid Build Coastguard Worker #define I2OSWDEL _IOWR(I2O_MAGIC_NUMBER,7,struct i2o_sw_xfer) 42*f80ad8b4SAndroid Build Coastguard Worker #define I2OVALIDATE _IOR(I2O_MAGIC_NUMBER,8,__u32) 43*f80ad8b4SAndroid Build Coastguard Worker #define I2OHTML _IOWR(I2O_MAGIC_NUMBER,9,struct i2o_html) 44*f80ad8b4SAndroid Build Coastguard Worker #define I2OEVTREG _IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id) 45*f80ad8b4SAndroid Build Coastguard Worker #define I2OEVTGET _IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info) 46*f80ad8b4SAndroid Build Coastguard Worker #define I2OPASSTHRU _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru) 47*f80ad8b4SAndroid Build Coastguard Worker #define I2OPASSTHRU32 _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru32) 48*f80ad8b4SAndroid Build Coastguard Worker 49*f80ad8b4SAndroid Build Coastguard Worker struct i2o_cmd_passthru32 { 50*f80ad8b4SAndroid Build Coastguard Worker unsigned int iop; /* IOP unit number */ 51*f80ad8b4SAndroid Build Coastguard Worker __u32 msg; /* message */ 52*f80ad8b4SAndroid Build Coastguard Worker }; 53*f80ad8b4SAndroid Build Coastguard Worker 54*f80ad8b4SAndroid Build Coastguard Worker struct i2o_cmd_passthru { 55*f80ad8b4SAndroid Build Coastguard Worker unsigned int iop; /* IOP unit number */ 56*f80ad8b4SAndroid Build Coastguard Worker void __user *msg; /* message */ 57*f80ad8b4SAndroid Build Coastguard Worker }; 58*f80ad8b4SAndroid Build Coastguard Worker 59*f80ad8b4SAndroid Build Coastguard Worker struct i2o_cmd_hrtlct { 60*f80ad8b4SAndroid Build Coastguard Worker unsigned int iop; /* IOP unit number */ 61*f80ad8b4SAndroid Build Coastguard Worker void __user *resbuf; /* Buffer for result */ 62*f80ad8b4SAndroid Build Coastguard Worker unsigned int __user *reslen; /* Buffer length in bytes */ 63*f80ad8b4SAndroid Build Coastguard Worker }; 64*f80ad8b4SAndroid Build Coastguard Worker 65*f80ad8b4SAndroid Build Coastguard Worker struct i2o_cmd_psetget { 66*f80ad8b4SAndroid Build Coastguard Worker unsigned int iop; /* IOP unit number */ 67*f80ad8b4SAndroid Build Coastguard Worker unsigned int tid; /* Target device TID */ 68*f80ad8b4SAndroid Build Coastguard Worker void __user *opbuf; /* Operation List buffer */ 69*f80ad8b4SAndroid Build Coastguard Worker unsigned int oplen; /* Operation List buffer length in bytes */ 70*f80ad8b4SAndroid Build Coastguard Worker void __user *resbuf; /* Result List buffer */ 71*f80ad8b4SAndroid Build Coastguard Worker unsigned int __user *reslen; /* Result List buffer length in bytes */ 72*f80ad8b4SAndroid Build Coastguard Worker }; 73*f80ad8b4SAndroid Build Coastguard Worker 74*f80ad8b4SAndroid Build Coastguard Worker struct i2o_sw_xfer { 75*f80ad8b4SAndroid Build Coastguard Worker unsigned int iop; /* IOP unit number */ 76*f80ad8b4SAndroid Build Coastguard Worker unsigned char flags; /* Flags field */ 77*f80ad8b4SAndroid Build Coastguard Worker unsigned char sw_type; /* Software type */ 78*f80ad8b4SAndroid Build Coastguard Worker unsigned int sw_id; /* Software ID */ 79*f80ad8b4SAndroid Build Coastguard Worker void __user *buf; /* Pointer to software buffer */ 80*f80ad8b4SAndroid Build Coastguard Worker unsigned int __user *swlen; /* Length of software data */ 81*f80ad8b4SAndroid Build Coastguard Worker unsigned int __user *maxfrag; /* Maximum fragment count */ 82*f80ad8b4SAndroid Build Coastguard Worker unsigned int __user *curfrag; /* Current fragment count */ 83*f80ad8b4SAndroid Build Coastguard Worker }; 84*f80ad8b4SAndroid Build Coastguard Worker 85*f80ad8b4SAndroid Build Coastguard Worker struct i2o_html { 86*f80ad8b4SAndroid Build Coastguard Worker unsigned int iop; /* IOP unit number */ 87*f80ad8b4SAndroid Build Coastguard Worker unsigned int tid; /* Target device ID */ 88*f80ad8b4SAndroid Build Coastguard Worker unsigned int page; /* HTML page */ 89*f80ad8b4SAndroid Build Coastguard Worker void __user *resbuf; /* Buffer for reply HTML page */ 90*f80ad8b4SAndroid Build Coastguard Worker unsigned int __user *reslen; /* Length in bytes of reply buffer */ 91*f80ad8b4SAndroid Build Coastguard Worker void __user *qbuf; /* Pointer to HTTP query string */ 92*f80ad8b4SAndroid Build Coastguard Worker unsigned int qlen; /* Length in bytes of query string buffer */ 93*f80ad8b4SAndroid Build Coastguard Worker }; 94*f80ad8b4SAndroid Build Coastguard Worker 95*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_Q_LEN 32 96*f80ad8b4SAndroid Build Coastguard Worker 97*f80ad8b4SAndroid Build Coastguard Worker struct i2o_evt_id { 98*f80ad8b4SAndroid Build Coastguard Worker unsigned int iop; 99*f80ad8b4SAndroid Build Coastguard Worker unsigned int tid; 100*f80ad8b4SAndroid Build Coastguard Worker unsigned int evt_mask; 101*f80ad8b4SAndroid Build Coastguard Worker }; 102*f80ad8b4SAndroid Build Coastguard Worker 103*f80ad8b4SAndroid Build Coastguard Worker /* Event data size = frame size - message header + evt indicator */ 104*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_DATA_SIZE 88 105*f80ad8b4SAndroid Build Coastguard Worker 106*f80ad8b4SAndroid Build Coastguard Worker struct i2o_evt_info { 107*f80ad8b4SAndroid Build Coastguard Worker struct i2o_evt_id id; 108*f80ad8b4SAndroid Build Coastguard Worker unsigned char evt_data[I2O_EVT_DATA_SIZE]; 109*f80ad8b4SAndroid Build Coastguard Worker unsigned int data_size; 110*f80ad8b4SAndroid Build Coastguard Worker }; 111*f80ad8b4SAndroid Build Coastguard Worker 112*f80ad8b4SAndroid Build Coastguard Worker struct i2o_evt_get { 113*f80ad8b4SAndroid Build Coastguard Worker struct i2o_evt_info info; 114*f80ad8b4SAndroid Build Coastguard Worker int pending; 115*f80ad8b4SAndroid Build Coastguard Worker int lost; 116*f80ad8b4SAndroid Build Coastguard Worker }; 117*f80ad8b4SAndroid Build Coastguard Worker 118*f80ad8b4SAndroid Build Coastguard Worker typedef struct i2o_sg_io_hdr { 119*f80ad8b4SAndroid Build Coastguard Worker unsigned int flags; /* see I2O_DPT_SG_IO_FLAGS */ 120*f80ad8b4SAndroid Build Coastguard Worker } i2o_sg_io_hdr_t; 121*f80ad8b4SAndroid Build Coastguard Worker 122*f80ad8b4SAndroid Build Coastguard Worker /************************************************************************** 123*f80ad8b4SAndroid Build Coastguard Worker * HRT related constants and structures 124*f80ad8b4SAndroid Build Coastguard Worker **************************************************************************/ 125*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_LOCAL 0 126*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_ISA 1 127*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_EISA 2 128*f80ad8b4SAndroid Build Coastguard Worker /* was I2O_BUS_MCA 3 */ 129*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_PCI 4 130*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_PCMCIA 5 131*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_NUBUS 6 132*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_CARDBUS 7 133*f80ad8b4SAndroid Build Coastguard Worker #define I2O_BUS_UNKNOWN 0x80 134*f80ad8b4SAndroid Build Coastguard Worker 135*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_pci_bus { 136*f80ad8b4SAndroid Build Coastguard Worker __u8 PciFunctionNumber; 137*f80ad8b4SAndroid Build Coastguard Worker __u8 PciDeviceNumber; 138*f80ad8b4SAndroid Build Coastguard Worker __u8 PciBusNumber; 139*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved; 140*f80ad8b4SAndroid Build Coastguard Worker __u16 PciVendorID; 141*f80ad8b4SAndroid Build Coastguard Worker __u16 PciDeviceID; 142*f80ad8b4SAndroid Build Coastguard Worker } i2o_pci_bus; 143*f80ad8b4SAndroid Build Coastguard Worker 144*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_local_bus { 145*f80ad8b4SAndroid Build Coastguard Worker __u16 LbBaseIOPort; 146*f80ad8b4SAndroid Build Coastguard Worker __u16 reserved; 147*f80ad8b4SAndroid Build Coastguard Worker __u32 LbBaseMemoryAddress; 148*f80ad8b4SAndroid Build Coastguard Worker } i2o_local_bus; 149*f80ad8b4SAndroid Build Coastguard Worker 150*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_isa_bus { 151*f80ad8b4SAndroid Build Coastguard Worker __u16 IsaBaseIOPort; 152*f80ad8b4SAndroid Build Coastguard Worker __u8 CSN; 153*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved; 154*f80ad8b4SAndroid Build Coastguard Worker __u32 IsaBaseMemoryAddress; 155*f80ad8b4SAndroid Build Coastguard Worker } i2o_isa_bus; 156*f80ad8b4SAndroid Build Coastguard Worker 157*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_eisa_bus_info { 158*f80ad8b4SAndroid Build Coastguard Worker __u16 EisaBaseIOPort; 159*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved; 160*f80ad8b4SAndroid Build Coastguard Worker __u8 EisaSlotNumber; 161*f80ad8b4SAndroid Build Coastguard Worker __u32 EisaBaseMemoryAddress; 162*f80ad8b4SAndroid Build Coastguard Worker } i2o_eisa_bus; 163*f80ad8b4SAndroid Build Coastguard Worker 164*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_mca_bus { 165*f80ad8b4SAndroid Build Coastguard Worker __u16 McaBaseIOPort; 166*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved; 167*f80ad8b4SAndroid Build Coastguard Worker __u8 McaSlotNumber; 168*f80ad8b4SAndroid Build Coastguard Worker __u32 McaBaseMemoryAddress; 169*f80ad8b4SAndroid Build Coastguard Worker } i2o_mca_bus; 170*f80ad8b4SAndroid Build Coastguard Worker 171*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_other_bus { 172*f80ad8b4SAndroid Build Coastguard Worker __u16 BaseIOPort; 173*f80ad8b4SAndroid Build Coastguard Worker __u16 reserved; 174*f80ad8b4SAndroid Build Coastguard Worker __u32 BaseMemoryAddress; 175*f80ad8b4SAndroid Build Coastguard Worker } i2o_other_bus; 176*f80ad8b4SAndroid Build Coastguard Worker 177*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_hrt_entry { 178*f80ad8b4SAndroid Build Coastguard Worker __u32 adapter_id; 179*f80ad8b4SAndroid Build Coastguard Worker __u32 parent_tid:12; 180*f80ad8b4SAndroid Build Coastguard Worker __u32 state:4; 181*f80ad8b4SAndroid Build Coastguard Worker __u32 bus_num:8; 182*f80ad8b4SAndroid Build Coastguard Worker __u32 bus_type:8; 183*f80ad8b4SAndroid Build Coastguard Worker union { 184*f80ad8b4SAndroid Build Coastguard Worker i2o_pci_bus pci_bus; 185*f80ad8b4SAndroid Build Coastguard Worker i2o_local_bus local_bus; 186*f80ad8b4SAndroid Build Coastguard Worker i2o_isa_bus isa_bus; 187*f80ad8b4SAndroid Build Coastguard Worker i2o_eisa_bus eisa_bus; 188*f80ad8b4SAndroid Build Coastguard Worker i2o_mca_bus mca_bus; 189*f80ad8b4SAndroid Build Coastguard Worker i2o_other_bus other_bus; 190*f80ad8b4SAndroid Build Coastguard Worker } bus; 191*f80ad8b4SAndroid Build Coastguard Worker } i2o_hrt_entry; 192*f80ad8b4SAndroid Build Coastguard Worker 193*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_hrt { 194*f80ad8b4SAndroid Build Coastguard Worker __u16 num_entries; 195*f80ad8b4SAndroid Build Coastguard Worker __u8 entry_len; 196*f80ad8b4SAndroid Build Coastguard Worker __u8 hrt_version; 197*f80ad8b4SAndroid Build Coastguard Worker __u32 change_ind; 198*f80ad8b4SAndroid Build Coastguard Worker i2o_hrt_entry hrt_entry[1]; 199*f80ad8b4SAndroid Build Coastguard Worker } i2o_hrt; 200*f80ad8b4SAndroid Build Coastguard Worker 201*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_lct_entry { 202*f80ad8b4SAndroid Build Coastguard Worker __u32 entry_size:16; 203*f80ad8b4SAndroid Build Coastguard Worker __u32 tid:12; 204*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved:4; 205*f80ad8b4SAndroid Build Coastguard Worker __u32 change_ind; 206*f80ad8b4SAndroid Build Coastguard Worker __u32 device_flags; 207*f80ad8b4SAndroid Build Coastguard Worker __u32 class_id:12; 208*f80ad8b4SAndroid Build Coastguard Worker __u32 version:4; 209*f80ad8b4SAndroid Build Coastguard Worker __u32 vendor_id:16; 210*f80ad8b4SAndroid Build Coastguard Worker __u32 sub_class; 211*f80ad8b4SAndroid Build Coastguard Worker __u32 user_tid:12; 212*f80ad8b4SAndroid Build Coastguard Worker __u32 parent_tid:12; 213*f80ad8b4SAndroid Build Coastguard Worker __u32 bios_info:8; 214*f80ad8b4SAndroid Build Coastguard Worker __u8 identity_tag[8]; 215*f80ad8b4SAndroid Build Coastguard Worker __u32 event_capabilities; 216*f80ad8b4SAndroid Build Coastguard Worker } i2o_lct_entry; 217*f80ad8b4SAndroid Build Coastguard Worker 218*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_lct { 219*f80ad8b4SAndroid Build Coastguard Worker __u32 table_size:16; 220*f80ad8b4SAndroid Build Coastguard Worker __u32 boot_tid:12; 221*f80ad8b4SAndroid Build Coastguard Worker __u32 lct_ver:4; 222*f80ad8b4SAndroid Build Coastguard Worker __u32 iop_flags; 223*f80ad8b4SAndroid Build Coastguard Worker __u32 change_ind; 224*f80ad8b4SAndroid Build Coastguard Worker i2o_lct_entry lct_entry[1]; 225*f80ad8b4SAndroid Build Coastguard Worker } i2o_lct; 226*f80ad8b4SAndroid Build Coastguard Worker 227*f80ad8b4SAndroid Build Coastguard Worker typedef struct _i2o_status_block { 228*f80ad8b4SAndroid Build Coastguard Worker __u16 org_id; 229*f80ad8b4SAndroid Build Coastguard Worker __u16 reserved; 230*f80ad8b4SAndroid Build Coastguard Worker __u16 iop_id:12; 231*f80ad8b4SAndroid Build Coastguard Worker __u16 reserved1:4; 232*f80ad8b4SAndroid Build Coastguard Worker __u16 host_unit_id; 233*f80ad8b4SAndroid Build Coastguard Worker __u16 segment_number:12; 234*f80ad8b4SAndroid Build Coastguard Worker __u16 i2o_version:4; 235*f80ad8b4SAndroid Build Coastguard Worker __u8 iop_state; 236*f80ad8b4SAndroid Build Coastguard Worker __u8 msg_type; 237*f80ad8b4SAndroid Build Coastguard Worker __u16 inbound_frame_size; 238*f80ad8b4SAndroid Build Coastguard Worker __u8 init_code; 239*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved2; 240*f80ad8b4SAndroid Build Coastguard Worker __u32 max_inbound_frames; 241*f80ad8b4SAndroid Build Coastguard Worker __u32 cur_inbound_frames; 242*f80ad8b4SAndroid Build Coastguard Worker __u32 max_outbound_frames; 243*f80ad8b4SAndroid Build Coastguard Worker char product_id[24]; 244*f80ad8b4SAndroid Build Coastguard Worker __u32 expected_lct_size; 245*f80ad8b4SAndroid Build Coastguard Worker __u32 iop_capabilities; 246*f80ad8b4SAndroid Build Coastguard Worker __u32 desired_mem_size; 247*f80ad8b4SAndroid Build Coastguard Worker __u32 current_mem_size; 248*f80ad8b4SAndroid Build Coastguard Worker __u32 current_mem_base; 249*f80ad8b4SAndroid Build Coastguard Worker __u32 desired_io_size; 250*f80ad8b4SAndroid Build Coastguard Worker __u32 current_io_size; 251*f80ad8b4SAndroid Build Coastguard Worker __u32 current_io_base; 252*f80ad8b4SAndroid Build Coastguard Worker __u32 reserved3:24; 253*f80ad8b4SAndroid Build Coastguard Worker __u32 cmd_status:8; 254*f80ad8b4SAndroid Build Coastguard Worker } i2o_status_block; 255*f80ad8b4SAndroid Build Coastguard Worker 256*f80ad8b4SAndroid Build Coastguard Worker /* Event indicator mask flags */ 257*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_STATE_CHANGE 0x80000000 258*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_GENERAL_WARNING 0x40000000 259*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_CONFIGURATION_FLAG 0x20000000 260*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_LOCK_RELEASE 0x10000000 261*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_CAPABILITY_CHANGE 0x08000000 262*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_DEVICE_RESET 0x04000000 263*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EVT_MASK_MODIFIED 0x02000000 264*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_FIELD_MODIFIED 0x01000000 265*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_VENDOR_EVT 0x00800000 266*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_DEVICE_STATE 0x00400000 267*f80ad8b4SAndroid Build Coastguard Worker 268*f80ad8b4SAndroid Build Coastguard Worker /* Executive event indicitors */ 269*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_RESOURCE_LIMITS 0x00000001 270*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_CONNECTION_FAIL 0x00000002 271*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_ADAPTER_FAULT 0x00000004 272*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_POWER_FAIL 0x00000008 273*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_RESET_PENDING 0x00000010 274*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_RESET_IMMINENT 0x00000020 275*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_HW_FAIL 0x00000040 276*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_XCT_CHANGE 0x00000080 277*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_NEW_LCT_ENTRY 0x00000100 278*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_MODIFIED_LCT 0x00000200 279*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_EXEC_DDM_AVAILABILITY 0x00000400 280*f80ad8b4SAndroid Build Coastguard Worker 281*f80ad8b4SAndroid Build Coastguard Worker /* Random Block Storage Event Indicators */ 282*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_BSA_VOLUME_LOAD 0x00000001 283*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_BSA_VOLUME_UNLOAD 0x00000002 284*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_BSA_VOLUME_UNLOAD_REQ 0x00000004 285*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_BSA_CAPACITY_CHANGE 0x00000008 286*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_IND_BSA_SCSI_SMART 0x00000010 287*f80ad8b4SAndroid Build Coastguard Worker 288*f80ad8b4SAndroid Build Coastguard Worker /* Event data for generic events */ 289*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_NORMAL 0x00 290*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_SUSPENDED 0x01 291*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_RESTART 0x02 292*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_NA_RECOVER 0x03 293*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_NA_NO_RECOVER 0x04 294*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_QUIESCE_REQUEST 0x05 295*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_FAILED 0x10 296*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_STATE_CHANGE_FAULTED 0x11 297*f80ad8b4SAndroid Build Coastguard Worker 298*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_GEN_WARNING_NORMAL 0x00 299*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_GEN_WARNING_ERROR_THRESHOLD 0x01 300*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_GEN_WARNING_MEDIA_FAULT 0x02 301*f80ad8b4SAndroid Build Coastguard Worker 302*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_CAPABILITY_OTHER 0x01 303*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_CAPABILITY_CHANGED 0x02 304*f80ad8b4SAndroid Build Coastguard Worker 305*f80ad8b4SAndroid Build Coastguard Worker #define I2O_EVT_SENSOR_STATE_CHANGED 0x01 306*f80ad8b4SAndroid Build Coastguard Worker 307*f80ad8b4SAndroid Build Coastguard Worker /* 308*f80ad8b4SAndroid Build Coastguard Worker * I2O classes / subclasses 309*f80ad8b4SAndroid Build Coastguard Worker */ 310*f80ad8b4SAndroid Build Coastguard Worker 311*f80ad8b4SAndroid Build Coastguard Worker /* Class ID and Code Assignments 312*f80ad8b4SAndroid Build Coastguard Worker * (LCT.ClassID.Version field) 313*f80ad8b4SAndroid Build Coastguard Worker */ 314*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_VERSION_10 0x00 315*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_VERSION_11 0x01 316*f80ad8b4SAndroid Build Coastguard Worker 317*f80ad8b4SAndroid Build Coastguard Worker /* Class code names 318*f80ad8b4SAndroid Build Coastguard Worker * (from v1.5 Table 6-1 Class Code Assignments.) 319*f80ad8b4SAndroid Build Coastguard Worker */ 320*f80ad8b4SAndroid Build Coastguard Worker 321*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_EXECUTIVE 0x000 322*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_DDM 0x001 323*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_RANDOM_BLOCK_STORAGE 0x010 324*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_SEQUENTIAL_STORAGE 0x011 325*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_LAN 0x020 326*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_WAN 0x030 327*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_FIBRE_CHANNEL_PORT 0x040 328*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_FIBRE_CHANNEL_PERIPHERAL 0x041 329*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_SCSI_PERIPHERAL 0x051 330*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_ATE_PORT 0x060 331*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_ATE_PERIPHERAL 0x061 332*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_FLOPPY_CONTROLLER 0x070 333*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_FLOPPY_DEVICE 0x071 334*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_BUS_ADAPTER 0x080 335*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_PEER_TRANSPORT_AGENT 0x090 336*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_PEER_TRANSPORT 0x091 337*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_END 0xfff 338*f80ad8b4SAndroid Build Coastguard Worker 339*f80ad8b4SAndroid Build Coastguard Worker /* 340*f80ad8b4SAndroid Build Coastguard Worker * Rest of 0x092 - 0x09f reserved for peer-to-peer classes 341*f80ad8b4SAndroid Build Coastguard Worker */ 342*f80ad8b4SAndroid Build Coastguard Worker 343*f80ad8b4SAndroid Build Coastguard Worker #define I2O_CLASS_MATCH_ANYCLASS 0xffffffff 344*f80ad8b4SAndroid Build Coastguard Worker 345*f80ad8b4SAndroid Build Coastguard Worker /* 346*f80ad8b4SAndroid Build Coastguard Worker * Subclasses 347*f80ad8b4SAndroid Build Coastguard Worker */ 348*f80ad8b4SAndroid Build Coastguard Worker 349*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SUBCLASS_i960 0x001 350*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SUBCLASS_HDM 0x020 351*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SUBCLASS_ISM 0x021 352*f80ad8b4SAndroid Build Coastguard Worker 353*f80ad8b4SAndroid Build Coastguard Worker /* Operation functions */ 354*f80ad8b4SAndroid Build Coastguard Worker 355*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_FIELD_GET 0x0001 356*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_LIST_GET 0x0002 357*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_MORE_GET 0x0003 358*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_SIZE_GET 0x0004 359*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_TABLE_GET 0x0005 360*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_FIELD_SET 0x0006 361*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_LIST_SET 0x0007 362*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_ROW_ADD 0x0008 363*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_ROW_DELETE 0x0009 364*f80ad8b4SAndroid Build Coastguard Worker #define I2O_PARAMS_TABLE_CLEAR 0x000A 365*f80ad8b4SAndroid Build Coastguard Worker 366*f80ad8b4SAndroid Build Coastguard Worker /* 367*f80ad8b4SAndroid Build Coastguard Worker * I2O serial number conventions / formats 368*f80ad8b4SAndroid Build Coastguard Worker * (circa v1.5) 369*f80ad8b4SAndroid Build Coastguard Worker */ 370*f80ad8b4SAndroid Build Coastguard Worker 371*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_UNKNOWN 0 372*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_BINARY 1 373*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_ASCII 2 374*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_UNICODE 3 375*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_LAN48_MAC 4 376*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_WAN 5 377*f80ad8b4SAndroid Build Coastguard Worker 378*f80ad8b4SAndroid Build Coastguard Worker /* 379*f80ad8b4SAndroid Build Coastguard Worker * Plus new in v2.0 (Yellowstone pdf doc) 380*f80ad8b4SAndroid Build Coastguard Worker */ 381*f80ad8b4SAndroid Build Coastguard Worker 382*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_LAN64_MAC 6 383*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_DDM 7 384*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_IEEE_REG64 8 385*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_IEEE_REG128 9 386*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SNFORMAT_UNKNOWN2 0xff 387*f80ad8b4SAndroid Build Coastguard Worker 388*f80ad8b4SAndroid Build Coastguard Worker /* 389*f80ad8b4SAndroid Build Coastguard Worker * I2O Get Status State values 390*f80ad8b4SAndroid Build Coastguard Worker */ 391*f80ad8b4SAndroid Build Coastguard Worker 392*f80ad8b4SAndroid Build Coastguard Worker #define ADAPTER_STATE_INITIALIZING 0x01 393*f80ad8b4SAndroid Build Coastguard Worker #define ADAPTER_STATE_RESET 0x02 394*f80ad8b4SAndroid Build Coastguard Worker #define ADAPTER_STATE_HOLD 0x04 395*f80ad8b4SAndroid Build Coastguard Worker #define ADAPTER_STATE_READY 0x05 396*f80ad8b4SAndroid Build Coastguard Worker #define ADAPTER_STATE_OPERATIONAL 0x08 397*f80ad8b4SAndroid Build Coastguard Worker #define ADAPTER_STATE_FAILED 0x10 398*f80ad8b4SAndroid Build Coastguard Worker #define ADAPTER_STATE_FAULTED 0x11 399*f80ad8b4SAndroid Build Coastguard Worker 400*f80ad8b4SAndroid Build Coastguard Worker /* 401*f80ad8b4SAndroid Build Coastguard Worker * Software module types 402*f80ad8b4SAndroid Build Coastguard Worker */ 403*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SOFTWARE_MODULE_IRTOS 0x11 404*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SOFTWARE_MODULE_IOP_PRIVATE 0x22 405*f80ad8b4SAndroid Build Coastguard Worker #define I2O_SOFTWARE_MODULE_IOP_CONFIG 0x23 406*f80ad8b4SAndroid Build Coastguard Worker 407*f80ad8b4SAndroid Build Coastguard Worker /* 408*f80ad8b4SAndroid Build Coastguard Worker * Vendors 409*f80ad8b4SAndroid Build Coastguard Worker */ 410*f80ad8b4SAndroid Build Coastguard Worker #define I2O_VENDOR_DPT 0x001b 411*f80ad8b4SAndroid Build Coastguard Worker 412*f80ad8b4SAndroid Build Coastguard Worker /* 413*f80ad8b4SAndroid Build Coastguard Worker * DPT / Adaptec specific values for i2o_sg_io_hdr flags. 414*f80ad8b4SAndroid Build Coastguard Worker */ 415*f80ad8b4SAndroid Build Coastguard Worker #define I2O_DPT_SG_FLAG_INTERPRET 0x00010000 416*f80ad8b4SAndroid Build Coastguard Worker #define I2O_DPT_SG_FLAG_PHYSICAL 0x00020000 417*f80ad8b4SAndroid Build Coastguard Worker 418*f80ad8b4SAndroid Build Coastguard Worker #define I2O_DPT_FLASH_FRAG_SIZE 0x10000 419*f80ad8b4SAndroid Build Coastguard Worker #define I2O_DPT_FLASH_READ 0x0101 420*f80ad8b4SAndroid Build Coastguard Worker #define I2O_DPT_FLASH_WRITE 0x0102 421*f80ad8b4SAndroid Build Coastguard Worker 422*f80ad8b4SAndroid Build Coastguard Worker #endif /* _I2O_DEV_H */ 423