Commit Graph

725 Commits

Author SHA1 Message Date
Axel Dörfler
86228d9f03 Applied NewOS change 1914: fixes small bug (one page off), calls
{get|put}_physical_page_tmap() directly.
Also replaced all occurrences of "addr" with "addr_t".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-06 16:12:52 +00:00
Tyler Dauwalder
581cfaf2c0 - Added declaration and definition of std::nothrow
- Wrapped everything but #includes in #if _KERNEL_MODE to keep from
  redeclaring/definining operator new and nothrow in userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-06 00:27:34 +00:00
Axel Dörfler
11e38cc1d9 Applied the unmount() fix from NewOS change 1906.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-05 01:03:14 +00:00
Axel Dörfler
462e4bb4fa That restriction was superfluous.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-29 02:29:27 +00:00
Axel Dörfler
caeef6fada Fixed the broken use of read_request::PutBuffer() - the team's address space
is now honoured: the shortcut is now only made if it's okay to do it. Added
a comment what we could do to further improve performance.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-29 02:27:22 +00:00
Axel Dörfler
6994475d83 Added a comment about a stupidity I did with pipefs - I seem to have completely
forgotten about different address spaces with direct (unbuffered) pipe transfer,
shame on me.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-28 15:27:24 +00:00
Axel Dörfler
4a4fcca956 Forgot to check the fix... it now compiles again, and there is a new
accessor method Inode::BytesInChain().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-15 15:15:54 +00:00
Axel Dörfler
5eb712b2dd Now correctly returns the available bytes in the pipe in st_size.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-14 13:21:37 +00:00
Axel Dörfler
57b3bc3b9c Added _kern_debug_output() syscall.
Fixed warning about missing user_strlcpy() prototype.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-13 22:08:30 +00:00
Axel Dörfler
f2eb00db1e Fixed and simplified the user_*() team syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-12 15:37:44 +00:00
Axel Dörfler
e81f0e1f79 Added "where" as alias of "sc" as in BeOS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 04:49:15 +00:00
Axel Dörfler
1e065e6132 dbg_register_file[][] now reserves space for SMP_MAX_CPUS CPUs, not only 2.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 04:02:54 +00:00
Axel Dörfler
b196064201 dbg_init() no longer sets sCommands to NULL - variables in the BSS are
always zeroed anyway.
cmd_help() is now able to print out help about the specified command
only - it will also print out all aliases of that command. Reduced
the distance between the command name and its description; NULL
descriptions are now also allowed.
There is now a find_command() function that's used throughout the
module. Like in the Be debugger, it will now also accept partial
matches, i.e. "co" will most probably match "continue" (as long as
there is no new "co*" command added by another component). It will
first try to find an exact match, and only if that failed it will
search for a partial match.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 03:47:14 +00:00
Axel Dörfler
91d35b5f62 Removed dbg_set_serial_debug() - there is now only set_dprintf_enabled().
Disabled dbg_get_serial_debug(); it's only used temporarily in the keyboard
device (and I removed its usage there, too).
Added "continue", "exit", and "es" commands as in the Be kernel debugger
(they will all exit the debugger and try to continue normal kernel execution).
Reordered the sources so that public kernel API is together.
Added a _user_debug_output() syscall (not yet activated) which dumps to the
kernel's serial output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 03:07:53 +00:00
Axel Dörfler
36c3931c38 Added quick implementation of real_time_clock() and real_time_clock_usecs() -
it might even be correct, but we also might want to have this stuff somewhere
else (libroot).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-08 02:13:19 +00:00
Axel Dörfler
5f1ee2313e vm_translation_map_quick_map() has been slightly changed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 22:01:18 +00:00
Axel Dörfler
d70e4e5163 vm_translation_map_quick_map() was slightly changed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:17:19 +00:00
Axel Dörfler
9e54ef1458 system_time() is implemented in libroot/os/arch.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:16:36 +00:00
Axel Dörfler
cff2375bba Added a comment about where to find the implementation of the
arch_int_{enable|disable|restore}_interrupts() functions and
friends.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:15:27 +00:00
Axel Dörfler
9e617097ee arch_thread_switch_kstack_and_call() is already defined in arch_asm.S.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:13:53 +00:00
Axel Dörfler
d31fdd0e3c Added, fixed, cleaned and slightly optimized the assembly arch_int_*()
functions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:12:19 +00:00
Axel Dörfler
9fd568e2e9 Rearranged the code a bit, made private functions static, removed wrong
comments.
Fixed warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 18:23:31 +00:00
Axel Dörfler
2e011afa86 Renamed arch_int_is_interrupts_enabled() to arch_int_are_interrupts_enabled().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 17:54:25 +00:00
Axel Dörfler
7530b569ec Finally fixed all warnings (we probably won't really need bootfs later anymore
for the standard boot process).
Removed the STREAM_TYPE_* definitions, it's now using the stat definitions
instead.
Cleaned the source a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 13:46:48 +00:00
Axel Dörfler
939f7fbaca Implemented the set_real_time_clock() syscall.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 13:29:29 +00:00
Axel Dörfler
cc9992caa1 Removed rtc_set_system_time() but forgot to change internal calls to
set_real_time_clock().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 13:12:13 +00:00
Tyler Dauwalder
a03a04e027 - Added/moved ddm string-length and buffer-size constants to DiskDeviceDefs.h
- Converted all uses of B_{FILE,OS}_NAME_LENGTH in ddm_userland_interface.cpp
  to appropriate ddm constants.
