#
425ac1b6 |
|
20-Jun-2023 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
refactor: Swap %Ld for %lld in all format usages * %Ld is an undocumented alias for %lld in glibc. * muslc doesn't implement it for this reason. * While we will likely never drop %Ld support, lets clean house and set a better example. Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
8e17b43d |
|
14-Oct-2022 |
Jérôme Duval <jerome.duval@gmail.com> |
kernel/device_manager: Implement B_GET_DRIVER_FOR_DEVICE for legacy and new drivers. This is an opcode for ioctl that can be used on almost any device entry found in /dev. When used, ioctl will fill a buffer with the absolute path to the driver file that is being used by the device. This opcode was available in BeOS R5, though remained unimplemented in Haiku since the introduction of the Device Manager almost two decades ago. Original change by Jacob Secunda. Change-Id: Ic49141b677b4158a63918459d4048450c825447c Reviewed-on: https://review.haiku-os.org/c/haiku/+/5078 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
|
#
0f839b9e |
|
20-Apr-2020 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/module: Panic if search_module is called during gKernelStartup. The VFS has not been initialized at this point, so we can't use it. Should catch #15865.
|
#
677e901f |
|
02-Aug-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/module: Utilize RecursiveLocker.
|
#
8e9c7a36 |
|
14-Jan-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel: B_BEOS_* -> B_SYSTEM_* for directory constants. Also clean up legacy_drivers' usage of them a bit.
|
#
c73d1301 |
|
08-Nov-2015 |
Michael Lotz <mmlr@mlotz.ch> |
kernel: Use anonymous namespaces to avoid type collisions. The anonymous namespace makes type definitions local to the translation unit (like static does for objects). For pretty much any type not shared across multiple files this is what one wants to happen (and might erroneously expect to happen automatically). This commit solves some actual collisions that were present: * The VFS and the rootfs both used an incompatible VnodeHash struct for their BOpenHashTable. * XSI semaphores and message queues both used queued_thread, Ipc and IpcHashTableDefinition. For release builds these did not cause problems as the types were fully inlined. Debug builds would crash at boot however because parts of a BOpenHashTable<VnodeHash> from the rootfs meant to operate on struct rootfs_vnode would be applied to one from the VFS expecting struct vnode. As such collisions are violations of the one definition rule, the code is at fault and unfortunatley the compiler isn't required to diagnose such problems across translation units (which isn't actually trivial). This can lead to subtle and hard to debug problems and it's therefore best to avoid leaking types into the global namespace whenever possible.
|
#
be60c04c |
|
12-Jan-2015 |
Rene Gollent <anevilyak@gmail.com> |
modules: Fix #11746. - When normalizing paths of the preloaded modules to their final mounted path, remove them from the hash table before updating their path. Otherwise, the remove would fail due to the hash no longer matching, which in turn would cause the code in question to introduce an infinite loop in the hash table's internal link list due to manually rewriting the next link.
|
#
887be0ac |
|
12-Jan-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
kernel/module: fully convert to BOpenHashTable
|
#
271ac910 |
|
09-Jan-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
Remove useless includes of khash.h * These files were already converted to BOpenHashTable. * For #9552.
|
#
de49e349 |
|
04-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add symbol versioning for find_directory() Should already have been done back when the semantics for the B_COMMON_*DIRECTORY constants was changed. Currently old and new version behave the same. So this is just a contingency measure ATM.
|
#
4b7e2196 |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Remove /boot/common for good * Remove support for the "common" installation location from packagefs, package kit, package daemon, package managers. * Rename the B_COMMON_*_DIRECTORY constants referring to writable directories to B_SYSTEM_*_DIRECTORY. * Remove/adjust the use of various B_COMMON_*_DIRECTORY constants. I'm sure some occurrence still remain. They can be adjusted when the remaining B_COMMON_*_DIRECTORY constants are removed.
|
#
237127fb |
|
22-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix _user_entry_ref_to_path() in chroot * Add "bool kernel" parameter to vfs_entry_ref_to_path(), so it can be specified for which I/O context the entry ref shall be translated. * _user_entry_ref_to_path(): Use the calling team's I/O context instead of the kernel's. Fixes the bug that in a chroot the syscall would return a path for outside the chroot.
|
#
0cbce9aa |
|
18-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
A few 64-bit fixes for ELF/module code.
|
#
f1244978 |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Added an ELF64 version of preloaded_image. * There is now 2 structures, preloaded_elf32_image and preloaded_elf64_image, which both inherit from preloaded_image. * For now I've just hardcoded in use of preloaded_elf32_image, but the bootloader ELF code will shortly be converted to use templates which use the appropriate structure. The kernel will be changed later when I add ELF64 support to it. * All kernel_args data is now compatible between 32-bit and 64-bit kernels.
|
#
0e88a887 |
|
13-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
First round of 64-bit safety fixes in the kernel. * Most of this is incorrect printf format strings. Changed all strings causing errors to use the B_PRI* format string definitions, which means the strings should be correct across all platforms. * Some other fixes for errors, casts required, etc.
|
#
0e35d5d2 |
|
12-Dec-2011 |
John Scipione <jscipione@gmail.com> |
Change instances of wether in comments to whether. No functional change intended.
|
#
45bd7bb3 |
|
25-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed unnecessary inclusions of <boot/kernel_args.h> in private kernel headers and respectively added includes in source files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9837ec16 |
|
20-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed spelling. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34144 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
adbf8b25 |
|
29-Aug-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added fdopendir() (POSIX). * Got rid of <dirent_private.h> -- the __DIR structure is private to dirent.c, now. The attribute directory, index directory, and query functions use the the public POSIX API, so does the kernel module code. Those components were not initializing the structure correctly anymore since the introduction of telldir()/seekdir(). +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32819 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5147963d |
|
26-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
headers/private/kernel/util/OpenHashTable.h, Hugo's version, is a bit nicer than Tracker's OpenHashTable.h which it should eventually replace. We've renamed the class to BOpenHashTable and changed the interface slightly so that HashTableLink became superfluous. Adapted all the code that used it. Since the OpenHashTables no longer clash, this should fix the GCC4 build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31791 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a64c204e |
|
20-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The module iteration code now ignores entries named "dev", and "bin" - this reduced the boot time in VMware by several seconds, and should also help with booting from CD. * Added TODOs on how to further improve the situation in the future. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31672 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c33667d4 |
|
01-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing warnings under GCC4 in preparation to enable -Werror there as well: * Replaced the use of offsetof() for structs that aren't PODs. Add a offset_of_member() macro to util/khash.h because that's what it's used for in our cases. * Change the signature of add_debugger_command()/remove_debugger_command() on GCC > 2 to avoid the depricated conversion from string constants to char *. * Adding some "suggested" parenthesis. I know that not everyone likes that, but it pointed out at least one bug that is fixed here as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29113 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
abe717da |
|
28-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* When the initialization of a B_KEEP_LOADED module failed, it was kept loaded anyway, causing bug #2776. * Removed temporary debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27767 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2701272f |
|
27-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Temporary debug output to track down #2776. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27759 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c6b1356e |
|
27-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Enforced 80 column limit. * Added/improved debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27758 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6075e354 |
|
26-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Call module_init_post_boot_device() right after the boot volume has been mounted, before anyone could try to load any modules from it. Also pass it a flag whether the boot volume is where the boot loader pre-loaded the modules from. * module_init_post_boot_device() changes the pre-loaded module image paths to normalized boot volume paths, now. Got rid of the code in register_preloaded_module_image() which tried something like this. * Changed module image ref counting. A referenced module has single reference to its image, which is released when the module becomes unreferenced. * get_module() for a reference module will not try to re-get and re-set the module's image anymore. That could lead to a similar module (from different paths) being loaded at the same time. A module from a new file can only be loaded when the old one has been put completely. * Simplified B_KEEP_ALIVE module handling a bit. When the module is initialized, we add another reference, which we'll never free. Thus the module remains loaded without special handling. Removed module_image::keep_loaded. A B_KEEP_ALIVE module remains referenced and thus its image remains referenced, too. * Removed module::file, a cached path to the module's image. An optimization that wouldn't work with multiple root directories for modules (/boot/beos/..., /boot/common/...) or when module files were moved. get_module() does now always search the image file, when the module is still unreferenced. This should be a bit slower than before, but I didn't notice any difference in VMware at least. If it turns out to be a problem we could introduce a more intelligent cache that stays up to date by using node monitoring. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27752 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8c8b8462 |
|
22-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Do not try to recreate the path of a preloaded module if a full path has been passed in by the boot loader. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27686 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af18effb |
|
05-Sep-2008 |
François Revol <revol@free.fr> |
No need to report an error on modules that aren't modules... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27341 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23f09d5a |
|
22-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* unload_module_image() was never called with image == NULL, so I just removed that possibility. * It now has a "remove" argument instead, that decides whether or not the image has to be removed from the hash still. * Moved locking to put_module_image(), ie. both, {load|unload}_module_image() need to be called with the sModulesLock held now. * module_init_post_boot_device() needs to remove the image from the hash itself, or else it messes up its hash iterator. * check_module_image() could call unload_module_image() under certain conditions - but this was completely wrong, and could have caused crashes. * search_module()/check_module_image() now keep a reference to the module image on success, thus a caller doesn't need to call get_module_image() again afterwards - this also fixes another round of potential module unloading to happen. * That reference is leaked for built-in modules in get_module(), but it doesn't matter for them, anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27140 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5a123e35 |
|
22-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a post boot device module init function that unloads all unused modules, as they aren't unloaded when there is no boot device yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27136 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
29336cb0 |
|
22-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Most modules were never unloaded due to a bug in put_module(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27133 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
423fcd43 |
|
04-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Shuffled initializers around: the team, ELF, and module initializers come now a lot earlier. * That makes it now possible to use modules pretty early in the kernel (like before timer_init(), or int_init_post_vm()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26790 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
76247264 |
|
20-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the generic device bus manager module to the built-in module list; now it can actually be used (that should have been part of an earlier commit, but didn't break the build this time). * dump_modules() must use kprintf() instead of dprintf(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26522 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9082b7f4 |
|
09-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Completed module watching mechanism. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
daa861bc |
|
09-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Work-in-progress of the module notification implementation: * Most things are working, it just doesn't notify the listeners on changes yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26342 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0875ae98 |
|
03-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Preparations for a module listener API - this will be used in the (disk) device managers. * Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26239 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b0f5179a |
|
28-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Changed recursive_lock to use a mutex instead of a semaphore. * Adjusted code using recursive locks respectively. The initialization cannot fail anymore, and it is possible to use recursive locks in the early boot process (even uninitialized, if in BSS), which simplifies things a little. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25687 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
368167ed |
|
26-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Integration of the new driver architecture. * Moved devfs from fs/ to device_manager/, and separated the legacy driver support from it. * Removed fast_log module. * There are a couple of (temporary) regressions, though: - legacy SATA and ISA IDE support is disabled, the drivers haven't been ported yet. - The not yet used ATA bus manager hasn't been ported yet, either. - AHCI changes have not been tested. - the listdev command has been removed from the build (as it currently doesn't work anymore). - device manager generated IDs currently are not freed anymore when a device node is removed. - generic drivers can't yet use the new driver architecture. - simple busses that do not support device types won't work yet. - legacy driver publishing/unpublishing (ie. what USB needs) has not been tested, and may be broken. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25662 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9aa2788e |
|
14-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Another patch by Vasilis Kaoutsis: * Use find_directory() for the hash for preloaded modules. I am not sure this patch is needed, since it only concerns the hash. Please review. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8b79f1fd |
|
09-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added open_module_list_etc() that also allows to specify a required name suffix. You can use this to verify the version of a module_info structure. * Made module_info::std_ops optional. * Minor cleanup in module.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24873 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1db7879 |
|
06-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed pipefs from the built-in modules. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4495cd43 |
|
20-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed warnings, mostly due to NULL changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24487 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f89bce4 |
|
09-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The module code now uses find_directory() and no hard-coded paths anymore. * It now also supports the common directory path. * search_module() checked the module paths in the wrong order, ie. it preferred modules in the system directory over the user directory. * Clarified comment in vfs_get_module_path(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24323 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
637eef89 |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a get_safemode_boolean() function for easy access to the safemode options. * module_init() now sets sDisableUserAddOns to whatever the safemode settings say, ie. the B_SAFEMODE_DISABLE_USER_ADD_ONS setting is now respected by the module code. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e0475f8f |
|
08-Aug-2007 |
François Revol <revol@free.fr> |
Fix building with TRACE git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21861 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
171d3a85 |
|
02-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the module code more robust against putting more module reference than you own - instead of crashing some time later, it will now panic as soon as it can. * No longer put the module image for B_KEEP_LOADED modules - essentially, that feature was broken. * Now use the RecursiveLocker in favour of manual locking where appropriate. This actually fixed two locking bugs in error code paths. * Applied a patch by François Revol: open_module_list() did not work when the prefix was already inside a module (as opposed to a directory on disk). The current solution is not as efficient, but that can be fixed by improving the iterator code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21803 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e8dc2a9 |
|
14-Jul-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
[Sorry, couldn't split this one up any further.] * Images preloaded by the boot loader had to be modules to be of any use to the kernel. Extended the mechanism so that any images not accepted by the module code would later be tried to be added as drivers by the devfs. This is a little hacky ATM, since the devfs manages the drivers using a hash map keyed by the drivers inode ID, which those drivers obviously don't have. * The devfs emulates read_pages() using read(), if the device driver doesn't implement the former (all old-style drivers), thus making it possible to BFS, which uses the file cache which in turn requires read_pages(), on the device. write_pages() emulation is still missing. * Replaced the kernel_args::boot_disk structure by a KMessage, which can more flexibly be extended and deals more gracefully with arbitrarily-size data. The disk_identifier structure still exists, though. It is added as message field in cases where needed (non net boot). Moved the boot_drive_number field of the bios_ia32 platform specific args into the message. * Made the stage 1 PXE boot loader superfluous. Moved the relevant initialization code into the stage 2 loader, which can now be loaded directly via PXE. * The PXE boot loader does now download a boot tgz archive via TFTP. It does no longer use the RemoteDisk protocol (it could actually be removed from the boot loader). It also parses the DHCP options in the DHCPACK packet provided by PXE and extracts the root path to be mounted by the kernel. * Reorganized the boot volume search in the kernel (vfs_boot.cpp) and added support for network boot. In this case the net stack is initialized and the network interface the boot loader used is brought up and configured. Since NBD and RemoteDisk are our only options for net boot (and those aren't really configurable dynamically) ATM, the the boot device is found automatically by the disk device manager. Booting via PXE does work to some degree now. The most grievous problem is that loading certain drivers or kernel modules (or related activity) causes a reboot (likely a triple fault, though one wonders where our double fault handler is on vacation). Namely the keyboard and mouse input server add-ons need to be deactivated as well as the media server. A smaller problem is the net server, which apparently tries to (re-)configure the network interface we're using to boot, which obviously doesn't work out that well. So, if all this stuff is disabled Haiku does fully boot, when using the RemoteDisk protocol (not being able to use keyboard or mouse doesn't make this a particular fascinating experience, though ;-)). I had no luck with NBD -- it seemed to have protocol problems with the servers I tried. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
554fdaa3 |
|
20-Jun-2007 |
Travis Geiselbrecht <geist@foobox.com> |
Fix a bug that was tripping an assert in the kernel module code. When iterating through modules, the iterator was loading the module file, inserting it into the module image hash. Then, the first time get_module() was called on a module contained in the image, it was trying to load the image again. It probably actually was. Changed the logic to call get_module_image() which checks to see if it's already loaded. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21476 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d1317e1 |
|
03-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
get_next_loaded_module_name() now uses the same (inefficient) mechanism read_next_module_name() is using thanks to Siarzhuk - the previous mechanism was completely unsafe. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21316 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65c61fbf |
|
03-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Applied a patch by Siarzhuk Zharski that allows open_module_list() to be used during early boot. Thanks! * Fixed open_module_list() so that it can deal with a NULL prefix. * Added a note that get_next_loaded_module_name() is implemented incorrectly. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
51aacbbb |
|
12-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* open_module_list() put the wrong base path length onto the stack, and thus, no on-disk modules could be found... (since revision 16584). * iterator_get_next_module() now makes use of the KPath features, and doesn't build the new path manually anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16745 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d13c758 |
|
05-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Reduced stack usage for iterator_get_next_module() quite a bit by no longer pushing a whole path on the stack. * open_module_list() now adds the prefix to the paths it puts on the stack to reduce the amount of searching to do (this probably wasn't done before because of the earlier boot method via bootfs which didn't allow for deep path names). * module.c is now module.cpp (for KPath usage). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16584 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be60c04c8932758e86a1121605ea340af53e90c0 |
|
12-Jan-2015 |
Rene Gollent <anevilyak@gmail.com> |
modules: Fix #11746. - When normalizing paths of the preloaded modules to their final mounted path, remove them from the hash table before updating their path. Otherwise, the remove would fail due to the hash no longer matching, which in turn would cause the code in question to introduce an infinite loop in the hash table's internal link list due to manually rewriting the next link.
|
#
887be0ac6a35dc308ba2731c1a176cb28338d20d |
|
12-Jan-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
kernel/module: fully convert to BOpenHashTable
|
#
271ac910a4cfdefa6393c1e7cb5e3a665404757d |
|
09-Jan-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
Remove useless includes of khash.h * These files were already converted to BOpenHashTable. * For #9552.
|
#
de49e34927ea27d282f6e85c866db5073df379af |
|
04-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add symbol versioning for find_directory() Should already have been done back when the semantics for the B_COMMON_*DIRECTORY constants was changed. Currently old and new version behave the same. So this is just a contingency measure ATM.
|
#
4b7e219688450694efc9d1890f83f816758c16d3 |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Remove /boot/common for good * Remove support for the "common" installation location from packagefs, package kit, package daemon, package managers. * Rename the B_COMMON_*_DIRECTORY constants referring to writable directories to B_SYSTEM_*_DIRECTORY. * Remove/adjust the use of various B_COMMON_*_DIRECTORY constants. I'm sure some occurrence still remain. They can be adjusted when the remaining B_COMMON_*_DIRECTORY constants are removed.
|
#
237127fbe4071abea20f3e5005f5a1e549f12788 |
|
22-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix _user_entry_ref_to_path() in chroot * Add "bool kernel" parameter to vfs_entry_ref_to_path(), so it can be specified for which I/O context the entry ref shall be translated. * _user_entry_ref_to_path(): Use the calling team's I/O context instead of the kernel's. Fixes the bug that in a chroot the syscall would return a path for outside the chroot.
|
#
0cbce9aa4732e96acd9d593cb86ca0847a61d051 |
|
18-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
A few 64-bit fixes for ELF/module code.
|
#
f1244978152350f9cc010e766d09c2e9ad34dfce |
|
22-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Added an ELF64 version of preloaded_image. * There is now 2 structures, preloaded_elf32_image and preloaded_elf64_image, which both inherit from preloaded_image. * For now I've just hardcoded in use of preloaded_elf32_image, but the bootloader ELF code will shortly be converted to use templates which use the appropriate structure. The kernel will be changed later when I add ELF64 support to it. * All kernel_args data is now compatible between 32-bit and 64-bit kernels.
|
#
0e88a887b4a9ecaaf1062078d9ca9bfca78fcf3a |
|
13-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
First round of 64-bit safety fixes in the kernel. * Most of this is incorrect printf format strings. Changed all strings causing errors to use the B_PRI* format string definitions, which means the strings should be correct across all platforms. * Some other fixes for errors, casts required, etc.
|
#
0e35d5d2e5ef3d288e056d60ef1b16dc399eaa0c |
|
12-Dec-2011 |
John Scipione <jscipione@gmail.com> |
Change instances of wether in comments to whether. No functional change intended.
|
#
45bd7bb3db9d9e4dcb02b89a3e7c2bf382c0a88c |
|
25-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed unnecessary inclusions of <boot/kernel_args.h> in private kernel headers and respectively added includes in source files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9837ec16c86f0a533600230350e8e89203d1e9e8 |
|
20-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed spelling. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34144 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
adbf8b25f8b29263fcb344ac86beceb9e83ce594 |
|
29-Aug-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added fdopendir() (POSIX). * Got rid of <dirent_private.h> -- the __DIR structure is private to dirent.c, now. The attribute directory, index directory, and query functions use the the public POSIX API, so does the kernel module code. Those components were not initializing the structure correctly anymore since the introduction of telldir()/seekdir(). +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32819 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5147963dcd57fefa4f63c484eb88e9eaf4002976 |
|
26-Jul-2009 |
Stephan Aßmus <superstippi@gmx.de> |
headers/private/kernel/util/OpenHashTable.h, Hugo's version, is a bit nicer than Tracker's OpenHashTable.h which it should eventually replace. We've renamed the class to BOpenHashTable and changed the interface slightly so that HashTableLink became superfluous. Adapted all the code that used it. Since the OpenHashTables no longer clash, this should fix the GCC4 build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31791 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a64c204e235968fa393bd00a31d2da25c0a1997c |
|
20-Jul-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* The module iteration code now ignores entries named "dev", and "bin" - this reduced the boot time in VMware by several seconds, and should also help with booting from CD. * Added TODOs on how to further improve the situation in the future. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31672 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c33667d400856680a8e0122300861eda77d1847a |
|
01-Feb-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Fixing warnings under GCC4 in preparation to enable -Werror there as well: * Replaced the use of offsetof() for structs that aren't PODs. Add a offset_of_member() macro to util/khash.h because that's what it's used for in our cases. * Change the signature of add_debugger_command()/remove_debugger_command() on GCC > 2 to avoid the depricated conversion from string constants to char *. * Adding some "suggested" parenthesis. I know that not everyone likes that, but it pointed out at least one bug that is fixed here as well. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29113 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
abe717da05764e313e080e9a8de67825667ca7ac |
|
28-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* When the initialization of a B_KEEP_LOADED module failed, it was kept loaded anyway, causing bug #2776. * Removed temporary debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27767 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2701272f2404c22c0acfa7555f919ff7e8d96955 |
|
27-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Temporary debug output to track down #2776. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27759 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c6b1356e4b07c800219178d4ab1b890a176d230e |
|
27-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Enforced 80 column limit. * Added/improved debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27758 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6075e354abea9c571e3e74ecdc56662de736c4eb |
|
26-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Call module_init_post_boot_device() right after the boot volume has been mounted, before anyone could try to load any modules from it. Also pass it a flag whether the boot volume is where the boot loader pre-loaded the modules from. * module_init_post_boot_device() changes the pre-loaded module image paths to normalized boot volume paths, now. Got rid of the code in register_preloaded_module_image() which tried something like this. * Changed module image ref counting. A referenced module has single reference to its image, which is released when the module becomes unreferenced. * get_module() for a reference module will not try to re-get and re-set the module's image anymore. That could lead to a similar module (from different paths) being loaded at the same time. A module from a new file can only be loaded when the old one has been put completely. * Simplified B_KEEP_ALIVE module handling a bit. When the module is initialized, we add another reference, which we'll never free. Thus the module remains loaded without special handling. Removed module_image::keep_loaded. A B_KEEP_ALIVE module remains referenced and thus its image remains referenced, too. * Removed module::file, a cached path to the module's image. An optimization that wouldn't work with multiple root directories for modules (/boot/beos/..., /boot/common/...) or when module files were moved. get_module() does now always search the image file, when the module is still unreferenced. This should be a bit slower than before, but I didn't notice any difference in VMware at least. If it turns out to be a problem we could introduce a more intelligent cache that stays up to date by using node monitoring. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27752 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8c8b84622613fe13e59bd3ef50347f1634a102a1 |
|
22-Sep-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Do not try to recreate the path of a preloaded module if a full path has been passed in by the boot loader. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27686 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
af18effb0e90fd1f128a83b732f0ec40bd3046ef |
|
05-Sep-2008 |
François Revol <revol@free.fr> |
No need to report an error on modules that aren't modules... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27341 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
23f09d5a66f0aebcab0ef65ae201345a83c1016c |
|
22-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* unload_module_image() was never called with image == NULL, so I just removed that possibility. * It now has a "remove" argument instead, that decides whether or not the image has to be removed from the hash still. * Moved locking to put_module_image(), ie. both, {load|unload}_module_image() need to be called with the sModulesLock held now. * module_init_post_boot_device() needs to remove the image from the hash itself, or else it messes up its hash iterator. * check_module_image() could call unload_module_image() under certain conditions - but this was completely wrong, and could have caused crashes. * search_module()/check_module_image() now keep a reference to the module image on success, thus a caller doesn't need to call get_module_image() again afterwards - this also fixes another round of potential module unloading to happen. * That reference is leaked for built-in modules in get_module(), but it doesn't matter for them, anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27140 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5a123e35911db0e706f1376638fb67d10c94d464 |
|
22-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a post boot device module init function that unloads all unused modules, as they aren't unloaded when there is no boot device yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27136 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
29336cb02be94fb2ab9659bc7a6f38cbcf9e82d8 |
|
22-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Most modules were never unloaded due to a bug in put_module(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27133 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
423fcd43ae4e19a6799924f121b1b12d9303f560 |
|
04-Aug-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Shuffled initializers around: the team, ELF, and module initializers come now a lot earlier. * That makes it now possible to use modules pretty early in the kernel (like before timer_init(), or int_init_post_vm()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26790 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
762472641ee5faa91578599a01351b1d8db58ed1 |
|
20-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added the generic device bus manager module to the built-in module list; now it can actually be used (that should have been part of an earlier commit, but didn't break the build this time). * dump_modules() must use kprintf() instead of dprintf(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26522 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9082b7f4ed5cad17c9104a8997ec60ad24491b98 |
|
09-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Completed module watching mechanism. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26369 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
daa861bc29d2612c867c657a6bd90a072e633010 |
|
09-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
Work-in-progress of the module notification implementation: * Most things are working, it just doesn't notify the listeners on changes yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26342 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0875ae984f7adc968782ff98d01071f1dc799a59 |
|
03-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Preparations for a module listener API - this will be used in the (disk) device managers. * Cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26239 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b0f5179aa51eb680cdeea656a8b11fdbc6b56d63 |
|
28-May-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Changed recursive_lock to use a mutex instead of a semaphore. * Adjusted code using recursive locks respectively. The initialization cannot fail anymore, and it is possible to use recursive locks in the early boot process (even uninitialized, if in BSS), which simplifies things a little. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25687 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
368167ede8118f72da8c9ac5bb98ce9b46a8a639 |
|
26-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Integration of the new driver architecture. * Moved devfs from fs/ to device_manager/, and separated the legacy driver support from it. * Removed fast_log module. * There are a couple of (temporary) regressions, though: - legacy SATA and ISA IDE support is disabled, the drivers haven't been ported yet. - The not yet used ATA bus manager hasn't been ported yet, either. - AHCI changes have not been tested. - the listdev command has been removed from the build (as it currently doesn't work anymore). - device manager generated IDs currently are not freed anymore when a device node is removed. - generic drivers can't yet use the new driver architecture. - simple busses that do not support device types won't work yet. - legacy driver publishing/unpublishing (ie. what USB needs) has not been tested, and may be broken. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25662 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9aa2788e97b5e82877bdadc1d50db89023b60fc3 |
|
14-May-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Another patch by Vasilis Kaoutsis: * Use find_directory() for the hash for preloaded modules. I am not sure this patch is needed, since it only concerns the hash. Please review. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25511 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8b79f1fd686a28e8d560fa6745c4e3c711072ad1 |
|
09-Apr-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added open_module_list_etc() that also allows to specify a required name suffix. You can use this to verify the version of a module_info structure. * Made module_info::std_ops optional. * Minor cleanup in module.h. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24873 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a1db78790d08dceca0cee5aea4eafba3620c7b5c |
|
06-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed pipefs from the built-in modules. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4495cd43c19a4925102a20b4d4f8bedd2cfa923d |
|
20-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed warnings, mostly due to NULL changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24487 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f89bce410469ee2c3c7f65f47423c5671ed43d2 |
|
09-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* The module code now uses find_directory() and no hard-coded paths anymore. * It now also supports the common directory path. * search_module() checked the module paths in the wrong order, ie. it preferred modules in the system directory over the user directory. * Clarified comment in vfs_get_module_path(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24323 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
637eef896befc9681c81cf04fda10ff556c7ca3e |
|
08-Mar-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a get_safemode_boolean() function for easy access to the safemode options. * module_init() now sets sDisableUserAddOns to whatever the safemode settings say, ie. the B_SAFEMODE_DISABLE_USER_ADD_ONS setting is now respected by the module code. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e0475f8f7e4fdb265c3e34533ebe230be3089671 |
|
08-Aug-2007 |
François Revol <revol@free.fr> |
Fix building with TRACE git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21861 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
171d3a85cb91c15c23a1f00365fef3914d48ec63 |
|
02-Aug-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the module code more robust against putting more module reference than you own - instead of crashing some time later, it will now panic as soon as it can. * No longer put the module image for B_KEEP_LOADED modules - essentially, that feature was broken. * Now use the RecursiveLocker in favour of manual locking where appropriate. This actually fixed two locking bugs in error code paths. * Applied a patch by François Revol: open_module_list() did not work when the prefix was already inside a module (as opposed to a directory on disk). The current solution is not as efficient, but that can be fixed by improving the iterator code. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21803 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9e8dc2a9bbbe768acdfd224a6a4af01918bb4ce0 |
|
14-Jul-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
[Sorry, couldn't split this one up any further.] * Images preloaded by the boot loader had to be modules to be of any use to the kernel. Extended the mechanism so that any images not accepted by the module code would later be tried to be added as drivers by the devfs. This is a little hacky ATM, since the devfs manages the drivers using a hash map keyed by the drivers inode ID, which those drivers obviously don't have. * The devfs emulates read_pages() using read(), if the device driver doesn't implement the former (all old-style drivers), thus making it possible to BFS, which uses the file cache which in turn requires read_pages(), on the device. write_pages() emulation is still missing. * Replaced the kernel_args::boot_disk structure by a KMessage, which can more flexibly be extended and deals more gracefully with arbitrarily-size data. The disk_identifier structure still exists, though. It is added as message field in cases where needed (non net boot). Moved the boot_drive_number field of the bios_ia32 platform specific args into the message. * Made the stage 1 PXE boot loader superfluous. Moved the relevant initialization code into the stage 2 loader, which can now be loaded directly via PXE. * The PXE boot loader does now download a boot tgz archive via TFTP. It does no longer use the RemoteDisk protocol (it could actually be removed from the boot loader). It also parses the DHCP options in the DHCPACK packet provided by PXE and extracts the root path to be mounted by the kernel. * Reorganized the boot volume search in the kernel (vfs_boot.cpp) and added support for network boot. In this case the net stack is initialized and the network interface the boot loader used is brought up and configured. Since NBD and RemoteDisk are our only options for net boot (and those aren't really configurable dynamically) ATM, the the boot device is found automatically by the disk device manager. Booting via PXE does work to some degree now. The most grievous problem is that loading certain drivers or kernel modules (or related activity) causes a reboot (likely a triple fault, though one wonders where our double fault handler is on vacation). Namely the keyboard and mouse input server add-ons need to be deactivated as well as the media server. A smaller problem is the net server, which apparently tries to (re-)configure the network interface we're using to boot, which obviously doesn't work out that well. So, if all this stuff is disabled Haiku does fully boot, when using the RemoteDisk protocol (not being able to use keyboard or mouse doesn't make this a particular fascinating experience, though ;-)). I had no luck with NBD -- it seemed to have protocol problems with the servers I tried. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21611 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
554fdaa33a919e39b37c5635a9183216bc44ceeb |
|
20-Jun-2007 |
Travis Geiselbrecht <geist@foobox.com> |
Fix a bug that was tripping an assert in the kernel module code. When iterating through modules, the iterator was loading the module file, inserting it into the module image hash. Then, the first time get_module() was called on a module contained in the image, it was trying to load the image again. It probably actually was. Changed the logic to call get_module_image() which checks to see if it's already loaded. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21476 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8d1317e1b6100f7bdec1459ad2b7717a7145ebed |
|
03-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
get_next_loaded_module_name() now uses the same (inefficient) mechanism read_next_module_name() is using thanks to Siarzhuk - the previous mechanism was completely unsafe. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21316 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65c61fbf2d8234b7970defa57503f4601b37f645 |
|
03-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
* Applied a patch by Siarzhuk Zharski that allows open_module_list() to be used during early boot. Thanks! * Fixed open_module_list() so that it can deal with a NULL prefix. * Added a note that get_next_loaded_module_name() is implemented incorrectly. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21315 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
51aacbbb3941461a98e73be5510446707949ddd5 |
|
12-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* open_module_list() put the wrong base path length onto the stack, and thus, no on-disk modules could be found... (since revision 16584). * iterator_get_next_module() now makes use of the KPath features, and doesn't build the new path manually anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16745 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d13c758d1d6976ad181b4f545f705048a5b01e4 |
|
05-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
* Reduced stack usage for iterator_get_next_module() quite a bit by no longer pushing a whole path on the stack. * open_module_list() now adds the prefix to the paths it puts on the stack to reduce the amount of searching to do (this probably wasn't done before because of the earlier boot method via bootfs which didn't allow for deep path names). * module.c is now module.cpp (for KPath usage). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16584 a95241bf-73f2-0310-859d-f6bbb57e9c96
|