Commit Graph

4858 Commits

Author SHA1 Message Date
Axel Dörfler
25a5c7d03d Moved the class definition back to <boot/partitions.h>, since it's now public
again.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-14 16:41:19 +00:00
Axel Dörfler
5d2ca15280 Class Partition is now part of <boot/partitions.h>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-14 16:40:35 +00:00
Axel Dörfler
1cd06a2273 Partition class is now part of <boot/partitions.h>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-14 16:39:57 +00:00
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
da42afdf62 Made the Partition class public again - it's handy to use for some file
systems in order to retrieve some parameters.
Changed the get_file_system() call to accept a Partition instead of just
a node.
Introduced the namespace boot to the public headers; I guess I should
put all classes in there (compilation of the intel partitioning system
fails without the namespace, because it defines a class Partition itself).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-14 16:38:10 +00:00
Waldemar Kornewald
c2a58f5169 Added MRU option handler.
Fixed wrong definition of MRU.
Added the StackControl() method to all handlers (expect PPPDevice) and changed how the netstack ioctls are passed to the handlers.
Added a template for iterating over indexed lists (needed methods: CountItems() and ItemAt()). This simplified StackControlEachHandler() a little bit.
Some minor changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-14 13:24:24 +00:00
Waldemar Kornewald
7ff713dadd Replaced some pointers with references.
Added support for Protocol-Field-Compression including the needed handler.
Added initial support for ppp_manager's ioctl() function (currently, PPPInterface does not handle any ioctls). These calls are routed to all handlers, too (if PPPInterface did not handle the ioctl).
Changed naming of local states and report codes (authentication, etc.). These now have "Local"/"LOCAL" in their name.
Some minor changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 17:57:12 +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
0ec3701b5f Removed check-memory-usage flags as that wouldn't work on R5 (it was distributed
without memory checking - you would have to download an extra library to get it).
Added the strlcpy() command, since it's not part of the R5 libroot.so.
Should now build on R5 as well (not tested).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-13 01:13:27 +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
Axel Dörfler
0d48a66bf1 Removed the port_test_thread_func() prototype from the header - that's a
private method which is only defined when DEBUG is turned on.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 20:48:07 +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
Waldemar Kornewald
53a75b6389 Added some extended support for DialOnDemand.
Fixed missing ifnet flags.
PPPStateMachine: replaced nearly all pointers to PPPInterface objects with references.
PPPInterface: added delay to Redial() method (will be used to implement DialRetryDelay, too).
PPPLCP: changed the way Receive() handles LCPExtensions and added code for removing padding from packet.
PPPOptionHandler: added code and only one OptionHandler per code is allowed from now on.
Added some changes to support authenticators.

TODO:
- add DialRetryDelay
- maybe change how StateMachine iterates over OptionHandlers (as they have a code field now)
- commit changes for PFC support and PFC, MRU, and authentication handler


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 15:27:29 +00:00
Tyler Dauwalder
90685fb799 Per POSIX, now returns B_BAD_VALUE if read position is negative (thanks Axel :-).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 08:49:12 +00:00
Axel Dörfler
c6c1620a32 Added/changed some test input strings. Removed an unused variable.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:48:39 +00:00
Axel Dörfler
e6889ed1a3 Added the new BFS files BPlusTree.cpp and File.cpp.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:40:27 +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
3d2f1723fd Stream::ReadAt()/WriteAt() now return B_BAD_VALUE if the read/write
position was set to a value lower than zero (as Posix demands).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:21:03 +00:00
Axel Dörfler
0774a741c2 The small_data section now makes use of the const keyword :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:19:50 +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
1fdfe0c39a Added a new directory traversing method GetNextEntry() that's based on the
entry's name.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:15:32 +00:00
Axel Dörfler
3e64cf641c No longer scans the whole /dev/disk tree, but only the "ide", "scsi", and
"virtual" subtrees in it (no more parallel, ... scanning).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:14:03 +00:00
Axel Dörfler
4e91b25740 Tried to use stat() to get the size of the file, but of course, that don't
work out for devices - still need to fix it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 07:12:55 +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
Tyler Dauwalder
c52519cfcd Switched from local cpp.h/cpp.cpp to global kernel_cpp.h/kernel_cpp.cpp
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 06:38:49 +00:00
Axel Dörfler
184dd21b87 Adds the new Stream.cpp file to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 02:29:33 +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
7df7a4cc01 Added endian-aware getter methods for all internal BFS structures.
Also made all methods implemented in this file endian-aware (lazy as I am,
I left things like "name_size == 0" unchanged, because 0 is a endian-safe
value... [hey, it's even faster that way]).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:24:55 +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
b796791788 Now adds real devices - it scans the /dev/disk tree and adds all files
with the name "raw" - note, this is directly accessing your precious data,
but read-only of course.
Also added the test-file-device as used by the DiskDeviceManagerTest.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:20:07 +00:00
Axel Dörfler
fe281d90df Now has the possibility of opening a file directly, instead of only
accepting already opened files.
Hence, it now also has an InitCheck() method, because opening doesn't
have to succeed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:18:02 +00:00
Axel Dörfler
fa89d1f6f3 Now exports the calls of the boot loader heap no longer the platform dependent
bindings - we are now using stdlib's malloc()/free() directly instead.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:16:38 +00:00
Axel Dörfler
6b770349d5 Added partitioning and file systems to the build.
Removed the boot loader heap - it now uses standard malloc()/free() in order
to cause less confusion. The boot heap does have its own test app anyway.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:15:13 +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
04409b5f9e The R5 Device API is not public, and shouldn't be exported by this file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-12 01:01:12 +00:00