[03:54:44] <CIA-98> mmlr * r41393 /haiku/trunk/src/system/kernel/arch/x86/ (Jamfile irq_routing_table.cpp irq_routing_table.h): (log message trimmed) [03:54:44] <CIA-98> Actually use the ACPICA headers to get at the correct types instead of [03:54:44] <CIA-98> duplicating the structs on our side. IRQ assignment didn't work with extended [03:54:44] <CIA-98> IRQ resources because the alignment of the structs were different in our local [03:54:44] <CIA-98> duplicates... [03:54:45] <CIA-98> Brings in the ACPICA naming sheme and isn't really clean either. So all of the [03:54:46] <CIA-98> reconfiguration should probably just be moved into the ACPI bus_manager. [05:58:28] *** Kokito has joined #haiku-jp [05:58:28] *** ChanServ sets mode: +o Kokito [05:58:36] *** Kokito has left #haiku-jp [13:47:24] <CIA-98> phoudoin * r41394 /haiku/trunk/src/system/kernel/system_info.cpp: Remove reference to SVN, now that revision is a VCS-agnostic string... [13:52:17] <CIA-98> mmlr * r41395 /haiku/trunk/src/system/kernel/arch/x86/irq_routing_table.cpp: [13:52:17] <CIA-98> Do the PCI device matching using direct PCI config space matches instead of [13:52:17] <CIA-98> using the already parsed pci_info data from the PCI module. This removes the [13:52:17] <CIA-98> need to iterate over all of the pci_infos for each routing table entries which [13:52:17] <CIA-98> makes this an order of magnitude less expensive. Heavily inspired by the [13:52:17] <CIA-98> corresponding FreeBSD code. [13:57:51] <CIA-98> mmlr * r41396 /haiku/trunk/src/system/kernel/arch/x86/irq_routing_table.cpp: Tiny cleanup, that one went past the 80 chars. [14:18:08] <CIA-98> mmlr * r41397 /haiku/trunk/src/system/kernel/arch/x86/ (irq_routing_table.cpp irq_routing_table.h): [14:18:08] <CIA-98> Read and keep around the originally assigned interrupt_line of the PCI devices. [14:18:08] <CIA-98> Those can be used to white list PCI IRQs in ISA space (<= 15) as those are [14:18:08] <CIA-98> basically guaranteed not to overlap with ISA devices. Those white listed entries [14:18:08] <CIA-98> can then be used if we only have a 16 pin IO-APIC or if there are only legacy [14:18:09] <CIA-98> IRQ resources available for configuration (i.e. ones with bitmasks of 16 bits, [14:18:10] <CIA-98> limiting their range to IRQs 0-15). [15:03:49] <CIA-98> mmlr * r41398 /haiku/trunk/ (3 files in 2 dirs): Add missing const to the path argument of get_handle(). [15:25:09] <CIA-98> mmlr * r41399 /haiku/trunk/src/system/kernel/arch/x86/ (irq_routing_table.cpp irq_routing_table.h): (log message trimmed) [15:25:09] <CIA-98> * Separate out matching PCI devices and updating their info. They will be called [15:25:09] <CIA-98> independently. Matching will happen first to enumerate and match all devices. [15:25:09] <CIA-98> Updating will happen after configuring all link devices, so once we know the [15:25:09] <CIA-98> final GSI of all entries. The info about matching functions is kept in a [15:25:09] <CIA-98> bitmask in the table entry. [15:25:10] <CIA-98> * Move routing table entry handling out of the loop into it's own function to [17:36:42] <CIA-98> mmlr * r41400 /haiku/trunk/src/system/kernel/arch/x86/ (arch_int.cpp irq_routing_table.cpp irq_routing_table.h): (log message trimmed) [17:36:43] <CIA-98> * Seperated out reading and enabling IRQ routing. Reading will only read the [17:36:43] <CIA-98> configuration that doesn't require any link device changes and will only [17:36:43] <CIA-98> prepare for updating the pci_info. Enabling then does the link device setup [17:36:43] <CIA-98> and updates the pci_info with the new IRQ values. [17:36:43] <CIA-98> * Configuring link devices now takes into account that multiple devices may [17:36:44] <CIA-98> share a single link device, meaning that the sharing PCI devices can't be [18:44:43] <CIA-98> mmlr * r41401 /haiku/trunk/src/system/kernel/arch/x86/ (arch_int.cpp irq_routing_table.cpp irq_routing_table.h): (log message trimmed) [18:44:43] <CIA-98> * Balance the IRQs amongst the possible ones. A simple usage counter, filled by [18:44:43] <CIA-98> hardwired GSIs and updated on configuring the link devices, is used for that. [18:44:43] <CIA-98> This doesn't guarantee optimal results as some link devices may not be [18:44:44] <CIA-98> configurable to some IRQs and we might fill up their slots this way. Most of [18:44:44] <CIA-98> the time this should be good enough though. [18:44:45] <CIA-98> * Take the BIOS assigned IRQ white list into account when assigning IRQs in the [18:47:38] <CIA-98> mmlr * r41402 /haiku/trunk/src/system/kernel/arch/x86/irq_routing_table.cpp: [18:47:39] <CIA-98> Actually increase the usage counter by the amount of devices behind the link [18:47:39] <CIA-98> device as it may have multiple devices routed to it. [19:30:45] <CIA-98> bonefish * r41403 /haiku/branches/developer/bonefish/signals/src/system/kernel/thread.cpp: Added TODO. [19:49:36] <CIA-98> bonefish * r41404 /haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp: [19:49:36] <CIA-98> team_remove_team(): No longer acquire the global threads spinlock when removing [19:49:36] <CIA-98> the team from the hash table. The reason why this was done doesn't exist [19:49:36] <CIA-98> anymore. [19:54:04] <CIA-98> bonefish * r41405 /haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp: [19:54:05] <CIA-98> Moved the destruction of the team's I/O context from team_delete_team() to the [19:54:05] <CIA-98> Team destructor. This makes accessing the I/O safe as long as one has a [19:54:05] <CIA-98> reference to the team. disconnect_mount_or_vnode_fds() is relying on that. [20:09:35] <CIA-98> humdinger * r41406 /haiku/trunk/data/catalogs/apps/ (3 files in 3 dirs): Updated Finnish catkeys. [23:55:49] *** CIA-98 has quit IRC