I am porting a SCSI command trace kernel module from the Linux 2.4 to the Linux 2.6, and I encountered some problems. In Linux 2.4, there is a pointer of the Scsi_Host struct, which is a head pointer attaching all of the available Scsi_Host instances in a running Linux system, and uses its "next" member to link the next Scsi_Host pointer, and so on.
However, in Linux 2.6, I couldnot find the corresponding data struct, to get the head pointer to all of the Scsi_Host struct. Furthermore, there is no "next" member in the Scsi_Host struct now.
My question is, given a host_no, how can I find its corresponding Scsi_Host pointer in the kernel space?

Thank you!