Commit Graph

18993 Commits

Author SHA1 Message Date
Axel Dörfler
2e27874523 * wait_for_child() now behaves correctly when waiting for children of a specific
process group. This fixes bug #996.
* As a result, the process group stuff and wait_for_child() got much simpler;
  get_death_entry() and update_wait_for_any() could go away completely.
* If a team goes away, all of its children are now "reparented" to the kernel team,
  instead of the team's parent - this follows common implementations (and POSIX if
  I understand it correctly), but not BeOS anymore. The OpenGroup Base says this
  about this topic: "If a parent process terminates without waiting for all of its
  child processes to terminate, the remaining child processes shall be assigned a
  new parent process ID corresponding to an implementation-defined system process."
* We wait too long in wait_test_4 which at least puts us on par with Linux; see
  comment in _user_setpgid().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 15:33:31 +00:00
Axel Dörfler
56a16fd0f9 Added some more tests for wait() and waitpid(). Looks like my implementation is
broken (see bug #996), but less broken than Be's.
Also the Linux implementation is not perfect, as test 4 reveals: it waits for a
child with a certain process group, even if there is no child around anymore (because
the last child changed its process group. However, it will still return (and report
the correct error code) once this child exits.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 13:40:52 +00:00
Axel Dörfler
1beeb96080 setpgrp() returns a pid_t, not an int.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 13:31:24 +00:00
Axel Dörfler
af0e9c1cb8 * Added some calls to waitpid() which should result in the same error code.
* Fixed comment, as Haiku now behaves properly at least for most cases :-)
* Style guide update.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 12:43:21 +00:00
Axel Dörfler
a6cba27756 Turned off patented colored subpixel rendering.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 12:36:08 +00:00
Ryan Leavengood
e8ec87ad28 I decided to recreate the classic BeOS screensaver BuyNow, and here it is.
I'm considered splashing it up a bit by adding parameters for colors, etc, but
this will make a good baseline.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 05:50:42 +00:00
Michael Lotz
4771489e89 Changing from a stack allocated result struct to a heap allocated one. This removes the possibility that a timed out transfer that later still triggers the callback writes into invalid stack space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 01:18:17 +00:00
Michael Lotz
a94a8358e8 With plain R5 kernels, the usb module image is apparently loaded twice (once for each exported module), while for BONE kernels and up the module is only loaded once.
So the mechanism with the global variable did not work for R5 what caused two USB stacks and host controller drivers to be active concurrently which resulted in completely unpredictable results.
This kind-of-inelegant fix was all I could come up with, if someone has a better idea please send it this way.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 01:12:40 +00:00
François Revol
b6a6e8e347 Add debugger kernel modules to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 22:12:47 +00:00
François Revol
a08aa5f3fe Add code to work as a kernel module. Builds now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 22:12:10 +00:00
François Revol
8c0f52bd5d fix path
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:39:50 +00:00
François Revol
4dca8fed0d AddSubdir...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:39:04 +00:00
Axel Dörfler
6af9dcbfe5 Another cleanup patch by Vasilis Kaoutsis - thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:35:08 +00:00
François Revol
0223d2d0bb Move your body...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:34:40 +00:00
François Revol
aa2e761c3e make a folder for that thing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:32:47 +00:00
Ryan Leavengood
3daebb3ee0 Changed the application QuitRequested as per Axel's advice.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 19:20:35 +00:00
Ryan Leavengood
880be3310d General changes:
- Fixed some formatting in the recently added resizing code.
- Changed the operation name for rotating counterclockwise to use that name
  instead of anticlockwise. This makes the code consistent with the GUI.
- Reformatted the constants header to use an enum. Also removed the empty
  constants cpp file.
- The QuitRequested handler in the app did not ask the windows to close, which
  could cause modified images to be closed without prompting the user. Now it
  does, which makes ShowImage more user friendly.

Changes to the image view:
- Added a member for keeping track of the type of image. This is mostly used in
  properly updating the window's status bar when the image is changed (flipped,
  rotated, etc.) This removes some hacky code I added before :)
- Removed the status parameter in the Notify method since it was only used for
  the above image type status updating.
- Removed a redundant if in the mouse up handler.
- The key down handlers for moving to the next and previous image did not
  properly prompt the user if the image had changed. I fixed this by sending a
  message to the window where the prompting code resides. When adding this I
  also created a few helper methods for sending messages to the window, which
  removed some (small) repeated code through-out the class.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 15:13:41 +00:00
Axel Dörfler
268fe0f839 * wait_for_child() now checks if the team has any children to wait for, and returns
ECHILD in case it doesn't. This fixes bug #995.
* Added a TODO item for solving bug #996.
* wait_for_child() did not release the team lock and restore interrupts in case
  the child you wanted to wait for didn't exist...
* with child > 0, wait_for_child() will now check if its really a child of yours,
  and not just in the same process group.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 14:31:42 +00:00
