History log of /haiku/src/add-ons/kernel/file_systems/userlandfs/server/haiku/Jamfile
Revision Date Author Comments
# 528d5321 24-Jul-2023 Augustin Cavalier <waddlesplash@gmail.com>

userlandfs: Adjust path to Notifications.cpp.


# 899e0ef8 01-Jul-2023 PulkoMandy <pulkomandy@pulkomandy.tk>

userlandfs: use std::bitset for FSCapabilities

gcc 13 is confused by the custom bitset implementation, so use the C++
standard one instead.

However, this results in including the C++ <string> header in kernel
code. This doesn't work for gcc2, because of two problems:

- That header includes a declaration of atomic_add that doesn't match
the one in SupportsDefs.h (which can in some cases replace the function
with a #define for an inline version). Adjust the header to use the
be a problem because it creates a risk of circular inclusions.
Standard C++ headers shouldn't depend on BeAPI ones.
- It also leads to the inclusion of iostream which defined lock and
unlock functions in the global namespace. We don't want these, and they
are not part of the C++ standard, so just remove them.

Ideally we could use std::hash for the GetHashCode implementation, but
that doesn't work because it depends on an helper function that's in
libstdc++, and we can't link that from kernel add-ons.

Change-Id: Iee07280beb4dddf7a9b6160e37f3b816e4de89ae
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6663
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# ace74964 13-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Remove khash from the sources.

Fixes #9552.


# 220d0402 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 604770b3 11-Jul-2014 Julian Harnath <julian.harnath@rwth-aachen.de>

Adapt kernelland_emu to kernel API changes

* Adapt to changes in kernel synchronization APIs.

* Makes userlandfs work again.


# bd185b41 01-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

*.c -> *.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34417 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c77f643a 20-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for in-kernel node monitoring ({add,remove}_node_listener()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf17d269 17-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Referenceable.cpp -- it's in the kernel, so we need it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34086 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d5c24e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4649fe05 17-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Haiku kernel interface emulation: Retrieve the capabilities for each vnode.
We do some caching using a hash table indexed by the operations vector.
* Pass the vnode capabilities to the kernel module.
* In the kernel tailor the operation vectors for volumes and vnodes passed to
the VFS according to the respective capabilities. This way those vectors look
pretty much like those from the client FS. This saves unnecessary calls when
hooks are not implemented and should also fix compatibility problems in cases
where not implementing a hook and returning an error don't mean the same to
the VFS.
* Inlined some of the kernel module Volume class getters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29572 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42e53f97 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added kernelland_emu vm.cpp (for user_{strlcpy,memcpy}()).
* Added dummy entry cache functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# daa67478 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the khash, condition variable, lock, block cache, and slab
implementations and instead use the kernel sources directly or the
libkernelland_emu sources.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29456 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 484708d5 07-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the OpenHashTable implementation the UserlandFS used. Adjusted the
HashMap and HashSet classes to use the kernel utils OpenHashTable instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29429 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa085ffe 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed UserlandFS shared Locker class. Instead use BLocker in userland and
RecursiveLock in the kernel.
* Several adjustments according to UserlandFS header changes.
* Re-added reiserfs to image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29410 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0509ccc 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed several shared userlandfs classes that exist as Haiku shared or kernel
util classes as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29404 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f1f4f54 01-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed UserlandFSServer to userlandfs_server. It is expected to live in
/system/servers, now.
* Got rid of the dispatcher application. It was the entity the kernel module
talked to when mounting a yet unknown FS. It started the client FS server
applications. Now the kernel module starts them directly. They use
respectively named ports, so the kernel module can find them when already
running.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29377 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b8f138f 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the parent directory from the header directories again. Instead
include the respective headers explicitly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c12690b5 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Some file renaming (removed the haiku_ prefix).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67cf3a62 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the file cache emulation and added implementation stubs for the file
cache functions. We won't emulate the file cache in userland anymore, but
forward the calls to the kernel. Besides that this will save quite a bit of
emulation code, it will also make mmap()ing files on UserlandFS volumes
possible. The drawback is that these calls will be slower.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29349 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4ec0a23 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added the kernel file map implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29348 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f53cb42 27-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Missing include directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29346 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b34687 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reorganized the sources. Haiku and BeOS kernel interface each have their own
subdirectory, now.
* Moved all code specific to a kernel interface into the respective library.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29344 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ace74964f1cc6cf459950ce03240d6b2b28cbb38 13-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

Remove khash from the sources.

Fixes #9552.


# 220d04022750f40f8bac8f01fa551211e28d04f2 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 604770b31331951e0f9b44b368c21dc2b004d920 11-Jul-2014 Julian Harnath <julian.harnath@rwth-aachen.de>

Adapt kernelland_emu to kernel API changes

* Adapt to changes in kernel synchronization APIs.

* Makes userlandfs work again.


# bd185b4117e06c1674c4d214abc3917acedc560d 01-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

*.c -> *.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34417 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c77f643a2b3f3990e6f355d6c333537b9cbfd88f 20-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for in-kernel node monitoring ({add,remove}_node_listener()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf17d2695dd4b86d303953ea6c486b725416688f 17-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Referenceable.cpp -- it's in the kernel, so we need it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34086 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16d5c24e533eb14b7b8a99ee9f3ec9ba66335b1e 07-Jul-2009 Oliver Tappe <zooey@hirschkaefer.de>

* merged 32bit-wchar_t branches of buildtools and haiku back into
the respective trunk

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31443 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4649fe05ef03c9981231538121df35aab32f2bc0 17-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Haiku kernel interface emulation: Retrieve the capabilities for each vnode.
We do some caching using a hash table indexed by the operations vector.
* Pass the vnode capabilities to the kernel module.
* In the kernel tailor the operation vectors for volumes and vnodes passed to
the VFS according to the respective capabilities. This way those vectors look
pretty much like those from the client FS. This saves unnecessary calls when
hooks are not implemented and should also fix compatibility problems in cases
where not implementing a hook and returning an error don't mean the same to
the VFS.
* Inlined some of the kernel module Volume class getters.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29572 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 42e53f97a21b778c57b2036e96df35b4cbb4563c 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added kernelland_emu vm.cpp (for user_{strlcpy,memcpy}()).
* Added dummy entry cache functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29457 a95241bf-73f2-0310-859d-f6bbb57e9c96


# daa674789c7b247e3002a595bd53c4ef44caa8ab 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the khash, condition variable, lock, block cache, and slab
implementations and instead use the kernel sources directly or the
libkernelland_emu sources.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29456 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 484708d5d6c234d7e282898eb05895d988569fc5 07-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the OpenHashTable implementation the UserlandFS used. Adjusted the
HashMap and HashSet classes to use the kernel utils OpenHashTable instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29429 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa085ffef993707b59f861a32404f1fca50055e9 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed UserlandFS shared Locker class. Instead use BLocker in userland and
RecursiveLock in the kernel.
* Several adjustments according to UserlandFS header changes.
* Re-added reiserfs to image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29410 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c0509ccc2954628faa943034feab9e3fe15e3df1 05-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed several shared userlandfs classes that exist as Haiku shared or kernel
util classes as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29404 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2f1f4f54d64e2d0a04015de5c3788fabc1989aa0 01-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed UserlandFSServer to userlandfs_server. It is expected to live in
/system/servers, now.
* Got rid of the dispatcher application. It was the entity the kernel module
talked to when mounting a yet unknown FS. It started the client FS server
applications. Now the kernel module starts them directly. They use
respectively named ports, so the kernel module can find them when already
running.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29377 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b8f138f436bac5f2e97e136f6ced24e23d8ae24 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the parent directory from the header directories again. Instead
include the respective headers explicitly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c12690b58af593e40fe5cb7aff0aa1a942228bb2 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Some file renaming (removed the haiku_ prefix).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67cf3a62b49362a086ab35930b86d0f6eeec7531 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the file cache emulation and added implementation stubs for the file
cache functions. We won't emulate the file cache in userland anymore, but
forward the calls to the kernel. Besides that this will save quite a bit of
emulation code, it will also make mmap()ing files on UserlandFS volumes
possible. The drawback is that these calls will be slower.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29349 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4ec0a2364b3fe0b5f4b8ca0c7ea1b54ef8e8735 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added the kernel file map implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29348 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8f53cb421d1082aaf94822d060af1f43342566a6 27-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Missing include directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29346 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b346877023493472fc5c8ef0de99ed9043450f 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reorganized the sources. Haiku and BeOS kernel interface each have their own
subdirectory, now.
* Moved all code specific to a kernel interface into the respective library.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29344 a95241bf-73f2-0310-859d-f6bbb57e9c96