Commit Graph

1959 Commits

Author SHA1 Message Date
Axel Dörfler
f19955303e _user_set_area_protection() did not set any B_KERNEL_*_AREA protection.
_user_create_area() and _user_clone_area() now inherit the read/write protection
for the kernel, too - before, it was always mapped read/write in the kernel,
but there is no reason to do that.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-24 18:57:20 +00:00
Axel Dörfler
4bc2682135 First go at set_area_protection() - does work for everything but changing
a read-only area to read/write.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-24 18:22:17 +00:00
Axel Dörfler
983377dc3d Now only uses the file name instead of the full path as area base name.
Calls set_area_protection() after relocating the images to make them
read-only for real.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-24 18:15:20 +00:00
Axel Dörfler
40ab990937 vm_cache_resize() can now resize all caches - and therefore, it now accepts
an off_t as size argument.
Implemented new function vm_cache_write_modified() which will write all
dirty pages of this cache back to disk (using the new vm_page_write_modified()
function).
Fixed warnings when compiled with debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 03:34:04 +00:00
Axel Dörfler
86b5aa8df9 Implemented new function vm_page_write_modified() that writes all dirty
pages in a cache back using the store's write method. Doesn't optimize
disk access yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 03:30:02 +00:00
Axel Dörfler
257d99f228 Renamed readwrite() to cache_io(), and readwrite_pages() to pages_io().
While we can tolerate the device driver to ignore the bytes argument when we
read from the device, we cannot do this for writes - now the code actually
takes this into account. Also added a comment about what to do when our own
driver is fixed :)
Implemented file_cache_sync().
file_cache_set_size() now uses vm_cache::virtual_size instead of the now
removed vnode_store::size. Also, it now resizes the vm_cache as well, so
that any no longer used pages are freed.
write_to_cache() now puts all pages in the modified list, so that they
can be written back easily.
Improved debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 03:27:45 +00:00
Axel Dörfler
3aacbe700a Removed the vnode_store::size field - it's no longer needed. Instead,
vm_cache::virtual_size is now used by the file cache code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 03:22:35 +00:00
Axel Dörfler
3e5bf45013 attr_dir_open() now checks if the FS call is implemented at all.
dec_vnode_ref_count() now deletes the cache *after* calling the file system's
remove/release vnode function. Also, it will now write back any pending
changes in that cache before removing it.
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 03:20:20 +00:00
Axel Dörfler
e057f978ce Inode::FillPendingRequests() could fill the requests in the wrong team context.
Now, it will only notify the read requests do gather the data.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 02:57:34 +00:00
Jérôme Duval
378a243ecc move from use of boot_time to use of system_time_offset
remove _get_tzfilename


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 00:20:30 +00:00
Jérôme Duval
2ecad4070b now use _kern_get_tzfilename
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 00:19:22 +00:00
Jérôme Duval
177fdbb034 renamed rtc_boot_time to rtc_system_time_offset
move code from use of boot_time to use of system_time_offset
added _user_get_tzfilename


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 00:16:24 +00:00
Jérôme Duval
e2383c107d fixed offset sign, gmt clock is working
this should be factored in kernel core to only have a system_time_offset


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 21:54:24 +00:00
Axel Dörfler
8039d342ec path & toPath don't seem to be too clear. Fixed order or arguments to the
kernel syscall and renamed them to be less confusing.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 20:29:07 +00:00
Axel Dörfler
4cd43d200d Removed R5 compatibility stuff, as it's not needed in our libroot.
Moved test main() into separate file under tests/.
Fixed warnings, some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 17:42:38 +00:00
Jérôme Duval
b39d4ade08 modified tzset to use the global tzfilename when no TZ env variable is found
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 17:35:13 +00:00
Jérôme Duval
56d0b9b6db added _get_tzfilename
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 17:33:43 +00:00
Jérôme Duval
377eab2488 added _user_set_tzfilename
moved set_tzfilename into _user_tzfilename


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 17:14:06 +00:00
François Revol
64829f93ff add find_directory to libroot build... someone test it ?
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 15:28:51 +00:00
François Revol
390738c37c Use correct syscall for Haiku; better error reporting; testing code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10169 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 15:27:08 +00:00
François Revol
722a8c5d4d #define OSDIR to "beos" and use it, so we can later just change that
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 09:23:54 +00:00
François Revol
d457be4f45 make use of COMPILE_FOR_R5, make some things static.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 09:04:53 +00:00
François Revol
04495f1467 C version of find_directory, still needs some rework.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 08:55:46 +00:00
shatty
9e17ced40d suppress warnings on imported code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 03:03:35 +00:00
Jérôme Duval
77950821de added new fields to the real_time_date replacement struct
timezone_offset is used to have a GMT real_time_clock()
initial set_timezone implementation (still not working)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 00:35:22 +00:00
Jérôme Duval
3787bef109 timezone_offset and dst_observed fields of real_time_data struct are inited
timezone_offset is used to have GMT real_time_clock() and set_real_time_clock()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 00:32:22 +00:00
shatty
a8992af5b4 stub Debug.h functions including possibly-working flag debug flag functions
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-21 03:48:22 +00:00
Axel Dörfler
90d1241219 sys_setenv() and sys_getenv() are not only at the wrong place (that sort of
stuff belongs to userland), they are completely broken, too.
As a quick hack, they no longer disable interrupts, so that the env memory
can be accessed almost safely (in case its valid memory at all).
Please don't fix this, but remove those functions from the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-21 00:01:59 +00:00
Axel Dörfler
7377137f87 Fixed a bug in the debugger "thread" command when it was called with no
arguments (which should have taken the dumped thread).
Improved "thread" debug output to have all data values at the same column.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-20 23:58:57 +00:00
Axel Dörfler
50686c7a7f putenv() was broken and actually cut off one character of the variable name.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-20 23:33:59 +00:00
Axel Dörfler
8210771d09 Oops, exec_team() should rename the team as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-20 22:31:28 +00:00
Axel Dörfler
77a6e0beb6 exec_team() now renames its main thread to the new program name.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-20 22:05:50 +00:00
Axel Dörfler
4f952f6c3a pipefs_create() didn't call Inode::Open(), and since the read/write counters
were messed up because of that, most shell pipe access didn't actually work
(thinks like "cat x | grep y", or "a=`uname -m`) - they now do.
Added more debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-20 21:51:01 +00:00
Axel Dörfler
50f99a085e Now properly allocates the kernel stacks of the other CPUs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 22:04:12 +00:00
Axel Dörfler
0641ddaabc Now uses the KERNEL_STACK_SIZE constant to allocate the idle thread kernel stacks.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 21:56:45 +00:00
Axel Dörfler
672ba60193 Removed unnecessary reference to ktypes.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 21:56:02 +00:00
Axel Dörfler
d621b8a482 Now uses the shutdown() function instead of reboot() directly. Maybe this
must be changed again to arch_cpu_shutdown(), since it might not be safe
to properly shutdown from the kernel debugger.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 21:55:12 +00:00
Axel Dörfler
8f60d4cdba Removed dumb put BeOS compatible cache implementation - it's not needed anymore.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 20:29:17 +00:00
Axel Dörfler
10b8d84f32 Added empty file_cache_sync().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 20:24:27 +00:00
Axel Dörfler
583565f02a Added unistd/sync.c to the kernel.
Removed unneeded source grist.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 20:19:53 +00:00
Axel Dörfler
5987043c75 Added new shutdown() function that at least does a sync() before rebooting
the system. Should shutdown all other things, too.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 20:18:27 +00:00
Axel Dörfler
fc5fb64131 Implemented arch_cpu_shutdown().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 20:16:52 +00:00
Axel Dörfler
137270c9e6 Readded our ctime.c - removed equivalent versions from localtime.c, so that
not everything is in this one file.
Removed definition of STD_INSPIRED: this not only fixes some warnings, it
also removes functions that are not exported under BeOS, and there is no
reason to change that.
Added weak export of timelocal() in case STD_INSPIRED is not defined in
localtime.c.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 19:44:09 +00:00
Axel Dörfler
d9dd2139b1 Removed misc.c from the build for now.
Removed unneeded grist from source files.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 19:12:21 +00:00
Axel Dörfler
48d914c9ce Disabled some unneeded checksum code (cbuf is still "abused" in our ports
and pipefs implementation, but was originally thought for a network stack).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 19:11:04 +00:00
Jérôme Duval
9b51d2f8fb Added implementation localtime.c strftime.c
from ftp://elsie.nci.nih.gov/pub/tzcode2004g.tar.gz
private.h and tzfile.h are in common with timezone compiler, so we put them in headers
Sorry to not use cvs import


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 15:35:23 +00:00
Axel Dörfler
0db0e9aaa2 KSTACK_SIZE, STACK_SIZE, and MAIN_THREAD_STACK_SIZE were all renamed.
Fixed a bug in the team thread start: it did not set sizeLeft correctly
before copying the arguments - shouldn't have had any consequences, though,
as the size of the arguments is known before.
Added a comment explaining the current layout of the main thread stack area.
Now makes use of B_STACK_AREA and B_KERNEL_STACK_AREA.
fill_thread_info() did not correctly set thread_info::stack_end.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 18:15:39 +00:00
Axel Dörfler
b139f2481d Renamed KSTACK_SIZE to KERNEL_STACK_SIZE.
Fixed a bug in arch_init_tls() that did not support different stack sizes
(ie. didn't use the thread::user_stack_size variable).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 18:11:19 +00:00
Axel Dörfler
8bde4cf98c vm_store::fault() can now decide not to handle the fault - when it returns
B_BAD_HANDLER, vm_soft_fault() will just continue as if there is no fault()
function.
There is now support for the B_STACK_AREA and B_KERNEL_STACK_AREA protection
values: if the former is used, or the latter in combination with DEBUG_KERNEL_STACKS,
a number of guard pages is inserted at the bottom of the stack (depending on
the STACK_GROWS_DOWNWARDS/UPWARDS arch config).
In addition, user stacks are no longer committed completely, ie. they don't
reserve memory for their whole size, only as much as is needed. That may
result in applications crashing when they need a lot of stack and there is
no memory left. Before this change, you could not even run that application.
Since BeOS has a 16 MB stack for the main thread, you could only run about
2 applications with 64 MB before.
Due to these changes, we've now switched to the standard BeOS stack sizes.
Some minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 18:03:34 +00:00
Axel Dörfler
d55026c2d5 Added empty implementation of mknod() - should be pretty much what BeOS does.
The "mv" command needed it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 16:56:10 +00:00