Commit Graph

613 Commits

Author SHA1 Message Date
Axel Dörfler
da758f9fce * team::args is now correctly filled in.
* the member will now also be shown when dumping a team.
* minor cleanup: moved fill_team_info() into the private functions part of the file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 12:56:27 +00:00
Travis Geiselbrecht
c4546ea038 A fix for the double-fault on bootup:
-Turns out the area removal routine had a massive race condition inside
vm_put_area(). Basically the area was removed from the address space's
area list before the pages were unmapped, so the vm could (and would)
recycle the space before the pages were finally unmapped.

It was completely reproducable on my machine during initialization of a bunch
of storage drivers that were bringing the locked_pool module into and out of
existence, which caused a thread to be spawned and stopped in rapid sucession.
On a dual processor machine, it was possible for the new thread to be started
up while the old one was still shutting down, and the kernel stack of the new
one would get wiped out.

Note, there still is a page ref counting problem with this area removal code.
It doesn't decrement the ref count of the page as it unmaps it. Will have to 
figure that out.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 09:38:00 +00:00
Travis Geiselbrecht
9bc7a58b1d Fixes a nit:
put a spinlock around the serial debug routines to keep multiple
cpus from interleaving their output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 07:23:39 +00:00
Travis Geiselbrecht
c3a89b90d3 fix the 'cache_ref' and 'cache' kdl commands
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 04:29:39 +00:00
Jérôme Duval
c20e9eefcd added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image
commented the insertion of the attribute name in patterns in the case of a string attribute
notify_probe_by_file chooses a module based on a bus specific suffix
dm_register_child_device has a parameter to optionally check the support for the node
added scanning of bus devices after the boot filesystem is mounted
fixed dm_rescan, locking was misbehaving
fixed SYSTEM_DRIVER_REGISTRATION definition
added B_DRIVER_MAPPING attributes for PCI and ACPI devices:
  %vendor%_%device% for PCI, hid_%hid% and type_%type% for ACPI
moved acpi_device_module_info definition to public ACPI.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 19:09:45 +00:00
Stephan Aßmus
1f1316fc68 My first commit to the kernel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-19 00:30:18 +00:00
Jérôme Duval
01b06fcc52 commented raw type handling, as it doesn't work for now
added a user friendly mode for listdev: it works for PCI


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-12 17:22:29 +00:00
Jérôme Duval
bef4e1fc77 * each device manager node has now an autogenerated identifier
* added a generic syscall for device_manager
it enables to iterate the device manager tree from userland
* the listdev tool is now using it: it's still incomplete as it only dumps nodes and attributes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-12 15:28:09 +00:00
Jérôme Duval
2bc2898a84 fix warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-10 20:26:54 +00:00
Jérôme Duval
c74d27255b avoid crashing at the end of the list
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-07 00:51:33 +00:00
Axel Dörfler
0ad660a168 Remap all preloaded executables read-only and executable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-02 20:38:30 +00:00
Axel Dörfler
095ee89840 Fixed warning with debug info turned on.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-25 15:29:41 +00:00
Axel Dörfler
d12497173a Fixed PPC kernel build (and a warning).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-13 11:35:28 +00:00
Axel Dörfler
6e7dc54655 Fixed GCC 4 warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-13 11:23:34 +00:00
Axel Dörfler
78d0219799 Fixed GCC 4 warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-13 10:49:08 +00:00
Axel Dörfler
4e4c58037e Implemented collapsing forked vm_cache object chains when they become unused.
This fixes bug #227 by closing that memory and semaphore leak.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-10 22:47:00 +00:00
Axel Dörfler
bcf2f8133b * Fixed a big memory leak: vm_delete_areas() did not put the reference of the
address space of reserved areas - IOW address spaces were never freed upon
  team exit.
* dump_cache() now prints a list of the cache's consumers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-10 22:42:12 +00:00
Axel Dörfler
45894e1088 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19039 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-10 22:39:57 +00:00
Axel Dörfler
a7181e951d Accidently turned on printing stack traces with the last commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-10 17:27:03 +00:00
Axel Dörfler
0b8e0bfc08 Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-10 17:25:38 +00:00
Axel Dörfler
d593e74a27 First steps towards being able of collapse vm_cache objects after forking:
* a vm_cache now maintains a list of its "consumer" caches.
* introduced to new functions that add/remove consumer to a cache (instead
  of only maintaining the vm_cache::source field).