- Made module names B_PATH_NAME_LENGTH long.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 00:13:11 +00:00
Tyler Dauwalder
937144690c Made disk device type strings B_FILE_NAME_LENGTH long, and fixed
a few partition name constants that hadn't been changed from B_OS_NAME_LENGTH.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-27 22:45:15 +00:00
Tyler Dauwalder
e176a055ac Added max parameter-string buffer-size limit of 32KB.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-27 08:10:52 +00:00
Tyler Dauwalder
de5a94dbc6 - Updated partition name and partition content name length limits
to B_FILE_NAME_LENGTH.
- Added partition [content] name copy-out code to
  _kern_validate_{set_partition_name,set_partition_content_name,
  intialize_partition}.
- Added parameter security to _kern_supports_moving_partition().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-27 07:28:55 +00:00
Waldemar Kornewald
cdc2ad89b1 Changes for kernel land (added set_sem_owner and kernel_cpp.h/cpp).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-25 13:24:59 +00:00
Tyler Dauwalder
229c00c5a7 - Added parametersSize param to all functions taking a parameter string.
- For functions where name strings are both input and output parameters that
  may be truncated if too long, updated copy-in procedure to allow truncation
  without returning an error.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-25 08:35:27 +00:00
Tyler Dauwalder
8768d15c6e - Fixed lack of proper error code checking on calls
to user_strlcpy()
- Changed all remaining instances of SYS_MAX_PATH_LEN
  to B_PATH_NAME_LENGTH.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 23:09:43 +00:00
