add: ;
context: int32 pci_getlist(pci_info *info[], int32 maxEntries){	status_t  status;	int32     i, j;	int32     entries;	pci_info *item;	item = (pci_info*)malloc(sizeof(pci_info));	for (i = 0, entries = 0; entries < maxEntries; i++)	{		if ((status = pModuleInfo->get_nth_pci_info(i, item)) != B_OK)			break;			j = 0;		while (pci_tbl[j].name != NULL)		{			if ((pci_tbl[j].vendor_id == item->vendor_id) &&			    (pci_tbl[j].device_id == item->device_id))			{				// Check if the Device Really has an IRQ				if ((item->u.h0.interrupt_line == 0) ||				    (item->u.h0.interrupt_line == 0xFF))				{#ifdef __VIARHINE_DEBUG__					debug_printf("pci_getlist: Found with Invalid IRQ - Check IRQ Assignement\n");#endif					goto next_entry;				}#ifdef __VIARHINE_DEBUG__				debug_printf("pci_getlist: Found at IRQ %u\n", item->u.h0.interrupt_line);#endif				pModuleInfo->write_pci_config(						item->bus,						item->device, 						item->function,						PCI_command,						2,						pci_tbl[j].flags | pModuleInfo->read_pci_config(								item->bus,								item->device,								item->function,								PCI_command,								2));				if (pci_tbl[j].flags & PCI_command_master)				{					if (item->latency < MIN_PCI_LATENCY)					{#ifdef __VIARHINE_DEBUG__						debug_printf("pci_getlist: latency too slow\n");#endif						pModuleInfo->write_pci_config(							item->bus,							item->device,							item->function,							PCI_latency,							1,							MIN_PCI_LATENCY);					}				}				info[entries++] = item;				item            = (pci_info *)malloc(sizeof(pci_info));				goto next_entry;			}						j++;		}next_entry:	}		info[entries] = NULL;	free(item);	return entries;}