* fixed the incorrect reference counting when doing copy-on-write; we kept
  one ref too many of the lower cache.
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-10 17:16:06 +00:00
Axel Dörfler
02cc779b7d Moved datastore implementation into net_buffer.cpp - there is no reason to clobber the kernel with it.
This also fixes the issue of exporting a C++ API from the kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 18:27:30 +00:00
Axel Dörfler
5af206180e Removed executable property.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 18:09:27 +00:00
Marcus Overhagen
83bf699b3f some build fixes for pxe_ia32 platform
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 12:52:20 +00:00
Marcus Overhagen
7c3aba03bc git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18961 a95241bf-73f2-0310-859d-f6bbb57e9c96 2006-09-28 12:03:26 +00:00
Marcus Overhagen
47e8242b26 git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18960 a95241bf-73f2-0310-859d-f6bbb57e9c96 2006-09-28 12:02:58 +00:00
Jérôme Duval
1ba8377d45 releases the team lock even when group is NULL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-27 08:30:15 +00:00
Axel Dörfler
d9766fe30b * Changed team_get_process_group_locked() to have a session parameter instead
of a team to avoid confusion. It now also accepts a NULL session pointer in
  which case the actual group's session doesn't matter.
* Fixed the race condition in send_signal_etc() that could allow accessing an
  invalid team pointer.
* Jerome's earlier change already fixed bug #841, and this also fixed bug #855.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-26 12:51:59 +00:00
Jérôme Duval
0de38aa00b added needed symbols for gcc4 linking
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-23 14:01:49 +00:00
Niels Sascha Reedijk
5fe9705942 Fix the fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-21 08:21:55 +00:00
Niels Sascha Reedijk
1a2f476148 Build broke in r18896. Fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-21 06:57:22 +00:00
Andrew Galante
b425ce77ad A helper datastructure for network buffers. Defines a fixed-size region of same-size data blocks, and maintains a reference count for each
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-21 02:40:20 +00:00
Jérôme Duval
65afc3a011 also dump group and session ids
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-19 09:40:09 +00:00
Jérôme Duval
46a7b50c3b try to better handle signal for teams
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-18 22:51:07 +00:00
Marcus Overhagen
20e1d3e5e2 added _Unwind_* to make the gcc 4 linker happy, but I'm not sure if this is the correct way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-17 00:05:21 +00:00
Marcus Overhagen
82029bdae8 added missing nothrow parameter
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-16 23:25:56 +00:00
Marcus Overhagen
a07acab41b fixed assembly code to compile with gcc 4.0.3. the original code was invalid, as there is no mov instruction to
move a 16 bit segment register into 32 bit memory location, and movzx (called movzwl within gcc) doesn't work with 
segement registers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-16 20:40:19 +00:00
Marcus Overhagen
6639eae245 prevent possible crash
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-16 19:58:41 +00:00
Axel Dörfler
5bab2844c1 This fixes the crashing bug #849. Unfortunately, it still crashes, just at a different location.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-12 00:22:10 +00:00
Marcus Overhagen
a6e8772d9f fix debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18807 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-11 16:37:02 +00:00
Jérôme Duval
4c3702d42a moved rescan call to vfs_mount_boot_file_system() as suggested by axeld :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-04 13:10:08 +00:00
Jérôme Duval
d564275ba7 added disk systems rescan to DiskDeviceManager, and called it in the post init phase
the next step would be to rescan the partition tree with a job to recognize unrecognized partitions (asynchronously ?)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-04 12:37:56 +00:00
Axel Dörfler
9b906ccf04 * You can now create the block cache in read-only mode (using an additional
parameter during construction).
* Doing so will now result in a kernel panic whenever your file system tries to
  write to a block.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-30 23:18:31 +00:00
