Commit Graph

653 Commits

Author SHA1 Message Date
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
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
Axel Dörfler
e59c643b47 Implemented the pipe() command - ready for the upcoming pipefs implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 02:55:15 +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
Axel Dörfler
1b4a09278b A simple heap implementation for the boot loader - already tested, and working well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-24 18:05:54 +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