Axel Dörfler
8da0ad81bf Removed rtc_set_system_time() and introduced the public Be kernel call
set_real_time_clock().
I am not sure if this call is supposed to set the hardware clock.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 14:53:02 +00:00
Axel Dörfler
60f9bd4a57 Adds an empty arch_real_time_clock.c for the PPC build. The Pegasos may
need the same RTC code as x86 (but using the ISA bus manager instead of
in/out).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 12:38:07 +00:00
Axel Dörfler
d7f7d209ed Renamed the global secs_per_month[] to sSecsPerMonth[] and made it static.
Added a comment about how to make computing the seconds passed since 1/1/1970
more efficient.
Some slight other changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 12:24:10 +00:00
Axel Dörfler
05ca50f27d Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 12:09:20 +00:00
Axel Dörfler
f328aeecb6 Applied our style guide.
Commented the debug welcome message in rtc_init().
Moved the seconds per year calculation into a separate function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 12:01:25 +00:00
Axel Dörfler
2218f79ede Added real-time clock support written by Jeff Ward (for the kernel).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 10:21:10 +00:00
Tyler Dauwalder
27b54f4499 Finished up most of remaining kernel-saftey stuff, and fixed previously "safe" code that accessed userland memory directly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 09:37:20 +00:00
Tyler Dauwalder
0d2558589a Added platform specific boot headers to search path for libdisk_device_manager.so, as ddm_userland_interface.cpp apparently needs them now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-24 09:36:15 +00:00
Axel Dörfler
f5ab9c12ce Fixed arch_cpu_global_TLB_invalidate() - it only invalidated the first
256K of the available address space.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 03:39:47 +00:00
Axel Dörfler
622405014e The init routine doesn't have to make sure that the IP bit of MSR is
set since the boot loader already takes care of that.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 03:38:39 +00:00
Axel Dörfler
6f634c19b6 Fixed a potential overflow bug in ppc_set_page_table().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 03:37:15 +00:00
Axel Dörfler
c72672b624 Made the computation of the page table hash mask easier to read.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 03:36:22 +00:00
beveloper
ca16f5cb03 start of media kit codec plugin API
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 23:55:19 +00:00
Axel Dörfler
b912581792 new_file_system() returned a status code, but should have returned
a pointer to the file system.
Renamed all static g* variables to s*.
Renamed "mount_id" fields to the higher level "device" (to be able
to compile the file).
Fixed all casting warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 14:47:15 +00:00
Axel Dörfler
9559a50771 Renamed vfs.c to vfs.cpp to prepare and ease working with the disk
device manager (and have more warnings).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 14:45:07 +00:00
Axel Dörfler
bd77051dc3 Changes due to renaming of vm_translation_map_get_pgdir() to i386_*().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 14:35:29 +00:00
Axel Dörfler
7221a58854 Fixed some warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 14:05:05 +00:00
Axel Dörfler
4ef2438290 Fixed a warning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 14:01:16 +00:00
Axel Dörfler
f8e89e479d Adoption of Travis' PPC code. Changed to our VM structures and slightly
different arch-specific CPU functions. Fixed some bugs. Not tested.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 13:57:28 +00:00
Axel Dörfler
14d9cc14d9 Updates caused by renaming vm_translation_map_get_pgdir() to
i386_translation_map_get_pgdir().
Fixed some warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 13:47:12 +00:00
Axel Dörfler
61897ef2b1 Stub implementation no longer needed, real implementation will be C++.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 13:06:24 +00:00
Axel Dörfler
3b912ee405 Stub implementation no longer needed, real implementation will be C++.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 13:00:07 +00:00
Axel Dörfler
112bea4bac Added the arch_cpu_sync_icache() function for x86 from NewOS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-17 12:54:34 +00:00
Axel Dörfler
35270fa7d4 Removed unused makefile.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:42:38 +00:00
Axel Dörfler
b858732b90 Fixed a scoping bug in the elf_load_kspace() function (non-critical under
normal circumstances, though).
Updated the comment why we have to create the read-only segment as read-write.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:28:10 +00:00
Axel Dörfler
7a17e3aeea Some fixes because of the elf32.h header cleaning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 17:56:05 +00:00
Axel Dörfler
b8be90d5fb Now works with GCC 3 as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-12 00:46:30 +00:00
Axel Dörfler
aaaceca81b Added more CPU functions, fixed the get_sr() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-11 19:00:59 +00:00
Axel Dörfler
e2367e8fcb Added some PPC helper functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-08 01:24:01 +00:00
Axel Dörfler
c8ec205b7b Include kernel_args.h instead of stage2.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 23:12:37 +00:00
Axel Dörfler
b55d9c74f1 Renamed fields of the kernel_args structure.
Commented out the page_daemon to remove a warning.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 23:09:21 +00:00
Axel Dörfler
33dc59abd3 Don't include the isa bus_manager when compiling on PPC.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 21:51:48 +00:00
Axel Dörfler
c12bec104e Did not compile before.
Fixed some style issues.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-06 02:04:53 +00:00
beveloper
5a40812eab removed bus manager
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-01 16:57:53 +00:00
Axel Dörfler
20b82fcf5b Minor change: corrected the debug output in wait_for_thread().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-01 01:38:00 +00:00
Ingo Weinhold
283e146548 Aesthetical change.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 21:45:22 +00:00
Ingo Weinhold
58b7de1cda Implemented the resize job.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 21:44:47 +00:00
Ingo Weinhold
b0814f61c3 Implemented Resize() and ResizeChild().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 21:44:21 +00:00
Ingo Weinhold
77fe5e61a5 Another fix of the code that updates which partitions are still busy. Hopefully the last one.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 21:43:59 +00:00
Ingo Weinhold
541c05cc85 We always resize the partition contents.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 21:43:11 +00:00
Ingo Weinhold
3acc9a051b Moved the validation functions out of ddm_userland_interface.cpp into ddm_operation_validation.{cpp,h} for re-use.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4865 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 21:40:36 +00:00
beveloper
90157e6a02 Removed bus_man.c from build since it no longer compiled after removing pci_bus.h :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 19:57:14 +00:00
Ingo Weinhold
6c27ff9492 Define some macros telling us, that we compile for R5 and userland.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-29 18:47:10 +00:00
Ingo Weinhold
11ef678c43 We don't need to mark/unmark shadow partitions busy separately anymore, since they should automatically remain in sync with the physical ones.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 22:06:54 +00:00
Ingo Weinhold
2998edc39b Added KPartitionListener.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 22:04:37 +00:00
Ingo Weinhold
58bdbab626 Added a KPartition listener mechanism and made use of it to keep shadow partitions with the corresponding physical ones in sync.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 22:04:13 +00:00
Ingo Weinhold
373c8e3751 Implemented Do(). Looks like it works.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 19:33:23 +00:00
Ingo Weinhold
0ee064b1fb KPartition::UninitializeContents() returns an error code now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 19:31:49 +00:00
Ingo Weinhold
bce1e50726 Some fixes concerning job queue handling.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 19:30:57 +00:00
Ingo Weinhold
70f0555bce Debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 19:30:12 +00:00
Ingo Weinhold
583f8c1d02 Added set_disk_device_job_error_message() for setting an error message, when an error occurs while executing a job.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 19:29:36 +00:00
Ingo Weinhold
ac8b60ce67 Added setter/getter for an error message. Should be set to something informative when while executing a job an error occurs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 19:28:27 +00:00
Ingo Weinhold
69cb08c01c UninitializeContents() returns an error code now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 19:26:18 +00:00
Ingo Weinhold
ccb29adbec Fixed (and documented) _kern_get_disk_device_data(). It is now properly relocating the disk device data.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 15:16:42 +00:00
Ingo Weinhold
f3a589c2ce Added support for relocation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 15:15:20 +00:00
Ingo Weinhold
752ad410c3 Made the disk device manager stuff compilable again. Doesn't link yet, since user_memcpy() and user_strlcpy() are still missing in kernelland_emu.cpp. Tyler?
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4834 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 00:43:40 +00:00
Ingo Weinhold
d3f24d18b6 Added missing return.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4833 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-28 00:41:19 +00:00
Ingo Weinhold
867d3753c3 Wrong data were copied back to the userland cookie in user_get_next_port_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4832 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-27 11:37:09 +00:00
Tyler Dauwalder
453ee0db01 Updated user_read_link() to return the same values it used before the
user_strlcpy() return value semantics change.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-27 05:29:04 +00:00
Tyler Dauwalder
702b8e7ed9 Made first half of so of ddm syscalls kernel-safe.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4830 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-27 05:19:37 +00:00
Tyler Dauwalder
2f0734d8ec Included kernel headers in search path for ddm.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4829 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-27 05:14:58 +00:00
Tyler Dauwalder
1eebd1e00a Updated user_strlcpy() to return length of source string instead of 0.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4828 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-27 05:14:22 +00:00
Ingo Weinhold
bc2d9db133 Creates resize and uninitialize jobs now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4796 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-22 22:04:03 +00:00
Ingo Weinhold
6a2a273d12 Aesthetical changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-22 21:46:48 +00:00
Ingo Weinhold
032e49d571 Partially implemented the class. Well, save the entirely unimportant Do() method, which prints only some debug output for now. ;-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4792 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-22 21:46:00 +00:00
Ingo Weinhold
f7779c94eb Some important fields weren't cloned from the physical partition.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4791 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-22 21:44:19 +00:00
Ingo Weinhold
aa915a05bd Joined the methods generating the delete child and uninitialize jobs -- otherwise we'd delete children of partitions that are uninitialized. Fixed several small bugs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4790 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-22 21:43:13 +00:00
Ingo Weinhold
557cfcdb26 Carried out a incredibly complex TODO. :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-21 21:28:30 +00:00
Ingo Weinhold
6e855f0317 Removed the resizeContents/force from the resize/move syscalls. Fixed resize/move related bugs (partition was not check for status uninitialized).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4783 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-21 21:26:12 +00:00
Ingo Weinhold
dafaf4c360 Added IsUninitialized() convenience method.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-21 21:21:10 +00:00
Ingo Weinhold
50e3477b70 Added KUninitializeJob. Does nothing but printing debug output for now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4780 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-21 21:20:27 +00:00
Ingo Weinhold
20c33ce79b Added syscall for uninitialization.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-21 19:13:54 +00:00
Ingo Weinhold
5c699c6735 Add a field mount_cookie to the partition_data structure and
respective setter/getter methods to the KPartition class.
If a partition is mounted, the field will contain the cookie the
FS's mount() hook passed back to the VFS. This way the FS has
access to its internal data structures. We need the cooperation
of the VFS to get the cookie.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-21 18:25:42 +00:00
shatty
b89786b69e change to public resource.h
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-20 20:47:27 +00:00
beveloper
591d950f92 removed building of old pci module
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-17 20:32:45 +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
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
Axel Dörfler
b5a05a72fa Fixed some warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:36:52 +00:00
Axel Dörfler
d02898ade8 list.h is now in util/.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-09 02:36:29 +00:00
Axel Dörfler
e4cf172727 Since Ingo found out that BeOS requires the module name and its location
on disk to match to be able to find it, changed the ToDo: comment in the
affected function, and added a test call to vfs_get_module_name(); our
bootfs cannot handle the path depth/length required to be a useful module
host, so we still have our recursive search algorithm in place for now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 04:06:14 +00:00
Axel Dörfler
ad304a7ef7 Implemented a new vfs_get_module_path() call that returns the module path
of a given module name.
vnode_path_to_vnode() can now return the type of the file, changed the parameter
order.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-08 04:02:34 +00:00
Axel Dörfler
dbb3d1fc5b Fixed some warnings.
Added a comment about how to traverse the module path to find a given module -
could well be that we got that wrong (too loose, it will work perfectly, though,
just slower than it could be).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-06 17:35:05 +00:00
Axel Dörfler
080cec2518 Fixed a warning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-06 17:31:33 +00:00
Axel Dörfler
e12302da4b Fixed a couple of warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-04 04:23:16 +00:00
Axel Dörfler
a7d21bad55 Fixed some warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4495 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-04 04:20:42 +00:00
Axel Dörfler
db310cf12e Added internal syscalls for fs_read_info() and fs_write_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4494 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-04 04:19:24 +00:00
Axel Dörfler
73d330cf0a Added some missing index functions, and ifdef'd them out, since that
functionality might not be accessible for R1.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-04 04:07:39 +00:00
Axel Dörfler
ad20736f2d Introduced new get_mount()/put_mount() calls to protect a volume against
"sudden unmounts" (as far as that can work). This replaces the weak
find_mount() call used at several places in the fs index functions.
Fixed a bunch of warnings, mostly unused prototypes and variables.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-04 04:01:25 +00:00
Axel Dörfler
854c22e257 Removed an unused function.
#ifdef'd a variable that's only of use with TRACE() on.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-04 03:29:13 +00:00
Axel Dörfler
99f9554253 Removed an unused variable.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-02 13:08:48 +00:00
Axel Dörfler
a6a723ebea Moved list.c into the util/ subdirectory and build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4450 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-02 13:07:22 +00:00
Axel Dörfler
20743a3a67 KPartition::Dump() now also writes its size in MB for convenience (makes it
easier to check if the partitioning_system returns the correct size :-)).
Uses %f which doesn't work in the BeOS kernel (but might in OpenBeOS).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4445 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-09-02 04:06:01 +00:00
beveloper
188b5de0bf renamed atomic_read() into atomic_get() (since we already have atomic_set(), but not a atomic_write())
renamed user_??? functions into the new _user_??? naming style.
changed implementation of PPC 64 bit atomic functions to use (un)lock_memory()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-31 01:21:56 +00:00
beveloper
5fe840b9b5 fixed address checking in ppc atomic functions.
fixed compilation on x86.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-21 23:36:06 +00:00
beveloper
50e0ce4bee Implemented new syscalls for 32 and 64 bit atomic operations.
They are only used if the architecture doesn't support them directly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-21 23:02:00 +00:00
Axel Dörfler
8655936935 Replaced some more vm_*() calls with BeOS compatible ones.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 15:55:56 +00:00
Axel Dörfler
0fd7b49819 Added/changed VM syscalls to the BeOS compatible ones.
Reordered the syscalls a bit (in functional groups), not completely, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 15:52:58 +00:00
Axel Dörfler
fc3874cf13 Replaced the vm_get_region_info() call with get_area_info().
Removed the user_vm_get_region_info(), and user_vm_clone_region() calls.
Added all missing BeOS compatible area syscalls.
Partially implemented [_user_]find_area(), implemented _user_area_for().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 15:51:30 +00:00
Axel Dörfler
b98ed81007 Made the VM even calmer - this one uses the TRACE() stuff now as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 03:21:13 +00:00
Axel Dörfler
5e809fa13e Added empty stubs for all missing BeOS VM functions.
The lock_memory()/unlock_memory() functions cannot be implemented right
now, as the NewOS VM doesn't support locking.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 03:07:51 +00:00
beveloper
40ac5c5195 cvs server: Up-to-date check failed for `src/kernel/core/vm/vm.c'
cvs [server aborted]: correct above errors first!
cvs commit: saving log message in /tmp/cvsFPtfaj


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:48:15 +00:00
Axel Dörfler
44e874a74d Made the VM a lot calmer if you wish; moved many dprintf()s into the new
TRACE() macro. Renamed the old TRACE macro to TRACEPFAULT.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:41:07 +00:00
beveloper
5f993f93ff renamed test_and_set into atomic_test_and_set
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:35:24 +00:00
beveloper
b4e05c0eb8 On most systems, atomic functions do not need to be implemented as syscalls.
ATOMIC_FUNCS_ARE_SYSCALLS is only defined on architecture like SH4.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:34:42 +00:00
beveloper
2fdb794edc The atomic and system_time function are now included in the
kernel_os_arch_x86.o file that is genereated by libroot.
Removed duplicate implementations from this file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:23:44 +00:00
beveloper
67fd74cd28 moved atomic user functions to SH4 atomic.c
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:21:57 +00:00
Axel Dörfler
414ecbd490 Now uses the BeOS map_physical_memory() call.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:17:09 +00:00
Axel Dörfler
fac37b22cb Added the BeOS compatible and working map_physical_memory() call.
Made the "name" argument const for create_area_etc() and vm_map_physical_memory().
Moved some common conversion code (BeOS to NewOS VM constants) to separate
functions to clean them up a bit.
create_area() now automatically sets LOCK_KERNEL if the area is to be created
in kernel space (as I would guess BeOS does, too).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:14:44 +00:00
beveloper
74aad02bac SH4 needs atomic operations to be implemented as syscalls, other
architecture can do this better. Removed from generic cpu.c file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-20 02:13:45 +00:00
Axel Dörfler
f8a4dcfa28 Forgot about B_ANY_KERNEL_BLOCK_ADDRESS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 22:29:51 +00:00
Axel Dörfler
c4aff5f858 Now uses delete_area() instead of vm_delete_region().
Temporarily #if'd out scan_pci() and removed the compiler calming hack for it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 17:47:20 +00:00
Axel Dörfler
cbc1309c68 Replaced some more vm_create_anonymous_region() with create_area() and
create_area_etc().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 17:38:13 +00:00
Axel Dörfler
5152eb6890 The delete_area() call in the kernel now only allows to delete areas created
in the kernel.
Use the new delete_area_etc() call for other needs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 17:21:50 +00:00
Axel Dörfler
b2e5e9af2d As the BeOS documentation states what will happen in the future,
delete_area() now only allows to delete areas you have created
yourself before from userland, again.
The kernel's delete_area() still allows everything, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 17:08:35 +00:00
Axel Dörfler
010a1e70be Made the delete_area() function BeOS compatible; it now allows any area to
delete. Added a comment how the security should be improved by adding another
restriction.
Also mentioned that it's probably a bad idea that vm_delete_region() will
not wait until the region has been freed, but just "mark" it as to be freed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 14:47:31 +00:00
Axel Dörfler
7b25ddd21a Replaced calls to vm_create_anonymous_region() with the BeOS compatible
create_area() where possible.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 14:28:11 +00:00
Axel Dörfler
50ba6835f7 Replaced old create/delete area syscalls with the new ones.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 14:10:35 +00:00
Axel Dörfler
20fcd813b9 Implemented BeOS compatible create_area()/delete_area() calls for the VM
that will call the internal vm_*() calls. This will make it easier to just
drop in another VM.
Also (partially - Ingo was faster) introduced the new syscall naming scheme
_kern_ & _user_ prefixes to them into the system namespace, and no longer
clobber the application namespace.
Removed the now unused user_vm_create_anonymous_region() call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 14:06:13 +00:00
Axel Dörfler
650a32fb62 Fixed two very subtle and hidden bugs that prevented the module component
to work at all: recurse_directory() always returned failure, no matter what opendir()
returned (one semicolon too much), create_module() allocated only 4 bytes for
the module - sizeof(module) referred to the variable, not the structure name...
(the unfortunate consequences of the naming scheme I otherwise like very much -
it "just" took me 3 hours to hunt both bugs down).
Added some TRACE() and ASSERT()s.
Added a new debugger command "modules".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-18 03:41:26 +00:00
Axel Dörfler
54711c1b89 free() now fills the freed memory with 0xdeadbeef if PARANOID_KFREE is defined
(except for the first 4 bytes, because that's the pointer to the next buffer
in the free list).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-18 03:35:57 +00:00
Axel Dörfler
782a460588 subtle cleanup, debug output corrections.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-18 03:21:26 +00:00
Ingo Weinhold
00e2926fda Uses a free list of semaphore slots for faster creation now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-04 00:06:54 +00:00
Ingo Weinhold
d40ced0e2e Fixed a few smaller issues.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-03 22:21:00 +00:00
Ingo Weinhold
8d91b8087d Improved the interaction between job queue and manager. Partitions should now be mark busy correctly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-03 18:39:12 +00:00
Ingo Weinhold
13ab290504 Fixed a potential memory leak. If any operation prior to the addition of the job queue to the manager failed, it wouldn't be deleted. Now the job generator deletes it by default and must be told via DetachJobQueue() to not do that.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-03 18:37:21 +00:00
Ingo Weinhold
cc6edbdf8f * Added VisitEachDescendant().
* Added {Add,Clear}Flags() which are more comfortable than SetFlags() in
  most cases.
* On construction the `busy' and `descendant busy' flags are set.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-03 18:27:33 +00:00
Ingo Weinhold
7e4c7d4350 Added KPartitionVisitor class used for advanced partition tree traversal.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-03 18:23:53 +00:00
Ingo Weinhold
572b5b77d3 Implemented _kern_commit_disk_device_modifications() (save the notification related part).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-02 00:01:37 +00:00
Ingo Weinhold
af314d827a Implementing generation of remaining jobs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-02 00:00:49 +00:00
Ingo Weinhold
84ba3a5265 Added JobFactory().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-01 23:59:26 +00:00
Ingo Weinhold
1217079c31 Changed parameter name only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-01 23:58:46 +00:00
Ingo Weinhold
a10abc1e14 Added KDiskDeviceJobGenerator.cpp to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:48:51 +00:00
Ingo Weinhold
bdbbcfaf16 Added CountDescendants().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:48:08 +00:00
Ingo Weinhold
ec4ef3525f Added a KDiskDevice* parameter to the constructor.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:46:38 +00:00
Ingo Weinhold
57c8af057e Replaced the Vector parameter of CreateMoveJob() by a simple array. Added CreateUninitializeJob() (empty implementation).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:45:26 +00:00
Ingo Weinhold
6ae0077c0d This class compares a KDiskDevice with its shadow partition hierarchy and
generates the jobs needed to transform the former to the state of the
latter. Currently only the jobs for deleting partitions and resizing
and moving existing ones are generated. Resizing and moving was the
hard part, though, the rest should be much easier. Completely untested
yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-31 22:41:50 +00:00
Ingo Weinhold
78097103b7 Turned off debugging. Now sets the job description.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:51:01 +00:00
Ingo Weinhold
68f12c0221 Implemented job related functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:49:50 +00:00
Ingo Weinhold
fe05b0ac95 Added and implemented job related syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:48:08 +00:00
Ingo Weinhold
c34b4f49f4 Added ActiveJobIndex().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 17:46:59 +00:00
Ingo Weinhold
4f2af97d45 Implemented class. Some bits are still missing (e.g. setting the description).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:29:03 +00:00
Ingo Weinhold
71346466b8 Added user_partition_data::content_size field. Small change to support a NULL parameter in _kern_supports_resizing_partition().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:24:22 +00:00
Ingo Weinhold
738e4a700b Support for the added partition content size attribute.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:21:21 +00:00
Ingo Weinhold
ace55d9bfc Implemented the job related functionality. Moved scanning of partitions into the respective job class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:18:16 +00:00
Ingo Weinhold
6eaec7ddda Some changes to the interface (added missing methods and such). Implemented the class almost completely. Basically only the notification stuff is still missing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:16:15 +00:00
Ingo Weinhold
a31533cbec Brought the interface up to date. Added empty implementations for all methods, save the one creating a job for scanning, which is complete.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:14:27 +00:00
Ingo Weinhold
38bd13fcf9 Some changes to the interface. Implemented most of the methods. The notification stuff is still missing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-30 00:12:39 +00:00
Axel Dörfler
1baf26bc47 Fixed allocate_cbuf_mem() after Ingo's hints. The CBUF_FLAG_CHAIN_HEAD flag is
now no longer set in the loop, the total_length calculation should now be correct.
The CBUF_FLAG_CHAIN_TAIL is now set for the lastBuffer instead of buffer.
Removed some superfluous lines in cbuf_get_ptr(), and cbuf_ones_cksum16().
Fixed the buffer->length calculation in cbuf_truncate_tail() and added some
comments about the correctness of the code - should be investigated and fixed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-26 13:58:20 +00:00
Ingo Weinhold
95152e1e98 Implemented remaining partition modification syscalls. Some small fixes. Some refactoring.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-24 22:58:06 +00:00
Ingo Weinhold
1d8675355f Added some more support for tracking changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-24 22:56:53 +00:00
Ingo Weinhold
ee1ebe375c * Added ShadowPartitionChanged() to KDiskSystem and respective hooks
to the module interfaces. So the disk system will be informed, when a
  shadow partition has changed and it is allowed to do necessary
  adjustions (e.g. adjusting the cookie, the parameters, or on
  partitioning system initialization even creating special child
  partitions (apple partitioning system)).
