[04:26:09] <CIA-110> bonefish * r41668 /haiku/branches/developer/bonefish/signals/ (13 files in 6 dirs): (log message trimmed) [04:26:09] <CIA-110> * Signal::Signal(): Removed sendingUser parameter. All callers only passed [04:26:09] <CIA-110> geteuid() anyway (which wasn't even correct). Now the constructor uses [04:26:09] <CIA-110> getuid() itself. [04:26:09] <CIA-110> * handle_signals(): [04:26:10] <CIA-110> what the POSIX specs say and what makes most sense anyway. [12:31:00] <CIA-110> mmlr * r41669 /haiku/trunk/src/system/boot/platform/bios_ia32/cpu.cpp: [12:31:00] <CIA-110> * Use macros to make the PIT programming more readable. Yes, I know that the PIT [12:31:00] <CIA-110> timer code has such definitions too, but they're not quite as verbose. Will [12:31:00] <CIA-110> eventually make the latter use these too. [12:31:00] <CIA-110> * Prepare for possibly using other PIT channels for the calibration. Right now [12:31:01] <CIA-110> everything's the same still. [12:31:02] <CIA-110> * Add disabled print of the resulting factors. [13:13:42] <CIA-110> mmlr * r41670 /haiku/trunk/src/system/boot/platform/bios_ia32/cpu.cpp: [13:13:42] <CIA-110> * Put the calibration loop into a static inline function and replace the three [13:13:42] <CIA-110> copies of it with a call to that. [13:13:42] <CIA-110> * Make the variable names more readable and spacing cleanup. [13:13:42] <CIA-110> No functional change intended. [13:20:43] <CIA-110> bonefish * r41671 /haiku/branches/developer/bonefish/signals/headers/posix/sys/wait.h: Should have been part of r41668: waitid() has been implemented. [13:21:31] <CIA-110> bonefish * r41672 /haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp: wait_for_child(): Added support for WNOWAIT. [13:22:22] <CIA-110> bonefish * r41673 /haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp: Added comment. [13:32:42] <CIA-110> bonefish * r41674 /haiku/branches/developer/bonefish/signals/headers/private/kernel/ksignal.h: Added Signal::SetSendingUser(). [13:35:37] <CIA-110> bonefish * r41675 /haiku/branches/developer/bonefish/signals/src/system/kernel/ (signal.cpp thread.cpp): [13:35:37] <CIA-110> thread_exit(), handle_signals(): Add the required information to the SIGCHLD [13:35:37] <CIA-110> signal we send to the parent. [14:28:44] <CIA-110> bonefish * r41676 /haiku/branches/developer/bonefish/signals/ (2 files in 2 dirs): [14:28:44] <CIA-110> Refactoring: Moved the code from orphaned_process_group_check() that determines [14:28:44] <CIA-110> whether the group is orphaned to new method ProcessGroup::IsOrphaned(). [14:31:40] <CIA-110> bonefish * r41677 /haiku/branches/developer/bonefish/signals/src/system/kernel/signal.cpp: [14:31:40] <CIA-110> handle_signals(): As required by POSIX don't let a member of an orphaned [14:31:40] <CIA-110> process group stop in response to a stop signal sent from the terminal. [14:34:32] <CIA-110> mmlr * r41678 /haiku/trunk/src/system/boot/platform/bios_ia32/cpu.cpp: [14:34:32] <CIA-110> * Add a limit to how often we retry the calibration. It's there as an upper [14:34:32] <CIA-110> bound to prevent spinning forever if we have a very unstable TSC that we [14:34:32] <CIA-110> simply can't calibrate. Shouldn't really happen though. [14:34:32] <CIA-110> * Set the gate low for channel 2 on exit if we used it as the counter. [14:45:22] <CIA-110> bonefish * r41679 /haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp: [14:45:22] <CIA-110> process_group_has_stopped_processes(): Check the team's job control entry [14:45:22] <CIA-110> rather than its main thread's state. Besides this being the more accurate [14:45:22] <CIA-110> notion of the process being stopped, it avoids a race condition with [14:45:22] <CIA-110> handle_signals(). [15:23:34] <CIA-110> mmlr * r41680 /haiku/trunk/src/system/boot/platform/bios_ia32/cpu.cpp: (log message trimmed) [15:23:34] <CIA-110> * Re-program the timer for each loop instead of waiting for it to wrap around. [15:23:34] <CIA-110> With that we will usually start right away without having to wait for the [15:23:34] <CIA-110> timer to be in the desired state, which removes roughly 116ms of spinning [15:23:34] <CIA-110> around for a normal calibration run. [15:23:35] <CIA-110> * Read back the value once after programming. The delay this introduces [15:23:35] <CIA-110> accounts for the fact that the counter will only start counting down on the [15:53:06] <CIA-110> bonefish * r41681 /haiku/branches/developer/bonefish/signals/src/system/kernel/team.cpp: [15:53:06] <CIA-110> job_control_entry assignment operator: Also copy the signaling_user field. [15:53:06] <CIA-110> Fixes incorrect values in the si_uid field of the siginfo_t waitid() returns. [16:21:27] <CIA-110> bonefish * r41682 /haiku/branches/developer/bonefish/signals/src/libs/posix_error_mapper/pthread_thread.cpp: [16:21:27] <CIA-110> Include <signal.h>, since that's where pthread_kill() is defined now. Fixes [16:21:27] <CIA-110> linkage problems (the symbol was C++ name mangled). [16:49:32] <CIA-110> mmlr * r41683 /haiku/trunk/src/system/boot/platform/bios_ia32/cpu.cpp: [16:49:32] <CIA-110> Switch to using the PIT in mode 0 (interrupt on 0) instead of mode 2 (rate [16:49:32] <CIA-110> generator). There are chipsets (namely ATI/AMD SBx00) where mode 2 doesn't seem [16:49:32] <CIA-110> to work (the counter isn't reloaded after the countdown has completed). Mode 0 [16:49:32] <CIA-110> has the same resolution as mode 2 and, as interrupts are disabled at this point [16:49:32] <CIA-110> in booting, is otherwise equivalent as well. I've tested this on 5 machines [16:49:32] <CIA-110> available to me and it doesn't seem to have any negative effect. [16:59:53] <CIA-110> mmlr * r41684 /haiku/trunk/src/system/boot/platform/bios_ia32/smp.cpp: [16:59:53] <CIA-110> * Simplify APIC writes. [16:59:53] <CIA-110> * Add explicit volatile keyword. [16:59:53] <CIA-110> * Minor variable name cleanup. [19:59:50] <CIA-110> mmlr * r41685 /haiku/trunk/src/system/kernel/arch/x86/pic.cpp: [19:59:50] <CIA-110> Of course the PIC mask register is a _mask_ and the enabled interrupts are the [19:59:50] <CIA-110> ones that aren't masked. This reversed the enabled interrupts and therefore [19:59:50] <CIA-110> disabled the already installed ACPI SCI handler and wrongly enabled the other [19:59:51] <CIA-110> interrupt pins instead on PIC to IO-APIC handover. Probably fixes #7525. [19:59:51] <CIA-110> +r1alpha3 [20:25:19] <CIA-110> yourpalal * r41686 /haiku/trunk/src/apps/mediaconverter/ (MediaConverterWindow.cpp MediaFileInfoView.cpp): [20:25:19] <CIA-110> * Fix layout problem which appeared with the introduction of CollapsingLayouter. [20:25:19] <CIA-110> Basically, one of the layouts expected empty columns to act like glue, which is [20:25:19] <CIA-110> how they worked at the time. Now use BSpaceLayoutItem::CreateGlue() to get [20:25:19] <CIA-110> equivalent behaviour. [20:25:19] <CIA-110> * Also do a very small bit of refactoring, to have MediaFileInfoView take better charge of its max size. [20:25:20] <CIA-110> +alpha [22:15:34] <CIA-110> bonefish * r41687 /haiku/branches/developer/bonefish/signals/ (5 files in 2 dirs): (log message trimmed) [22:15:34] <CIA-110> * Added constants X86_EFLAGS_RESERVED1 and X86_EFLAGS_IO_PRIVILEG_LEVEL_SHIFT. [22:15:34] <CIA-110> * Renamed i386_restore_frame_from_syscall() to x86_return_to_userland() and [22:15:34] <CIA-110> changed the iframe parameter from by-value to a pointer, with the additional [22:15:34] <CIA-110> requirement that it must point to someplace on the caller's stack. This avoids [22:15:34] <CIA-110> unnecessary copies. [22:15:35] <CIA-110> * Added initial_return_to_userland() function, which does the necessary CPU [22:48:11] <CIA-110> mmlr * r41688 /haiku/trunk/src/add-ons/kernel/busses/usb/ (ehci.cpp ehci.h): (log message trimmed) [22:48:11] <CIA-110> Introduce simplistic poll mode for EHCI. If enabled a thread will run the [22:48:11] <CIA-110> interrupt handler every millisecond so it can check for interrupts to handle. [22:48:11] <CIA-110> While this is certainly not ideal, it allows EHCI to run (surprisingly well [22:48:11] <CIA-110> even) on chipsets that experience interrupt routing issues. [22:48:12] <CIA-110> It can be enabled with the safemode setting "ehci_polling on" that can either [22:48:13] <CIA-110> be entered using the new advanced debug option entry in the bootloader and/or [23:46:27] <CIA-110> mmlr * r41689 /haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp: Tiny cleanup. [23:51:01] <CIA-110> mmlr * r41690 /haiku/trunk/src/add-ons/kernel/busses/usb/ehci.cpp: [23:51:01] <CIA-110> We obviously need to mask off the interrupt threshold value before overwriting [23:51:01] <CIA-110> it with our new setting. Otherwise we might end up with an illegal value as the [23:51:01] <CIA-110> interrupt threshold which might inhibit interrupt generation alltogether [23:51:01] <CIA-110> depending on the controller implementation. This was the case for the ATI/AMD [23:51:02] <CIA-110> SBx00 chipsets. Therefore fixes #5551. [23:51:31] <CIA-110> bonefish * r41691 /haiku/branches/developer/bonefish/signals/src/bin/debug/strace/strace.cpp: Removed kSignalName array. Use strsignal() instead. [23:59:11] <CIA-110> bonefish * r41692 /haiku/branches/developer/bonefish/signals/src/bin/debug/strace/strace.cpp: Some style cleanup.