Commit Graph

668 Commits

Author SHA1 Message Date
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
Axel Dörfler
9d67600e03 Forgot to complete the comment :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-05 13:40:37 +00:00
Axel Dörfler
af1cb3f2da Fixed strlcat(); the old version assumed to have "maxLength" (3rd parameter)
bytes space *after* the dest string in the copy loop.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-05 13:30:06 +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
62ef93d044 Updated the pipe_test to also test buffering of writes to the pipe.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-29 18:12:48 +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
8a32e4dc84 Replaced the "filetest" command with the "pipe_test" for the build, due to
limited space in the boot file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 04:22:06 +00:00
Axel Dörfler
32169869e8 Added a test for the pipe implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 04:17:31 +00:00
Axel Dörfler
1792510380 Fixed the pipe creation and made it secure against very fast threads, as
suggested by Ingo.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 02:44:20 +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