Commit Graph

564 Commits

Author SHA1 Message Date
Ingo Weinhold
af314d827a Implementing generation of remaining jobs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-02 00:00:49 +00:00
Ingo Weinhold
84ba3a5265 Added JobFactory().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-01 23:59:26 +00:00
Ingo Weinhold
1217079c31 Changed parameter name only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-01 23:58:46 +00:00
Ingo Weinhold
a10abc1e14 Added KDiskDeviceJobGenerator.cpp to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:48:51 +00:00
Ingo Weinhold
bdbbcfaf16 Added CountDescendants().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:48:08 +00:00
Ingo Weinhold
ec4ef3525f Added a KDiskDevice* parameter to the constructor.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:46:38 +00:00
Ingo Weinhold
57c8af057e Replaced the Vector parameter of CreateMoveJob() by a simple array. Added CreateUninitializeJob() (empty implementation).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:45:26 +00:00
Ingo Weinhold
6ae0077c0d This class compares a KDiskDevice with its shadow partition hierarchy and
generates the jobs needed to transform the former to the state of the
latter. Currently only the jobs for deleting partitions and resizing
and moving existing ones are generated. Resizing and moving was the
hard part, though, the rest should be much easier. Completely untested
yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:41:50 +00:00
Ingo Weinhold
78097103b7 Turned off debugging. Now sets the job description.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:51:01 +00:00
Ingo Weinhold
68f12c0221 Implemented job related functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:49:50 +00:00
Ingo Weinhold
fe05b0ac95 Added and implemented job related syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:48:08 +00:00
Ingo Weinhold
c34b4f49f4 Added ActiveJobIndex().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:46:59 +00:00
Ingo Weinhold
4f2af97d45 Implemented class. Some bits are still missing (e.g. setting the description).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:29:03 +00:00
Ingo Weinhold
71346466b8 Added user_partition_data::content_size field. Small change to support a NULL parameter in _kern_supports_resizing_partition().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:24:22 +00:00
Ingo Weinhold
738e4a700b Support for the added partition content size attribute.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:21:21 +00:00
Ingo Weinhold
ace55d9bfc Implemented the job related functionality. Moved scanning of partitions into the respective job class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:18:16 +00:00
Ingo Weinhold
6eaec7ddda Some changes to the interface (added missing methods and such). Implemented the class almost completely. Basically only the notification stuff is still missing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:16:15 +00:00
Ingo Weinhold
a31533cbec Brought the interface up to date. Added empty implementations for all methods, save the one creating a job for scanning, which is complete.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:14:27 +00:00
Ingo Weinhold
38bd13fcf9 Some changes to the interface. Implemented most of the methods. The notification stuff is still missing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:12:39 +00:00
Axel Dörfler
1baf26bc47 Fixed allocate_cbuf_mem() after Ingo's hints. The CBUF_FLAG_CHAIN_HEAD flag is
now no longer set in the loop, the total_length calculation should now be correct.
The CBUF_FLAG_CHAIN_TAIL is now set for the lastBuffer instead of buffer.
Removed some superfluous lines in cbuf_get_ptr(), and cbuf_ones_cksum16().
Fixed the buffer->length calculation in cbuf_truncate_tail() and added some
comments about the correctness of the code - should be investigated and fixed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-26 13:58:20 +00:00
Ingo Weinhold
95152e1e98 Implemented remaining partition modification syscalls. Some small fixes. Some refactoring.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-24 22:58:06 +00:00
Ingo Weinhold
1d8675355f Added some more support for tracking changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-24 22:56:53 +00:00
Ingo Weinhold
ee1ebe375c * Added ShadowPartitionChanged() to KDiskSystem and respective hooks
to the module interfaces. So the disk system will be informed, when a
  shadow partition has changed and it is allowed to do necessary
  adjustions (e.g. adjusting the cookie, the parameters, or on
  partitioning system initialization even creating special child
  partitions (apple partitioning system)).
* Added `int32 *index' parameter to ValidateCreateChild(). So the
  partitioning system can report at which index the new child shall be
  inserted.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-24 22:53:23 +00:00
Ingo Weinhold
5ee968b3df * Added a change counter parameter to all partition querying and
modification functions. Don't know why I didn't right from the start.
* Implemented _kern_resize_partition().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-22 00:11:03 +00:00
Ingo Weinhold
02885b7d6e * Got rid of SetContentType(). It is set automatically now, to the
PrettyName() of the responsible disk system.
* Added change counter support and changes tracking.
* Added UninitializeContents().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-22 00:03:35 +00:00
Ingo Weinhold
c0b8ba64fd _kern_supports_moving_partition() now returns the list of partitions that need to be unmounted for moving.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-21 14:17:03 +00:00
Ingo Weinhold
df3b8c625e Added partition modification syscalls with empty implementations.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 22:39:37 +00:00
Ingo Weinhold
d7ce4fddfc Implemented all read-only (more precisely: not writing) methods. Small changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 17:24:32 +00:00
Ingo Weinhold
71a5281923 Implemented _kern_get_partitionable_spaces(). Got rid of user_partitionable_space_data.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 17:18:48 +00:00
Ingo Weinhold
2a596c013a Implemented all read-only (more precisely: not writing) methods. Small changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 17:15:35 +00:00
Ingo Weinhold
752cec6459 Several changes to the _kern_{supports,validate}_*() calls:
* Removed the disk_system_id parameter where superfluous.
* Got rid of the `child' variants of the _kern_{supports,validate}_*()
  syscalls for moving and resizing. Reimplemented the real ones to do the
  the right thing, i.e. they check all concerned disk systems now.
