Commit Graph

18342 Commits

Author SHA1 Message Date
Axel Dörfler
b9a724e79f panic() now results in a debugger call - it now longer exits the app.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-01 08:31:54 +00:00
Stefano Ceccherini
d75bff02b3 fixed the build under haiku
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-01 08:25:48 +00:00
Axel Dörfler
7e85d85e7a * TCPConnection::SendData() now waits until there is enough free space in
the send queue (however, if the buffer sent is larger than the maximum
  buffer, it will just hang for now...). The check is also not thread-safe.
* BufferQueue::Get() did not correctly maintain the fFirstSequence member
  in remove mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 22:36:45 +00:00
Axel Dörfler
1d891ef80b Changed the default server port to be used to 1234.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 20:48:16 +00:00
Axel Dörfler
02894e3670 * Reintroduced the accept semaphore: it will be inherited by the new connections
of a LISTEN socket.
* Reading data should now more or less work, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 20:47:26 +00:00
Axel Dörfler
94fb808a48 * socket_spawn_pending() forgot to set the socket's parent field.
* socket_recv[from]() now accept a NULL buffer in case there was nothing to read.
* the tcp_tester's server thread now actually reads the data it receives.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 20:43:24 +00:00
Axel Dörfler
41c6726359 Moved the starting of the network stack into the driver (from the socket module)
to allow other protocols (like TCP) using the socket module.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 17:56:17 +00:00
Axel Dörfler
5131b5bcf6 The window and application server threads now run at B_DISPLAY_PRIORITY, too; this
was a stupid oversight, and should improve the responsiveness of the UI under load
a lot. Thanks Stefano!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 13:15:15 +00:00
Jérôme Duval
66581f3731 moved acpi_thermal to new driver API
improved a bit the read output
published the acpi device module
minor cleanup in pci module


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 00:36:36 +00:00
Axel Dörfler
26417177e7 More work-in-progress:
* Added some timer methods
* Fixed removing the connection too early (and thus replying with a RST instead of nothing
  when the peer acknowledged our FIN).
* BufferQueue::RemoveUntil() did not bump the buffer's sequence
* Delayed acknowledge, and retransmitting should work now (the latter is *very* basic
  right now)
* Completed TCPConnection::_ShouldSendSegment()
* fReceiveNext was always updated on a received buffer, even if there was a buffer
  missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 21:53:06 +00:00
Stephan Aßmus
54c22262f6 * cleanup (it is still used btw, at least in ServerFont)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 20:29:03 +00:00
Jérôme Duval
c20e9eefcd added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image
commented the insertion of the attribute name in patterns in the case of a string attribute
notify_probe_by_file chooses a module based on a bus specific suffix
dm_register_child_device has a parameter to optionally check the support for the node
added scanning of bus devices after the boot filesystem is mounted
fixed dm_rescan, locking was misbehaving
fixed SYSTEM_DRIVER_REGISTRATION definition
added B_DRIVER_MAPPING attributes for PCI and ACPI devices:
  %vendor%_%device% for PCI, hid_%hid% and type_%type% for ACPI
moved acpi_device_module_info definition to public ACPI.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 19:09:45 +00:00
Axel Dörfler
2bd388f696 Added two more utility functions to the timer service:
* cancel_timer() cancels a timer, and returns true if the timer was running
* is_timer_active() determines if the timer is currently running or not.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 19:09:19 +00:00
Ingo Weinhold
69b1f76d66 FreeBSD build platform support. Original patches courtesy of
Samuel Rodriguez Perez, somewhat hacked by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 18:08:00 +00:00
Stephan Aßmus
67491d2adc * introduced a listener mechanism to be notified of frame buffer
changes in the HWInterface (ie on mode switch)
* initialization and shutdown of the HWInterface instance no longer
  go through DrawingEngine, which had nothing to do with it in the
  first place
(this is in preparation of giving each ServerWindow it's own
DrawingEngine instance)
* small performance improvement in ViewLayer::ScrollBy()
* some cleanup in ServerConfig.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 09:27:23 +00:00
Stephan Aßmus
264fe59ded * introduced IntPoint and IntRect, which are just like BPoint and BRect,
but use integer coordinates. These are now used in ViewLayer for the
  coordinate system (layout, scrolling offset, view bitmap layout)
* modest performance improvements by inlining some very often used
  methods, and by preventing to go down the entire layer tree too often,
  for example InvalidateScreenClipping was always called in the deep
  mode, therefor it is save to assume that the tree does not have to
  be traversed as soon as the clipping is already invalid


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:20:07 +00:00
Stephan Aßmus
ba688f3640 * small fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:16:51 +00:00
Stephan Aßmus
4d83ef04a2 * something was giving me trouble, don't know if this fixed it
or something else, but I don't think the change is bad (changed
  ServerProtocol.h from a local header to a system header)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:16:10 +00:00