Axel Dörfler
793f542244 Added a comment about the outcome of a potential problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-30 23:12:31 +00:00
Axel Dörfler
c40fe37f0b * Reverted the changes r17693 made to vfs_get_vnode_cache(); instead, vm_create_vnode_cache()
will now grab a reference to the vnode as well if successful. This way, vfs_get_vnode_cache()
  now actually works how it should: it will now always grab a reference to the cache and
  its underlying vnode. This removes an extra reference to the vnode (and vm_cache) that
  got ignored before and prevented volumes to be unmounted (or file caches to be removed).
  Thanks to Korli for pointing this out.
* file_cache_create() is now aware of that extra vnode reference and releases it; unmounting
  volumes is now working again as it should.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-30 23:09:04 +00:00
Axel Dörfler
96d67014ff Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-30 23:00:58 +00:00
Axel Dörfler
190aa14f19 * Use user_strlcpy() instead of this scary combination of strnlen() and user_memcpy().
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-30 22:39:20 +00:00
Axel Dörfler
022567d3a0 Dumping semaphore info in the kernel debugger will now print the whole queue
of waiting threads by ID (instead of just the queue head and tail pointers).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 11:05:22 +00:00
Axel Dörfler
be0e738496 * send_signal_etc() now handles a pid_t of -1 specially, but not yet really correct
(that was part of the problem of bug #702).
* Fixed send_signal_etc() when you called it with a pid_t of zero: the signals should
  go to all teams in the calling team's group, not only to the team (for -1, we do
  the same for now).
* Made team_get_process_group_locked() public, and rewrote send_signal_etc() to use
  it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 01:41:16 +00:00
