Commit Graph
2025 Commits
Author SHA1 Message Date
Axel Dörfler 09eaf756d0 Included some code from NewOS to set up a double fault handler. Doesn't seem to work yet, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 01:46:04 +00:00
Axel Dörfler e082899afe Replaced SYS_MAX_PATH_LEN with B_PATH_NAME_LENGTH.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 23:15:25 +00:00
Axel Dörfler 220a60685b Updated because of some header changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 23:14:56 +00:00
Axel Dörfler 84a910b64f Updated because of header changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 23:02:18 +00:00
Axel Dörfler a1d0963176 Locking of the vm_cache_ref was almost completely missing...
cache_node_{opened|closed}() now correctly get the file_cache_ref from a vm_cache_ref.
Implemented cache_prefetch(): for now, it always prefetches the first 64 kB from the file.
Renamed read_from_cache() to read_into_cache().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:58:40 +00:00
Axel Dörfler fcab2bafe0 Added a pointer to the file_cache_ref to the vnode_store.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:47:41 +00:00
Axel Dörfler d316037c89 Updated because of header changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:46:11 +00:00
Axel Dörfler 64e7394c50 PARANOID_POINTER_CHECK is now only defined if DEBUG is defined, too, by default.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:44:17 +00:00
Axel Dörfler b2ac251743 Replaced SYS_MAX_PATH_LEN with B_PATH_NAME_LENGTH.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:19:26 +00:00
Axel Dörfler 204db7744a get_new_fd() now has a separate fs_mount parameter, so you no longer need to cast
different types to vnodes.
Renamed vfs_get_vnode() to vfs_lookup_vnode() as it doesn't grab a ref to the node.
Added new vfs_get_vnode() that actually grabs such a ref.
vfs_get_vnode_cache() now fills a vm_cache_ref instead of a void pointer.
Replaced SYS_MAX_NAME_LEN constants with the B_FILE_NAME_LENGTH that should have
been used there.
vnode::cache should have been a vm_cache_ref and is now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:17:00 +00:00
Axel Dörfler 5d45bbd482 Now uses ASSERT_LOCKED_MUTEX() some more.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:05:47 +00:00
Axel Dörfler 3a5d1279cf vm_create_vnode_cache() now fills a vm_cache_ref instead a void pointer.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:05:05 +00:00
Axel Dörfler cb44b765b0 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 21:21:06 +00:00
Axel Dörfler 6363d47567 Better debug output to ease userland debugging while we don't have any tools.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 03:41:32 +00:00
Axel Dörfler 66340e6747 get_vnode_name() for file system's that do not export the fs_get_vnode_name()
function was slightly broken :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 23:12:08 +00:00
Axel Dörfler 4692c99460 Added function that allocates more than one page at a time, but without
the need for having them in a run.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 20:53:47 +00:00
Axel Dörfler f6743bd145 Added query support - it's more or less the same as found in R5 for now.
Later on (but before R1), we should find a better balance between what
the FS has to implement, and what the kernel delivers to them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 20:39:45 +00:00
Axel Dörfler 62ceb50f43 Refactored fs_open_query() calls a bit - there is no only one internal
implementation that the two public functions call.
Adapted to the changes to _kern_open_query().
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 20:35:27 +00:00
Axel Dörfler 71a81208ef Fixed build and warnings. Thanks to Jonas for reporting this.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 16:19:46 +00:00
Axel Dörfler e96f985d95 fs_read_attr() and fs_write_attr() transferred bytes from/to the provided
file descriptor, not from/to the attribute...
Added ToDo comment about eventually adding syscalls for these functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-08 02:15:09 +00:00
Axel Dörfler 6780f6f417 The open attr dir syscalls didn't work correctly in the FD modes.
fd_and_path_to_vnode() now accepts NULL as path argument.
Added some more debug output and comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-07 16:15:57 +00:00
Axel Dörfler 53b0609a4a Initial support for cache modules.
Also fixed a minor bug in dec_vnode_ref_count(): the unusued vnode counter
was not decremented again when one vnode was removed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 07:41:07 +00:00
Axel Dörfler 324fc66b90 Fixed another stupid bug in cache_io(): if one request needed new pages
more than once, the size requested was only correct for the first time.
Added preliminary support for cache modules.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 07:38:27 +00:00
Axel Dörfler 26a78aa41d Removed broken _user_exit(), and implemented working _user_exit_team().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 04:26:10 +00:00
Axel Dörfler 71463c834e Now uses _kern_exit_team().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 04:24:15 +00:00
Axel Dörfler 72013b22a5 Now uses _kern_exit_team().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 04:17:57 +00:00
Axel Dörfler 2f9720f07d exit_thread() was using _kern_exit() instead of _kern_exit_thread().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 04:10:12 +00:00
Axel Dörfler e25fbc6849 Moved cpuid.S from src/kernel/libroot/os/arch/x86/. Fixed it so that it
actually fills a cpuid_info structure. Renamed cpuid() to get_current_cpuid().
Added syscall _user_get_cpuid().
Added a lot of other vendor brand strings. The cpu_type and cpu_revision
fields should now be correctly set.
get_cpuid() now returns B_BAD_VALUE if the cpuNum parameter is out of bounds
(ie. higher than the number of available CPUs in the system).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 03:48:28 +00:00
Axel Dörfler fc4ff6bda0 Renamed systeminfo.c to system_info.c - also replaced the (broken) get_cpuid()
implementation by a syscall. Moved cpuid.S to src/kernel/core/arch/x86.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 03:31:45 +00:00
Axel Dörfler 7c3dbcf249 Threads and teams now maintain a used counter - they also provide a maximum
limit, but this is not yet enforced. Added getter functions.
team_init() now returns a status_t.
System info stuff is now globally initialized in main().
get_system_info() now also reports the number of used pages, and calls the
architecture dependent function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 21:11:37 +00:00
Axel Dörfler e774a942a9 Implemented basics of the architecture specific get_system_info(), also
added get_cpuid() function (does not respect the cpu parameter yet).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 21:08:19 +00:00
Axel Dörfler f79889e75b Now also sets the cpu_clock_speed field.
Disabled debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 20:59:55 +00:00
Axel Dörfler d3ee51c1d2 Removed the ERR_VM_PF_BAD_ADDRESS constant, and use B_BAD_ADDRESS instead.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 18:27:38 +00:00
Axel Dörfler caa0ef0b4c Some old changes, probably shouldn't get lost, even if this boot method
is not being used by the PPC anymore.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 17:37:56 +00:00
Axel Dörfler 058569262f get_memory_map() is now silent when TRACE_MMU is not defined.
When the 0xe820 memory map method doesn't work for whatever reason (broken BIOS),
it currently just assumes to have 32 MB - it now also prints out a warning when
it does so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 17:33:46 +00:00
Axel Dörfler b5d786bdac Improved fs_unmount(): it will now free all vnodes directly via free_vnode(),
and no longer relies on put_vnode() for the root node. This will also call
the FS release/remove vnode calls. Extended comments.
Added "flags" parameter to unmount.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 22:45:27 +00:00
Axel Dörfler 4c8e8f2f19 Added "flags" parameter to unmount.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 22:42:01 +00:00
Axel Dörfler 41c3a7a3d5 Moved freeing the vnode out of dec_vnode_ref_count() into a separate function
(free_vnode()). Upon freeing, the file cache is now only written back if the
file is not deleted.
dec_vnode_ref_count() no longer frees vnodes that are not going to be deleted.
Instead, it will add them to an unused vnode list, so that they can be freed
if needed (currently only 512 unused vnodes will be kept around). This should
speed up the whole thing, and makes the file cache much more useful, as it's
no longer dumped after the file is closed.
fs_unmount() is not yet respecting this (ie. it doesn't free those nodes as
it should).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 21:27:17 +00:00
Axel Dörfler 86a48e24ad Got inspired by mmu_man's dmidecode release and added a simple identification
of BIOS32, SMBIOS, and DMI services.
Also implemented a get_bios32_service() function which you can use to get
access to that service (ie. for use by the PCI bus manager).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 20:42:04 +00:00
Axel Dörfler 22ca5e3c35 Added a comment to vm_page_write_modified() that writing pages can only
be done consistently if they are unmapped from memory - which is not yet
done.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 15:52:49 +00:00
Jérôme Duval 3366fbde02 names are based on system_time
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-28 23:20:24 +00:00
Jérôme Duval 1850c408f9 fixed copyright
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-28 23:17:36 +00:00
Jérôme Duval bfb2692a61 Fixed set_timezone()
Added user_shutdown user control
Reverted to rtc_boot_time()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-28 23:13:22 +00:00
Axel Dörfler ffc023930d Reverted back to an older version of freopen.c (1.15 from sources.redhat.com,
which doesn't use fd_to_filename() yet) and added it to the build.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 13:14:19 +00:00
Axel Dörfler 8e3485c460 No longer needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 13:02:26 +00:00
Axel Dörfler 92af23fa88 Now uses the new Be-style constants for get_team_usage_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:57:36 +00:00
Axel Dörfler f05c404379 Updated to the changes made to OS.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:54:58 +00:00
Axel Dörfler 9f30bca262 Moved _user_system_time() to real_time_clock.c.
Added safemode.h header.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:35:30 +00:00
Axel Dörfler 53c082117f Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:34:11 +00:00
Axel Dörfler db4008e263 Removed references to ktypes.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:32:29 +00:00