scsi_dev_info_list
list_for_each_entry(devinfo_table, &scsi_dev_info_list, node)
struct list_head scsi_dev_info_list; /* head of dev info list */
struct scsi_dev_info_list *devinfo;
static LIST_HEAD(scsi_dev_info_list);
&devinfo_table->scsi_dev_info_list);
&devinfo_table->scsi_dev_info_list);
static struct scsi_dev_info_list *scsi_dev_info_list_find(const char *vendor,
struct scsi_dev_info_list *devinfo;
return (struct scsi_dev_info_list *) devinfo_table;
list_for_each_entry(devinfo, &devinfo_table->scsi_dev_info_list,
struct scsi_dev_info_list *devinfo;
struct scsi_dev_info_list *devinfo =
list_entry(dl->bottom, struct scsi_dev_info_list,
if (devinfo_table->scsi_dev_info_list.next == dl->bottom &&
list_for_each(dl->top, &scsi_dev_info_list) {
list_for_each(dl->bottom, &devinfo_table->scsi_dev_info_list)
while (&devinfo_table->scsi_dev_info_list == dl->bottom) {
if (dl->top == &scsi_dev_info_list) {
dl->bottom = devinfo_table->scsi_dev_info_list.next;
INIT_LIST_HEAD(&devinfo_table->scsi_dev_info_list);
list_add_tail(&devinfo_table->node, &scsi_dev_info_list);
list_for_each_safe(lh, lh_next, &devinfo_table->scsi_dev_info_list) {
struct scsi_dev_info_list *devinfo;
devinfo = list_entry(lh, struct scsi_dev_info_list,