Haiku image) revealed a problem with that change:
* If the root node only contained a single entry it was freed instead of just making
it a leaf node - that could produce an invalid b+tree (could only happen with
attribute or index trees, as directories always contain '.' and '..').
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19006 a95241bf-73f2-0310-859d-f6bbb57e9c96
(by linking them to haiku's libsocket.so and libbind.so). This in turn greatly
simplifies building their respective userland version as they now are the same
as the standard version.
- added ping and traceroute to install-userland-networking pseudotarget
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17717 a95241bf-73f2-0310-859d-f6bbb57e9c96
userland-networking files into a convenient place for easier testing:
+ net_server_driver and net_stack_driver are installed to
/boot/home/config/add-ons/kernel/drivers/bin and ../dev/net
+ net_stack_tester, ifconfig, arp and route are installed to
$(HAIKU_TEST_DIR)/kits/net/userland
+ libsocket, libnet, libbind and libnetapi are installed to
$(HAIKU_TEST_DIR)/kits/net/userland/lib
+ userland add-ons are installed to
$(HAIKU_TEST_DIR)/kits/net/userland/add-ons/obos_network
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17701 a95241bf-73f2-0310-859d-f6bbb57e9c96
log). Still doesn't seem to work correctly, though (but it's definitely
getting closer :-)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17560 a95241bf-73f2-0310-859d-f6bbb57e9c96
environment: actually build it! :-)
Next step: fix the Jamfile to create the symlink to userland "obos_network" add-ons.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17520 a95241bf-73f2-0310-859d-f6bbb57e9c96
parameter from a C++ to a C context doesn't work as expected (on x86).
The caller reserves 4 bytes on the stack, but initializes only the
less significant 2 of them, while the callee reads all four bytes.
A symptom was, that one couldn't remove a symlink pointing to a directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16352 a95241bf-73f2-0310-859d-f6bbb57e9c96
implement the B_GET_GEOMETRY command in a usable way. The bfs_shell is
able to play with partition devices under Linux, now.
* Fixed two warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16146 a95241bf-73f2-0310-859d-f6bbb57e9c96
a few whether they actually work.
New pseudo target "unittests", which builds all unit tests for the currently
set TARGET_PLATFORM. They are placed in generated/tests/<platform>/unittests.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14791 a95241bf-73f2-0310-859d-f6bbb57e9c96
"*** remove ..." error messages when initializing a BFS image via the bfs_shell.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14591 a95241bf-73f2-0310-859d-f6bbb57e9c96
The last log entry was never added to the list (if there were more than one), and
thus, it's blocks were never unlocked nor written back (after some minutes of
makehdimage an empty image would greet you).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14427 a95241bf-73f2-0310-859d-f6bbb57e9c96
though, so it's not really ready to be used in a real file system.
Found an off-by-one/some error in Be's BFS implementation: it doesn't use the log
array to its full extent.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14423 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added libmessagetest.so to test specifically the BMessage implementation.
Fixing some other unit tests along the way - quite many of them are borken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13911 a95241bf-73f2-0310-859d-f6bbb57e9c96
the super block was written back. This had a big race condition when all
blocks in the transaction were written back before the super block was
written. In that case, the log info part of the super block got out of
sync and was plain wrong (eventually causing the disk to be unmountable).
Also moved the list code over to the kernel's DoublyLinkedList.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13366 a95241bf-73f2-0310-859d-f6bbb57e9c96
a node was not always correctly determined (or set) - the recent change
of the attribute (directory) modes made these bugs a bit more obtrusive.
This also fixes a drop to the kernel debugger when doing a
"zip -r config.zip config/" in the home directory, as reported by Korli.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12826 a95241bf-73f2-0310-859d-f6bbb57e9c96
attribute directories, and symlinks.
This reduces the space usage of the image created by makehdimage quite
a bit already (dropped from currently 56 MB to 34 MB).
The core of r10356, the fix for the preallocation memory leak, however,
has not been backported (it would probably save another 5 MB on the final
image).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12797 a95241bf-73f2-0310-859d-f6bbb57e9c96
the S_IFREG flag. The missing flags caused the original BFS to crash
on our files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12796 a95241bf-73f2-0310-859d-f6bbb57e9c96
If anything is still broken (and was not before :)), please shout.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12361 a95241bf-73f2-0310-859d-f6bbb57e9c96
(and added support for that function in the emulated kernel).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11951 a95241bf-73f2-0310-859d-f6bbb57e9c96
* When the target is a symlink, it is tried to be resolved before making
the decision what to do.
* If the (resolved) target is a file and the source is a file, we don't
fail anymore, if `-f' wasn't specified. We truncate the target file
instead and copy the source data into it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11683 a95241bf-73f2-0310-859d-f6bbb57e9c96
be used by our R5 mkbfs replacement for now, until someone replaced that
boot loader code :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11616 a95241bf-73f2-0310-859d-f6bbb57e9c96
the platform independent code out of fs_shell_command_beos.cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11600 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Make return value of implementations of Directory::GetNextEntry()
match the base class version.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11599 a95241bf-73f2-0310-859d-f6bbb57e9c96
they return the respective error codes.
* Fixed the open mode conversion function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11597 a95241bf-73f2-0310-859d-f6bbb57e9c96
switch to Axel's hack to just redefine the critical functions via macro
definition in the Jamfile.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11589 a95241bf-73f2-0310-859d-f6bbb57e9c96
ones.
* Added listattr command.
* Added cd command. It can change the CWD of the emulated as well as of
the host OS (prefix `:').
* Changed do_dir() to print symlinks with their target.
* Rewrote the rm command. It now support the options -r and -f
and multiple files.
* Rewrote the symlink command (and renamed it to link, alias ln). It now
supports creating hardlinks and understands the options -s and -f.
* Added command xcp, with support for options -r, -f, -d, and pretty
close approximation of the shell command cp, save for the fact, that it
copies attributes and can freely copy in the emulated and host OS
(and between them, of course; prefix `:').
Now it should be possible to change makehdimage to use a scripted
bfs_shell instead of UserlandFS to build a HD image.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11587 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added sys_stat_attr().
* Added sys_open_attr_dir(). Extended the directory functions to be able
to deal with attribute directories.
* Init the current directory, so we can use it (the support is there
already).
* Use our open modes instead of the platform ones.
* Added O_NOTRAVERSE support to sys_open().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11586 a95241bf-73f2-0310-859d-f6bbb57e9c96
the bfs_shell related files:
* Fixed a couple of `friend without struct/class' errors gcc 3
complains about.
* Several adjustments do make the FS add-on build in a BeOS-like
environment. E.g. the fs_shell header "myfs.h" is not longer included.
For "cache.h" and "proto.h" the local copies are included.
* additional_commands.c must is part of the fs_shell and must be build in
the same environment as the fs_shell. The fs_shell definitions must be
used for system dependencies.
* The FS add-on has a platform dependency, since it opens and fstat()s
the underlying device. open() is harmless, but we must wrap fstat().
* We don't longer compile in kernel_cpp.cpp, but rather use the
platform C++ support directly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11569 a95241bf-73f2-0310-859d-f6bbb57e9c96
Linux:
* Corrected use of error code. We consequently use the errors we
defined to be compatible with BeOS and translate error code to and from
the build platform where necessary.
* Consequently use the structs my_stat and my_dirent and the type
fs_off_t when dealing with the guest FS. my_dirent had to be adjusted
to be BeOS compatible.
We wrap the platform fstat() now to translate the struct stat to the
BeOS representation.
* Fixed a bug introduced with the last checkin: The fs_shell crashed after
executing a command.
* Fixed printf() format warnings under Linux.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11565 a95241bf-73f2-0310-859d-f6bbb57e9c96
use all Haiku headers save the POSIX and STL headers. Let's see how we
fare on Linux with this change...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11552 a95241bf-73f2-0310-859d-f6bbb57e9c96
hand. Fixed all compiler errors.
* Changed the mechanism for including additional commands. Now an array
is exported by the instance code.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11550 a95241bf-73f2-0310-859d-f6bbb57e9c96