Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 873066a8e1 A bit of cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-30 09:07:06 +00:00
Axel Dörfler f20a8750cb * Enlarged the default BLooper port capacity to 200 messages. Since limiting
the message count doesn't really make much sense anyway (as opposed to
  limiting the maximum size of waiting messages), we might still want to
  enlarge this even more.
* This should further help with #2212.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-29 18:24:19 +00:00
Axel Dörfler 55112db6ea * Do not update the internal window state in case sending the message failed.
* This is not perfect, but it makes Tracker catch up and redraw when the next
  event is due. This improves the situation in bug #2212.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-29 18:16:07 +00:00
Axel Dörfler abc690633a * AHCI and other SATA drivers aren't in busses/sata, but either busses/scsi
or busses/ide.
* This change makes the AHCI driver working again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-29 15:03:15 +00:00
Axel Dörfler 2620242fd5 * Fixed broken comparisons introduced with r25702.
* Removed old OpenBeOS namespace leftover.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-29 14:27:57 +00:00
Axel Dörfler 44b6c0f4b6 Oops, this shouldn't have been part of this file, forgot to delete it when
copying from the playground.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-29 12:28:13 +00:00
Axel Dörfler 1a4dcbd8de * gPCI was never set anymore after my changes. I replaced it now by a fPCI
member in AHCIController, since, at least in theory, every PCI device could
  come with its own module.
* Fixed exported module names to indicate compliance with the new device
  manager.
* Apparently, GCC4 doesn't like mixing C++/C linkage even for variables anymore,
  though it really shouldn't care about that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-29 12:17:22 +00:00
Axel Dörfler 3023ab11f7 Patch by Jan Klötzke:
* Improve vm86 mode tracing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-28 12:44:56 +00:00
Axel Dörfler 9f16184577 Patch by Jan Klötzke with minor changes by myself:
* Use vm86 mode to call the VESA BIOS to do the actual mode switching by
  providing an ioctl in the vesa driver.
* Fix vm86.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-28 10:48:01 +00:00
Axel Dörfler 2c8b410ad5 Patch by Jan Klötzke:
* Current linking scheme does not always export arch specific symbols from the
  kernel. Merging all compiled arch stuff into a single .o file (and linking
  that to the kernel) fixes it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-28 10:08:07 +00:00
Axel Dörfler d1588bb543 * Adapted the silicon_image_3112 driver to the new device manager.
* Removed std_ops(), as it wasn't used for anything, and is optional in Haiku.
* ide_isa, and legacy_sata are still waiting for the same set of changes :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-28 08:58:15 +00:00
Axel Dörfler 4d59d7457b Patch by James Woodcock:
* enables user-mode packet filters in the pcap library.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-27 15:20:29 +00:00
Axel Dörfler 9c20d5cb7d * Fixed the byte order definitions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-27 12:42:04 +00:00
Axel Dörfler 2976912a51 * BaseDevice didn't initialize the fInitialized member, and thus causing bug
#2265.
* Device::InitDevice()/UninitDevice() are called from outside of the device
  manager, so they better lock it.
* Turned off debug output in devfs and the device manager.
* Fixed debug output in devfs to print the actual vnode/cookie values, instead
  of the structures the VFS passes in now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-27 12:04:09 +00:00
Axel Dörfler ce2ba4187b * Added SHINTA to the list of contributors.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 21:21:12 +00:00
Axel Dörfler ef850bad9b Converted the ATA bus manager to the new driver architecture; did not test it
yet, though, as this machine takes a bit longer compiling...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 21:09:35 +00:00
Axel Dörfler 4584521e0b * PCI_mass_storage_other no longer scans the non-existing busses/disk path, but
all busses now. This should help with broken controllers that don't advertize
  their capabilities correctly.
* Maybe we want to have a list that translates some types for certain devices,
  too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 21:03:32 +00:00