Axel Dörfler
567f38888f kill_thread() and friends are supposed to check the passed in thread_id or else
some signals could go to some group when a negative value was passed in.
This actually fixes bug #702 where SoundPlay obviously does a kill_thread(-1)
at the end (which accidently killed all userspace applications, including the
input_server, app_server, ...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 01:36:54 +00:00
Jérôme Duval
4e93a7f238 fixed some warnings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-28 10:20:45 +00:00
Jérôme Duval
56e00b3afe tzoffset is in seconds
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-27 19:03:50 +00:00
Axel Dörfler
f8b41f8219 Moved functions around, so that the static private functions are at the top.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 23:41:54 +00:00
Axel Dörfler
6961cdf6f2 Process groups are no longer searched via their team/session, but by using a separate
hash. This also allows them to stay valid after the group leader died when there are
other teams left in it. This closes bug #1.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 22:58:48 +00:00
Axel Dörfler
3e975f9210 Minor cleanup; renamed some global static variables to match our style guide.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 22:29:54 +00:00
Jérôme Duval
355efe3ec1 improve debug command vnode_cache: it now accepts a device arg
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18618 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 20:54:24 +00:00
Axel Dörfler
c33ac538c4 Semaphore could get interrupted by a pending signal, even if that signal was blocked.
This fixes the failure of the fork test 12-1.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-21 12:02:18 +00:00
Axel Dörfler
26a9fcd6ab * set_alarm() now correctly returns the time left for the currently active
alarm, or 0 if there isn't any.
* setitimer() now also sets the previous timer values correctly, so that
  alarm() and ualarm() now return the correct values as well - this fixes
  the test fork_9-1 failing at alarm().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-20 22:44:53 +00:00
Axel Dörfler
505347b0b2 Threads are now removed from the hashtable earlier, so that a kill() following
a waitpid() can no longer succeed; this fixes the occasional fork 3-1 test failures.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-20 21:34:25 +00:00
Axel Dörfler
2b6a368811 wait_for_child() could eventually hang until another team exited (or forever if
it waited for a specific child), as B_RELEASE_ALL opened up a race condition between
looking for an existing death entry, and waiting for the dead children semaphore.
Now we're counting all waiting threads for teams and groups separately.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-20 21:27:12 +00:00
Stefano Ceccherini
c941d45cd5 oldSet shouldn't be changed in case of error. Thanks axel for noticing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-18 09:37:32 +00:00
Stefano Ceccherini
0ce93ee730 the signal block mask is inherited by the child process on fork()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-18 08:26:37 +00:00
Stefano Ceccherini
a5a36fe421 the second parameter of sigprocmask() can be NULL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18531 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-18 08:00:07 +00:00
Axel Dörfler
79dd3d935a * The parent/group dead semaphores are now released a bit earlier to make
wait_for_child() hanging less probable - there is a general problem with
  this code, though, as we need to have a dedicated free counter for the
  semaphore to remove all race conditions.
* Also, test fork_3-1 still sometimes fails because the thread is still
  available to the public for a short time, even after its death entry
  has been collected.
* Added a TODO in the code for these issues.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-17 21:45:37 +00:00
Axel Dörfler
73a56f1bac * wait_for_child() (the backend to waitpid()) did not work correctly in case you
wanted to wait for a specific child; it always assumed you had specified WNOHANG.
  This fixes the bug the fork_3-1 and fork_4-1 test applications reported. 3-1 still
  sometimes fails, but that's a different problem (to be solved later).
* Also, it could return B_BAD_THREAD_ID instead of the expected ECHILD (for waitpid()).
* There was a race condition between testing for a thread, and checking its death
  entry.
* wait_for_child() can now be interrupted in case it has to wait.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-17 21:40:55 +00:00
Jérôme Duval
44d5675324 KernelAddon and KernelStaticLibrary don't include kernel, kernel arch, boot platform headers anymore.
Fixed the build of most of targets using these rules. Though the build can be still broken, feel free to fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-17 12:18:11 +00:00
Axel Dörfler
01b2099116 Added __eieio() function to let etherpci build on PPC, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-11 19:47:00 +00:00
Jérôme Duval
6a6c43798f have ring_buffer built on non-haiku platforms
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-04 19:20:01 +00:00
Axel Dörfler
b526381437 Removed unused header as pointed out by Korli.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-03 22:24:03 +00:00
Oliver Tappe
b66ae2c9c8 - moved dumpBlock() into debug.c, renamed it to dump_block() and added it
to kernel-exports.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-25 19:46:36 +00:00
Axel Dörfler
3505a2a792 Moved gdb.h header file into debug directory, no other component needs to access it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-29 16:04:24 +00:00
Axel Dörfler
13e6b02018 * Removed some unused headers.
* Removed unused pools implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-29 15:24:40 +00:00
Axel Dörfler
4e26bc08b8 user_copy_strings_array() no longer puts 2k on the stack, but allocates a 16k
buffer to allow safe access of the user provided string - maybe we should
introduce a user_strdup() instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-29 15:23:34 +00:00
Axel Dörfler
89ae57ba77 Removed sysctl(), there is no need for this BSD-ish call.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-29 09:37:06 +00:00
Axel Dörfler
9150d65c83 Removed some unused old networking stuff, cleaned syscalls.c.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-28 14:54:58 +00:00
Axel Dörfler
f62d3b77aa Added a list_get_last_item() call - one day we should make most of them inline.
Or use the C++ list implementation where possible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 16:13:34 +00:00
Axel Dörfler
0ba0370464 Use B_MAX_SYMLINKS instead of SYMLINKS_MAX (which also fixes the build, btw).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-21 15:44:46 +00:00
Axel Dörfler
cce6f8d05f * Changed the kernel build rules, so that the executables can have resources
files, too.
* Added a temporary icon for the kernel until Stephan comes up with a better
  one (hint hint!) :-))
* This even fixes bug #648.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17825 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-13 16:08:55 +00:00
Axel Dörfler
d51ce54011 * Added the opportunity to add temporary debug interrupt handlers for
arch dependent code (they will be removed as soon as someone else
  asks for these interrupt lines).
* Added an interrupt driven keyboard handler to the kernel that uses
  this technique. As a result, you can now press F12 to enter the kernel
  debugger before the input_server has been started, and Control-Alt-Delete
  should reboot the system (actually I did not test the latter yet).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17806 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-12 22:24:53 +00:00
