Commit Graph

21323 Commits

Author SHA1 Message Date
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
Stephan Aßmus
36e12bef8f Applied patch by SHINTA to enable Zenkaku/Hankaku key codes in Japanese keymap.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 11:41:28 +00:00
Stephan Aßmus
d77a8d47d2 * Used ui_color() for default view color.
* Fixed Track and Disc time labels to be large enough. (Fixes #2201.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 11:27:48 +00:00
François Revol
901e5756cb Indeed we don't need this signal hack for BeOS, we just need to tell it the pgid. That reduces the number of things to remove later ;)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 11:22:18 +00:00
Stephan Aßmus
572ff7ee4a Fix a few minor coding style violations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 11:12:23 +00:00
François Revol
8bbf2fc768 - some more ANSI attributes
- changed comments to pragma comments for parse tables as it's huge, but sadly Pe doesn't make them clickable in the function list...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 02:48:57 +00:00
François Revol
ac7f526d3c - dump termios struct for ttys
- implement VMIN & VTIME, at least it seems to work but it's 4am and it's overly weird, so please review.
See http://man.cx/termios and http://www.unixwiz.net/techtips/termios-vmin-vtime.html .


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 02:07:12 +00:00
Ingo Weinhold
c44fb2a62c Advisory locking fixes:
* Made the access strategy to vnode::advisory_locking consistent.
  get_advisory_locking() was guarding it with sVnodeMutex,
  create_advisory_locking() was using atomic_pointer_test_and_set(), and
  release_advisory_lock() just set it unguardedly. We do use sVnodeMutex
  consequently, now.
* Beautified create_advisory_locking() (got rid of the gotos,
  reorganized the control flow).
* Fixed race conditions in acquire_advisory_lock(). It was always
  unlocking and relocking the advisory_locking object when it didn't
  have to wait, but in the meantime someone else could have changed the
  locking situation. Reorganized the control flow, so that it only drops
  the lock when it has to fail or wait. Using create_advisory_locking()
  upfront simplifies the code quite a bit (and fixes another race
  condition).

APR's testprocmutex test seems happy now, at least.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 00:53:13 +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
François Revol
4b48c06f26 - dump winsize info too.
- prepare for VTIME and VMIN handling: allow waiting with timeout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 21:48:59 +00:00
Ingo Weinhold
536f5d515a Don't create anything in a removed directory. Axel, please review. I
don't see how the locking in Remove()/Create() works.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 21:21:22 +00:00
Ingo Weinhold
156c744335 The terminal is not supposed to send signals to the shell. That's done
by the tty. Now I also understand the BeOS work-around to ignore SIGINT
in bash I removed recently.
I suppose the signal code is still needed for BeOS. If not please remove
it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 20:37:45 +00:00
Jérôme Duval
d55232a8c6 update to tzdata2008b
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 20:26:56 +00:00
Stefano Ceccherini
87f17bdf5c added the g prefix to some global variable
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 19:56:25 +00:00
François Revol
02917e5cbf - mark BeOS-specific ioctls we support for legacy apps,
- add 'wsiz' which is a private alias for TIOCSWINSZ,
- add some we might want to implement (or not) as reminder,
- add hw signal ioctls with a note for later (call driver service func),
- implement 'ichr' undocumented ioctl that waits on N chars on input, this fixes behaviour of rhapsody IRC client and many other curses apps. Oddly it seems even our own curses still uses it, that should likely be fixed as we support select(). But we must keep this one in to support apps that have their own curses lib.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 18:49:47 +00:00
Ingo Weinhold
d59239b300 Also align the given size to pages when unmapping memory. Fixes munmap()
for non-aligned sizes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 18:23:23 +00:00
Ingo Weinhold
e4d9ef0e7c setjmp() must return 1 when a 0 value has been passed to longjmp().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 18:22:01 +00:00
Stephan Aßmus
370fc8c907 Fix the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 15:56:37 +00:00
Ingo Weinhold
ec5867990b I broke pthreads in r25390. The thread pointer was passed in the wrong
argument.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 15:05:17 +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
François Revol
eed037b637 - SetPosX/Y were wrong, but not yet used.
- implemented HPA/VPA (CV/CH) sequences (set absolute v and h position). It's optional but because the beterm termcap advertises it we must implement it. Also note beterm increments args unlike others. This fixes all obvious display issues with the rhapsody IRC client (a small ncurses client I ported).
- maybe we should switch the CASE_* to an enum ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 03:44:37 +00:00
François Revol
85b80c5229 - get rid of control chars in source files (ESC and CTRL-L)
- fix Home and End keys
- simplify code
- add different strings for Ctrl-arrows, allows to map them to previous/next-word (PuTTY and others have actually several codes depending on mods & ALT, mode & CTRL and even mods & CTRL|ALT, might be even better...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 02:22:37 +00:00
Ingo Weinhold
f7cc12b389 Implemented pthread_attr_{g,s}etstacksize(). Also added commented-out
prototypes for the missing pthread_attr_*() functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 01:36:49 +00:00
Ingo Weinhold
4c49f2056b * Changed _kern_spawn_thread() and create_thread(): Instead of individual
arguments they get a single thread_creation_attributes structure now.
* Added stack_address and stack_size to thread_creation_attributes,
  which allow to specify the stack size or the stack to be used for the
  new user thread.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 01:32:36 +00:00
François Revol
6eea7aabb8 Handle any dropped message. This makes dropping from Pe working for ex, as well as the BeOS BColorControl.
Color drop is currently disabled, for now it just pastes it as text if provided (#rrggbb form from BColorControl).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-09 01:15:25 +00:00
François Revol
80f6938b34 - MakeMenu() now adds a separator for empty strings.
- add pref names for ANSI colors, for later...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 23:07:52 +00:00
François Revol
f8a741bcba Sorry but I still need to test Terminal in BeOS to debug it... allstuff is #if(n)defed on __HAIKU__ for clarity.
To be removed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 22:30:39 +00:00
Ingo Weinhold
173dd626bf Cast B_OK to (uint32) to solve an overloading ambiguity (I don't agree
with the compiler, though :-)), I'm about to introduce.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 20:50:17 +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
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
Ingo Weinhold
f23d0a6242 Implement shm_open() and shm_unlink(). The shared memory objects are
simply created as files in /boot/var/shared_memory/. The Bootscript
clears the directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 13:42:33 +00:00
Jérôme Duval
cf1c322756 use find_directory() instead of /boot/home/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 13:10:09 +00:00
François Revol
8e3f5e8959 Make the BString& version of SetTo() behave like BeOS, that length < 0 is means "until the end". This makes CopyInto() acting alike too. Note the char * version crashes in BeOS, instead we act like the other version for consistency.
There are many other calls that crash in BeOS when called with invalid args, should we attempt to sanitize them or call debugger() instead ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 12:56:55 +00:00
François Revol
0fbe0299d3 BPicture is obviously not text data, should be image/ supertype!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 12:35:41 +00:00
Stefano Ceccherini
fd59bc3703 Added a BDragger so that Terminal is replicanteable. Salvatore, hope you
like it :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 12:07:41 +00:00
Jérôme Duval
0895d46fdd added a TODO about user fonts in safe mode
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 11:43:00 +00:00
Jérôme Duval
872556daeb Patch from Kaoutsis: use find_directory() instead of hard coded paths
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 11:28:42 +00:00
Jérôme Duval
31442c74a4 Patch from Kaoutsis: use find_directory() instead of a fixed path
added some checks, keep the style clean


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 11:12:01 +00:00
Stefano Ceccherini
52def890da When opening a new tab, select it automatically, as described in ticket
#2176.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 10:28:52 +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
Ingo Weinhold
5a5ff85178 * Be more lenient when checking the timeout. In my tests Haiku was up to
5ms off. Not really good...
* The test on non-shared unnamed semaphores doesn't request a shared
  semaphore anymore. It passes under Haiku, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 01:44:46 +00:00
Ingo Weinhold
3dfe682f55 * Added some padding to the sem_t structure.
* Changed the semantics of unnamed semaphores. Before parent and child
  of a fork() would always share an earlier created semaphore. Now we do
  that only, if the "shared" parameter of sem_init() was true. That's
  still not quite the behavior Linux and Solaris have, but should be
  perfectly fine with how reasonable code would use the API.
* There's a global table for shared unnamed semaphores now. ATM a
  semaphore is leaked when no one explicitly destroys it (just as with
  named sems).
* Enforce per-team and global semaphore number limits.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 01:39:49 +00:00
Ingo Weinhold
01b1098795 * Fixed some misunderstanding regarding the _POSIX_* macros. They are
not supposed to be passed to pathconf() or sysconf().
* Added POSIX semaphore related macros.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-08 01:27:31 +00:00
Jérôme Duval
6806f7f873 this break was forgotten
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 22:43:45 +00:00
François Revol
0866ac7e91 - point to logitech opensource website
- cleanup
- handle frame size suggestions (Codycam gets QVGA now, and eXposer doesn't complain), though the picture is not centered nor scaled yet.
- added a stat text parameter to show actual frame rate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 21:39:48 +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
François Revol
45c2e6b8f3 Use the view's Bounds() as target rect when drawing, so if the source is not QVGA it's stretched instead of just clipped.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 21:13:09 +00:00
Maurice Kalinowski
8b1e3b1af8 - Implemented MediaExtractor::Copyright, which just calls the instantiated reader
- Implemented BMediaFile::Copyright, which just calls Copyright() of the extractor. So this is just a simple pass through.
- Style cleanup (mostly whitespaces)

Problem is that our readers currently return the copyright of the source code, not the copyright of the MediaFile itself, like the BeBook documents. Thus, we might need to change all readers to return appropiate data or behave differently for Haiku readers.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 21:09:56 +00:00
Stephan Aßmus
3db71143ea Print a message about restarting or shutting down the computer. Since this
may take a short moment on real hardware, it is better than the "Asking blah
to quit..." which is otherwise still left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 19:23:11 +00:00
Stephan Aßmus
fde63f5602 Better naming of a variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 19:22:05 +00:00
François Revol
3dd6b9cfa1 - remove hardcoded color
- do not force bitmap size for ftp, in case the webcam doesn't give 320x240 it would mess up with memcpy. Maybe we'll want to give the option to either resize to QVGA or keep the native size someday.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 18:36:34 +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
Ingo Weinhold
e01137a6b3 * Added more tests for unnamed semaphores. Looks like I have to think of
an alternative implementation.
* Improved output a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 15:42:10 +00:00
Stephan Aßmus
bd78dbf81c Fixed bad text antialiasing against the colored background used for input
methods. Fixes #2209.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 15:38:09 +00:00
François Revol
71a7359f67 missed a file, oddly it was still building (but with undefined symbols... when I say they are bad :P)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 14:03:18 +00:00
Ingo Weinhold
13546fd19e Tests for POSIX Realtime semaphores. Unfortunately they reveal that the
semantics of fork()ing with unnamed semaphores on other platforms is
different from what I thought it was.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 12:15:39 +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
Ingo Weinhold
c00931f204 * Don't try to strdup() the name given for an unnamed semaphore.
* When initializing an unnamed semaphore failed, it would be deleted
  twice.
* The user structure pointer wasn't correctly passed when initializing
  named semaphores.
* When opening a named semaphore failed after it has already been
  published, it is now unlinked again.
* The timeout passed to sem_timedwait() is relative to the Epoch. We
  need to offset to system time.
* Added TODO regarding a per team semaphore limit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 12:10:38 +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
Ingo Weinhold
e8f1b18ec2 Clear O_EXCL, if O_CREAT is not given.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 12:03:25 +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
Stephan Aßmus
fb950be971 Added HVIF icon for BSnow, courtesy of "Meanwhile". I was planning to do
a "snowman" icon for BSnow (big snowballs, coals for eyes, carrot...) but have
not found the time yet. Meanwhile and I agree that his icon is much better than
the previous one in any case. :-) (Hope you don't take offense, Francois!)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 10:43:11 +00:00
David McPaul
899c7641d4 bring haiku mp4_reader up to date with BeOS mp4_extractor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 10:08:31 +00:00
François Revol
a2e55dcc0c Fix a warning, print the pointer to the mutex instead of implying a cast of the address of the pointer to an int.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 09:07:48 +00:00
Stefano Ceccherini
5fce1ce7c0 The second parameter of KPath::SetTo() is a bool, not a size_t. Reported
by Marc Flerackers. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 09:07:37 +00:00
Stephan Aßmus
c1502c9a45 Fixed name and placement for kMsgOpenNetworkPreferences definition.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-07 08:18:21 +00:00
Ingo Weinhold
98e6713172 * Moved realtime_sem.{cpp,h} into new posix subdirectory.
* Renamed the old kernel_posix[_arch...].o to kernel_lib_posix...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 23:16:04 +00:00
Jérôme Duval
7c8ddc9795 added B_SAFEMODE_DISABLE_APM
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 22:04:25 +00:00
Jérôme Duval
7a58a3ed3d we honor safe modes for GL addons too. maybe this should end somewhere in libbe and a userland safemode.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 21:58:07 +00:00
Jérôme Duval
5abf416fd0 B_SAFEMODE_DISABLE_USER_ADD_ONS is also a safe mode we now honor in translation kit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 21:39:31 +00:00
Jérôme Duval
09774bc435 fix mmu_man's name
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 21:23:24 +00:00
Jérôme Duval
f27f494cb2 when no input method is found but the replicant was loaded, we now unload it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 21:18:31 +00:00
Stephan Aßmus
3b41ad8606 Applied patch by Dario Casalinuovo with some changes by myself:
The NetworkStatus applet is now able to launch the Network preferences via
its contex menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 21:13:00 +00:00
Stephan Aßmus
fa66c85543 Add proper RDef file so the Network prefelt is known to the system as an
application. NOTE: Using FileTypes within Haiku to set this properties
does not result in other applications to be able to use BRoster::Launch()
with the given signature. The error message will change from "Application
not found" to "No application found to handle this file type" (or the like).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 21:11:53 +00:00
Jérôme Duval
cea151dc3e B_SAFEMODE_DISABLE_USER_ADD_ONS is also a safe mode we now honor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 21:07:21 +00:00
Ingo Weinhold
5142c2ac86 Added support for POSIX semaphores (the ones from the XSI extension
Realtime option group). The implementation should be complete, but is
totally untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 03:39:36 +00:00
François Revol
c38af24cea - Finaly got sensor gain to work for mine...
- added brightness and contrast parameters for sn9cxxx according to a linux driver, but doesn't seem to work for mine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-06 00:25:26 +00:00
François Revol
39cd0cea4f More links
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25322 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-05 20:50:27 +00:00
François Revol
d55e0f83f2 Turns out my QuickCam is not a usual quickcam with an WTV600 chip but an NW80x based one...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-05 17:58:51 +00:00
François Revol
74b3713ab9 - style cleanup (remove // -----, 2 lines between funcs)
- hooks to handle probing sensor chips instead of hardcoding them.
- more urls for reference drivers (the macam driver would be interesting but it's GPL and ObjC :-( )...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-05 15:38:02 +00:00
François Revol
5b880818a5 - some code to support isochronous, not yet functional.
- some code for quickcam, not yet functional.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-05 00:32:02 +00:00
Ingo Weinhold
af015599ea When sending a file descriptor via SCM_RIGHTS we also need to acquire an
open reference to it. Otherwise the descriptor could be closed while
being on the way. This fixes the ssh login problem with non-root users.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-05 00:27:34 +00:00
Ingo Weinhold
cb734beeee Added get_open_fd() function which gets the descriptor and also
increments its open count.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-05 00:24:14 +00:00
François Revol
1571aa7ff9 Add IDs for Sonix cams according to linux driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 20:35:31 +00:00
François Revol
a486abdce0 - don't hardcode frame size, use the maximum available instead. Setting it at connection won't work yet.
- Added hooks to handle device and sensor-specific parameters
- Added gain controls for my webcam, oddly none seem to work correctly except green gain :^)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 20:14:19 +00:00
Ingo Weinhold
c5174c0a7e Add libMicro copyright and license to the image when the respective
optional package is installed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 16:08:30 +00:00
Ingo Weinhold
9a7ef652a3 diff_zip uses the STL and thus needs to be linked against the respective
library. Not sure why it worked earlier.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 13:12:31 +00:00
Ingo Weinhold
26791a6b96 Changed the semantics of create_app_meta_mime(): Like update_mime_info()
it does now accept directories and doesn't ignore the "recursive"
parameter anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 13:01:11 +00:00
Ingo Weinhold
3a4c7e6e71 If the supplied entry was a directory,
CreateAppMetaMimeThread::DoMimeUpdate() would always fail early, making
recursive operation impossible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 12:48:21 +00:00
Marcus Overhagen
ca978b6ed8 make memory map printing independant of other mmu debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 01:20:22 +00:00
Ingo Weinhold
5d55026291 Added support for SO_PEERCRED for Unix sockets.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 00:32:57 +00:00
Karsten Heimrich
88be2c9f5d * added missing destructor
* delete app icon on pref close
* use HVIF icon in case of Haiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-03 11:39:54 +00:00
Karsten Heimrich
9ec99c6e2f * some code formating, no functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-03 10:08:10 +00:00
Ingo Weinhold
ea035707b3 * Support the new {send,read}_data_no_buffer() protocol hooks to avoid
unnecessary data copies and waste of memory.
* Changed the storage backend to ring_buffer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-03 01:14:44 +00:00
Ingo Weinhold
cdc00dadfc * Added optional {send,read}_data_no_buffer() hooks to the protocol
module interface. They directly operate on iovecs and thus allow
  protocols that don't need it to avoid the creation of a net_buffer.
* Adjusted the socket module to support the new hooks. If they are
  present, they will be chosen over the old hooks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-03 01:11:21 +00:00
Ingo Weinhold
3134e71811 Also check whether the data pointers of provided userland iovecs are
actually pointing to userland. This saves checks in the net stack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-03 01:04:20 +00:00
Niels Sascha Reedijk
7218a9b2ea Update copyright entries in the about window. Work done by scottmc. Thanks! This closes #1222.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 22:49:23 +00:00
François Revol
f3ff69e413 Haiku's BMessenger::SendMessage() only takes a pointer...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 22:23:50 +00:00
François Revol
dc6d91a930 Added a path popup menu like Tracker's and Pe's to the Status bar.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 22:13:09 +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
Bruno G. Albuquerque
c1b9831bbe - Moved AHCI_PORT_TRACING define to its correct position.
- Prepend "ahci port" to all trace entries in ahci_port.cpp.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 17:02:41 +00:00
Ingo Weinhold
49e00d1f99 Moved the container management for ancillary data from the net_buffer
module to the stack module. There's a dedicated struct
ancillary_data_container, now. One can just set the container on a
net_buffer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 14:37:16 +00:00
Bruno G. Albuquerque
110d4031fb - Added AHCI port tracing (Only PRD table tracing for now).
- Added controller attribute to the AHCIPort class for debugging purposes.

AHCI is failing whenever the PRD table has an address above the 2048 Mb mark.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 14:34:20 +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
Ingo Weinhold
6f57d9d066 When creating a socket file descriptor fetch the SO_NONBLOCK value from
the socket first, so the FD open flags are in sync with that. Fixes
situations where a socket accept()ed from a non-blocking listener socket
wouldn't have O_NONBLOCK set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 02:30:16 +00:00
Ingo Weinhold
3dba513f4c This fixes the crashes when calling {g,s}etsockopt() on an AF_LINK
socket. Not sure, if there are any cases where there is a next protocol,
though. Please review.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 02:26:58 +00:00
Ingo Weinhold
39ae5e4d12 Use a mutex instead of a benaphore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 02:20:17 +00:00
Ingo Weinhold
6057b5ee44 Added a bit more debug output in UnixFifo, but disabled debug output in
all files by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 01:22:16 +00:00
Ingo Weinhold
042be52922 In Shutdown() pass an actual error code to notify(). B_OK is just
ignored. This fixes the hanging OpenSSH "multiplex" test. Save for the
"forwarding" test, which sometimes hangs due to a TCP bug, the complete
test suite passes, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-02 01:13:53 +00:00
Ingo Weinhold
0c615a01ae * Removed old mutex implementation and renamed cutex to mutex.
* Trivial adjustments of code using mutexes. Mostly removing the
  mutex_init() return value check.
* Added mutex_lock_threads_locked(), which is called with the threads
  spinlock being held. The spinlock is released while waiting, of
  course. This function is useful in cases where the existence of the
  mutex object is ensured by holding the threads spinlock.
* Changed the two instances in the VFS code where an IO context of
  another team needs to be locked to use mutex_lock_threads_locked().
  Before it required a semaphore-based mutex implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 22:07:36 +00:00
François Revol
0ddd7ea66e Some more ioctls...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 21:59:46 +00:00
Ingo Weinhold
9e518ee91d Also hold the threads lock when removing a team from the team hash
table. This is not necessary, but allows for a better solution fo how to
lock the IO context of another team.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 21:53:12 +00:00
Ingo Weinhold
ee96aa8f6e * Replaced cutex::release_count by flags field. It is only one thread
that can unlock the mutex, so one bit is sufficient.
* Added cutex_init_etc() which has an additional "flags" parameter.
  The only specifyable flag is CUTEX_FLAG_CLONE_NAME, which causes the
  function to strdup() the given name and free() its copy in
  cutex_destroy().
* cutex_destroy() does now unblock waiting threads.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 18:06:09 +00:00
Ingo Weinhold
2988eab3dc Added support for option '-L' (always dereference symbolic links).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 12:43:29 +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
Ingo Weinhold
184de764fe Replaced the vm_cache mutex by a cutex. This should save quite a few
semaphores.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 01:59:09 +00:00
Ingo Weinhold
8562499f44 * Introduced a new locking primitive I called "cutex" (sorry for the
name, couldn't resist :-P). It's semantically equivalent to a mutex,
  but doesn't need a semaphore (it uses thread blocking and a simple
  queue instead). Initialization can't fail. In fact it is ready to use
  without initialization when living in the bss segment, also in the
  early boot process. It's as fast as a benaphore in cases of low lock
  contention, and faster otherwise.  Only disadvantage is the higher
  immediate memory footprint of 16 bytes.
* Changed how the "thread" and "threads" debugger commands list the
  objects they are waiting for. Cutexes are also included.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 01:53:07 +00:00
Ingo Weinhold
4e6b38af6c Following Axel's suggestions:
* Added data_node::flags field and currently only flag
  DATA_NODE_READ_ONLY, indicating that the node is read-only (i.e.
  a clone). If set, the node won't have any header or tail space. Not
  being able to write to it is not yet enforced, though.
* Moved data_node::tail_space to data_header.
* Removed data_node:used_header_space/own_header_space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-30 18:47:11 +00:00
Ingo Weinhold
514fb1360b * Removed select_sync::lock. The only thread that was still locking was
the selecting thread, which has obviously no effect.
* Changed select_info::events to vint32. It is now updated atomically.
  This removes a race condition when concurrent threads would notify at
  the same time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-30 16:12:20 +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
Ingo Weinhold
503912f733 Fixed the case that a file to be created non-exclusively is a symlink
(bug #2183).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-30 14:21:02 +00:00
Ryan Leavengood
6aede71c0c Resolve a TODO and fix another ancient bug, #386. Print Screen is now handled
by BWindow, no longer by the app_server. This should stop the "screen freeze"
effect.

This adds a dependency on libpng.so and libz.so to libbe.so. The same
dependencies and the PNGDump code added here can be removed from the
app_server. I am just waiting for a code review of this before doing that.

This implementation still does not give the client a chance to handle it
differently.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-30 02:55:15 +00:00
Ingo Weinhold
2428097297 Removed superfluous uint32 ref parameter from select() FS hook.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-30 00:06:17 +00:00
Ryan Leavengood
85a4868f71 Future proofing, make sure we get the screen this window is in.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 23:55:55 +00:00
Ingo Weinhold
9981c81f8b Fixed a race condition between select_fd() and close(). Since
select_fd() first added the select info to the IO context and then
called select() on the descriptor, a close() called at the same time
could already deselect the events and close the descriptor before
select_fd() was done with select(). select_fd() does now keep an own
open reference while selecting the events and add the select info
afterwards to the IO context (if the FD is still current).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 23:54:35 +00:00
Ingo Weinhold
e9488bd9e6 * Removed bogus select notifications in socket_close(). This is really
not necessary, since the VFS makes sure (or should at least) that all
  events are deselected when close() is called. ~0 isn't a valid event
  anyway.
* Removed delete_select_sync_pool() in socket_free(). It's not
  necessary, since the select_sync_pool is auto-destroyed when the last
  event has been deselected (which the VFS should take care of).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 23:09:54 +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
Jérôme Duval
e6b421a98e fix misuse of ... with B_UTF8_ELLIPSIS
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 21:48:36 +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
Ingo Weinhold
0b69689a18 * Fixed free_data_header_space(). It would increase the header space
although it put the freed space in the free list. Alternating
  invocations of alloc_...() and free_...() would thus increase the
  header space unboundedly.
* Unified the way a data_header and data_node access the header space.
  Originally data_header::data_space and data_node::header_space had to
  be kept in sync, which some functions failed to do. Introduced a
  header_space structure, which is located in data_header and referenced
  by data_node, so that accessing it either way does always keep both
  structures in sync.
* Removed the special handling for the data node created with a buffer.
  Since remove_{header,trailer}() and trim() could remove it without
  knowing, the last reference to the first data header would be freed
  prematurely, causing operations on freed memory, and in the end a
  second free which screwed the object cache's free list. This crashed
  Haiku e.g. when running OpenSSH's "forwarding" test. Now the first
  created node is just a node like any other. It's allocated in the data
  header, too.
* Changed the mechanism how data nodes are allocated. Now they will
  always be allocated on a header associated with the buffer for which
  they are created. This fixes a race condition when freeing them. They
  would otherwise modify the free list of a header which might be
  accessed by another thread at the same time (added a TODO explaining
  how the old code could possibly be fixed). Also squashed several
  TODOs related to running out of header space when allocating a node.
  If the buffer runs out of header space, it will simply allocate a new
  header, now.
* Dealt with some TODOs regarding reverting the buffer to its previous
  state when running out of memory after allocating a few nodes.
* Added several TODOs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 19:49:43 +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
Ingo Weinhold
d96c90096f Added a simple net_buffer implementation (using a single malloc()ed
buffer) for debugging/testing purposes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 19:05:50 +00:00
Ingo Weinhold
e81ddd2870 Partial solution to a race condition between arp_timer() and
arp_update_entry(). While arp_timer() was sending the last request
arp_update_entry() could be called (caused by an incoming reply) and
free the request buffer, which arp_timer() would free a moment later
again. The problem is not completely solved, since a duplicate reply can
still cause a double free. Checked in mainly for Axel's reading
pleasure. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 17:15:43 +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
Stephan Aßmus
f466d35d9c Rewrote parts related to drawing the labels. The order of drawing happens as
this (seems to be what R5 BStatusBar does):
* combine the "trailing text" with the "trailing label" and truncate the
  resulting string on the left side according to the width of the entire
  control
* combine the "label" with the "text" and truncate that on the right side
  according to the space left by the right hand text.

-> No more overlaps (theoretically, in practise there are still overlaps
  because our BFont::TruncateString() does not respect the width in some
  situations.)

* Changed _SetTextData() accordingly, it is not used anymore for the
  label and trailing label, and could therefor be simplified a little.
* fixed _BarFrame() to not return fractional coords, which could sometimes
  leave a dirty line of pixels.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 12:42:10 +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
Ryan Leavengood
ef13436f1f Fix for #676, an oldie (from 2 years ago): if the MediaPlayer window is moved
off the screen at all, it will be moved back on when the window is activated.

I almost think this might be a reasonable default implementation for
WindowActivated in BWindow :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 03:37:41 +00:00
Ingo Weinhold
a1587d16d5 Ctrl-L clears the KDL screen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-29 01:24:41 +00:00
Marcus Overhagen
bcf291ed9b Removed superflous NULL pointer checks.
The media kit will always call BMediaNode 
and BMediaAddOn functions with valid pointers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 22:13:36 +00:00
Marcus Overhagen
5b330b7af6 fix build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 22:01:18 +00:00
Marcus Overhagen
b90d663d10 This fixes scroll wheel support, as reported in bug #1625.
PS/2 supports vertical scrolling only for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 21:23:41 +00:00
Jérôme Duval
6c07a21e12 fix sleepTime to be microseconds
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 19:20:48 +00:00
Jérôme Duval
873f6659eb reverted r25227. Thanks for the hint Ingo :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 19:01:00 +00:00
Jérôme Duval
615ffc60cc build fix (with no tracing conf)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 18:34:16 +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
Stephan Aßmus
cb2afe5cc7 Patch by Ralf Schuelke with changes/fixes by myself:
* Pick 8 random icons from the application and preference folders
* Pick 8 different icons when the game starts again


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 10:54:38 +00:00
Axel Dörfler
db4b6bc46c * Merged _Receive() and _SegmentReceived().
* Cleanup, shuffled methods around, renamed methods, etc. - no functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-28 09:43:22 +00:00
Rene Gollent
e6fc462cb3 T2 needs to be defined if net_buffer tracing is disabled entirely.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 21:12:57 +00:00
Jérôme Duval
1f859c0470 fixes bug #2169
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 20:23:50 +00:00
Jérôme Duval
a1a5f1241f only set shear and rotation with valid values
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 18:35:59 +00:00
Axel Dörfler
05bc1e8973 * Added _CancelConnectionTimers() that does what its name suggests, and is
now used from various places that previously did not cancel all timers
  they should have.
* When a connection moves to the CLOSED state, it should cancel all timers;
  this prevents from sending a reset at the end of a connection.
* If the persist/delayed acknowledge timers were canceled too late, they might
  still have tried to send something (which would eventually cause a reset
  sent to the peer).
* Follow RFC 1337 with respect to time wait assassination prevention (ie.
  we now ignore resets from peers in time wait state).
* _SegmentReceived() must not check the sequence of a time wait connection;
  it prevented sending a reset when that was due (a new connection request
  would time out, instead of fail immediately).
* Also, that method must never be called in the LISTEN or SYNCHRONIZE_SENT
  states, so we don't need to check for those.
* We don't have to wait in Close() until the connection is actually closed -
  removed a TODO. TCP should handle this internally.
* Renamed _ShutdownEgress() to _Shutdown().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 18:21:16 +00:00
Axel Dörfler
42759f5626 * _BindToEphemeral() now remembers the last port it used, and tries a higher
one next. This should work around the problem Ingo observed with the OpenSSH
  tests (not tested, though).
* The only TCP compliant fix for this problem would be to not enter time wait
  for local connections at all (which I will do soon).
* Another work around other implementations use is to accept incoming
  connections for time wait endpoints (the connection will then be replaced).
  I'm not yet sure if I want that behaviour, though.
* Added tracing for unbinding endpoints (with stack trace) to investigate
  another bug (sometimes closed connections aren't actually closed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 18:14:03 +00:00
Ingo Weinhold
c96512dab1 Added tracing for net buffer data header references at tracing level 2.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 17:17:20 +00:00
Ingo Weinhold
2c88b9c82a Added kernel tracing for the interesting net buffer operations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 16:34:23 +00:00
Ingo Weinhold
97c0a2b3f1 * Paranoia checks were accidentally globally enabled by default. Object
* cache paranoia was always enabled.
* Changed from paranoia on/off to levels. Adjusted the macros to take a
  level argument.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 15:13:31 +00:00
Axel Dörfler
2651d14422 Build fix; SYSCALL_TRACING is now always defined.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 15:10:34 +00:00
Ingo Weinhold
6bf15ffcdc * Changed macros that enable tracing for individual components from
defined/undefined to numeric values (0 for undefined). This allows for
  trace levels.
* Set SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT default to 1, since this is
  what one usually wants.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 14:24:18 +00:00
Jérôme Duval
5975ad0cfc if no menubar is found in the archive, recreate one to avoid crashing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 14:18:39 +00:00
Ingo Weinhold
b2d95c3c1d * Reverted r25209. We need the symbol even with tracing disabled, since
modules could use it. Moved the tracing_stack_trace definition out of
  the conditional section instead.
* Made the TraceOutput::Print()/PrintStackTrace() method no-ops when
  tracing is disabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 14:00:37 +00:00
Stephan Aßmus
1cae077af9 Applied patch by Philippe Saint-Pierre with some changes by myself:
* Added Revert button and Revert feature. The time at which the preflet
  is started is remembered, the uptime of the preflet is calculated
  via system_time().

TODO: Better placement for the Revert button. Currently it looks like it can
only revert date changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 12:10:19 +00:00
Rene Gollent
fe2edb706d This function needs to be conditional on ENABLE_TRACING also, otherwise the build breaks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 06:18:55 +00:00
Ingo Weinhold
2be0b7cc43 Added paranoia checks. They reveal that a net buffer data node is freed
twice when running the OpenSSH "forwarding" test, which corrupts the
slab's object list. It's not quite clear to me yet why that happens.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25208 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 03:22:26 +00:00
Ingo Weinhold
2b8ae28a15 * Added kernel tracing. Even with optional stack traces.
* Added "mode" parameter to set_paranoia_check(), which specifies
  whether the check is supposed to already exist/not exist yet. This
  allows for, as it turns out, very useful additional tests. Added
  {ADD,UPDATE}_PARANOIA_CHECK macros that imply the used "mode"
  parameter.
* PARANOIA_SLOT_COUNT was accidentally redefined in the source file.
* Fixed remove_paranoia_check(). It didn't remove anything.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 03:14:36 +00:00
Ingo Weinhold
65f4015279 Support for stack traces in tracing entries:
* Added capture_tracing_stack_trace() which allocates space in the
  tracing buffer and captures the stack trace according to the given
  parameters.
* Added TraceOutput::PrintStackTrace() to print a stack trace thus
  created.
* Added TraceEntry::DumpStackTrace() callback which is supposed to print
  a stack trace for the entry, if it can do that.
* Added "--stacktrace" switch to the "traced" command, which causes the
  stack traces for all entries that have one to be printed as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 03:02:01 +00:00
Ingo Weinhold
4dd0a2c7b6 Added arch_debug_get_stack_trace() that can be used to get a stack trace
(the list of return addresses) for the current stack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-27 02:54:27 +00:00
François Revol
d4a5975f50 - some fields needed to build usb_serial
- use the dano version by default
- s/ddraquire/ddaquire/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 23:52:58 +00:00
Stephan Aßmus
df5030c7e3 * Include KMessage in libbe_haiku.so again.
* Export a fake _get_port_message_info_etc() for KMessage in libbe_haiku.so

This fixes the build of the app_server test environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 21:57:22 +00:00
François Revol
3196359ad2 - some more defines
- the dano version is exposed as v1.1 so drivers can use select with a simple ifdef
- add copyrights from the tty driver as I'll be copying code from it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 21:56:46 +00:00
Stephan Aßmus
f709730477 Fix the build of the registrar for the app_server test environment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 21:55:26 +00:00
François Revol
9fa346e6cc - TRACE() def
- rename private header


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 21:37:17 +00:00
François Revol
42889352f8 A stubbed tty bus manager.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 21:20:13 +00:00
Ingo Weinhold
7526aa66f4 Removed some leftover junk.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 20:50:03 +00:00
Ingo Weinhold
67411c9d36 Added object cache kernel tracing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 20:32:41 +00:00
Ingo Weinhold
0d5ea6e6cf Added some paranoia debug code. We track only the buffer size ATM, and
check that is remains the sum of its data node used sizes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 20:31:51 +00:00
Ingo Weinhold
0efc7a1ed7 Temporarily added the /boot/home/config/* paths to the executable,
library, and add-on search paths. Can be removed again, when certain
optional packages have been moved to /boot/common.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 20:28:20 +00:00
Ingo Weinhold
dfa611bb04 Added paranoia checks debug facility. It helps checking that data in
memory haven't changed behind one's back.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 20:25:02 +00:00
François Revol
34c28c694b Header guard and copyrights.
Pets Pe's HeaderGuard and HeaderHeader extensions :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 20:14:09 +00:00
François Revol
99734c6841 Missing close() calls just for the sake of it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 19:35:00 +00:00
Jérôme Duval
e8bc20e263 updated mesa to 7.0.3
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 16:33:15 +00:00
François Revol
2f5d215b2e Fix building for BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 15:58:25 +00:00
François Revol
afdc7c3064 Use the new mem barrier funcs from the kernel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 15:25:46 +00:00
François Revol
807cf76df0 memory barrier functions available for drivers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 15:18:04 +00:00
Jérôme Duval
66cb27d82e patch from JiSheng which fixes firewire build warnings and fix atomic_set_int to use atomic_or
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 15:02:43 +00:00
François Revol
d7f85ef122 Fix build for non-intel, but we miss a barrier implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 14:32:30 +00:00
Axel Dörfler
13bbfe422b * validate_instantiation() also needs to add the BPrivate namespace in case
it couldn't find the class on first try. This fixes the problems mentioned
  by Shinta as part of bug #2086.
* Got rid of GetNumber() - there is a POSIX function strtoul() for exactly
  this purpose.
* demangle_class_name() can now fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 14:28:16 +00:00
Jérôme Duval
b735dc91eb I don't remember why this was added. Fixes bug #2165
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 13:54:39 +00:00
Jérôme Duval
fc1ca2da5c style cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 12:16:53 +00:00
Axel Dörfler
5b89ed13fd Added the BeServed sources into our repository. They are licensed under the
terms of the MIT license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25176 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 11:46:00 +00:00
Jérôme Duval
d6e065401f style cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 11:41:05 +00:00
Jérôme Duval
3bfa2d1223 style cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 11:33:08 +00:00
Jérôme Duval
a74d92608d style cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 11:31:00 +00:00
Jérôme Duval
2ad7bf44d0 Patch from Shinta, this fixes bug #2097. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 11:13:53 +00:00
Ingo Weinhold
e6f011edbe Disabled BeOS work-arounds for Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-26 00:57:12 +00:00
Axel Dörfler
f8a2f7ce58 * attribute dirs shouldn't be locked out either; I've inverted the type check,
so that it now only checks for the type that allow locking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 22:44:03 +00:00
Ingo Weinhold
3152304e53 Moved creation of the kernel tracing entry for exec_team() to a later
point where the argument vector has already been copied to the kernel.
Before it was crashing when the syscall provided a bad address.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 21:42:04 +00:00
Ingo Weinhold
0f75d28cb4 NULL terminate the default argument vector. It is passed to execve().
Fixes #2160.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 21:32:11 +00:00
Ingo Weinhold
977d7846f5 * Unbroke Inode::IsDirectory() again, according to Axel's suggestion.
* Simplified Inode::IsContainer().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 21:17:45 +00:00
Bruno G. Albuquerque
d81dcabe8e FS gurus, please review.
- get_new_fd() now checks if we are dealing with attributes before deciding to
  bail out on a locked vnode.
- Enabled locking in MailSettings again as it now works.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 19:45:40 +00:00
Bruno G. Albuquerque
68d6c8f169 - Remove directory locking for Chain creation until BNode::Lock() is fixed.
- Creating 2 chains at the same time will result in problems now, but this is
  something unlikelly to happen (although not impossible).
- Added TODOs related to this.
- MDR is usable again inside Haiku and you can actually send emails when
  creating a mixed inbound/outbound account.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 15:58:44 +00:00
Bruno G. Albuquerque
3dd2f0667e Shame on me. The node is actually unlocked in close_fd().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 15:33:35 +00:00
Bruno G. Albuquerque
8ce1d51721 From the BeBook:
Node Locking

Another feature provided by the BNode class is "node locking": Through BNode's
Lock() function you can restrict access to the node. The lock is removed when
Unlock() is called, or when the BNode object is deleted.

There is still something wrong with locking though. For example, it looks like
WriteAttr() fails on the node when we lock it (File Busy) but it should not.
The lock acquirer should be able to call WriteAttr() on it.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 14:50:57 +00:00
François Revol
2bea381578 gcc4 complains about missing proto for strcpy().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 12:47:07 +00:00
François Revol
e65c298c0e Add memrchr for ppc and m68k too. Please don't forget other archs when adding stuff :P
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 12:22:11 +00:00
Axel Dörfler
c4d143146c * fDragBitmap was never initialized, leading to occasional crashes after the
first mouse click.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 11:39:47 +00:00
Stephan Aßmus
d092f4d8df Appearently, PopState() should flush right a way if not in a transaction,
or else the server will keep working with the state and especially a clipping
region which should not be effective anymore. This fixes one problem I could
observe with my test app.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 11:10:08 +00:00
Stephan Aßmus
a49de3208c Reordered methods a bit. SetOrigin() and so on is state related. PopState()
PushState() should be at the top of the state related methods.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 11:07:51 +00:00
Stephan Aßmus
f62ed7b359 Wrong subfolder in Jamfile
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:59:14 +00:00
Stephan Aßmus
ce158b43fc Enabled the test apps I added.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:53:45 +00:00
Stephan Aßmus
cda5b8808f A test I am currently working on which is supposed to behave a bit like
Firefox. It stores the active clipping region of a view when Draw() is
invoked, and uses that for asynchronous drawing. The test already shows
a couple of problems. When PushState() / PopState() is used, it is not
equivalent to ConstrainClippingRegion(&someRegion) /
ConstrainClippingRegion(NULL). Another problem shows when adding delays
(currently disabled), there should not be any difference, regardless of
how much delay is inserted into the asynchronous drawing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:53:23 +00:00
Stephan Aßmus
b35b070b59 A test I used for debugging Pe's scrollbar problems. (SetSteps() influences
proportion if proportion was never set.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:50:12 +00:00
Stephan Aßmus
d88d001f35 A test I used for checking ConstrainClippingRegion() with regards to states,
scales and origins.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:49:30 +00:00
Stephan Aßmus
0a6ef8179c I have no idea anymore what I was messing with here, but it looks interesting.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25147 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:47:55 +00:00
Stephan Aßmus
e7187dd0f0 * Removed no longer needed work around when Showing buttons.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:01:29 +00:00
Stephan Aßmus
ee7cf06d20 * Added link flushing where the change is supposed to happen as soon as
possible on the server side (for example Show() and Hide() need to be
  immediate). But also SetViewColor() and a few others. This fixes the
  bug encountered in Pairs.
* Removed NOTE in DrawAfterChildren(), since it was outdated.
* Corrected a typo in a comment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 10:00:37 +00:00
Ingo Weinhold
fd4a010b05 rename() is supposed to fail when the target exists and is not a
directory only if the source is a directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 03:21:14 +00:00
Ingo Weinhold
acb16f5574 * Added missing select notifications on shutdown().
* Notify read/write instead of write/error when disconnecting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 02:56:03 +00:00
Ingo Weinhold
98e94e0a76 For sockets in listening mode the read_avail() apparently has to return
something.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 01:11:59 +00:00
Ingo Weinhold
210199c5a7 * Resolved {g,s}etrlimit() TODO's, i.e. moved the implementation into
separate functions and made the set errno correctly.
* Added RLIMIT_CORE case. We don't support core dumps, but setting them
  to disabled shouldn't fail anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 01:08:07 +00:00
Ingo Weinhold
d11e733fee * Allow passing sub vnode ops and publish flags to Inode::Create().
* Implemented create_special_node() hook.
* Fixed Inode::IsContainer()/IsDirectory().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 01:04:48 +00:00
Ingo Weinhold
0951fcb4a3 vfs_create_special_node() always tried to create the node in "/".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 01:02:12 +00:00
Ingo Weinhold
1669306c8a Use the short way of opening a pty.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 21:31:45 +00:00
Ingo Weinhold
cc6e7cb347 Added the BSDish openpty().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 21:30:38 +00:00
Ingo Weinhold
fb913b19be Added POSIX functions posix_openpt(), grantpt(), ptsname(), and
unlockpt(), which provide a portable way of opening a pty.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 21:29:13 +00:00
Ingo Weinhold
06b7c7ffe2 * Set reasonable terminal flag defaults. This makes telnetd fully usable
again.
* Publish /dev/ptmx. Opening it will open a fresh pty master. In
  principle /dev/pt/ is obsolete now, but I guess we keep it around for
  compatibility with BeOS. Though there shouldn't be many applications
  opening a pty, that we might be interested in...
* New ioctls B_IOCTL_GET_TTY_INDEX (returns the tty index) and
  B_IOCTL_GRANT_TTY (grants tty slave access rights).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 21:26:35 +00:00
Ingo Weinhold
719f971dea Controlling terminal related changes:
* It is possible to acquire a tty that is already open, iff it is not a
  controlling terminal yet and the process is a session leader.
* Also set the terminal process group when acquiring a controlling
  terminal.

telnetd/login and sshd are a lot happier now (and so am I :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 21:16:57 +00:00
Ingo Weinhold
e225a906d2 With my recent changes release_sem_etc() accidentally lost the
cleverness to reschedule only, if it actually unblocked another thread.
Should have been the reason for #2152 (overall slowdown).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 20:04:43 +00:00
Axel Dörfler
2909d9dc26 * Factored a delete_notification() that is now used in three places.
* remove_transaction_listeners() was checking the events_pending field without
  holding the sNotificatonLock - that should have been harmless (as we're in the
  middle of deleting the transaction), but it now looks better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 16:23:10 +00:00
Ingo Weinhold
dcc3839464 Check the shadow password under Haiku, when available. ftpd works again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 16:07:59 +00:00
Ingo Weinhold
d1dc42cc73 "/bin/bash" is a valid shell, too. ftpd doesn't allow anyone to login,
who has a shell not returned by getusershell().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 16:07:02 +00:00
Ingo Weinhold
9afa8bc573 Small test that repeatedly connects to a server. Under Haiku after
several iterations the connect()s start to fail -- first occasionally,
later quite often.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 15:18:05 +00:00
Ingo Weinhold
2838616b17 Translate connect()s to INADDR_ANY to INADDR_LOOPBACK. Not sure, if that
is required, but Linux seems to do it. It also allows us to create
AF_INET socketpair()s -- not really needed, but probably nice for
testing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 14:19:58 +00:00
Axel Dörfler
701d196668 * Inode::_GrowStream() did not make the double indirect block writable before
adding a block to its array. This could cause all kinds of trouble, and
  fixes at least a part of #2148.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 11:28:41 +00:00
Axel Dörfler
89eb861a3e * Large cleanup. Removed inconsistent usage of errno in instantiate_object();
instead, it will now use the image_id parameter to store errors in.
* find_instantiation_func() and validate_instantiation() will no longer
  overwrite errno with B_OK.
* Made private functions static, and moved them to the top.
* If the class name starts with '_', it will now try to add a BPrivate namespace
  in case it could not find the class. This should help with the compatibility
  issues Shinta reported (also part of ticket #2086).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 09:56:03 +00:00
Axel Dörfler
991c062ff3 * Made the archive version of BTextControl::_InitData() more resistant against
a broken archive - it will now create a new _BTextInput_ child, if it couldn't
  find one. This fixes #2086.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 09:52:27 +00:00
Ingo Weinhold
cfb0e47367 Fixed the write behavior: Blocking writes should write what they can
and loop until everything has been written. Non-blocking writes should
write as much as they can and return B_WOULD_BLOCK, if that wasn't the
whole request.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 02:23:24 +00:00
Ingo Weinhold
5843f17cb8 When splitting the send request into multiple buffers, we must
succeed after we have successfully sent the first buffer, even if not a
single byte of some following buffer could be sent. We should probably
even succeed whatever the error code -- not sure what is the reason
for only doing that for B_WOULD_BLOCK and B_INTERRUPTED.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 02:20:00 +00:00
Karsten Heimrich
ccf92546c4 * remove and delete listview items
* removed unmaintained fNode var from listview
* don't exit just in case we can't load the icons,
  instead draw an string what the default printer is
* call create_directory only if the printers dir does not exist



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-23 22:32:14 +00:00
Stephan Aßmus
0babd6b999 Applied patch by Philippe Saint-Pierre:
* Add spacing around the tab view.

Thanks, Philippe! BTW, the tab view will come in handy again, now with the
additional options that sub-pixel rendering is going to offer... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-23 20:40:23 +00:00
Ingo Weinhold
f0a15ccac2 * When appending/prepending data to a buffer we kept the initial
reference to a newly created header. It would thus not be deleted when
  the new node (which also has a reference) was removed again.
* Added debugger command "net_buffer_stats" which prints the allocation
  counts of net buffers and data headers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-23 18:41:49 +00:00
Ingo Weinhold
5b29b956f3 Replaced the reader/writer blocking semaphores by condition variables.
This fixes race conditions. The OpenSSH tests don't hang anymore --
instead they run the system out of memory, apparently due to a net
buffer/data node leak.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-23 17:10:30 +00:00
Axel Dörfler
74a7b3ff69 * Wrote a test application that tries to fragment your disk by creating many
small files, and then deleting every other.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-23 12:44:00 +00:00
Stephan Aßmus
69e62e48b9 Added Pairs game contributed by Ralf Schuelke to the image! (Demo folder)
Thanks a lot, Ralf!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-23 09:06:05 +00:00
Rene Gollent
291b899af6 When saving its state, BShelf was erroneously saving the BMessage
given to it when the replicant was first added. This had the net 
effect that any on the fly changes such as the color drops allowed
by the Activity Monitor replicant were discarded. Fixed.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 22:44:40 +00:00
Axel Dörfler
32bcfcf6a9 Some more changes towards a working prototype:
* The "net" driver is now also loaded.
* The node tree is now dumped.
* If registering fails, the node is now removed from its parent again 
  (for now, correct would be to release it).
* device_node::_RegisterDynamic() now also checks for the driver path.
* _RegisterFixed() no longer calls supports_device() - since it has been
  directly specified, we will assume the user knows what he is doing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 21:52:10 +00:00
Ingo Weinhold
71a49db6b6 Use the thread blocking functions instead of a condition variable for
read request. Can probably be done for writers as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 21:47:54 +00:00
Ingo Weinhold
023bf5fcda * Added support for timeouts.
* Added support for non-published condition variables. One has to call
  Init() on those, and add entries directly with the
  ConditionVariable::Add() method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 21:46:23 +00:00
Karsten Heimrich
a017bfe8de * use HVIF icon on HAIKU, resolves ticket #1802
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 21:40:15 +00:00
Karsten Heimrich
4aa5d96613 * invalidate only the items in question, should fix ticket #1803
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 21:31:28 +00:00
Jérôme Duval
9fdd497614 * typo in Control
* layout the view even in the case of an unarchived one
* this should finally fix #2121


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 21:26:10 +00:00
Axel Dörfler
cd81456e14 Just a minor bug that caught my attention while glancing at the code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 19:55:33 +00:00
Ingo Weinhold
60222c8bac * Made thread_block_with_timeout_lock() more user-friendly. It allows
passing 0 as timeout flags or B_INFINITE_TIMEOUT as timeout, in which
  case no timer will be used.
* Implemented missing thread_block_with_timeout().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 19:46:08 +00:00
Jérôme Duval
d5b26be18c restores the text controls before using SetValue() since this one uses them
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 19:13:00 +00:00
Ingo Weinhold
c2d96d4500 Added back accidentally removed check for B_THREAD_SUSPENDED when
delivering a kill signal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 19:01:23 +00:00
Axel Dörfler
43bae01508 * Made waiting for a timer handler more power usage friendly.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 18:46:34 +00:00
Ingo Weinhold
6cef245eca * Detemplatized ConditionVariable{Entry}. Merged them with their
respective Private* base class.
* Changed sigwait() and sigsuspend() to use thread_block() instead of a
  condition variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 18:32:15 +00:00
Ingo Weinhold
b95f6d4710 * Introduced a set of functions (thread_prepare_to_block(),
thread_block(), thread_unblock(),...) that allow a thread to wait for
  something without needing a semaphore or condition variable. It can
  simply block and another thread can unblock it. Supports timeouts and
  interrupting. Both semaphores and condition variables use this
  common mechanism, now.
* Semaphores:
  - Some simplifications due to the thread blocking mechanism.
  - Changed locking order to sem -> thread. It was the other way around
    before and when introducing the wait_for_objects() support I had
    also introduced a situation where the locking was reverse, which
    could potentially cause a dead lock on SMP systems.
  - Instead of queueing thread structures, a semaphore queues
    queued_thread entries now, which are created on the stack. The
    thread::sem structure could thus be removed.
  - Added sem_entry::net_count, which is sem_entry::count plus the
    acquisition count of all waiting threads. This number is needed in
    remove_thread_from_sem() and instead of computing it there we
    maintain it.
  - Fixed remove_thread_from_sem(). It would not unblock threads, if
    the sem count was <= 0.
  - Made sem::last_acquirer unconditional. It is actually needed for
    sem_info::latest_holder. Fixed fill_sem_info() accordingly.
  - Added some optional tracing output, though only via ktrace_printf().
* Condition variables:
  - Could be simplified significantly through the use of the thread
    blocking mechanism. Removed a good deal of unnecessary code.
  - Moved the ConditionVariableEntry "flags" parameter from Wait() to
    Add(), and adjusted all places where condition variables are used
    accordingly.
* snooze() uses thread_block_with_timeout() instead of a semaphore.
* Simplified thread interrupting in the signal and user debugger code.
  Instead of separate functions for threads waiting on a semaphore or
  condititon variable, we only have a single thread_interrupt(), now.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 16:22:42 +00:00
Ingo Weinhold
e01cebeb0a * cancel_timer():
- If the hook of the timer we're cancelling is currently being
    executed, we do now wait till it is finished. This is how the BeBook
    specifies the function to behave.
  - Periodic timers would not be cancelled, if their hook was being
    invoked at the same time, since they weren't in the queue during
    that time.
  - Since we know the CPU on which the timer is scheduled (timer::cpu),
    we don't have to look through any other CPU queue to find it.
  - Fixed the return value. It should report whether the timer had
    already fired, and was not always doing that.
* Added private add_timer() flag B_TIMER_ACQUIRE_THREAD_LOCK. It causes
  the thread spinlock to be acquired before the event hook is called.
  cancel_timer() doesn't wait for timers with the flag set. Instead we
  check in the timer interrupt function after acquiring the thread
  spinlock whether the timer was cancelled in the meantime. Calling
  cancel_timer() with the thread spinlock being held does thus avoid any
  race conditions and won't deadlock, if the event hook needs to acquire
  the thread spinlock, too. This feature proves handy for some kernel
  internal needs.
* The scheduler uses a B_TIMER_ACQUIRE_THREAD_LOCK timer now and
  cancel_timer() instead of the no longer needed
  _local_timer_cancel_event().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 15:29:22 +00:00
Axel Dörfler
1201d52e6c * Color drops for the data source color are now only accepted on the colored
box, added a new method _LegendColorFrameAt() that returns that area, and
  is also used when drawing it.
* Fixed changing the history background color; it accidently changed the color
  of the wrong view. This fixes bug #2115.
* If the history gets too dark, it will now lighten up the scale, instead of
  drawing it even darker.
* Changing the color of a data source now immediately redraws the colored box,
  too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 15:14:51 +00:00
Ingo Weinhold
0970b97bed Added support_kit_config.h configuration header. ATM it only contains a
setting to force BLockers to be semaphore style. This may help with
debugging deadlocks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 15:04:01 +00:00
Ingo Weinhold
93027f442f Added "straced" debugger command which basically works like "traced",
but also prints post syscall entries not matching the filter, if the
respective pre syscall entry matched. This way one also sees the syscall
return values. Works only in forward direction ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 14:57:50 +00:00
Ingo Weinhold
f97199edd3 Made dump_tracing() (the "traced" command function) available in the
kernel and added a WrapperTraceFilter* parameter, which allows for
additional filtering. This way other commands can print tracing output
with special filtering. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 14:52:48 +00:00
Ryan Leavengood
0039ad59fa Committing patch from Alex Roman, with a few small changes. This updates the NFS file system to the latest file system interface. Untested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-22 04:41:30 +00:00
Jérôme Duval
157c0ced17 don't try to archive BHandler::fName when it is null
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-21 20:52:00 +00:00
Axel Dörfler
f4103e2b13 Reverted r25084, and fixed bug #1762 again as suggested by Korli on the mailing
list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 21:22:16 +00:00
Michael Pfeiffer
7ca9a33b59 Highlight selected menu item with > ... <.
Moved global variables on the stack.
Hide cursor while menu is displayed.
Print error message at correct location.
Reboot on error.
Display "Loading <name>".

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 18:42:59 +00:00
Michael Pfeiffer
7b51470a32 When writing the MBR, don't overwrite disk signature and the reserved word.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 18:29:48 +00:00
Ingo Weinhold
ccce5afa3c Added simple test that demonstrates that unblocking threads waiting on a
semaphore after an interrupted one is broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 17:49:45 +00:00
Jérôme Duval
c4157c8ddb as noticed by Axel, InitObject is also used by other constructors: we init fStyle in the BArchive constructor instead.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 17:47:11 +00:00
Jérôme Duval
9091f4469b added pthread_sigmask based on sigprocmask()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 16:56:39 +00:00
Jérôme Duval
727f8f30c8 _QuitAllWindows()) calls _WindowQuitLoop() twice but we don't want to check two times a window (hence the use of the xor operator)
this fixes bug #1762 (Installer: trying to close it via alt+q shows warning twice)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 16:47:30 +00:00
François Revol
0efb25854a - login window should be visible on all workspaces
- add a DesktopWindow that can show replicants. To edit the shelf run Login --edit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 16:14:53 +00:00
Jérôme Duval
3d9c0d7c37 Patch from Shinta: fStyle defaults to B_FANCY_BORDER
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 16:04:45 +00:00
Jérôme Duval
27ec8243b2 fixed bug #2101 : normalize user paths, use localType for links
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 15:57:54 +00:00
Ingo Weinhold
8db2e37492 Removed the feature that a thread can wait for more than one condition
variable at once. It wasn't used anymore, and the code gets simpler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 15:19:48 +00:00
Ingo Weinhold
66aac81e98 We use only a single condition variable (instead of thread different
ones) for wait_for_child(), which is notified when any job control
condition (child dead, stopped, continued) occurs. These events are
relatively rare anyway, and it simplifies the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-20 15:15:58 +00:00