Commit Graph
825 Commits
Author SHA1 Message Date
Axel Dörfler 1b9d001b66 Changed the get_file_system() call to accept a Partition instead of a Node.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-14 16:39:03 +00:00
Axel Dörfler 6151971100 Implemented scanning the whole device tree for bootable devices (that are
understood by the OpenFirmware).
That makes it work on both, the Pegasos and the PowerMac G4 (any Mac with
OpenFirmware v3 should do, though).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 15:48:46 +00:00
Axel Dörfler 2e44755b40 Changed the order of boot_loader.a and boot_partitions.a - somehow ld can't
link the files anymore otherwise (it works on PPC, though).
Added the missing strlcpy.o to the build.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 01:01:17 +00:00
Axel Dörfler 2f85616f33 Removed strerror(); it's not available in the boot loader.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 00:59:34 +00:00
Axel Dörfler 687cfec3a8 Forgot to include util/kernel_cpp.h in order to not use exceptions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 00:39:14 +00:00
Axel Dörfler 52d257607f Added a very simple realloc() implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4666 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 00:38:45 +00:00
Axel Dörfler a7091d52fa Implemented PPC optimized byte order functions, and added them to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 00:02:54 +00:00
Axel Dörfler 75352278ce Fixed the build when DEBUG was defined: thread_wait_on_thread() is now
called wait_for_thread().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 20:49:01 +00:00
beveloper 8a3b6e2cfd fixed warnings
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 20:44:45 +00:00
Axel Dörfler e3505b15f4 Fully implemented Directory including directory traversing and file lookup.
Also implemented the new GetNextEntry() method.
Added some more constructors for convenience.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:39:09 +00:00
Axel Dörfler 0cc97dd615 Implemented File::GetName() using Stream::GetName().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:37:22 +00:00
Axel Dörfler c9fad12dca Added the new BPlusTree.cpp and File.cpp to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:36:36 +00:00
Axel Dörfler 8efb3a26d2 Add a simple Node implementation for BFS files (and everything else that
needs access to the stream directly).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:33:42 +00:00
Axel Dörfler 8565a87552 Added some convenience functions, a method to get the node's name, and
a node factory to get the correct type of node (Directory/File).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:32:21 +00:00
Axel Dörfler a421161e94 Added another ToOffset() convenience method.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:28:53 +00:00
Axel Dörfler 1e7e9b1284 Cut down the original BFS BPlusTree implementation to the bare minimum
required to have read-only, single-threaded access to a B+tree.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:28:12 +00:00
Axel Dörfler 8d86e5a30d Now prints out all devices found, and shows their root directory.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:17:45 +00:00
Axel Dörfler 1a5a709876 Implemented the new GetNextEntry() method in the root file system.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:16:39 +00:00
Axel Dörfler 3f2188ad1a Partition::AddChild() created its child with the wrong file descriptor; i.e.
it passed partition_data::volume which used to be the correct descriptor
earlier, but is now unused in the boot loader partition support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:10:45 +00:00
Axel Dörfler 50ab1fac08 Somehow forgot to actually include the Stream class in the last commit...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 02:29:01 +00:00
Axel Dörfler aec0abfd56 Add a new Stream class that handles reading bytes from an inode (retrieved
from the BFS Stream.h file) - it supports all data stream ranges (direct,
indirect, & double indirect).
Moved bfs_inode::InitCheck() to the new Stream class.
The Directory class now has a Stream object instead of a bfs_inode directly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 02:28:14 +00:00
Axel Dörfler c966bfdab7 Started to implement the real BFS module for the boot loader.
Currently, it only recognizes a BFS disk, and will print out its name
(and that code is now endian-aware as well).
More to come, though :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:22:40 +00:00
Axel Dörfler e9117d1507 Put Partition and the new (private) NodeOpener class into the "boot" namespace.
Implemented Partition::Size() and Type() to stat its device.
Partition::ReadAt() and WriteAt() now return B_BAD_VALUE if a position smaller
than zero is provided (as Posix actually states).
Partition::Scan() now provides the partitioning system modules with the correct
file descriptor; it now opens itself (using the NodeOpener class) and no longer
the descriptor of its device directly (resulting in wrong positioning).
Debug output can be turned off now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:12:53 +00:00
Axel Dörfler f150614a3b Node::fRefCount is now 1 after creation, so that a following Acquire()/Release()
pair doesn't delete the object anymore (creation is regarded as an Acquire()
equivalent now).
Moved mount_boot_partitions() and vfs_init().
Debug output can be turned off now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:09:22 +00:00
Axel Dörfler 21d6803233 The class partition is now in the namespace "boot". Now overloads Size()
and Type() as well.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:07:03 +00:00
Axel Dörfler 0ccfc3ca29 Added TRACE() macro to be able to make the loader more silent.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-11 18:58:37 +00:00
Axel Dörfler 9225f27c04 Class Node already had a list_link field, so Partition::fNext was not only
wrong, but also completely senseless :-)
Renamed Partition::NextOffset() to LinkOffset() to honour that change.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-11 18:58:05 +00:00
Axel Dörfler 81b8b661c1 dump_chunk() is now only exported when HEAP_TEST is defined.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4618 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-11 17:30:12 +00:00
Axel Dörfler bd75d5b8cf OpenFirmware handles now report a size of 1024 GB for now - so that the
partition modules won't complain about a disk too small to hold a partition.
Should be fixed, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-11 00:31:21 +00:00
Axel Dörfler b5a05a72fa Fixed some warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:36:52 +00:00
Axel Dörfler d02898ade8 list.h is now in util/.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:36:29 +00:00
Axel Dörfler a26d074d55 The boot loader build process has changed a bit.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:23:57 +00:00
Axel Dörfler b5711c8173 An empty BFS file system for the boot loader for testing purposes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4592 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:22:37 +00:00
Axel Dörfler 16885aac6f Made the Node base class better to use with files and directories, added
Acquire()/Release() support as well.
New Directory base class.
Added basic support for file systems and the root file system, not yet
fully working (no path parsing yet), and not yet tested.
Implemented fstat().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:21:58 +00:00
Axel Dörfler 6d43a73b2e The very basic root file system for the boot loader, but should be enough.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:19:08 +00:00
Axel Dörfler 795b832490 Moved the definition of the Partition class in a separate private header file.
Implemented recursive child content scanning.
Added support for file systems, and the root file system.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:18:26 +00:00
Axel Dörfler c55a2656e5 Partition modules are now built in their own static library file. Since
only the ones actually used are linked in, the local variable is no longer
used.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4588 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:16:40 +00:00
Axel Dörfler 8de63d24da Renamed the Descriptor::Read()/Write() methods with position to ReadAt()
and WriteAt().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 22:50:50 +00:00
Axel Dörfler eced90ea7a Moved the definition of the Descriptor class to vfs.cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 12:32:33 +00:00
Axel Dörfler a8ee1dbc56 Added Marcus version of __swap_int16(); it's commented out for now, though,
but we might want to add it later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 12:23:03 +00:00
Axel Dörfler e4cf172727 Since Ingo found out that BeOS requires the module name and its location
on disk to match to be able to find it, changed the ToDo: comment in the
affected function, and added a test call to vfs_get_module_name(); our
bootfs cannot handle the path depth/length required to be a useful module
host, so we still have our recursive search algorithm in place for now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 04:06:14 +00:00
Axel Dörfler ad304a7ef7 Implemented a new vfs_get_module_path() call that returns the module path
of a given module name.
vnode_path_to_vnode() can now return the type of the file, changed the parameter
order.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 04:02:34 +00:00
Axel Dörfler d8018ea5b1 Fixed a build bug I introduced earlier.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 03:54:36 +00:00
Axel Dörfler 2eb8498f76 Fixed a warning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 03:52:44 +00:00
Axel Dörfler 393d1e9163 Add some sources to the boot loader that are needed by the intel partition
module (even qsort()!).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 02:50:44 +00:00
Axel Dörfler c754274e3a Added some more dummy stuff, so that the whole thing is linked correctly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 02:42:49 +00:00
Axel Dörfler 3a48e17b83 Added the intel partition module to the boot loader build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4553 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 02:41:57 +00:00
Axel Dörfler 6eae77e068 Moved the Partition class declaration to the source file.
Refactored the code a bit (moved the scan algorithm to the Partition class, ...).
Implemented get_parent_partition() and added a stub for get_child_partition()
as needed by the intel partition module.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4550 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 02:38:45 +00:00
Axel Dörfler 7cde8a9d7f Implemented __swap_int16/32/64() (float/double are missing right now, but should
be the same as __swap_int32/64()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-07 17:22:15 +00:00
Axel Dörfler dbb3d1fc5b Fixed some warnings.
Added a comment about how to traverse the module path to find a given module -
could well be that we got that wrong (too loose, it will work perfectly, though,
just slower than it could be).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-06 17:35:05 +00:00