Stephan Aßmus
5288f0a48d * use exit() instead of exit_thread(), makes profiling even possible
with the built-in GCC profiling (thanks Axel)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:14:15 +00:00
Stephan Aßmus
64792e619e * small fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:13:15 +00:00
Axel Dörfler
4dbe78a0cd Discarded the use of data_header::size in the last commit, but forgot to actually
remove it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 23:22:19 +00:00
Axel Dörfler
75dc7cb58a * Renamed _SendQueuedData() to _SendQueued(), and made it independent from the
"flags" parameter - this can't be used with retransmitting anyway, and since
  the flags are actually fixed per state, the previous solution didn't really
  make much sense.
* Made _SendQueued() work a lot more like BSD's tcp_output().
* We can now send even large buffers that need more than one segment at once.
* Added a simple recursive locking mechanism for now - this should be done
  differently, though, as we want to have good performance in full duplex mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 23:07:56 +00:00
Axel Dörfler
0ce94a8f47 * Rewrote tcp.h header - however, I think it should only include the TCP options
that can be set via setsockopt().
* For now, the struct tcphdr and its definitions are also part of the header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 23:02:30 +00:00
Axel Dörfler
49961c1489 * Fixed a stupid bug in append_size() - it rounded the size-per-data_header value,
so that the buffer could be smaller than the one requested.
* Rewrote data_node management in the header; now, every data_node knows where it's
  placed, and can be actually discarded as needed.
* Rewrote free space management in the header: there is now a free chunk list, so
  that all memory can be reused (it's currently only used for data_nodes anyway).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 23:00:33 +00:00
Axel Dörfler
03ac1086c1 Made sure that the colors are reset more often; it should now happen much less often
that the terminal's color is changed when the app is quit (or interrupted).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 22:00:12 +00:00
Stefano Ceccherini
f9e5811b92 forgot this file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 14:57:37 +00:00
Stefano Ceccherini
0c48fc7c74 Enable state synching for ServerPictures. Fixes bug 520
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 14:52:51 +00:00
Axel Dörfler
8535905415 Some more work-in-progress:
* the TCPConnection::Receive() method is now more or less working as it should;
  of course, there are a number of missing things (like round-trip time estimation,
  retransmit timers, receive window update, ...).
* reply_with_reset() was broken, and accidently always send the segment it should
  answer with reset... (causing an endless loop during connect)
* BufferQueue::RemoveUntil() must always set the fFirstSequence member to the new
  sequence, or you will never be able to send anything with that queue (as the
  data in it would be no longer contiguous).
* connects, sendings (only single segments), and receiving data is working now
  basically (but very incomplete); retransmits or even subsequent transmits (if
  the data to be sent doesn't fit in one segment) doesn't work yet, so you better
  don't lose any segments :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 02:20:35 +00:00
Axel Dörfler
a9a07b7215 * Now disables debug output after startup (can be reenabled using the dprintf command)
* added a socket_notify() dummy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 02:12:03 +00:00
Axel Dörfler
1166a4f9b5 Work-in-progress on TCP:
* Changed the implementation to be more BSD like; state variables are now
  the same set as usual.
* The BufferQueue didn't use the initial sequence correctly (problems with
  SYN sequence).
* It now also removes data out of the current data set (ie. data that was
  already read by the application).
* BufferQueue::Get() also didn't work correctly (the version used by sending
  data).
* Fixed various issues around the code like incorrect handling of unexpected
  data.
* TCP options don't need the end-of-options marker in case they fill up the
  data already, also, the end-of-options marker doesn't need to be padded.
* Options are now only processed during SYN - other options may come
  later (timestamps are candidate number one).
* Also broke what was working before: connections do no longer work!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-26 23:29:08 +00:00
Axel Dörfler
fc8c0ec946 * Small optimization for set_timer(): now only removes the timer from the list
if it won't be added anymore.
* Small fix for set_timer(): now set the timer->due field back to 0 when a
  timer is removed - this prevented a timer from being correctly readded later
  (possible crash)!
* net_buffer's append_cloned_data() now does some more checks to prevent unnecessary
  work and detect wrong arguments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19375 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-26 23:18:36 +00:00
Michael Lotz
8449c78396 Fixing build of the printing package for BONE and hopefully R5 too.
Now printing to that old HP LaserJet 2100 over an even older LPR print server from R5 with the PCL5 driver and LPR transport...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 20:06:18 +00:00
Axel Dörfler
817a7408d4 * Added new BufferQueue.cpp sources.
* The MTU returned by the domain was too large; it should already take the
  IP header into account.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 16:14:40 +00:00