* Added `int32 *index' parameter to ValidateCreateChild(). So the
  partitioning system can report at which index the new child shall be
  inserted.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-24 22:53:23 +00:00
Ingo Weinhold
5ee968b3df * Added a change counter parameter to all partition querying and
modification functions. Don't know why I didn't right from the start.
* Implemented _kern_resize_partition().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-22 00:11:03 +00:00
Ingo Weinhold
02885b7d6e * Got rid of SetContentType(). It is set automatically now, to the
PrettyName() of the responsible disk system.
* Added change counter support and changes tracking.
* Added UninitializeContents().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-22 00:03:35 +00:00
Ingo Weinhold
c0b8ba64fd _kern_supports_moving_partition() now returns the list of partitions that need to be unmounted for moving.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-21 14:17:03 +00:00
Ingo Weinhold
df3b8c625e Added partition modification syscalls with empty implementations.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 22:39:37 +00:00
Ingo Weinhold
d7ce4fddfc Implemented all read-only (more precisely: not writing) methods. Small changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 17:24:32 +00:00
Ingo Weinhold
71a5281923 Implemented _kern_get_partitionable_spaces(). Got rid of user_partitionable_space_data.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 17:18:48 +00:00
Ingo Weinhold
2a596c013a Implemented all read-only (more precisely: not writing) methods. Small changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-20 17:15:35 +00:00
Ingo Weinhold
752cec6459 Several changes to the _kern_{supports,validate}_*() calls:
* Removed the disk_system_id parameter where superfluous.
* Got rid of the `child' variants of the _kern_{supports,validate}_*()
  syscalls for moving and resizing. Reimplemented the real ones to do the
  the right thing, i.e. they check all concerned disk systems now.
