Commit Graph

11650 Commits

Author SHA1 Message Date
Ingo Weinhold 27a5523990 * Dealt with (hopefully) all open/close race conditions.
* Implemented unblocking of pending operations when closing a cookie.
  Needed to change the simple one reader semaphore, one writer
  semaphore strategy for blocking to a request queue based approach
  (otherwise unblocking would have been really hairy).
* Implemented select() support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:31:35 +00:00
Ingo Weinhold fa062b9f09 Added SemaphorePool class.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:24:05 +00:00
Ingo Weinhold 2efc846c8a * Added delete_select_sync_pool().
* A new select sync pool entry wasn't really added to the pool.
* More debug output.
* The semaphore created in common_{select,poll}() needs to be created
  with count 0, otherwise we won't block.
* A serious race condition remains in common_{select,poll)(). When a
  selected FD is closed we can't deselect select events anymore, so
  that subsequent notify_select_events() issued by the FS/driver might
  write into already free()d memory. A solution would be to get_fd()
  the involved FDs and operate directly on them instead of using the
  indices. I'm just too lazy to do that now.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:15:33 +00:00
Ingo Weinhold 1cebd061c3 Added delete_select_sync_pool() to clean up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:07:29 +00:00
Ingo Weinhold c379e6fed2 Added libdebug.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:06:29 +00:00
Ingo Weinhold 362e09b124 In case of a debugger() call now also prints the debug message. Makes use of the new libdebug.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:06:13 +00:00
Ingo Weinhold 0a064776ae Added the beginnings of a small private API for debug support.
Entirely implemented on top of the public <debugger.h> API, but more
convenient to use. Lives in a separate library libdebug.so.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:04:04 +00:00
Ingo Weinhold 8af41139d5 Added default constructor. Useful in combination with SetTo().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 21:59:51 +00:00
Andrew Bachmann 8080d00048 link to libroot.so instead of root, so uname is available
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 21:56:49 +00:00
Jérôme Duval 41c243b187 renamed key_map.cpp to main.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 12:54:11 +00:00
Jérôme Duval bbd5db1a61 relative path for header search
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 12:48:57 +00:00
Jérôme Duval f28587e165 removed .cvsignore files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 12:31:46 +00:00
Adi Oanca 464ebc06c7 Some extra locking when adding a WinBorder
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 19:08:19 +00:00
Adi Oanca 07bde8ab89 * solved that damn bug that run me into debugger. yuppyyy.
* removed some comments
* mouse down messages go only to the view that has focus. Yeah, they didn't. :p
* solved a bug where some windows did not redraw when hiding a modal.
* another bug where a floating window would not come in front for gaining focus.
* added client's team_id into window title.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 18:58:47 +00:00
Axel Dörfler b55be0692f Fixed a copy&paste error that prevented _user_close() from working
correctly (it would have closed kernel file descriptors instead...).
Updated/improved docs a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 03:22:34 +00:00
Axel Dörfler 15e795e9ff Implemented vm_translation_map::protect() for x86. vm_set_area_protection()
now uses this one instead of using map() for every single page - this should
be faster in most cases, and also, more importantly, does not mess up the
map_count counter anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 03:07:33 +00:00
Axel Dörfler 1ff0923db6 Removed the old (and nowadays unused) addons directory and related headers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 02:35:40 +00:00
Axel Dörfler b5f8ce37cc Apparently, the $(DOTDOT) stuff does work as expected; it only seems
to work when jam was executed in the local directory (as I did for testing).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 02:34:08 +00:00
Axel Dörfler 52fe8bf7a8 Minor header cleanup: moved some headers to better matching directories,
removed unused headers. Adapted sources to still compile with the new
header locations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 01:58:05 +00:00
Axel Dörfler 46c1b0d6db The bin/ directory has been moved out of apps/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 01:10:29 +00:00
Axel Dörfler f8f9af756d KMessage.cpp has been moved but is also compiled into libbe.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 01:09:36 +00:00
Axel Dörfler 98cf460090 Moved bin/ out of apps/, make it build again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 00:39:42 +00:00
Axel Dörfler 17049c451a Moved bin/ directory out of apps/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 00:09:19 +00:00
Jérôme Duval 66040a8d99 keymaps have been moved
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 19:05:19 +00:00
Adi Oanca 48e72f82e6 Removing subset windows works now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 19:00:45 +00:00
Axel Dörfler a7779c5ae0 The color quotes mechanism now also accepts the unusual '|' as quote symbol,
so that mails I get from Mr. Wilber are shown correctly, too :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 18:19:45 +00:00
Adi Oanca e4365762e6 added AS_ROOTLAYER_REMOVE_FROM_SUBSET
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 18:01:33 +00:00
Jérôme Duval 62526cc715 Moved keymaps to the common place for data files like timezones
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 17:05:46 +00:00
Axel Dörfler f22f934cd8 Moved KMessage.cpp from util/ to messaging/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 16:31:40 +00:00
Jérôme Duval 1929784f0c Removed unused files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 10:43:58 +00:00
Jérôme Duval a84a3aae19 Renamed hid in usb_hid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 10:07:20 +00:00
Axel Dörfler 1000949230 Removed the drivers/ directory; it was not used anymore. All current drivers
are in src/add-ons/kernel/drivers/.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 02:53:52 +00:00
Axel Dörfler e17c805d8f Competely outdated and not maintained; no reason to keep it around.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 02:36:43 +00:00
Axel Dörfler 9f7112f72e Moved debugger related files to debug/, moved utility files into util/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 02:13:09 +00:00
Axel Dörfler 1e5006ddc3 A bit more debugging output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 02:10:19 +00:00
Axel Dörfler 74b043d98d Removed execute property that was set accidently (since CVS days).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:50:45 +00:00
Axel Dörfler afd64c82e7 Moved kernel/vm2 to tests/kernel/vm2.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:43:25 +00:00
Axel Dörfler a2e1b654dd Added a test program for the advisory locking via fcntl() - covers many but not all cases.
Makes sure the test apps will also build with target=haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11894 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:32:17 +00:00
Axel Dörfler 7860b7bfe7 Added support for the B_CHECK_PERMISSION flag - this one should really
be private, as it serves no useful purpose outside of the kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:26:05 +00:00
Axel Dörfler 9391dd214d Fixed broken handling of the new file_descriptor::open_count across
team boundaries; if you didn't actually call close() from within the
application, the close-hook of the file system was never called.
Also, you could close files of other teams (ie. invoke close on a
shared file descriptor).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:24:11 +00:00
Nathan Whitehorn 6d92b10268 Upgraded the bus manager interface. It's now capable enough to start actually doing interesting things, like power management, thermal stuff, and hyperthreading.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 00:41:53 +00:00
Axel Dörfler e5fb71cba9 Removed the executable property that was accidently set on these files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 23:01:11 +00:00
Axel Dörfler 4fe6ab6b05 Removed executable property these files accidently had set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 22:58:04 +00:00
Axel Dörfler 0a99f533c2 Fixed the race condition in acquire_advisory_lock() by using the new switch_sem() function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 22:55:20 +00:00
Axel Dörfler 34e92cad76 Added and implemented new system calls switch_sem() and switch_sem_etc(); even if
they are public now, they might become private later on.
It's almost the same as acquire_sem() but allows you to release another semaphore
atomically. This makes condvar implementations and the like very simple to do.
Added B_CHECK_PERMISSION flags to the user calls, although it's not honored yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 22:35:00 +00:00
Ingo Weinhold 63531836b9 * Added a small private API (<fs/select_sync_pool.h>) to support FSs
and drivers that need to provide special select() support with
  managing select notification information.
* Renamed vfs_select.c to *.cpp and fixed the resulting C++ compiler
  errors. Added tracing macros.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 21:27:01 +00:00
Niels Sascha Reedijk 185851766a Test commit to see whether the CIA bot is listening (2)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 21:12:17 +00:00
Ingo Weinhold cbc6d404f9 Added missing select()/deselect() Hooks to the file system interface
and made sure they are called by the VFS, if existent.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 21:04:25 +00:00
Niels Sascha Reedijk b79e591f44 Test commit to see whether the CIA bot is listening
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11883 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 21:00:55 +00:00
Ingo Weinhold d49f1b87a0 We were handling closing of file descriptors incorrectly. The close_*()
and free_*_cookie() hooks of the underlying FS were always called
together when the reference count of the FD dropped to zero. When
blocking operations (reading/writing) on the FD were still in progress
this would never happen, though. Now we additionally maintain an open
count and call the close_*() hook when it drops to zero.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 20:25:07 +00:00