* Added _kern_supports_setting[_content]_parameters().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-19 20:37:00 +00:00
Ingo Weinhold
708a31badf Added SupportsSetting[Content]Parameters() to the KDiskSystem interface and respective functions to the module interface. Some re-ordering of methods/functions for aesthetical reasons. :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-19 20:29:58 +00:00
Ingo Weinhold
24fa6c601b Added LoadDiskSystem() version, that takes a disk system name.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-19 20:26:48 +00:00
Ingo Weinhold
18b90323d9 Added flags for disk systems.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-18 18:41:21 +00:00
Ingo Weinhold
a1a7d37e2c Added syscall for validating the initialization parameters.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-17 00:04:22 +00:00
Ingo Weinhold
3f60a01369 Added "name" parameter to KDiskSystem::[Validate]Initialize() and the respective module API functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-17 00:03:17 +00:00
Ingo Weinhold
8bc0bd912a Added and implemented the remaining disk system syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-16 21:01:14 +00:00
Ingo Weinhold
1f3f1294a8 Added a IsSubSystemFor() method to the KDiskSystem interface and respective calls for the module interfaces.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-16 21:00:01 +00:00
Ingo Weinhold
1863de6785 Added and implemented the first part of the disk system querying syscalls (_kern_supports_*()).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-15 21:42:59 +00:00
Ingo Weinhold
0fbb290f51 Some changes to/fixes of the KDiskSystem interface and the disk system module interface.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-15 21:41:32 +00:00
Ingo Weinhold
a97769a5d3 Added {Read,Write}Lock{Device,Partition}().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-15 21:39:34 +00:00
Ingo Weinhold
1ff134b901 * Added shadow_id field to user_partition_data.
* Implemented several new syscalls (_kern_find_{disk_device,partition}(),
  {prepare,cancel}_disk_device_modifications(),
  [un]register_file_device()),


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-15 01:27:43 +00:00
Ingo Weinhold
2438192b6c Added a deviceOnly flag to {Find,Register}Device(). Minor {Create,Delete}FileDevice() changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-15 01:05:50 +00:00
Ingo Weinhold
5d22fa967a Shadow partition related changes:
* Fixed handling of the deletion (removal) of shadow partitions. Formerly
  the shadow partition corresponding to the disk device wasn't removed
  properly.
* Added a shadow_id field to the user_partition_data structure which
  contains the ID of the shadow partition, if it is one. The id field
  will hold the ID of the physical partition.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-15 01:00:24 +00:00