Axel Dörfler
5fcf044823 * Added a helper class tcp_sequence which hides the semantics of comparing sequences
(this was completely broken in the code before).
* Wrote a buffer queue class to replace the previous algorithm - instead of merging
  all buffers together, they're kept in a list, so that the most work will be done
  in the application's thread and only very little when the data is received; maybe
  we should add an append_move() function to net_buffer, and use that instead,
  though, to keep the number of fragments small.
* The advertised receive window is now bound to 65535, the receive window shift
  is correctly computed, but not yet used.
* The new buffer queue is now also responsible for the send buffer.
* TCPConnection::ListenReceive() used the wrong address to retrieve the target route.
* Fixed TCPConnection::ReadData() to also return data when the connection is already
  closed, and to wait if the connection is not yet established (in SO_NONBLOCK mode);
  it still doesn't wait until data is available, though...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 16:13:30 +00:00
Axel Dörfler
3567d0cb1b Added more than one option was broken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 16:02:07 +00:00
Axel Dörfler
224e38e302 Added function to append cloned data from another buffer (to be used by TCP).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 14:30:54 +00:00
Axel Dörfler
604d21a600 * Added an offset/sequence field to the net_buffer - this can and will be used
by the TCP implementation for its reorder and retransmit queues.
* The ipv4_fragment is no longer needed, as we can use the above field there
  as well - this saves one extra allocation per received fragment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 11:29:36 +00:00
Axel Dörfler
7c0541c12f Build fix; I obviously forgot to compile the stack itself after the changes :-/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 10:29:20 +00:00
Axel Dörfler
a627118936 Added support for setting/getting: SO_NONBLOCK, SO_RCVTIMEO, SO_SNDTIMEO,
SO_RCVLOWAT, and SO_SNDLOWAT.
Lowered the default buffer size to be within the uint16 size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-24 22:58:39 +00:00
Stefano Ceccherini
64a74d5eff close the menu immediately when user clicks outside the menu
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-23 21:39:49 +00:00
Axel Dörfler
b38e841106 Added support for simulating simultaneous connect (via the -s option).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-23 18:40:04 +00:00
Axel Dörfler
bed835af1e The TCP tester now also allows you to reorder random or specific packets.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 19:13:07 +00:00
Axel Dörfler
719aa9ff8c Decoupled receiving threads, so that the server as well as the sender get their own
receiving thread. While this steals away a test case for now (dead lock), it will
allow to reorder packets in a better way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 17:39:54 +00:00
Axel Dörfler
cc5496e34a Extended the TCP tester app a bit:
* you can now instruct it to drop specific packets
* you can now also define a round trip time for the packets
* added a "send" command to send arbitrarily sized buffers over TCP.
Not surprising, the current implementation of TCP doesn't do anything with
those (other than crashing as soon as you try to send data).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 16:57:22 +00:00
Waldemar Kornewald
7fc2eecefd Found out what trackTime was used for.
We should probably always start BMenuField menus in sticky mode and only switch
to non-sticky mode if the mouse was moved a minimum distance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 12:30:56 +00:00
Axel Dörfler
2628e60cbc Moved BMenuWindow, BMenuFrame, and BMenuScroller into the BPrivate namespace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 11:52:18 +00:00
Axel Dörfler
aa389c6b38 Now sends the B_SILENT_RELAUNCH message if the app is already running and has
no arguments (or doesn't want them). We even already had the correct handler for
B_SILENT_RELAUNCH around :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 11:36:11 +00:00
Waldemar Kornewald
a7067566a1 Fixed menu disappearing bug when (in sticky mode) mouse button is pressed (and held down) and the mouse pointer is moved outside of the menu. Now, menus should work as expected and switch from sticky to non-sticky mode on mouse button press correctly.
BTW, I disabled trackTime. It seems to work without it, correctly, so I guess it can be removed completely.
If not, just revert the change ("if (system_time....") after TODO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 11:32:35 +00:00
Philippe Houdoin
18741bc6ea * Fixed a crashing bug when no renderer add-on can be found.
std::map [] creates a new entry when none can be found!
* Disabled libmesa.a being build with DEBUG turn on, as it's broken ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-22 00:09:06 +00:00
Jérôme Duval
92aa85ae8d reverted PCI change, now uses a dependency on the PCI bus manager
moved acpi_ns_dump driver into acpi bus manager (also removed from the hd image)
the exported fs path is now acpi/namespace
added some methods to ACPI bus and device new interfaces
ACPI nodes like _TZ_ or _SB_ aren't exposed as devices anymore
added a type to the acpi_device_info structure


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-21 23:36:02 +00:00