Axel Dörfler
d367028c04 Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-12 21:53:00 +00:00
Axel Dörfler
8265e1210c Implemented mandatory file locking, BeOS style. BNode::Lock() and BNode::Unlock()
are now working as expected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-02 14:16:13 +00:00
Axel Dörfler
acac7c6834 _vm_map_file() did in fact not work correctly, but the main problem was
vfs_get_vnode_cache() which did not acquire an extra reference to the
cache_ref when the cache had to be created.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-01 18:21:21 +00:00
Axel Dörfler
a9fa017d82 map_backing_store() did not acquire a cache ref in case it created a private
mapping, but it connected the vm_cache objects, so if it failed later, and
thus called vm_cache_release_ref() the object could have been freed accidently.
Most uses of map_backing_store() explicetly acquired a cache_ref *after* the
call was successful, but _vm_map_file() did not do this.
_vm_map_file() might still not work correctly, though, need to have a closer
look at it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-01 18:14:59 +00:00
François Revol
84aae13f6d Fix null deref; include \0 when copying paths
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-31 00:01:01 +00:00
François Revol
8be1739f45 - change the check_pending_repeats from a thread to a kernel_daemon, one less.
- add loading of kernel debugger/ modules
- add a kgets() exported func for use by nasty modules =)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 19:54:37 +00:00
François Revol
b3baad129f - reordered ioctls cases to match Driver.h
- implemented B_GET_PATH_FOR_DEVICE
- reject 3 legacy ioctls from R5 (*FIXED_DRIVER, NEXT_OPEN)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 19:52:32 +00:00
Axel Dörfler
974533ab5a * Fixed a big race condition that could leave threads waiting infinitely and
let them eat death stack entries: after setting the next thread state to
  THREAD_STATE_FREE_ON_RESCHED, interrupts were enabled again, which could
  cause the thread to be rescheduled before having called put_death_stack().
  This fixes bug #434.