Axel Dörfler 34d976b499 Forgot to remove now unused files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 18:07:04 +00:00
Axel Dörfler 187c576425 * Added sys/ipc.h header. As the functionality has not yet been implemented,
I added an #error directive, so configure scripts shouldn't be fooled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 16:55:57 +00:00
Axel Dörfler 368167ede8 * Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
  support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
  - legacy SATA and ISA IDE support is disabled, the drivers haven't been
    ported yet.
  - The not yet used ATA bus manager hasn't been ported yet, either.
  - AHCI changes have not been tested.
  - the listdev command has been removed from the build (as it currently
    doesn't work anymore).
  - device manager generated IDs currently are not freed anymore when a device
    node is removed.
  - generic drivers can't yet use the new driver architecture.
  - simple busses that do not support device types won't work yet.
  - legacy driver publishing/unpublishing (ie. what USB needs) has not been
    tested, and may be broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 16:52:27 +00:00
Axel Dörfler 113a13d83e Print actual floating point number, instead of integer fraction.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 16:13:19 +00:00
Axel Dörfler 1e18692e12 * get_vnode() now accepts a NULL parameter for the fsNode argument.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 11:32:27 +00:00
Axel Dörfler a411c76cd6 * Added pthread_attr_setscope(), and pthread_attr_getscope(). We only support
PTHREAD_SCOPE_SYSTEM which makes the implementation rather simple.
* This closed ticket #2242.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-23 11:24:40 +00:00
Axel Dörfler 403bfdda6c * The floating point output now correctly honours eventual sign flags,
and actually shows the sign (before, it would just absorb it).
* On calling floating() from vsnprintf(), the order of the "fieldWidth", and
  "flags" parameters were mixed, causing some strange output.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 15:38:09 +00:00
Axel Dörfler 15173df4e9 Last patch of the vm86 patch series from Jan Klötzke - thanks!:
* The new function vm86_do_int(struct vm86_state *state, uint8 vec) provides a
  facility to call BIOS interupt handlers. The function must only be called from
  a user thread context because the lower 1MB of the address space is used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 13:54:28 +00:00
Axel Dörfler 7da0a81c0e Patch by Jan Klötzke (with additional TODO comments):
* Add a "fault_callback" to the thread structure which is called when a
  unhandled page fault happens in user space. A SIGSEGV will only be sent
  if the callback returns "true".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 12:33:30 +00:00
Axel Dörfler ec09e0a89d Patch by Jan Klötzke:
* For vm86 mode the kernel stack top is adjusted -> do not rely on the
  kernel_stack_base + KERNEL_STACK_SIZE calculation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 12:02:30 +00:00
Axel Dörfler bb107c4e29 Patch by Jan Klötzke:
* In vm86 mode CS will have arbitrary values so we check for both USER_CODE_SEG
  and the VM flag in EFLAGS. This is also done when entering interrupt gates.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 11:59:47 +00:00
Axel Dörfler a71e7c8d43 Patch by Jan Klötzke:
* The IO permission bitmap is always checked for virtual 8086 mode tasks.
  Make sure it is invalid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 11:44:42 +00:00
Axel Dörfler b8caf749bf * _user_cpu_enabled() accidently returned an error code instead of "false".
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 11:38:00 +00:00
Axel Dörfler 44431460dd Daemons are now spawned with "new", and thus they should be sent back using
"delete", not free().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 11:37:20 +00:00
Axel Dörfler 88f4305da5 * Cleanup. Not sure where this change originated from, but I believe it was a
patch by Vasilis Kaoutsis. I may have cleaned up the file a bit, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 11:34:45 +00:00
Axel Dörfler c25cbc530f * Applied a patch by James Woodcock that fixes the pcap_platform_finddevs()
function to use pcap_add_if() instead of maintaining that list manually.
  This also seem to have caused problems with this functionality in case the
  loop device came first. Thanks!
* Some changes to that patch by myself: removed comment about pseudo device,
  as Haiku doesn't have that, and probably will never get it either. Moved
  declaration of "flags" to where it belongs.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 07:49:54 +00:00
Axel Dörfler 35db13ea5a * Replaced the old s3savage driver with the new s3 driver, both written by
Gerald Zajac. Thanks a lot!
* Also put it on the image by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-20 21:09:49 +00:00
Axel Dörfler 705263f5b3 * Some preparations for the new driver architecture: added FindCapability(),
and {Read|Write}Config() that get a PCIDev structure, added a FindDevice()
  method.
* Made sPCI a global gPCI, since the new PCI root/device modules will be using
  it directly.
* Moved the functionality of pci_find_capability() into a new
  PCI::FindCapability() method.
* Removed the redundant "Pci" from PCI::{Read|Write}PciConfig(), and
  GetNthPciInfo().
* Added PCI::_NumFunctions() that returns the number of functions instead of
  doing it manually every time.
* Tried to honour the 80 character limit, as well as other coding style things
  a bit more.
* Added '_' prefix for private method names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-20 17:53:54 +00:00
Axel Dörfler 1a19981411 * If we don't add a buffer because of FLAG_NO_RECEIVE, we still have to
maintain our fReceiveNext member, or else the other endpoint never gets its
  data acknowledged. This fixes the ssl_closure test of the neon test suite,
  all tests finally go through.
* Use is_writable() in SendData() instead of checking all the states manually.
* Also bail out when the endpoint stops being writable when we were waiting
  for it to become writable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-20 10:15:14 +00:00
Axel Dörfler 4caadfdb36 Removed firewire driver, as it causes several problems on many machines.
See bug #2243, for an example.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-20 07:32:45 +00:00
Axel Dörfler 30a396ab42 * Made the endpoint manager wait on bind() if the existing connection is
local, and is about to close.
* This fixes several race conditions with the neon test suite that relied
  on TCP sockets being gone after close, and their port being available again
  (note, that is not what the TCP spec says, anyway, but it makes sense to
  do so, since we already removed the time wait state for local connections).
* The endpoint manager is now using a mutex instead of a semaphore.
* TCPEndpoint::_Close() now notifies the senders/receivers instead of
  _HandleReset().
* Besides ssl_closure(), all tests of the neon test suite seem to pass now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-19 18:27:10 +00:00
Axel Dörfler b30e56f287 Applied patch by Marco Minutoli that adds the short name to nfs, and userlandfs.
Please note, though, that both of these file systems currently don't compile and
are not part of the image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-19 12:43:45 +00:00
Axel Dörfler 3aecf8aa00 Some cleanup I made before the integration.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-18 14:22:56 +00:00
Axel Dörfler 7504dbf51f Fixed build under non-BeOS platforms.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-18 14:09:58 +00:00
Axel Dörfler 9f925127db This should be the last commit to this one, I'll next work on integrating it
into the kernel:
* Added device_removed() function to the device level as well.
* A device_node now also tracks its published devices.
* Made the driver API more consistent with the device API; instead of the node,
  they now get the driverCookie (so they now need to store the node themselves,
  the driver cookie could be retrieved via the node).
  Alternatively, one could either pass both, or have something similar to what
  Ingo did for the file systems, ie. pass a structure that contains both
  elements. Suggestions welcome.
* Implemented device node replacement when a better driver becomes available:
  the new node (and its devices) is already published even though the old device
  is still in use. The new device is B_BUSY until the old one is closed.
* Implemented an update cycle counter: this will prevent a device node from
  being probed again, if there is no new driver since the last time; eventually
  this will be moved into devfs, though.
* Driver removal and replacement now works as expected in all tested scenarios
  (device removed, better driver installed, both with and without open device).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-15 15:08:33 +00:00
Axel Dörfler 7a6818d3fa Work in progress:
* added [un]publish_device() calls to the device manager.
* added a very basic devfs emulation to the playground to be able to test how
  the manager reacts to opened devices.
* renamed *_device() functions to *_node() in the device manager API.
* made B_DEVICE_FIND_CHILD_FLAGS a generic flags field, and renamed it to
  B_DEVICE_FLAGS.
* added support for keeping a driver loaded as long as its device is available.
* implemented get_next_child_node().
* added test for device removal, and implemented unregister_node() for this.
* fixed some bugs in the device node reference/initialization count maintenance.
* moved more code from register_node() to device_node::Register().
* initialize the device_node::fFlags member to the value of B_DEVICE_FLAGS, and
  have additional private flags.
* renamed UninitUnusedChildren() to UninitUnusedDriver(), and fixed this
  function by adding the new flag NODE_FLAG_REGISTER_INITIALIZED.
* Now remembers the support when a driver is registered - this will be used
  later to be able to compare with a new driver without having to call
  supports_device() again.
* Removed NODE_FLAG_REMOVE_ON_UNINIT again, as that was pretty stupid - there
  is reference counting for a reason.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25498 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-14 20:05:40 +00:00
Axel Dörfler 32f1d45867 * Reworked James Woodcock/stippi's patch a bit: since the remaining entries
are NULL pointers anyway, we just adjust argc.
* Made argv processing more safe, it will now check if the allocation of the
  argv array succeeded in the first place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-14 19:57:12 +00:00
Axel Dörfler 707cdd3719 Added Christian Fasshauer, and Marco Minutoli to the list of contributors.
Shinta, if you can give me your full name, I would like to add you too :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-14 16:48:03 +00:00
Axel Dörfler 548c508ff7 More work-in-progress:
* Added a generic (for all devices) and specific (for a specific device) video
  driver to be able to play with the replace mechanism (which is not yet done,
  but works well for the one usage case tested).
* Added reference counting and initialize counting: now, each node owns a
  reference of its parent, and each initialized node owns an initialization
  reference of its parent.
* Added locking.
* Moved dump functionality into a member function.
* The same node can now only added once - ie. if a bus tries to register the
  same device twice, it will fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 17:00:07 +00:00
Axel Dörfler 2f00291de2 * The EXIF parser now keeps a set of visited offsets to avoid entering endless
loops with corrupted data.
* This fixes bug #2206.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 12:28:01 +00:00
Axel Dörfler fdeee1a708 Wrote a small test program that can reproduce the problem in bug #2206.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 12:08:15 +00:00
Axel Dörfler 14cc96293c * Turned off replicant handle for the time being; it's not really usable as
a replicant yet.
* Improved CSS producing code.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 12:55:53 +00:00
Axel Dörfler 1da9f5cea5 * Added BDiskSystem::ShortName() and everything needed to get it there.
* Added BDiskDeviceRoster::GetDiskSystem() method, that can get a disk system
  by short/pretty/module name - since they should all be unique, I put them
  in a single namespace, please complain if you don't like that :-)
* Cleaned up DiskSystem.h and DiskDeviceRoster.h according to the updated
  header guidelines.
* Renamed ntfs pretty name from "ntfs File System" to "Windows NT File System".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 11:44:00 +00:00
Axel Dörfler 078d0317d0 * Work in progress: driver loading triggered by devfs.
* get_driver() now returns a result, as you may theoretically call it on
  any node (and not just your parent, which is guaranteed to be there).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 22:05:50 +00:00
Axel Dörfler aa8bff87ee Followed Ingo's suggestion, and made StackDeleter an AutoDeleter specialization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 13:08:59 +00:00
Axel Dörfler 2d79691811 * Changed how the driver paths are found: now, the bus can add type/sub-type/
interface information (in the PCI notion) to a node, and the possible paths
  of a device driver are generated from that information by the device manager.
* Removed the "is bus" attribute - the device manager now decides wether or not
  a device always loads its children (as opposed to on demand loading only),
  even if the B_FIND_CHILD_ON_DEMAND flag is specified.
* device_node::Register() now correctly maintains the fRegistered member field.
* Replaced the driver_module() and driver_data() methods with a get_driver()
  method that retrieves all information at once.
* Cleaned attribute names.
* Some other cleanup, adding const where it makes sense.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 12:56:29 +00:00
Axel Dörfler 359f758bc4 * Added PCI_hd_audio sub-type in the PCI_multimedia base class.
* Fixed some minor typos.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 12:42:33 +00:00
Axel Dörfler b9c7ba4bba * Rewrote how the dynamic drivers are registered, and made it a bit more
flexible; now, a driver type can result in any number of paths to probe.
* Also, the "bus" modules (busses/bus_managers) are now always probed - that's
  only a temporary solution and should be restricted to certain driver types
  later.
* Added a userland buildable version of KPath.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 16:48:14 +00:00
Axel Dörfler 56bbbbc9ca * Added Adopt() method that steals the other path's buffer.
* Fixed operator=(): the second argument of SetTo() is a boolean (normalize),
  not the length of the buffer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 16:45:29 +00:00
Axel Dörfler b1429e2a05 Added a StackDeleter class that also empties the stack and deletes the items.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 16:43:59 +00:00
Axel Dörfler 9623534399 Now uses mutexes instead of benaphores, that also simplified object
instantiation at early boot a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 16:06:51 +00:00
Axel Dörfler 06b580d76f Replaced the sAvailableMemoryLock benaphore with a mutex.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 15:57:59 +00:00
Axel Dörfler adf376c941 Replaced benaphores with mutexes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 15:52:27 +00:00
Axel Dörfler 3bdd7f38f1 Fixed the libkernelland_emu.so build that Ingo broke so deliberately.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 15:09:57 +00:00
Axel Dörfler 23a60f423e Reordered includes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 15:08:30 +00:00
Axel Dörfler 02a3b9ef49 * kernel_daemon is now a C++ file, and uses DoublyLinkedList instead of
the C list mechanism which also makes the code nicer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25375 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 15:08:14 +00:00
Axel Dörfler e06c7fe5d8 * Added a quote_context structure that FillInQuoteTextRuns() can now optionally
use to keep track of the current context. This should not only make it faster,
  but may also fix the occasionally seen bug of the previous solution.
* Added a simple diff mode coloring as well - only enabled when quote coloring
  is enabled.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 10:27:55 +00:00
Axel Dörfler 7cbf8fdd5a First part of the vm86 work by Jan Klötzke:
* Allow userland teams to create areas below 1 MB when requested specifically.
* Note, this is a temporary solution - see the comments in the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 21:21:43 +00:00
Axel Dörfler a941060027 * Rewrote controller reset - it now performs a full reset, and does no longer
assume the driver to be in reset when started.
* Major cleanup of the register access: now hda_controller and hda_stream both
  have member functions for this, the OREGx() and REGx() macros are gone.
* Made the register names and definitions more descriptive - the short names
  of the specs are still mentioned in the comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 16:30:11 +00:00
Axel Dörfler 1a662751d5 Some minor fix I had laying around on some machine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 16:23:00 +00:00
Axel Dörfler bcd14b4955 Rudolf's accelerant skeleton is not really meant to be built.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 12:14:49 +00:00
Axel Dörfler e16627cede Build fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 12:07:22 +00:00
Axel Dörfler e4019ca48a Dial-Up-Network preferences app does not compile - since it's probably going to be removed
in the future, I removed it from the build for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 11:35:21 +00:00
Axel Dörfler 03298f9d20 * The WaitList now always notifies all waiters.
* In SendData(), TCP will now split the buffer into smaller parts if it
  can send data (ie. there is free space in the buffer queue left, but
  not enough to send the whole buffer, and the free space is more than
  the send low water mark of the socket).
* Both of these changes together let TCP now pass the "forwarding" test
  of the OpenSSH suite.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 17:36:28 +00:00
Axel Dörfler 248f01553f * Fixed warning and bad coding style.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 13:00:27 +00:00
Axel Dörfler 2239c25b29 Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 12:39:17 +00:00
Axel Dörfler 63368af591 * As Ingo pointed out to me earlier, TCP could now delete its socket too early
when using the shutdown() command.
* If TCP no longer needs a socket, it will now set the flag FLAG_DELETE_ON_CLOSE;
  when the socket is closed from the upper layers, it will set the FLAG_CLOSED
  flag - and only if both are set, TCP will now delete the socket itself on
  receive.
* This fixes bug #2189.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 11:44:19 +00:00
Axel Dörfler a1e3e17d35 * Added 24-bit mode support.
* This fixes bug #2182.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-30 16:07:25 +00:00
Axel Dörfler ec12806d2f Reverted r25258 - I didn't know that an undefined value defaults to 0.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-30 08:03:53 +00:00
Axel Dörfler 5b90e47b18 The "arp" command now supports flushing all temporary entries using the new
-F option.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 22:07:06 +00:00
Axel Dörfler 801591dbde * Added an atomic_pointer_set() template function to util/atomic.h.
* Made the pointers const.
* Changed how the ARP module maintains its arp_entry::request_buffer: it
  now uses the atomic_pointer*() functions to make sure there is no race
  condition, and it's deleted only once.
* Getting an ARP entry would return uninitialized data, if the entry hadn't
  been resolved yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 22:03:03 +00:00
Axel Dörfler b1d749f8f1 * Added an atomic.h header that provides a C++ file with a templatized
64-bit safe version of atomic_test_and_set() for pointers:
  atomic_pointer_test_and_set().
* The VFS is now using this function (it's not used anywhere else in the
  kernel this way).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 21:05:05 +00:00
Axel Dörfler 6ad0d967f0 Fixed build when ENABLE_TRACING is 0.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 20:43:34 +00:00
Axel Dörfler c0b5962cd6 * Removed unused function benaphore_lock_etc(). A timeout is not really a
good idea for a benaphore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 20:20:36 +00:00
Axel Dörfler c16d05cff9 * steal_page() called remove_page_from_queue() without holding the sPageLock.
This fixes bug #1900 for real.
* Rearranged find_page_candidate() a bit, removed duplicate code, added a panic
  in case the marker state is invalid.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 19:45:13 +00:00
Axel Dörfler bbc25eb650 * Renamed temporary KDL variable from _cookie to _volume in the "mount"
command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 16:49:14 +00:00
Axel Dörfler 0b51ee4efd * The page writer was calling remove_page_marker() without holding the
sPageLock. This could easily mess up the page queue.
* Now, remove_page_marker() gets the lock itself. This fixes bug #1900.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 16:48:27 +00:00
Axel Dörfler 8e8edffce7 * Fixed at least the "dd" part of bug #2148: the second double indirect array
block would be incorrectly addressed when allocating a stream - this could
  cause random blocks to be overwritten, and therefore could cause many sorts
  of problems.
* Moved BFS_TRACING macro to the tracing_config.h file, and let it follow the
  new semantics of those other macros in there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 16:15:35 +00:00
Axel Dörfler e7ad26598a * The "bfs" KDL command can now also convert block offsets to block_runs and
vice versa.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 16:08:42 +00:00
Axel Dörfler 76824051fd * Only enable block/transaction tracing when the macro is 1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 14:57:56 +00:00
Axel Dörfler 18df7df8f7 * Followed Ingo's suggestion, and retricted sending SIGPIPE only to userland
API clients.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 14:01:46 +00:00
Axel Dörfler 8e0a418b70 * Implemented sending of urgent data. Seems to work fine, but of course only
if the other end is not a Haiku host (retrieving of urgent data is still
  missing).
* Resolved TODO: SendData() now sends a SIGPIPE when trying to send on a
  closed connection.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 12:42:50 +00:00
Axel Dörfler 63cf342664 * tcp_header::urgent_offset must be set in network byte order as well.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 12:31:57 +00:00
Axel Dörfler b18927737f * Added the "sock" test application (as used in Steven's TCP Illustrated) to
our repository, and integrated it to the build system.
* Got it from: http://www.icir.org/christian/sock.html (sock-0.3).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 09:30:29 +00:00
Axel Dörfler 895d7215fb * Added TCPEndpoint::GetOption(), currently only supports TCP_NODELAY, and
TCP_MAXSEG.
* Note, TCP_MAXSEG cannot be set yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 09:26:24 +00:00
Axel Dörfler 6289578982 * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25240 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 08:46:01 +00:00
Axel Dörfler ae33c41ea8 * For local connections, we no longer use the TIME_WAIT state; in this case,
we know that the connection was torn down cleanly, and there are no inflight
  segments floating around anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 08:39:08 +00:00
Axel Dörfler cd2bea0cd2 * Closed endpoints are now deleted directly, they no longer get into the
2MSL wait.
* Accidently left on debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 08:28:36 +00:00
Axel Dörfler 66cb8f0ede * Use dprintf_no_syslog() for FLOW and everything in scsi2ata.c - this prevents
endless writing to the syslog.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 08:11:43 +00:00
Axel Dörfler 0cadc931d2 * TIME_WAIT endpoints must not send an acknowledgement for known data; this
fixes the "endless discussions" when closing a local connection - only
  happened on a simultaneous close.
* A FIN in TIME_WAIT now updates the time-wait timer, as required by the
  TCP specification.
* Entering TIME_WAIT now cancels all connection timers. We might want to
  think about putting time wait connections into a separate hash, and delete
  the socket early on.
* Added tracing support for send/receive, timers, and state changes.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 07:39:58 +00:00
Axel Dörfler 5abeea69a5 * Added tracing for binds and connects as well.
* Introduced the TCP_TRACING macro in tracing_config.h.
* Enlarged the default trace size to something a tiny bit useful (but still
  acceptable for systems with little RAM).
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 07:35:00 +00:00
Axel Dörfler 7829775e8f * Added a dummy replacement for parse_expression().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 15:49:18 +00:00
Axel Dörfler c927bf5c49 * Made it work and build again after recent network stack changes.
* Implement "close" command that actively closes the server socket, or does
  an simultaneous close. Even though this triggers an "endless conversation"
  between two time-wait endpoints on Haiku, it works fine in the shell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 15:48:49 +00:00