cciss_ioctl.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef CCISS_IOCTLH
  2. #define CCISS_IOCTLH
  3. #include <linux/types.h>
  4. #include <linux/ioctl.h>
  5. #include <linux/cciss_defs.h>
  6. #define CCISS_IOC_MAGIC 'B'
  7. typedef struct _cciss_pci_info_struct
  8. {
  9. unsigned char bus;
  10. unsigned char dev_fn;
  11. unsigned short domain;
  12. __u32 board_id;
  13. } cciss_pci_info_struct;
  14. typedef struct _cciss_coalint_struct
  15. {
  16. __u32 delay;
  17. __u32 count;
  18. } cciss_coalint_struct;
  19. typedef char NodeName_type[16];
  20. typedef __u32 Heartbeat_type;
  21. #define CISS_PARSCSIU2 0x0001
  22. #define CISS_PARCSCIU3 0x0002
  23. #define CISS_FIBRE1G 0x0100
  24. #define CISS_FIBRE2G 0x0200
  25. typedef __u32 BusTypes_type;
  26. typedef char FirmwareVer_type[4];
  27. typedef __u32 DriverVer_type;
  28. #define MAX_KMALLOC_SIZE 128000
  29. typedef struct _IOCTL_Command_struct {
  30. LUNAddr_struct LUN_info;
  31. RequestBlock_struct Request;
  32. ErrorInfo_struct error_info;
  33. WORD buf_size; /* size in bytes of the buf */
  34. BYTE *buf;
  35. } IOCTL_Command_struct;
  36. typedef struct _BIG_IOCTL_Command_struct {
  37. LUNAddr_struct LUN_info;
  38. RequestBlock_struct Request;
  39. ErrorInfo_struct error_info;
  40. DWORD malloc_size; /* < MAX_KMALLOC_SIZE in cciss.c */
  41. DWORD buf_size; /* size in bytes of the buf */
  42. /* < malloc_size * MAXSGENTRIES */
  43. BYTE *buf;
  44. } BIG_IOCTL_Command_struct;
  45. typedef struct _LogvolInfo_struct{
  46. __u32 LunID;
  47. int num_opens; /* number of opens on the logical volume */
  48. int num_parts; /* number of partitions configured on logvol */
  49. } LogvolInfo_struct;
  50. #define CCISS_GETPCIINFO _IOR(CCISS_IOC_MAGIC, 1, cciss_pci_info_struct)
  51. #define CCISS_GETINTINFO _IOR(CCISS_IOC_MAGIC, 2, cciss_coalint_struct)
  52. #define CCISS_SETINTINFO _IOW(CCISS_IOC_MAGIC, 3, cciss_coalint_struct)
  53. #define CCISS_GETNODENAME _IOR(CCISS_IOC_MAGIC, 4, NodeName_type)
  54. #define CCISS_SETNODENAME _IOW(CCISS_IOC_MAGIC, 5, NodeName_type)
  55. #define CCISS_GETHEARTBEAT _IOR(CCISS_IOC_MAGIC, 6, Heartbeat_type)
  56. #define CCISS_GETBUSTYPES _IOR(CCISS_IOC_MAGIC, 7, BusTypes_type)
  57. #define CCISS_GETFIRMVER _IOR(CCISS_IOC_MAGIC, 8, FirmwareVer_type)
  58. #define CCISS_GETDRIVVER _IOR(CCISS_IOC_MAGIC, 9, DriverVer_type)
  59. #define CCISS_REVALIDVOLS _IO(CCISS_IOC_MAGIC, 10)
  60. #define CCISS_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 11, IOCTL_Command_struct)
  61. #define CCISS_DEREGDISK _IO(CCISS_IOC_MAGIC, 12)
  62. /* no longer used... use REGNEWD instead */
  63. #define CCISS_REGNEWDISK _IOW(CCISS_IOC_MAGIC, 13, int)
  64. #define CCISS_REGNEWD _IO(CCISS_IOC_MAGIC, 14)
  65. #define CCISS_RESCANDISK _IO(CCISS_IOC_MAGIC, 16)
  66. #define CCISS_GETLUNINFO _IOR(CCISS_IOC_MAGIC, 17, LogvolInfo_struct)
  67. #define CCISS_BIG_PASSTHRU _IOWR(CCISS_IOC_MAGIC, 18, BIG_IOCTL_Command_struct)
  68. #endif /* CCISS_IOCTLH */