Ingo Weinhold
7dd03a026b Renamed KDiskDeviceManager::DiskSystemWith{ID,Name}() to FindDiskSystem().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-08 23:24:47 +00:00
Ingo Weinhold
995d5c53be * Renamed ddm_user_interface.cpp to ddm_userland_interface.cpp which
matches the name of the header much better. :-)
* Implemented the syscalls for iterating through and finding disk systems.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-08 23:23:27 +00:00
Ingo Weinhold
c54d68a84e Should have waited a few more minutes... Renamed the methods {B,K}Partition::Is{Mountable,Partitionable}() to Contains{File,Partitioning}System(). Similar change for the respective flags (B_PARTITION_{MOUNTABLE,PARTITIONABLE}).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-08 17:38:45 +00:00
Ingo Weinhold
55bf93d80d Fixed handling of partition and device flags and statuses.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-08 17:25:32 +00:00
Ingo Weinhold
c0455c33b8 * More shadow partition support.
* Writing disk device/partition data into userland buffer added.
* Migration of some definitions into <DiskDeviceDefs.h> header.
* Small bug fixes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-06 23:01:22 +00:00
Ingo Weinhold
d885284414 First implementations of Disk Device API related syscalls (iterating through disk devices and retrieving disk device data). As long as we work in userland these aren't real syscalls, of course.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-06 22:56:39 +00:00
Ingo Weinhold
b74cd4c9d1 Little helper class for writing the disk device/partition data into a buffer for userland.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-06 22:53:20 +00:00
Ingo Weinhold
a162af3b0e Made KPartition abstract and derived two classes, KPhysicalPartition
and KShadowPartition from it. KPhysicalPartition represents a partition
that exists on-disk, while KShadowPartition is a partition edited by the
API user, but not yet written to disk. Related changes in other classes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-04 23:45:26 +00:00
Ingo Weinhold
2091bd588f Replaced usage of List template class by the kernel utils Vector.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3811 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-02 16:38:29 +00:00
Ingo Weinhold
5b489f6f16 Got rid of the List template class in the disk device manager source dir. Instead we use the Vector based Kernel Utils classes now. Various related changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-02 16:29:33 +00:00
Axel Dörfler
43e64c6219 The cbug memcpy functions now accept a NULL pointer to a chain - and return
B_BAD_VALUE instead of just crashing in this case.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-01 00:05:27 +00:00
Axel Dörfler
33aae10b67 The pipe now buffers incoming packets when there is no reader waiting in
a chained buffer provided by cbuf.
Only select support is missing now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-29 18:29:36 +00:00
Axel Dörfler
d98326b49f Removed some useless calls to get_sem_count().
Moved set_port_owner() around.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 16:53:36 +00:00
Axel Dörfler
9163395ef6 read_port_etc() could pass PORT_FLAG_USE_USER_MEMCPY to acquire_sem_etc().
Small cleanup of {read|write}_port_etc().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 16:46:07 +00:00
Axel Dörfler
2469f26dfc Implemented the basic hand-shaking mechanism; direct data exchange is
now working, but everything that would have to be temporarily buffered
is discarded right now (will use cbufs for this).
Pipes can now actually be created and removed - this didn't work before.
Changed some lock types to better suit their needs.
Small fixes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 04:38:04 +00:00
Axel Dörfler
9a7bfe0ec1 Added minor debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 04:23:24 +00:00
Axel Dörfler
f0df28e20e Now makes use of C++ features, still no reading or writing, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 23:04:36 +00:00
Axel Dörfler
2aa93388f3 C++ for the kernel added to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 23:03:45 +00:00
Axel Dörfler
fb68886768 C++ for the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 22:58:58 +00:00
Ingo Weinhold
cbbec57f71 Oops, our TOP is named OBOS_TOP.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 17:38:12 +00:00
Axel Dörfler
9d1b8268b8 Removed unused headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 16:53:33 +00:00
Axel Dörfler
c05acf62ee Big cleanup of the cbuf implementation to fit better into our style guide.
Renamed cbuf_get_len() to cbuf_get_length().
Fixed a bug in cbuf_get_length() that would have returned an error code in
a size_t (now returns 0 in that case).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 16:42:31 +00:00
Axel Dörfler
ebb226d544 Removed now unused headers (prototypes are now in builtin_fs.h).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:50:26 +00:00
Axel Dörfler
87357f1456 Added the pipefs to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:49:31 +00:00
Axel Dörfler
ba6ecd2852 Removed unused headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:49:13 +00:00
Axel Dörfler
e189e20f7e Simplified the vnode creation procedure.
Removed unused headers. Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:48:32 +00:00
Axel Dörfler
ecb21fa760 Now bootstraps the pipe file system.
Updated due to recursive_lock_init() change.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:46:27 +00:00
Axel Dörfler
5843ebfbda Added very basic pipefs implementation - only handles files right now
(creation, deletion), no reading/writing allowed (or even started),
no select support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:44:28 +00:00
Axel Dörfler
91caecf659 Now gives its tm rlock a name - note, this doesn't check the return code
of this function!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:28:12 +00:00
Axel Dörfler
a5bc38081e Will no longer fail if the recursive_lock couldn't be created - that does
*not* change the previous behaviour (well, I added some debug output), since
the former recursive_lock_create() did always return B_OK, no matter if the
lock could be initialized or not.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:27:12 +00:00
Axel Dörfler
783f7b5ccd Now gives its recursive lock a name and checks its return code.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:25:24 +00:00
Axel Dörfler
b652f04990 Removed the pools.c file from the build, since it's a) not used anymore,
and b) doesn't compile due to the latest lock changes (see lock.c 1.7).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:24:37 +00:00
Axel Dörfler
68fe151fb9 Fixed the return code of recursive_lock_init() (formerly known as
recursive_lock_create()) - this reveals bugs in other parts of the system (VM),
but those won't be fixed for now (because of VM2).
Added the possibility of giving a recursive lock a name.
Moved the functions for benaphores and rw-locks to this file (they were
part of the lock.h header as defines).
Removed unused headers.
Small cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:22:57 +00:00
Ingo Weinhold
7eb12758ed * Fixed the locking functions: A lock also requires a reference to be
kept.
* Fixed find_{disk_device,partition}().
* Implemented delete_partition(). The device/partition management functions
  should now be complete.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-25 00:04:55 +00:00
