vserver 1.9.3
[linux-2.6.git] / include / linux / i2o-dev.h
index 9ef82bf..ef7f644 100644 (file)
@@ -1,13 +1,13 @@
 /*
  * I2O user space accessible structures/APIs
- * 
+ *
  * (c) Copyright 1999, 2000 Red Hat Software
  *
- * 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 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 header file defines the I2O APIs that are available to both
@@ -23,7 +23,7 @@
 /* How many controllers are we allowing */
 #define MAX_I2O_CONTROLLERS    32
 
-#include <linux/ioctl.h>
+//#include <linux/ioctl.h>
 
 /*
  * I2O Control IOCTLs and structures
 #define I2OEVTREG              _IOW(I2O_MAGIC_NUMBER,10,struct i2o_evt_id)
 #define I2OEVTGET              _IOR(I2O_MAGIC_NUMBER,11,struct i2o_evt_info)
 #define I2OPASSTHRU            _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru)
+#define I2OPASSTHRU32          _IOR(I2O_MAGIC_NUMBER,12,struct i2o_cmd_passthru32)
+
+struct i2o_cmd_passthru32 {
+       unsigned int iop;       /* IOP unit number */
+       u32 msg;                /* message */
+};
 
-struct i2o_cmd_passthru
-{
+struct i2o_cmd_passthru {
        unsigned int iop;       /* IOP unit number */
        void __user *msg;       /* message */
 };
 
-struct i2o_cmd_hrtlct
-{
+struct i2o_cmd_hrtlct {
        unsigned int iop;       /* IOP unit number */
        void __user *resbuf;    /* Buffer for result */
        unsigned int __user *reslen;    /* Buffer length in bytes */
 };
 
-struct i2o_cmd_psetget
-{
+struct i2o_cmd_psetget {
        unsigned int iop;       /* IOP unit number */
        unsigned int tid;       /* Target device TID */
        void __user *opbuf;     /* Operation List buffer */
@@ -66,8 +69,7 @@ struct i2o_cmd_psetget
        unsigned int __user *reslen;    /* Result List buffer length in bytes */
 };
 
-struct i2o_sw_xfer
-{
+struct i2o_sw_xfer {
        unsigned int iop;       /* IOP unit number */
        unsigned char flags;    /* Flags field */
        unsigned char sw_type;  /* Software type */
@@ -78,21 +80,19 @@ struct i2o_sw_xfer
        unsigned int __user *curfrag;   /* Current fragment count */
 };
 
-struct i2o_html
-{
+struct i2o_html {
        unsigned int iop;       /* IOP unit number */
        unsigned int tid;       /* Target device ID */
        unsigned int page;      /* HTML page */
-       void __user *resbuf;            /* Buffer for reply HTML page */
+       void __user *resbuf;    /* Buffer for reply HTML page */
        unsigned int __user *reslen;    /* Length in bytes of reply buffer */
-       void __user *qbuf;              /* Pointer to HTTP query string */
+       void __user *qbuf;      /* Pointer to HTTP query string */
        unsigned int qlen;      /* Length in bytes of query string buffer */
 };
 
 #define I2O_EVT_Q_LEN 32
 
-struct i2o_evt_id
-{
+struct i2o_evt_id {
        unsigned int iop;
        unsigned int tid;
        unsigned int evt_mask;
@@ -101,21 +101,18 @@ struct i2o_evt_id
 /* Event data size = frame size - message header + evt indicator */
 #define I2O_EVT_DATA_SIZE 88
 
-struct i2o_evt_info
-{
+struct i2o_evt_info {
        struct i2o_evt_id id;
        unsigned char evt_data[I2O_EVT_DATA_SIZE];
        unsigned int data_size;
 };
 
-struct i2o_evt_get
-{
+struct i2o_evt_get {
        struct i2o_evt_info info;
        int pending;
        int lost;
 };
 
-
 /**************************************************************************
  * HRT related constants and structures
  **************************************************************************/
@@ -135,139 +132,127 @@ typedef unsigned char u8;
 typedef unsigned short u16;
 typedef unsigned int u32;
 
-#endif /* __KERNEL__ */
+#endif                         /* __KERNEL__ */
 
-typedef struct _i2o_pci_bus
-{
-       u8      PciFunctionNumber;
-       u8      PciDeviceNumber;
-       u8      PciBusNumber;
-       u8      reserved;
-       u16     PciVendorID;
-       u16     PciDeviceID;
+typedef struct _i2o_pci_bus {
+       u8 PciFunctionNumber;
+       u8 PciDeviceNumber;
+       u8 PciBusNumber;
+       u8 reserved;
+       u16 PciVendorID;
+       u16 PciDeviceID;
 } i2o_pci_bus;
 
-typedef struct _i2o_local_bus
-{
-       u16     LbBaseIOPort;
-       u16     reserved;
-       u32     LbBaseMemoryAddress;
+typedef struct _i2o_local_bus {
+       u16 LbBaseIOPort;
+       u16 reserved;
+       u32 LbBaseMemoryAddress;
 } i2o_local_bus;
 
-typedef struct _i2o_isa_bus
-{
-       u16     IsaBaseIOPort;
-       u8      CSN;
-       u8      reserved;
-       u32     IsaBaseMemoryAddress;
+typedef struct _i2o_isa_bus {
+       u16 IsaBaseIOPort;
+       u8 CSN;
+       u8 reserved;
+       u32 IsaBaseMemoryAddress;
 } i2o_isa_bus;
 
-typedef struct _i2o_eisa_bus_info
-{
-       u16     EisaBaseIOPort;
-       u8      reserved;
-       u8      EisaSlotNumber;
-       u32     EisaBaseMemoryAddress;
+typedef struct _i2o_eisa_bus_info {
+       u16 EisaBaseIOPort;
+       u8 reserved;
+       u8 EisaSlotNumber;
+       u32 EisaBaseMemoryAddress;
 } i2o_eisa_bus;
 
-typedef struct _i2o_mca_bus
-{
-       u16     McaBaseIOPort;
-       u8      reserved;
-       u8      McaSlotNumber;
-       u32     McaBaseMemoryAddress;
+typedef struct _i2o_mca_bus {
+       u16 McaBaseIOPort;
+       u8 reserved;
+       u8 McaSlotNumber;
+       u32 McaBaseMemoryAddress;
 } i2o_mca_bus;
 
-typedef struct _i2o_other_bus
-{
+typedef struct _i2o_other_bus {
        u16 BaseIOPort;
        u16 reserved;
        u32 BaseMemoryAddress;
 } i2o_other_bus;
 
-typedef struct _i2o_hrt_entry
-{
-       u32     adapter_id;
-       u32     parent_tid:12;
-       u32     state:4;
-       u32     bus_num:8;
-       u32     bus_type:8;
-       union
-       {
-               i2o_pci_bus     pci_bus;
-               i2o_local_bus   local_bus;
-               i2o_isa_bus     isa_bus;
-               i2o_eisa_bus    eisa_bus;
-               i2o_mca_bus     mca_bus;
-               i2o_other_bus   other_bus;
+typedef struct _i2o_hrt_entry {
+       u32 adapter_id;
+       u32 parent_tid:12;
+       u32 state:4;
+       u32 bus_num:8;
+       u32 bus_type:8;
+       union {
+               i2o_pci_bus pci_bus;
+               i2o_local_bus local_bus;
+               i2o_isa_bus isa_bus;
+               i2o_eisa_bus eisa_bus;
+               i2o_mca_bus mca_bus;
+               i2o_other_bus other_bus;
        } bus;
 } i2o_hrt_entry;
 
-typedef struct _i2o_hrt
-{
-       u16     num_entries;
-       u8      entry_len;
-       u8      hrt_version;
-       u32     change_ind;
+typedef struct _i2o_hrt {
+       u16 num_entries;
+       u8 entry_len;
+       u8 hrt_version;
+       u32 change_ind;
        i2o_hrt_entry hrt_entry[1];
 } i2o_hrt;
 
-typedef struct _i2o_lct_entry
-{
-       u32     entry_size:16;
-       u32     tid:12;
-       u32     reserved:4;
-       u32     change_ind;
-       u32     device_flags;
-       u32     class_id:12;
-       u32     version:4;
-       u32     vendor_id:16;
-       u32     sub_class;
-       u32     user_tid:12;
-       u32     parent_tid:12;
-       u32     bios_info:8;
-       u8      identity_tag[8];
-       u32     event_capabilities;
+typedef struct _i2o_lct_entry {
+       u32 entry_size:16;
+       u32 tid:12;
+       u32 reserved:4;
+       u32 change_ind;
+       u32 device_flags;
+       u32 class_id:12;
+       u32 version:4;
+       u32 vendor_id:16;
+       u32 sub_class;
+       u32 user_tid:12;
+       u32 parent_tid:12;
+       u32 bios_info:8;
+       u8 identity_tag[8];
+       u32 event_capabilities;
 } i2o_lct_entry;
 
-typedef struct _i2o_lct
-{
-       u32     table_size:16;
-       u32     boot_tid:12;
-       u32     lct_ver:4;
-       u32     iop_flags;
-       u32     change_ind;
+typedef struct _i2o_lct {
+       u32 table_size:16;
+       u32 boot_tid:12;
+       u32 lct_ver:4;
+       u32 iop_flags;
+       u32 change_ind;
        i2o_lct_entry lct_entry[1];
 } i2o_lct;
 
-typedef struct _i2o_status_block
-{
-       u16     org_id;
-       u16     reserved;
-       u16     iop_id:12;
-       u16     reserved1:4;
-       u16     host_unit_id;
-       u16     segment_number:12;
-       u16     i2o_version:4;
-       u8      iop_state;
-       u8      msg_type;
-       u16     inbound_frame_size;
-       u8      init_code;
-       u8      reserved2;
-       u32     max_inbound_frames;
-       u32     cur_inbound_frames;
-       u32     max_outbound_frames;
-       char    product_id[24];
-       u32     expected_lct_size;
-       u32     iop_capabilities;
-       u32     desired_mem_size;
-       u32     current_mem_size;
-       u32     current_mem_base;
-       u32     desired_io_size;
-       u32     current_io_size;
-       u32     current_io_base;
-       u32     reserved3:24;
-       u32     cmd_status:8;
+typedef struct _i2o_status_block {
+       u16 org_id;
+       u16 reserved;
+       u16 iop_id:12;
+       u16 reserved1:4;
+       u16 host_unit_id;
+       u16 segment_number:12;
+       u16 i2o_version:4;
+       u8 iop_state;
+       u8 msg_type;
+       u16 inbound_frame_size;
+       u8 init_code;
+       u8 reserved2;
+       u32 max_inbound_frames;
+       u32 cur_inbound_frames;
+       u32 max_outbound_frames;
+       char product_id[24];
+       u32 expected_lct_size;
+       u32 iop_capabilities;
+       u32 desired_mem_size;
+       u32 current_mem_size;
+       u32 current_mem_base;
+       u32 desired_io_size;
+       u32 current_io_size;
+       u32 current_io_base;
+       u32 reserved3:24;
+       u32 cmd_status:8;
 } i2o_status_block;
 
 /* Event indicator mask flags */
@@ -351,14 +336,15 @@ typedef struct _i2o_status_block
 #define I2O_CLASS_BUS_ADAPTER_PORT             0x080
 #define I2O_CLASS_PEER_TRANSPORT_AGENT         0x090
 #define I2O_CLASS_PEER_TRANSPORT               0x091
+#define        I2O_CLASS_END                           0xfff
 
-/* 
+/*
  *  Rest of 0x092 - 0x09f reserved for peer-to-peer classes
  */
 
 #define I2O_CLASS_MATCH_ANYCLASS               0xffffffff
 
-/* 
+/*
  *  Subclasses
  */
 
@@ -380,7 +366,7 @@ typedef struct _i2o_status_block
 #define I2O_PARAMS_TABLE_CLEAR                 0x000A
 
 /*
- * I2O serial number conventions / formats 
+ * I2O serial number conventions / formats
  * (circa v1.5)
  */
 
@@ -391,7 +377,7 @@ typedef struct _i2o_status_block
 #define I2O_SNFORMAT_LAN48_MAC                 4
 #define I2O_SNFORMAT_WAN                       5
 
-/* 
+/*
  * Plus new in v2.0 (Yellowstone pdf doc)
  */
 
@@ -402,7 +388,7 @@ typedef struct _i2o_status_block
 #define I2O_SNFORMAT_UNKNOWN2                  0xff
 
 /*
- *     I2O Get Status State values 
+ *     I2O Get Status State values
  */
 
 #define ADAPTER_STATE_INITIALIZING             0x01
@@ -413,4 +399,4 @@ typedef struct _i2o_status_block
 #define ADAPTER_STATE_FAILED                   0x10
 #define ADAPTER_STATE_FAULTED                  0x11
 
-#endif /* _I2O_DEV_H */
+#endif                         /* _I2O_DEV_H */