* Added _kern_supports_setting[_content]_parameters().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-19 20:37:00 +00:00
Ingo Weinhold
708a31badf Added SupportsSetting[Content]Parameters() to the KDiskSystem interface and respective functions to the module interface. Some re-ordering of methods/functions for aesthetical reasons. :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-19 20:29:58 +00:00
Ingo Weinhold
24fa6c601b Added LoadDiskSystem() version, that takes a disk system name.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-19 20:26:48 +00:00
Ingo Weinhold
18b90323d9 Added flags for disk systems.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-18 18:41:21 +00:00
Ingo Weinhold
a1a7d37e2c Added syscall for validating the initialization parameters.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-17 00:04:22 +00:00
Ingo Weinhold
3f60a01369 Added "name" parameter to KDiskSystem::[Validate]Initialize() and the respective module API functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-17 00:03:17 +00:00
Ingo Weinhold
8bc0bd912a Added and implemented the remaining disk system syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-16 21:01:14 +00:00
Ingo Weinhold
1f3f1294a8 Added a IsSubSystemFor() method to the KDiskSystem interface and respective calls for the module interfaces.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-16 21:00:01 +00:00
Ingo Weinhold
1863de6785 Added and implemented the first part of the disk system querying syscalls (_kern_supports_*()).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-07-15 21:42:59 +00:00