Ingo Weinhold
86e8beea7d Added boolean parameter to IsReadLocked() to specify when a write lock shall not be considered as read lock.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-25 00:00:34 +00:00
Ingo Weinhold
eba400a809 We need the virtualdrive header for the file disk device stuff.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-24 23:58:25 +00:00
Ingo Weinhold
f5650b0a07 No real change. Added and removed debug output. :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-24 23:57:33 +00:00
Ingo Weinhold
b23394f957 * Implemented what was left to do for KDiskDevice and KPartition
management regarding removal and deletion of objects.
* Fixed the file disk system related stuff. KFileDiskSystem now uses the
  virtualdrive driver. The former method was seemed simple and brilliant,
  but the B_SET_PARTITION ioctl wouldn't work.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-24 23:56:16 +00:00
Ingo Weinhold
6ab18748f3 Removed invocations of UsePublicHeaders, which was a no-op anyway.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-23 16:53:22 +00:00
Ingo Weinhold
24d57dc067 Added KFileDiskDevice and the file with the disk device type strings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 23:28:04 +00:00
Ingo Weinhold
62b9e141e1 Added a find_disk_system(). I first thought, this might be a good idea, but I'm not so sure anymore.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 23:12:20 +00:00
Ingo Weinhold
9007acaee3 Added Dump(). Small fixes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 23:04:56 +00:00
Ingo Weinhold
fcf461b32c Implemented the scanning functionality.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 23:03:58 +00:00
Ingo Weinhold
b22221ad17 Minor changes to the KDiskSystem interface.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 23:03:17 +00:00
Ingo Weinhold
38d5e95af9 Support for creating and deleting (the latter not yet implemented) file disk devices. Added file system addition.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 23:00:20 +00:00
Ingo Weinhold
bdc530c737 Some small adjustments for KFileDiskDevice. Added Dump().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 22:57:42 +00:00
Ingo Weinhold
17750c7774 Added a special disk device class, that is responsible for representing
files as disk devices. This will not only be great for testing the
file and partitioning system modules' writing capabilities, it will also
just be a nice feature to have.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-22 22:54:16 +00:00
Axel Dörfler
7862de2e87 Removed the old driver_settings.c file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-15 13:22:50 +00:00
Axel Dörfler
3e758cd63f Removed the core/driver_settings.c from the kernel build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-15 13:13:24 +00:00
Ingo Weinhold
08427f8cfc Publish partitions in _ScanPartition() and unpublish them in the destructor.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-14 00:08:56 +00:00
Ingo Weinhold
f7672ebc25 * Made {Publish,Unpublish}Device() virtual and implemented them in
KPartition and as no-ops in KDiskDevice.
* Prefixed partition names with "obos_" to not interfere with R5's
  partition names.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-14 00:06:57 +00:00