* Note that the above change pretty much reverts revision 7865 that was supposed
  to fix interrupt problem on thread exit (patch by Jack Burton almost 2 years
  ago, that's how long this problem existed!).
* Made get_death_stack() and put_death_stack() symmetrical in that they don't
  change interrupts. Also pulled out rescheduling from put_death_stack[_and_reschedule]()
  and put it back into thread_exit2().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 14:17:09 +00:00
Axel Dörfler
c8882988b7 The kernel's struct team now has a field to remember where the arguments of a
running team to be able to fill in the team_info::args field. Currently, only
the path is stored, there, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 00:21:22 +00:00
Axel Dörfler
f0ed203a59 * B_GET_GEOMETRY is now intercepted and corrected for partitions - this fixes bug
#603.
* Moved devfs_get_partition_info() into the devfs_ioctl() hook.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-28 15:30:51 +00:00
Axel Dörfler
20914efdcf Made _user_open_entry_ref() a bit more relaxed and return B_BAD_VALUE on some
obvious errors.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-25 13:03:13 +00:00
Axel Dörfler
69c86c993d A stupid typo that caused Haiku to crash when there was no CPU module.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17581 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-24 23:30:30 +00:00
Axel Dörfler
1283fc6e42 No longer call init_mtrrs() if there are no MTRRs, also made generic_init_mtrrs()
no longer try to access any MSRs when there are no MTRRs. Got it? :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-24 10:18:49 +00:00
Axel Dörfler
517dfdf48b The cache did not correctly retrieve the file map when the file was fragmented
into more than MAX_FILE_IO_VECS pieces. This could have very weird consequences
like overwriting data outside the file (but on that same partition only).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 16:36:20 +00:00
Jérôme Duval
f506eea587 NULL signal should be handled as others, except it has no effect
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 10:30:32 +00:00
Stephan Aßmus
bd5ed534cf a fix to the file cache (done by Axel), that prevents a crash when
reading the file map of certain files (hope I got that more or less
right)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 09:59:07 +00:00
Axel Dörfler
4b25b1b99a common_lock_node() now pretends to be successful - this should fix Vision not being
able to store its settings for now (bug #589).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17505 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 08:54:50 +00:00
Axel Dörfler
01fdd314e5 Some GCC 4.1.0 related build fixes (under Linux/PPC).
Doesn't build yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-17 20:54:12 +00:00
Jérôme Duval
0f22d7cfa8 seems we reversed the timezone offset when setting the hw clock
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-13 15:41:33 +00:00
Axel Dörfler
2bbc6df8dc * The kernel now remembers the signal that killed a thread (if it was killed).
* As suggested by Korli, the signal is now encoded in the "reason" field of
  wait_for_child().
* waitpid() now sets the status passed in so that the signal can be read out
  (but it still doesn't do it's full job).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 15:33:34 +00:00
Axel Dörfler
3cb039fffa When you try to mount a file image, BFS now only sees the normalized path instead
of the one supplied to fs_mount() (but not the /dev/disk/virtual/... entry, as that
wouldn't be that clear to the user).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 11:17:08 +00:00
Axel Dörfler
65bd831cbb * KDiskDeviceManager::_ScanPartition() can now run synchronously (and execute the
scan job in the calling thread).
* KDiskDeviceManager::InitialDeviceScan() now runs synchronously, so that
  get_boot_partitions() doesn't need to do this ugly wait hack.
* KDiskDeviceManager::CreateFileDevice() can now run synchronously as well, which
  fixes a deadlock in fs_mount() - note, mounting file devices still doesn't work,
  though as Haiku's BFS doesn't allow this right now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 10:54:10 +00:00
Axel Dörfler
b02b72c448 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 10:44:07 +00:00
Axel Dörfler
dde52de872 * _NewReadLockInfo() can no longer crash in case the allocation failed.
* _ReadLock() will now fail with B_NO_MEMORY in case the ReadLockInfo couldn't
  be created.
* Note, due to a design bug, we cannot guarantee that a previous read lock
  can be reestablished after releasing a write lock in case of low memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 10:10:05 +00:00
Axel Dörfler
573c4336a3 Implemented quite a hack to solve the lockless get_memory_map() problem (bug #349):
when called with interrupts turned off, get_memory_map() will now call the new
vm_translation_map_ops::query_interrupt() call.
Under PPC, this is trivial (at least right now), but on x86 we need to make sure
we have access to the page table entry, ie. we need to create an area that points
to its own page table entry, so that we can map in the page table entry containing
the address we're looking for. It's not really nice, feel free to come up with
a cleaner solution :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 17:45:33 +00:00
Axel Dörfler
77a08c68e8 Changed the way handlers for edge triggered interrupt are called: now, we
always call all handlers in this case, but we still try to return the correct
return code (ie. B_HANDLED_INTERRUPT and B_INVOKE_SCHEDULER).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:56:21 +00:00
Axel Dörfler
f7a446f46f Oops, actually forgot to press "save" in the editor to include the real thing...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:44:24 +00:00
Axel Dörfler
99df69077c For level triggered interrupts, we now acknowledge the interrupt after having called
the interrupt handlers, not before (like we do for edge triggered ones).
This should prevent hardware from issuing a second interrupt when the software driver
is still busy handling the first.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:43:05 +00:00
Axel Dörfler
5886ae3213 Finally (!) fixed that stupid bug that prevented at least some Pentium-M laptops to
work correctly when on power supply (ie. when running at full speed). Turns out we
misdetected a spurious interrupt on line 15 - we now ignore them completely which
seems to fix that problem.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 13:35:53 +00:00
Michael Lotz
17fee3eab7 Removed the extra info struct in the cpu_ent union and made said union a struct instead. Same as r1137 in NewOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 22:38:19 +00:00
Michael Lotz
2a03240eb1 Reverted my last change as it turned out that the lazy FPU state handling was not SMP safe afterall and the performance gain is questionable. Maybe it'll be implemented correctly in the future. Sorry for any inconvenience this may have cost.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 22:10:04 +00:00
Michael Lotz
7eee76e65a Implemented lazy FPU state save/restore. In the end mostly ported from NewOS. SMP safe.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-27 22:02:48 +00:00
Axel Dörfler
11add5a5d7 First baby step towards a lockless get_memory_map(): vm_get_current_user_address_space()
no longer needs to lock address space hash table - that also makes the lookup much
faster, too (and a direct pointer is used instead of a hash lookup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-27 17:46:19 +00:00
Axel Dörfler
4827dbe47a Fixed a bug in the VFS that could cause BFS to corrupt an inode:
dir_remove() did not normalize the path, and thus, could forward a "." as
name for the removed directory - which BFS didn't catch because it assumed
our VFS would work correctly...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-18 17:40:27 +00:00
Axel Dörfler
a88c592fb3 Instead of ending up in an endless loop, fs_sync() will now bail out in
case get_vnode() fails.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-18 14:50:36 +00:00
Axel Dörfler
fde87a1094 Instead of waiting forever, get_vnode() will now fail after 3 seconds if the
vnode is not becoming unbusy (right now it even panics, but that can be removed
later on).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-18 13:55:47 +00:00
Axel Dörfler
80fda87e9c find_thread() now returns B_NAME_NOT_FOUND when it doesn't find the thread
as stated in the BeBook - this fixes bug #458 as Tracker directly compared
with that error code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-16 17:53:10 +00:00
Axel Dörfler
b2536cb5d6 Fixed bug #483:
* vfs_get_fs_node_from_path() now also work for absolute paths again (but
  still for relative ones from the volume root) - it just tests if the
  mount IDs fit, so it only returns successful if the path really is on
  the desired mount.
* the Disk Device Manager publish functions now call devfs_publish_*()
  correctly (by omitting the "/dev/" mount point).
* devfs_publish_partition() now accepts absolute device paths but relative
  partition paths.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-16 11:44:54 +00:00
Michael Lotz
b026647574 Changed the temporary buffer to be static to avoid using that much stack. Replaced wrong maximum buffer length (oops).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-16 10:56:00 +00:00
Michael Lotz
1df23ecc52 Should finally fix the eaten up messages. We obviously must not use the output buffer to write the repeat count as the output buffer already contains the new message...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-14 12:38:31 +00:00
Axel Dörfler
9a11448fbd vfs_get_fs_node_from_path() didn't work correctly and ignored the mount_id
(ie. it only worked for absolute paths, but it shouldn't work for those at
all).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-13 18:06:30 +00:00
Axel Dörfler
97e069713b Added a "reenter" parameter to the {read|write}_pages() functions to give file
systems a chance to know if they have locked already.
This fixes a locking problem in BFS where one thread tried to acquire two read
locks (where someone else trying to acquire a write lock would have caused a
dead lock).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-12 13:34:04 +00:00
Michael Lotz
2f5143505b Another try at removing the "Last message repeated 1 times.", this time with locking.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 21:11:50 +00:00
Michael Lotz
6ac6b512a0 Reverted my last change as it causes a segfault with syslog output enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 19:40:49 +00:00
Axel Dörfler
8645479b36 * cache_io() could insert a second page at the same position in the vm_cache
since it unlocked the cache while waiting on a busy page. Now, we're filling
  the pending request before unlocking the cache.
* Fixed the deadlock I mentioned in the last commit: if a page fault happens
  at the same time we're trying to read/write from/to a page, we no longer
  fight for the BFS inode lock, but eventually doing the job twice if needed.
  Will need to go over the "write modified" functions to make sure they are
  behaving as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 18:48:04 +00:00
Axel Dörfler
be891a5e5d No longer counts "\n" as repeated string - this seems to fix at least the cases
where I noticed missing debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 18:40:46 +00:00
Michael Lotz
d7faea3f20 Replaced "Last message repeated 1 times." with just reprinting the message (requested by Jerome Duval).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-10 21:28:43 +00:00
Axel Dörfler
675c19c9cf * fs_sync() and free_vnode() now use the file system's fsync() hook to write back
changes made to a file instead of directly using vm_cache_write_modified() -
  besides making the file system more independent from the file cache, this also
  works around a possible dead lock (that is to be fixed in a later commit).
* fs_sync() no longer uses vnodes from the mount's vnode list directly to write
  back the changes made to them, but gets them via ID instead - this makes sure
  the vnode is in a valid state and fixes a race condition with free_vnode().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-10 21:22:24 +00:00
Michael Lotz
f51fb4696c Corrected the repeat checks (did not compare the right buffers) and added a length argument to debug_puts() to safe the strlen in the syslog case. Also removed some leftover.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-03 20:48:30 +00:00
Michael Lotz
3647d70ded Replaced the hash based approach to repeat detection with the probably more efficient strncmp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-02 16:45:04 +00:00
Michael Lotz
3352a462a7 Implemented the "Last message repeated x times." thing in the kernel (hash based).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-02 16:23:47 +00:00
Axel Dörfler
af3e5cd947 Renamed our runtime loader from rld.so to runtime_loader, and moved it into beos/system/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-30 18:08:51 +00:00
Axel Dörfler
2a62d0d6c5 Added a second pass to the boot device retrieval in case nothing has been found.
Right now, the size of the device is ignored in the second pass. Maybe this helps
with bug #357.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-29 00:16:57 +00:00
Axel Dörfler
606e0d364e * Factored out the vnode disconnection code from fs_unmount() to a separate
function, and added a vfs_disconnect_vnode() for other kernel components.
* devfs_unpublish_device() can now optionally make use of this call.
* Fixed the type check of devfs' unpublish_node().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-28 01:13:12 +00:00
Axel Dörfler
065aa7f66c Added a basic unpublishing function for drivers, not yet tested, though (and even
though it looks so simple, I see no reason why it shouldn't work 8-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-28 00:13:44 +00:00
Axel Dörfler
fabe8c62ff The kernel boot code now supports the unknown bus/device method to identify the
boot volume. The other (better) methods are now disabled in the boot loader.
This fixes bug #241.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 17:01:10 +00:00
Axel Dörfler
d140fed68f Turned off some debug output, the device tree is no longer dumped (was a partial
tree only, anyway, as it was dumped before the recognition of any devices).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 15:14:30 +00:00
Axel Dörfler
c918a987a0 * Removed my old doubly linked list implementation, and stay with Ingo's.
* Adapt other sources where needed (the boot loader's RootFileSystem still
  used the old implementation).
* Implemented RootFileSystem::Rewind().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 10:27:05 +00:00
Axel Dörfler
7d2fafcac5 Forgot even more debug output...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-26 18:45:54 +00:00
Axel Dörfler
61106f7e86 Forgot to remove some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-26 17:11:43 +00:00
Axel Dörfler
c14a34a65f * Improved kernel ELF loader (and made it more similar to the one from the boot
loader): it now supports holes between segments, and accepts any segment order.
* Renamed elf.c to elf.cpp and fixed warnings.
* Renamed elf_image_info::dynamic_ptr and eheader to dynamic_section and elf_header.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-26 15:58:43 +00:00
Axel Dörfler
342c2a73ab Improved debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-24 21:27:01 +00:00
Axel Dörfler
5ba2a3839d Improved the filter capabilities of the "ports", "port", "sems", and "areas" debugger commands.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-24 12:59:23 +00:00
Axel Dörfler
db823da57e * Even though our current heap is a temporary solution, the heap size depends
now on the amount of memory installed in the system. Ie. if you have only
  128 MB the kernel heap will be only half in size.
* Minor cleanup in vm_page.c, renamed some variables to match our style guide.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-19 15:02:21 +00:00
Axel Dörfler
5f0bf2a3e1 We now track how many pages are in a vm_cache. Therefore, the area_info.ram_size
now reflects the number of pages in the areas cache, instead of just the size of the
area.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16834 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-18 20:17:31 +00:00
Axel Dörfler
66b7a0f477 Renamed the _kern_init_heap_address_range() syscall to _kern_reserve_heap_address_range()
and made it more powerful.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16825 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-18 12:52:01 +00:00
Axel Dörfler
c864c43bab Fixed warning I just introduced.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 20:29:50 +00:00
Axel Dörfler
baf7b0adf0 Broke the build once more: didn't remember that gettimeofday() was built
for the kernel as well, and thus we need to export _kern_get_timezone(),
too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16792 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 20:22:50 +00:00
Axel Dörfler
f46bdd1c9a Added a _kern_get_timezone() syscall that can be used without needing to
re-evaluate the timezone file over and over.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 14:29:56 +00:00
Axel Dörfler
33dd85501f Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16784 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 14:27:59 +00:00
Axel Dörfler
5d35aa2833 I don't think kill_thread() is actually supposed to wait for the thread
to be killed. Reverted ShutdownProcess.cpp to continue to use kill_team()
instead of sending a signal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16780 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 01:54:49 +00:00