Marcus Overhagen
cc30d340c3 When getting the memory map, ask only for 2046 bytes instead of
2048 bytes. This should fix bugs #993 and #997.
On BeOS R5 asking for 2 bytes too much wasn't a problem, as we 
only need the first page_entry, and it didn't return any Error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19992 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 12:59:45 +00:00
Waldemar Kornewald
35f71eb445 Fixed build under Linux. Also tested on BeOS. Fixes bug #983.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 12:33:12 +00:00
Marcus Overhagen
ad13bfbbd7 Added unconditional debug output. You will most likely see it when "sync" is stalled,
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 22:52:09 +00:00
Marcus Overhagen
3e216965ba Added a sample haiku.vmx file for VMware player.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 22:49:44 +00:00
Marcus Overhagen
55a5f66c21 Made the "get_memory_map failed" error panic the kernel, to avoid random
crashes at a later time. I observed one error at 8033a802, but the address
was allocated by the driver and should have been fully locked.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 22:06:35 +00:00
Marcus Overhagen
562ce636d3 reverted r19986. uncached mapping didn't work, instead it was falling back to vesa mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 21:17:38 +00:00
Marcus Overhagen
e0858f4dd5 added a temporary workaround for bug report #994
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 20:56:44 +00:00
Axel Dörfler
9a8038bf5d Fixed the wrong "be:key_repeats" we were sending to our clients.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19985 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 17:04:25 +00:00
Axel Dörfler
4a50aa51f2 Applied another patch by Vasilis: this one replaces all C++ style comments with
C style ones, as this is a C header, too (and a very basic one).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 16:26:37 +00:00
Jérôme Duval
5839b2df71 the test case for ticket #995
wait() should return with an error when the process has no children


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 16:00:19 +00:00
Ingo Weinhold
a7bbb81537 New rule to create a VMWare image from the plain Haiku image using Marcus'
vmdkheader tool. New pseudo target haiku-vmware-image to build it.
Image default name is "haiku.vmdk", adjustable via the
HAIKU_VMWARE_IMAGE_NAME variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 12:54:10 +00:00
Marcus Overhagen
3ff2441acf two additional savety checks
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19981 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 00:05:39 +00:00
Marcus Overhagen
dea33357ec Commandline tool to write a vmware vmdk header to a haiku image file (space for the header has to be reserved)
Tested with VMware Player 1.0.3 on linux and works.

Can also be used to create a haiku.vmdk file from an existing haiku.image file:

rm haiku.vmdk
generated/objects/linux/x86/release/tools/vmdkheader/vmdkheader -h 64k -i100M haiku.vmdk
cat generated/haiku.image >>haiku.vmdk



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 23:52:57 +00:00
Axel Dörfler
686bdd59d3 Rewritten Errors.h, courtesy of Vasilis Kaoutsis - thanks for all the work!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19979 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 22:11:00 +00:00
Jérôme Duval
4fd052d6a3 added vim :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19978 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 21:22:27 +00:00
Jérôme Duval
68fbee9e74 we don't need this for Haiku
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19977 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 21:15:45 +00:00
Jérôme Duval
be3db2942c it seems Termcap doesn't handle %p1 correctly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19976 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 21:12:59 +00:00
Marcus Overhagen
3a6ed286a3 tool for writing vmdk file headers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 20:46:37 +00:00
Michael Lotz
011a5431dd Corrected include directories for non-Haiku platforms. USBKit.a can now be built for R5 too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 16:57:34 +00:00
Axel Dörfler
2617d83e76 Damn, forgot to include these two in r19968. This should fix the build again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 16:48:02 +00:00
Axel Dörfler
087882c26e * Rewrote headers as necessary; only Errors.h and Debug.h still originate from a Be header now;
feel free to change that ;-)
* Cleaned up existing headers.
* Coding style guide update to BBufferIO (renamed m_* members to f*).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 16:36:29 +00:00
Michael Lotz
03d79ead32 Added USBVersion() and MaxEndpoint0PacketSize() infos to the output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 14:54:08 +00:00
Michael Lotz
5f1534dbf3 Obviously submitting the requested generic index is necessary for this function to work...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 14:37:59 +00:00
Michael Lotz
e40b5c0d59 Fixed a wrong index that could cause crashes with devices containing generic descriptors
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 14:36:03 +00:00
Axel Dörfler
9dbe170a69 Implemented direct message passing for local targets; this fixes a deadlock
with PostMessage() in case the message queue is full.
Some notes:
* for synchronous replies, we don't use this mechanism yet, but it could be
  extended to do that as well.
* the code looks so complicated because we need a way to access the looper's
  queue without locking it (to prevent deadlocks); like Dano's solution, I've
  abused BTokenSpace to store a BDirectMessageTarget with a BHandler.
* we also need to decouple the lifetime of a looper's queue from its target,
  as we cannot lock the looper, and therefore, can't guarantee it stays valid
  as long as we're accessing it outside of BLooper.
* init_clipboard() now needs to be done after the global constructors have
  been called - since sending messages now needs gDefaultTokens to be initialized.
  Since this is done per image, it shouldn't cause any troubles, though.
* some minor cleanup, removed unused _msg_cache_cleanup_() and friends.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 13:59:56 +00:00
François Revol
caa76e0da1 Fix some warnings (unused args...). Only bad protos left.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 13:33:53 +00:00
Axel Dörfler
c01f349e6d Cleanup:
* Got rid of unused BLooper members
* renamed fTaskID to fThread
* Removed private and deprecated AddLooper()/RemoveLooper()/... stuff; BLooper is now
  directly calling BLooperList methods.
* Got rid of extensive and useless comments
* Made a few TODOs more clear
* Merged InitData() and InitData(...) to _InitData(...)
* BLooper::Team() now uses BPrivate::current_team(), sTeamID is gone now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 12:42:18 +00:00
Axel Dörfler
aa33d0a928 Got rid of the looper ID stuff - it seems nowhere to be used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 12:11:33 +00:00
Axel Dörfler
88df8322a9 Optimized current_team() - it now uses a static variable to hold the team ID.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 12:05:10 +00:00
Axel Dörfler
fa9e26cdd0 * Fixed warnings.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19963 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 11:35:25 +00:00
Axel Dörfler
dfd1fe13b8 Fixed some warnings, mostly wrong uses of the ASSERT macro.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 11:24:20 +00:00
François Revol
ab28e0ff2c For interfaces listed in a domain but without any address we returned {2, AF_UNSPEC}, but we only skipped 1 byte instead of 2... fixed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 11:07:08 +00:00