Ingo Weinhold
2609ebac90 Several fixes necessary to get the partition scanning working.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-13 22:08:10 +00:00
Ingo Weinhold
ef9b1b52ee Implemented a preliminary disk device scanning in KDiskDeviceManager.
Some changes to KPartition, KDiskDevice, KDiskSystem on this way.
Still missing is KPartition::Publish() and its invocation in
KDiskDeviceManager. Then everything should be in place to start with
porting the scanning parts of our disk system modules.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-12 22:21:10 +00:00
Axel Dörfler
6b3445e288 Applied NewOS patch 17xx (its repository is currently down...): now sets
the fs register correctly - not that it should have much effect since it's
rarely used anyway (no reason to might be wrong, though) :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-12 03:41:38 +00:00
Ingo Weinhold
ac63679417 Small changes in the header, and implemented everything needed for scanning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-11 22:04:34 +00:00
Ingo Weinhold
1bf21e6a40 * Added CreateChild().
* Added Publish/UnpublishDevice(). Not implemented yet.
* small fixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-11 22:03:26 +00:00
Ingo Weinhold
13a452eaee Added an Init() amd dealt with the PrettyName().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-11 22:00:59 +00:00
Ingo Weinhold
450c7dd609 Added basic disk system management.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-11 21:59:27 +00:00
Ingo Weinhold
ec9690ccf2 Added new files, and we now link against our kernelland_emu library, because modules are used.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:47:10 +00:00
Ingo Weinhold
6778f21163 Some fixes in the header and a very basic implementation. In theory the functionality for scanning partitions is implemented, as well as loading/unloading the partition module.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:40:09 +00:00
Ingo Weinhold
0b6c74bbe3 Implemented some more bits of KPartition. Added a very useful Open() method.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:37:43 +00:00
Ingo Weinhold
f254d01839 Implemented KDiskSystem. Should be almost complete.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:36:31 +00:00
Ingo Weinhold
29a37d780d Implemented some basics of KDiskDeviceManager.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3460 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:35:57 +00:00
Ingo Weinhold
537635f1d1 Implemented basic parts of KDiskDevice.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3459 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:35:12 +00:00
Ingo Weinhold
be433342af A read-/write locker. Again, something that might also be useful elsewhere in the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:32:33 +00:00
Ingo Weinhold
86ea6f7f9b A slightly modified BLocker. We should provide something like this for the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-10 22:29:52 +00:00
Ingo Weinhold
1844af0bfa Mostly empty implementations for the disk device manager classes. Save KPartition which is partially done.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-09 23:10:09 +00:00
Axel Dörfler
8f048d2b40 Added missing arch_*() functions, removed the (empty) atomic_*() definitions,
since they are implemented in the libroot's os/arch directory.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-13 15:20:47 +00:00
Axel Dörfler
9cf09b95ed Now located in src/kernel/ldscripts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-13 02:22:10 +00:00
Axel Dörfler
f48e0d551d Updated ld-script location.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-12 01:00:20 +00:00
Axel Dörfler
e02284d547 Are now located in src/kernel/ldscripts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-12 00:51:11 +00:00
Axel Dörfler
b2704e693c boot headers have been moved, some cleanups, dbg_save_registers() renamed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:20:38 +00:00
Axel Dörfler
c182223b6e Updated core/arch/ppc section to be up-to-date again. Note, this only let
it build again; it doesn't work yet at all (pretty similar to NewOS change 1772).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:15:41 +00:00
Axel Dörfler
eda9fea884 Fixed Jamfile to not use OBOS_TARGET_DIR any longer (but OBOS_ARCH instead).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:12:46 +00:00
Axel Dörfler
99b8586b91 boot headers have been moved.
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:11:59 +00:00
Axel Dörfler
16b357f26a Renamed dbg_save_registers() to arch_dbg_save_registers() since it is implemented
in the arch dependent section.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:10:54 +00:00
Axel Dörfler
53a2f3f583 boot headers have been moved.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:09:41 +00:00
Axel Dörfler
4802643275 stage.2 header has been moved.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:09:01 +00:00
Axel Dörfler
d9e72f220a Reenabled the broken assert in free() and applied Travis' NewOS patch 1764
(which fixes that assert).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-21 08:25:26 +00:00
Axel Dörfler
08b73e5905 Added another argument parameter for the thread creation code. Helps
implementing a more efficient on_exit_thread().
Note, this extra parameter is currently only used for user space code,
not yet in the kernel; thus on_exit_thread() is not available in the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-04-18 09:38:28 +00:00
Axel Dörfler
3075346683 Applied patch from Maurizio: fixed setting data part in smp_send_broadcast_ici() msg.
Added TRACE_SMP and a TRACE() macro that is used instead of dprintf() directly.
Also fixed all warnings with TRACE_SMP set to 1.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-18 02:08:51 +00:00
Daniel Reinhold
c2a1fc3f66 removed a macro accidentally re-introduced on the last commit
changed the field order in a couple of structs back to their previous ordering


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-03-01 07:22:13 +00:00
Daniel Reinhold
70dee992a3 style changes -- purely cosmetic
normally, I wouldn't checkin a file with cosmetic changes only
however, Marcus just made a change on this file earlier today,
so the file would have to be rebuilt anyway -- might as well
make it pretty too!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-28 21:21:46 +00:00
beveloper
fb6067c507 removed experimental special case
fixed bug in get_nth_pci_info


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-28 14:52:05 +00:00
Axel Dörfler
43604406d8 Added a new call vfs_new_vnode() which can be used when a new vnode is created
but doesn't have to be read from disk for efficiency reasons.
Fixed a bug in get_vnode() in case of fs->get_vnode() returns an error of some
kind.
fs_mount() no longer hides the return code from the fs->mount() function anymore (for now).
Added some comments and ToDo items.
Changed some return error values to the B_xxx style (will probably need to define
some new error codes for OpenBeOS).
Changed some return types to status_t/void where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-21 13:49:26 +00:00
Axel Dörfler
7870c58c18 Now uses the new smp_apic.h header file.
Changed apic_read()/apic_write() to accept offsets not addresses as register
parameter.
Cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 21:22:03 +00:00
Axel Dörfler
7a6bb51e08 Just some cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 19:49:24 +00:00
Axel Dörfler
9e63d45563 Moved the fd.c source file into the fs directory.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 19:37:44 +00:00
Philippe Houdoin
f3eabb6abd Backport time tracking fix from NewOS:
thread code now properly traces time spent in user vs kernel mode. The code was
just plain broken before
http://www.newos.org/cgi-bin/perfbrowse.perl?@describe+1704


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-29 21:59:37 +00:00
Axel Dörfler
74eff974c5 Fixed a variable misnamer I introduced earlier (team -> threadID).
Added a SIGNAL_TO_MASK() macro.
Removed the useless disable_interrupts() call in set_alarm().
More cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 13:55:57 +00:00
Axel Dörfler
868dc95975 Makes use of the new daemon_hook typedef.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 13:53:10 +00:00
Axel Dörfler
2760fd9495 Renamed resched() to scheduler_reschedule().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 04:01:28 +00:00
Axel Dörfler
88b64a6feb Big cleanup.
Now directly exports (as is, most of) the kernel thread API.
Now has user_*() functions where needed.
Moved thread_set_priority() from scheduler.c to set_thread_priority().
Renamed thread_wait_on_thread() to wait_for_thread().
user_get_thread_info() now uses user_strlcpy() instead of user_strncpy().
Fixed the snooze() implementation - it now returns B_OK where appropriate. Now all snooze()
calls will call snooze_etc().
New private call spawn_kernel_thread_etc() to replace thread_create_kernel_thread_etc().
Moved some functions around.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:17:36 +00:00
Axel Dörfler
b848af2071 Greatly cleaned up the source.
Fixed a bug in sigaction(): it would have crashed with act/oact == NULL (which
is perfectly legal).
Now directly exports the kernel API.
Now has user_*() calls where needed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:11:45 +00:00
Axel Dörfler
6d8aafc66e Added comments to sys_(get|put)env() - please remove them from the kernel.
Renamed team_wait_on_team() to wait_for_team() (more BeOS-alike).
Adapted to other changes (new thread functions).
Cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2576 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:09:33 +00:00
Axel Dörfler
dba0db7fbe Fixed all the broken signal stuff. Now correctly calls the user_*() function,
and don't have any functionality at this place.
Added new syscall for set_thread_priority().
Some other changes due to cleanup.
Fixed userland snooze() call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:07:30 +00:00
Axel Dörfler
2e7d51f89b Updated due to the changes in scheduler.c (resched() -> scheduler_reschedule(),
thread_enqueue_run_q() -> scheduler_enqueue_in_run_queue()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:05:09 +00:00
Axel Dörfler
c333b5aa8e Replaced the standard thread functions with a BeOS compatible set.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:02:24 +00:00
Axel Dörfler
51cc35a759 Cleaned up the source, rearranged some functions. Now exported functions
have the scheduler_ prefix instead of thread_.
Moved thread_set_priority() back to thread.c where it belongs to.
Added new function to remove a thread from the run queue.
Renamed run_q to gRunQueue.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:01:35 +00:00
Axel Dörfler
8ccc1ad67d mutex_lock() now prints out the semaphore ID if it panics.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 02:58:17 +00:00
Axel Dörfler
dc7fb22c07 Forgot to resume the kernel_daemon thread.
Actually never unlocked the daemon's lock (always called mutex_lock() instead
of mutex_unlock()...).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 02:02:20 +00:00
Axel Dörfler
429578fb0b Team/image stuff now uses lists instead of kqueues.
The kernel_daemon now utilizes the updated list API.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 23:31:38 +00:00
Axel Dörfler
878c4156af Added two convenience functions: list_add_item(), list_remove_item().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 23:30:53 +00:00
Axel Dörfler
28bf3daa5d Implemented the kernel daemon service. It's not yet tested, but should be
equally inaccurate as the BeOS R5 version :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-26 17:31:33 +00:00
Axel Dörfler
822ea83244 list_add_link_to_tail() didn't work correctly.
Applied fixes by notion: removed two redundant if-statements, replaced
(link *)list with &list->link.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-21 23:43:13 +00:00
Axel Dörfler
32a301820f Added node monitor syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:18:04 +00:00
Axel Dörfler
8177f89fd1 Added list.c to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:16:44 +00:00
Axel Dörfler
8cd0fe6e99 Added new doubly-linked list implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:15:20 +00:00
Axel Dörfler
5afbd29256 Added new files to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:14:07 +00:00
Axel Dörfler
457f7be6f9 Now uses the new list primitive instead of its own implementation (for linking
the vnodes of a mount structure).
Removed stubs for send_notification() and notify_listener() (they are now located
in message.c and node_monitor.c).
Added support for the node monitoring service.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2482 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:13:44 +00:00
Axel Dörfler
a7d654ad0a Added almost complete node monitor implementation - support for watching mounts/
unmounts is not yet implemented.
Added an empty implementation for send_notification() - the function that is
(or will be) able to send out BMessages from within the kernel; currently
just prints out what should be done.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:11:02 +00:00
Axel Dörfler
4530a79f4f Forgot a return value in remove_images().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-13 16:37:47 +00:00
Axel Dörfler
1da55179ee thread_exit() now removes the registered images when the team goes down.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:30:09 +00:00
Axel Dörfler
c8019cad42 Added support for the image queue in the team structure.
Adapted because of changing structure names (struct uspace_program_args).
Added comments, fill_team_info() now sets the team_info.image_count correctly.
Some cleanups and style changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:29:28 +00:00
Axel Dörfler
75dccdb63c Added the image API syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:27:03 +00:00
Axel Dörfler
598e865517 Added image.c to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 16:26:39 +00:00
Axel Dörfler
515a4a6590 Implementation of the kernel part of the image API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 15:58:08 +00:00
Ingo Weinhold
4a05764e4b Some smaller changes concerning the scanning of the settings file to make it behave more like BeOS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-12 14:42:09 +00:00
Axel Dörfler
4fff689f48 Some minor updates:
arch_cpu: could have used the TLS_SIZE macro in one place, removed
a now unused variable, assignments to tss_loaded are now booleans.
thread.c: added the new fields to _dump_thread_info().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-08 09:27:55 +00:00
Axel Dörfler
20726b7fb1 _create_thread() now correctly allocates the stack with REGION_ADDR_EXACT_ADDRESS
from the USER_STACK_REGION (until B_BASE_ADDRESS is available), made it much better
readable. It now grows from the lower USER_STACK_REGION up to the start of the main
thread's stack location.
Calls arch_thread_tls_init() and accounts for the TLS area in the stack region.
Added some comments, some cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:48:01 +00:00
Axel Dörfler
59cbb92fdf team_create_team2() now also allocates a region for TLS in the primary stack
area. It now also calls arch_thread_init_tls(). Cleaned it up to make it more
readable, added some comments.
Some other cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:40:59 +00:00
Axel Dörfler
2a6fbb7f88 Removed some hard-coded values with definitions (mostly USER_x_SEG in arch_x86.S,
and TSS_BASE_SEGMENT in i386_set_tss_and_kstack() (thanks Daniel for pointing this
out)).
Added a arch_thread_init_tls() function which fills the reserved slots - the find_thread()
inline asm in OS.h is finally working.
Added some more comments, resolved the ToDo items from last time :-)
arch_thread_context_switch() now calls set_tls_context() at the correct location.
arch_thread_enter_uspace() now calls set_tls_context() as there is no context
switch in this case for the current thread after TLS has been set up, and it
now gets a pointer to the thread structure directly, and calculates the user
stack top itself, rather than the callee.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-07 09:33:30 +00:00
Axel Dörfler
19321ae5a8 Temporarily removed arch_selector.c from the build - it's currently not used
at all, and assumes a fixed and wrong number of preallocated GDT entries.

Implemented TLS: there is one GDT entry per CPU. If a context switch happens,
the FS register of the new thread is set to the matching GDT, and the GDT is
changed so that it points to the current thread's TLS storage area.
This area currently resides unsafely at the bottom of the user stack - for
some reason I could not figure out, it doesn't even work correctly most of
the time (it segfaults when accessing a slot via FS). I've added a ToDo item
explaining the situation - hopefully I have more ideas when I slept a bit more...

The GDT is now no longer static in arch_cpu.c and has been renamed from gdt to
gGDT. It's now also referenced in arch_thread.c, and it would make sense for
arch_selector.c to use it as well (instead of another local copy).
arch_cpu_init2() now uses the set_tss_descriptor() inline function and the
TSS_BASE_SEGMENT macro to set up the TSS section. It now also sets up the
TLS segment descriptors (as TSS, one entry per CPU).

Since I removed desc_table from the headers (the GDT is now a (segment_descriptor *)),
I added it locally to arch_int.c.
i386_enter_uspace() now don't set the FS register to 0x23 anymore, since it's
now already set correctly at the end of arch_thread_context_switch().

Some clean-ups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:25:01 +00:00
Axel Dörfler
722bf47f67 Added some ToDo items.
Smaller cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:10:54 +00:00
Axel Dörfler
1d661e3285 Just slightly changed a comment; there was more, but I removed that, and
I was too lazy to revert that little change back, so that I would be able
to write this short paragraph explaining what I've done.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:10:03 +00:00
Axel Dörfler
d703e5451d Removed an XXX comment question, and replaced it with an explanation of the
issue.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-06 08:08:13 +00:00
Axel Dörfler
50808915da Removed unused file int.c.
Minor style changes in arch_vm*.c


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-02 13:56:53 +00:00
Axel Dörfler
e8bfc82801 Removed config_manager from the old location (now in src/add-ons/kernel/bus_managers)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-02 13:23:06 +00:00
Axel Dörfler
c893786008 Exported the whole known driver module API - not implemented yet, though.
Removed the probably broken bus module info.
Renamed functions cfdm -> driver, cfbm -> bus.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-31 18:33:32 +00:00
Axel Dörfler
ed5c11d75a Included NewOS change 1674 - moved architecture dependent part of elf.c
to the correct location.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-30 13:33:22 +00:00
Axel Dörfler
7747cd8133 Included Travis' change 1687.
Cleanups, added TRACE() debugging macro instead of commented dprintfs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-30 11:18:57 +00:00
Axel Dörfler
2d4d170f83 Some cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-30 11:17:36 +00:00
Axel Dörfler
ce29ea4e8f Removed it again :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-10 04:27:38 +00:00
Axel Dörfler
796a8651e9 Added a skeleton for the image API. Contains almost no code yet, though, only
some structure definitions (to outline some basic ideas), and the symbols
exported to userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-10 03:36:18 +00:00
Axel Dörfler
d768457f49 Included NewOS change 1685 in OpenBeOS; a fix for the VM.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-08 23:12:09 +00:00
Philippe Houdoin
a4d52d3edf Add missing headers/os/drivers/KernelExport.h functions here and there.
Some int -> cpu_state cleanup on the way, and implement the
B_KDEBUG_CONT and B_KDEBUG_QUIT features in our kernel debugger.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-07 00:25:50 +00:00
Axel Dörfler
424880282f Fixed a warning.
Replaced "int state" with "cpu_status state" where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-04 16:40:07 +00:00
Axel Dörfler
fb101ff170 Completely rewritten the module iterator code. Fixed many bugs in that
code and made it much simpler (it now just uses a stack of path names
instead of this complex doubly-linked module_iterator_dir list).
Now works together with the rest of the code without making any problems.
Added a module_test() function which iterates over all existing modules.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 17:54:09 +00:00
Axel Dörfler
ac5b2b4ece bootfs_read_dir() and devfs_read_dir() both returned B_ENTRY_NOT_FOUND
instead of B_OK for the last directory entry.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 17:49:28 +00:00
Axel Dörfler
744761bf27 Removed the team->path variable. Renamed ioctx to io_context.
Some cleanups, moved user_*() functions to the end of the file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:17:53 +00:00
Axel Dörfler
1291a19d84 thread->page_faults_allowed is now initialized.
Updated due to the ioctx -> io_context change.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:11:35 +00:00
Axel Dörfler
5cdaa5176e Now panics if page faults are forbidden and happen anyway.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:10:34 +00:00
Axel Dörfler
52bd3fc17c Implemented forbid_page_faults() and permit_page_faults(), added a new
field to the thread structure to keep track of the current state.
forbids/permits can be nested.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 14:09:43 +00:00
Axel Dörfler
aeb5053982 Added empty (until TLS steps in) function stubs for:
permit_page_faults(), and forbid_page_faults().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 01:50:55 +00:00
beveloper
7d9fdf5918 make sure that the stack page is in place before disabling interrupts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-30 02:36:31 +00:00
beveloper
c0d31b20ab Fixed the detection of page faults that happen while interrupts were
disabled. If a page fault happend while a interrupt handler is executed,
or while a section of code is running with interrupts disabled (with the
exception of the initial kernel startup), the page fault handler will
now panic, to give you the chance to fix the bug.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-30 02:01:29 +00:00
Axel Dörfler
750a82c5d3 Added new debug output macros (TRACE()).
thread_exit() for now prints a warning if it was called with interrupts
disabled.
Fixed a bug in thread_exit2() that restored the interrupts too early,
instead of simply enabling them (and restoring them later) [found by
Marcus O. great debug additions].
Fixes for the khash changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:42:52 +00:00
Axel Dörfler
14d9bcd728 Fixed two warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:39:34 +00:00
Axel Dörfler
3ae9bebe33 Fixes for the khash changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:38:52 +00:00
Axel Dörfler
fc88dc959f Added a missing include (and fixed a warning this way).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:37:19 +00:00
Axel Dörfler
8a91be0446 Removed two warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:36:42 +00:00
Axel Dörfler
8a531eeb0a Fixes for the changes in khash.
Now the d_reclen field of struct dirent is correctly calculated in all
file systems (read_dir() function).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:36:05 +00:00
Axel Dörfler
b9b1c1c4f5 Almost completely rewritten module.c. Locking now works correctly, memory
leak fixed, some other bugs fixed, removed the global queues as there weren't
needed and used at all, moved to the other hash table implementation
(because the new_hash_table stuff was buggy). Should really work okay now :-)

Added the last missing function get_next_loaded_module_name() - I am not
sure the Be version works this way, but we could easily change that after
actually having found out how that one is really working.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:33:57 +00:00
Axel Dörfler
d92e4b19e4 Completely removed the buggy, inflexible, and incomplete new_hash_table
implementation.
Some cleanups of the other code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:30:20 +00:00
beveloper
0010bfc64f the new_hash_table code has a larger number of problems
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 17:34:55 +00:00
beveloper
428f0ce25c last cleanup of pool code before rewriting it
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 15:05:58 +00:00