Commit Graph

2126 Commits

Author SHA1 Message Date
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
Axel Dörfler
515d213528 create_port() incremented the used ports counter twice, thanks to Stefano
Ceccherini for the hint.
The first port ID is now 1 and not 0 anymore.
Added a first free slot hint to speed up port creation.
Added more debug output when tracing is enabled.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:03:48 +00:00
Axel Dörfler
50edebb6cb Added B_CURRENT_TEAM support to get_team_info() as well - dunno though, if
BeOS supports this as well, at least it's not documented in the BeBook
(but it's useful anyway).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 16:37:41 +00:00
Axel Dörfler
b9ead42463 Support for B_CURRENT_TEAM was missing from get_team_usage_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 16:34:32 +00:00
Axel Dörfler
a09c4553a6 Made the get_safemode_option() function public.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 16:25:18 +00:00
Axel Dörfler
c591847918 Renamed _kern_set_tzspecs() to _kern_set_timezone().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 15:04:16 +00:00
Axel Dörfler
7c8c40ecb2 Moved _user_system_time() to real_time_clock.c.
Renamed _user_set_tzspecs() to _user_set_timezone().
Renamed sTzFilename to sTimezoneFilename.
Moved rtc_print() into rtc_debug().
Fixed changing system_time_offset; since this is a shared 64 bit value,
we have to use atomic calls when we change it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 15:03:28 +00:00
Axel Dörfler
9b6593acae Now remembers the time spent in children/threads that are already gone.
Implemented get_team_usage_info() - not really tested, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 14:58:01 +00:00
Axel Dörfler
e7a9dbff59 Now uses the appropriate syscall.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 21:22:14 +00:00
Axel Dörfler
2ff908a59e Added empty get_team_usage_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 21:20:17 +00:00
Jérôme Duval
82f223ea8c Implemented times
now uses system_time, because we don't have to return a real time


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 20:16:35 +00:00
Jérôme Duval
4693e9c7a5 Implemented getrusage
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 19:24:24 +00:00
Axel Dörfler
80899a91b9 Added libroot/os/arch/x86/thread.o to the rld.so build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10240 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 18:53:39 +00:00
Axel Dörfler
73e29ea0c4 Added empty get_safemode_option() call - right now, it's even private
and only the syscall is exported.
For now, it always returns B_ENTRY_NOT_FOUND - since the boot loader
does not have support for driver settings yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 18:36:42 +00:00
Axel Dörfler
216b269cbc Moved shutdown() into a separate file.
Added _user_shutdown() and made it available as syscall.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 17:59:13 +00:00
Axel Dörfler
1e32802a52 New call new_fd_etc() which accepts a starting index for where to search for free FDs.
Implemented F_DUPFD support for fcntl() - we no longer see any redirection errors when
booting into Haiku.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 02:56:35 +00:00
Jérôme Duval
766dfdaf6c fixed system_time_offset and sTimeOffset
added some trace


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-24 22:54:50 +00:00
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
Axel Dörfler
893e0713fb vm_store::fault() now returns a status_t.
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 14:35:40 +00:00
Axel Dörfler
5d6e6b647c Fixed warning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 04:15:10 +00:00
Axel Dörfler
397e7db6df Brought the userland time initialization into more or less final shape:
- renamed setup_rtc_boottime() to __init_time()
- __init_time() is now initialized at libroot.so startup
- introduced new __arch_init_time() that does the arch dependent stuff,
  for now it just sets the system_time() conversion factor (that's the
  part that will change later on)
- os/time.c now keeps a pointer to the real_time_data around, not only
  to the boot time - maybe we'll it for other stuff as well later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 03:08:36 +00:00
Axel Dörfler
1979c1f90c Page directories are now always allow user read/write access - this reduces
the x86 protection model to page level protection only. It's currently needed
for BeOS compatibility, though we might want to get rid of it later. Thanks
to Jerome for stombling into this :)
arch_vm_translation_map_init_post_sem() did not return a proper status.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-17 15:51:24 +00:00
Jérôme Duval
7bad53a1bc better parenthesis
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9978 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-17 00:22:54 +00:00
Jérôme Duval
b5027c0e2b added ctime_r
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-16 11:24:35 +00:00
Jérôme Duval
b3c1f2c654 removed comments
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-16 00:37:26 +00:00
Axel Dörfler
abb0fbc167 vfs_mount_boot_file_system() now at least checks for the right partition
offset to recognize the boot volume.
This should work well enough for now (as long as you don't have too many
disks in your system).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 20:02:04 +00:00
Axel Dörfler
06db250916 vfs_mount_boot_file_system() now also gets the kernel_args.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 20:00:49 +00:00
Axel Dörfler
17e0266f6e Implemented platform_register_boot_device(): it parses drive_parameters
versions 2.x and 3.x and fills the disk_identifier of the boot disk.
"Dumb" checksum/size recognition is not yet implemented (stores only the
size of the disk for now).
Does not yet create bios_drive structures for any other drives.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:11:27 +00:00
Axel Dörfler
04b9d56a03 register_boot_file_system() now also fills in the kernel_args data about
the boot partition, and calls platform_register_boot_device() for the
rest.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:06:47 +00:00
Axel Dörfler
925f2cab6a get_node_for() has moved into the public VFS API for now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:05:01 +00:00
Axel Dörfler
5d6160d04e panic() now reboots when you press a key.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:03:56 +00:00
Axel Dörfler
356f4957fa Added a function that clears the keyboard buffer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9958 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:02:50 +00:00
Axel Dörfler
8a4b1da1e7 Corrected the information where the real/protected mode stacks begin; the
comment did not take the BIOS data area into account.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:01:52 +00:00
Axel Dörfler
0084d31635 Added an additional flags parameter to fs_mount(), "args" is now a const char.
Turned off debugging output in pipefs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 16:43:30 +00:00
Axel Dörfler
ead0d79064 Debug output now uses the TRACE() macro, turned debug output off.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-12 17:21:14 +00:00
Axel Dörfler
fdc19c4c1a Accidently disabled old BeOS API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-12 17:18:45 +00:00
Axel Dörfler
f99b76aafb Changed fs_mount() call, "args" is now a const char, added flags parameter.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-12 17:03:48 +00:00
Axel Dörfler
eb9f0103f8 file_cache_delete() can now safely be used with a NULL pointer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-12 16:46:05 +00:00
Axel Dörfler
6d6292cffa Some changes and bug fixes to make the API better to use:
- added user data pointer to cache_transaction notifier
- added functions block_cache_set_dirty(), and block_cache_make_writable()
- cache_transaction_next_block() let's you iterate over all blocks in the transaction
- instead of binding the block contents to the transaction (read-only checked
  out blocks did only see the unchanged blocks until the transaction was closed)
  the block now always shows the current data - even if the old way had some
  advantages, it was terrible to use
- the blocks were not correctly added to the transaction
- improved debug output
- can check if the read-only blocks were changed accidently (compile time option)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-12 16:43:51 +00:00
Axel Dörfler
9ad2b1324f The boot loader places the debug symbols in the kernel args, and since
we don't want to copy them over to the kernel heap, we just don't free
the kernel args if the debug symbols are enabled - and since there are
no driver settings yet in the kernel, this is always for now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-11 19:43:59 +00:00
Oliver Tappe
23db182d85 - deactivate vtable-thunks, as BeOS never used them and we need to be
compatible; change vtable-label-prefix accordingly.
- removed inclusion of wchar.h, as this breaks the libstdc++-build (hopefully
  this doesn't break anything ?!?)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 19:43:14 +00:00
Oliver Tappe
208f00ecf7 - added missing defines to compile libio with _STDIO_USES_IOSTREAM not being
set (although we do set it now).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 19:39:13 +00:00
Oliver Tappe
2468e805d8 - added comment about why stdin/stdout/stderr and cin/cout/cerr synchronization
never worked in BeOS (and why it works now).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 19:36:30 +00:00
Oliver Tappe
9777605673 - added a (commented out) specification of how to build a standalone libio
which can be used to test haiku's own libstdc++ under R5.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 19:27:32 +00:00
Oliver Tappe
f32abcdce8 - added haiku-specific implementation of bits/errno.h, as required by
the stdlib-part of glibc.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 19:25:29 +00:00
Jérôme Duval
0cdef817cf Added non working functions estimate_max_scheduling_latency and suggest_thread_priority
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 09:19:36 +00:00
Axel Dörfler
85b750f216 Implemented first test implementation of the new block cache and transaction API.
Moved from mutexes to benaphores.
Removed partial write support of the old API.
remove_cached_device_blocks() will now actually free all remaining blocks.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 02:03:39 +00:00
Axel Dörfler
4f727c8fb6 New function hash_remove_first() makes emptying a hash table much simpler.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 01:56:22 +00:00
Jérôme Duval
6eb4c8d477 added gnu regex
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 22:49:35 +00:00
Jérôme Duval
5ebc38dcf6 added regex in our libroot.so, it is the one from our Gnu grep 2.5
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 22:48:36 +00:00
Jérôme Duval
ca72d05ae0 we can't read this data from userland yet, help!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 22:45:48 +00:00
Axel Dörfler
43576fd35b Removed some debugging output that shouldn't have made it into the repository.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 13:57:03 +00:00
Axel Dörfler
3407cab7da Temporarily added initialization of the system time conversion factor (x86)
to the arch independent section (pure laziness + I am not yet sure how this
will look like on other platforms).
Fixed the clone_area() command: B_CLONE_ADDRESS must not be used in the
same address space, because the area creation then can only fail.
Added an explanation on why the area is cloned at all.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 13:50:52 +00:00
Jérôme Duval
06dae80951 clean up of region=>area, addr_type=>addressSpec, fixed compile errors when trace is active
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 13:42:12 +00:00
Jérôme Duval
2e080fb4d6 switch to struct real_time_data, renamed function and variables
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 12:51:59 +00:00
Jérôme Duval
b138834ceb added a read only cloned area for real time data. untested yet.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 12:44:53 +00:00
Axel Dörfler
cb0e529459 A terminated buffer just feels better.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 23:23:17 +00:00
Jérôme Duval
e617ef9b0a line must be computed, fix the bottom of the screen "diff fortunes profile" bug.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 19:42:42 +00:00
Axel Dörfler
3f345c7e95 Implemented clone_area() and _user_clone_area(). Not tested, but should work.
Added some missing consts.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 19:26:43 +00:00
Axel Dörfler
5b532f8614 Added fs_volume.h header, "resolved" one of the last old ERR_* error codes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 18:35:47 +00:00
Axel Dörfler
60bbe6afce Our file system are different, and old mount stuff does not work anymore;
we do not support mount() and unmount() anymore.
I've not removed that file in case we decide that we have to export those
functions for whatever reason.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 18:32:43 +00:00
Axel Dörfler
b9be02df0c vm_area_for() did not work correctly; apparently, I had chosen the wrong area_for()
like implementation to copy from...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 15:05:10 +00:00
Axel Dörfler
534d8fbcc7 Fine-graded debug output. Debug output disabled by default.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:37:07 +00:00
Axel Dörfler
13dee31361 Now uses create_area() instead of vm_create_anonymous_region().
The page_stats debugger command now understands queue names as well.
Some minor cleanup, improved error checking.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:34:35 +00:00
Axel Dörfler
1c11f7ea8a Got rid of regions - we're now back in area-land.
Renamed vm_area::lock to vm_area::protection to be less confusing - wiring
is still called wiring, though (might be renamed to lock later, as that's
how BeOS calls it).
Renamed some global variables to match our naming scheme.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:25:09 +00:00
Axel Dörfler
df9445ba48 Replaced region_id with area_id.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9859 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:17:19 +00:00
Axel Dörfler
98cc327660 Replaced region_id with area_id.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:11:46 +00:00
Axel Dörfler
070f286492 Use create_area() instead of vm_create_anonymous_region().
Some minor other cosmetic changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:06:50 +00:00
Axel Dörfler
a13f918460 No need to have the kernel daemon run immediately.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9855 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:03:19 +00:00
Axel Dörfler
07bdb9c6ea Got rid of gSemRegion as it is never really used.
Renamed all static global variables to have the 's' prefix.
acquire_sem_etc() now fails if B_RELATIVE_TIMEOUT and B_ABSOLUTE_TIMEOUT
are both set.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9854 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 13:57:40 +00:00
Axel Dörfler
148a8e0c57 Renamed *_stack_region_id with *_stack_area, also replaced region_id with area_id.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 13:53:34 +00:00
Axel Dörfler
877547cdb0 Renamed *_stack_region_id with *_stack_area, also replaced region_id with area_id.
Fixed a bug in snooze_etc(): it could define both, B_ABSOLUTE_TIMEOUT and
B_RELATIVE_TIMEOUT at the same time.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 13:52:11 +00:00
Axel Dörfler
99bd520827 Now makes use of the real_time_data structure.
No longer crashes due to architectural VM restrictions (ie. the area
is kernel only but writable now - should be cloned).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:48:04 +00:00
Axel Dörfler
6aa419e55f Correctly implemented find_area() and area_for(), available for userland
and the kernel.
create_area() can now only create kernel areas.
_user_create_area() now directly calls vm_create_anonymous_region().
Removed broken find_region_by_address() and find_region_by_name().
Removed vm_find_region_by_name().
Renamed the idle thread stack areas.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:20:20 +00:00
Axel Dörfler
bcf9ffef0b Fixed a possible crashing bug.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:17:06 +00:00
Axel Dörfler
8bce4da9ee Replaced vm_find_region_by_name() with find_area().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:15:07 +00:00
Axel Dörfler
704df541ac No longer uses private VM API to the base address of the idle thread stacks.
Renamed the idle thread and their stack areas.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:12:05 +00:00
Axel Dörfler
3f97e14d42 Fixed a comment as pointed out by Jerome.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 10:17:41 +00:00
Jérôme Duval
bc5583d710 added pclose.c to the build, needed for running diff
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9824 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-07 11:30:35 +00:00
Jérôme Duval
ca6e6e8d16 removed unuseful clone_area
This is a temporary solution, until moving to a global kernel export data struct


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-07 01:19:27 +00:00
Jérôme Duval
3a88903282 _kern_set_real_time_clock now returns a status, we now use it for errno
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9818 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-07 01:16:12 +00:00
Jérôme Duval
d104cdcbae Moved sBootTime to an area, so that userland can clone it
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9811 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-06 17:37:00 +00:00
Jérôme Duval
dc80059933 first real_time_clock impl
todo : setup_rtc_area should be called on startup


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-06 17:34:39 +00:00
Axel Dörfler
d2170152b1 _user_set_real_time_clock() can now return an error. It currently even
will do this if this function is called by anyone other than the root
user.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-05 16:08:00 +00:00
Jérôme Duval
c345d00db1 added a check of permission
now set errno and return -1 for errors


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9802 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-05 13:25:13 +00:00
Jérôme Duval
4fe4cbd39c added implementation of stime
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-04 23:02:54 +00:00
Axel Dörfler
fe5b39146f Neither unregister_wait_for_any() nor register_wait_for_any() returned
status.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9799 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-04 16:42:16 +00:00
Axel Dörfler
bd00cbc6a9 Updated the PPC stuff to recent changes in other parts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-04 16:41:32 +00:00
Ingo Weinhold
90072e721d Always define the symbols needed for basic C++ features. If we link against libgcc.a the symbols from there are simply overridden.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 17:33:17 +00:00
Axel Dörfler
ba44a1e8e1 Changed the way the stores commit their memory: there is no special handling
for temporary memory anymore, it's the store's responsibility to do that
correctly now, and that functionality is reached via the vm_cache using
vm_cache_set_minimal_commitment().
Therefore, the vm_store commit() function now returns a status instead of
the size that could be commited.
Replaced the max_commit mechanism with one that cares about the available
memory, stores can reserve and unreserve such memory. The anonymous_commit()
will now fail in case it could not reserve the needed amount of memory.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 17:24:41 +00:00
Axel Dörfler
d0f68c485f Added uio functions to the kernel (readv/writev[_pos]()).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9775 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 16:23:45 +00:00
Axel Dörfler
8c3e1399ec Thanks to Johannes Fortmann, I learned that the blinking mode can be turned
off to enable bright background colors. It's now always done which enabled
me to improve the slider colors a bit.
Therefore, console_set_color() no longer clears bit 8 from the background color.

Now no longer tries to change the palette in non-8-bit modes; that fixes
the strange colors I got in high and true color modes (VESA palette changing
would fail and the fallback VGA palette changing was responsible for the effect).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 15:43:27 +00:00
Axel Dörfler
2786541fbe Fixed a crashing bug in fill_sem_info() - if it was called for a semaphore
with an empty queue, it crashed. sem_info::latest_holder is obviously not
set correctly, and should be fixed.
Some cosmetics.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 15:33:01 +00:00
Axel Dörfler
c89cbee2cf Added missing times() function (almost empty stub implementation).
Implemented uio.h functions: readv/writev[_pos]().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 15:05:35 +00:00
Axel Dörfler
f0dd6fc2c8 Since the status field is still not set correctly (lazy me), reset it to zero at least.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9769 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 15:03:51 +00:00
Axel Dörfler
8c390406d7 Added missing putenv() implementation. Chosed to limit env names to an arbitrary length of 64 bytes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 15:00:08 +00:00
Axel Dörfler
c1a8ebfa2d Added missing legacy bcmp() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 14:57:15 +00:00
Axel Dörfler
9d171dd8f9 Implemented _{user|kern}_{read|write}v() functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 14:54:10 +00:00
Axel Dörfler
c426897f56 Changed to make use of environment variables if present. I think we'll
later should cut down on the defaults.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 14:24:10 +00:00
Axel Dörfler
73760b2058 Moved serial interface code into separate file.
serial_init() is now called from start().
Changed the way the serial debug output is served: instead of having
the console node to dump everything to serial, too, only dprintf()
triggers serial output now.
dprintf() is now silent unless in debug mode; serial output could
be enabled separetely, though (currently only at build time).
There is no need to disable serial output while the menu is running.
Removed unnecessary grist from the Jamfile.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 03:02:34 +00:00
Axel Dörfler
5a7a832f37 Debug output now uses dprintf() rather than printf().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:35:56 +00:00
Axel Dörfler
1baf43ea86 Since my original color setup only looked good in Bochs (on real machines
some stuff blinked and had wrong colors), we now have a new color scheme
in the boot loader. Not perfect, but looks okay and the same on Bochs and
real machines.
Made changing the colors again easier by moving most colors to constants.
We now have 3 lines for help texts.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9754 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:31:41 +00:00
Axel Dörfler
cdd04333a0 Standard console height are 25 lines, not just 24.
Now clears the screen and scrolls using the current colors (which allows
for other background colors than black).
console_set_color() no longer allows to set the 8 bit of the background
color which indicates blinking.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:28:27 +00:00
Axel Dörfler
d70ad16601 Changed the console color names to something simpler and better fitting.
Added comments about which colors can be used for what (unlike Bochs,
real systems support blinking modes, and therefore only 7 bits for
the background color).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9752 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:25:28 +00:00
Axel Dörfler
92e0317c84 Disabled VESA palette changing for now; it does not seem to work correctly
or I am messing things up (it will now use good old VGA palette programming).
This fixes the strange colors on my system, should investigate on how to
properly use the VESA stuff here.
Debug output now goes through dprintf().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:23:42 +00:00
Axel Dörfler
d3b2cb65ad Now properly resets the system using the keyboard controller.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:20:59 +00:00
Axel Dörfler
74a5be2dbd No longer clobbers the lower 16 bit of the partition offset before it is saved.
The boot partition was not likely to be found before.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:20:06 +00:00
Axel Dörfler
8ba84a800d Partitions do now know if they actually represent a known partitioning system.
Now correctly removes the partitioning system from a device when it is no longer
needed. Also resets the parent pointer of its children.
Debug output now goes through dprintf() rather than printf().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:17:58 +00:00
Axel Dörfler
127b80eca2 Fixed a bug when the wanna-be boot partition could not been mounted;
the partition was deleted, but never removed from the partition list.
No longer prints out the root directory contents of all file systems.
Debug output now uses dprintf() rather than printf().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:15:31 +00:00
Axel Dörfler
b487348fb3 Now only use dprintf() for debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:13:18 +00:00
Axel Dörfler
40360d8c38 Added stpcpy() implementation for the sake of compatibility (it's not a POSIX function).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-02 01:49:54 +00:00
Axel Dörfler
d7fe004a2a The kernel string functions are now part of kernel_posix.o.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9734 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-02 01:41:09 +00:00
Axel Dörfler
eed194ef81 The kernel no longer links against posix_string.o, but has it's own subset now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-02 01:37:16 +00:00
Axel Dörfler
ed85746ace If available, main2() will now execute the Bootscript. If not, it will fall
back to the old "init" command.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9720 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 21:44:23 +00:00
Axel Dörfler
e27751d3df Fixed a stupid bug in create_team_thread_start(): it copied the env variables
in the wrong direction for some time now, corrupting the argument area (user
apps would crash).
B_SYSTEM_TEAM is now reserved, so that no team can be created there.
Fixed some warnings when debug output is enabled.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 21:38:56 +00:00
Axel Dörfler
7a577b56a1 Now starts a login shell.
Renamed console_reader() function to keyboard_reader().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 21:35:10 +00:00
Axel Dörfler
0759a7e5da pipefs_create() now also allows to open an existing pipe.
The inode now keeps track of the number of readers/writers.
Inode::BytesInChain() is now only used protected by the request lock.
Implemented some missing POSIX demands:
- when the last writer is closed, all waiting read requests are aborted
- pipefs_write() now returns EPIPE and signals the current thread with
  SIGPIPE in case there are no readers left
- pipefs_read() will now return 0 in case there are no writers and no
  unread buffers left in the pipe.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 20:36:09 +00:00
Axel Dörfler
fa00c58619 Fixed a potential memory leak in devfs_open().
Correctly implemented devfs_create() - it will now open the an already
existing file if O_EXCL is not set, and no longer fail with EROFS.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 20:20:37 +00:00
Axel Dörfler
7adec93fe8 Added some minor debug output, and a ToDo comment for file_seek().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 19:48:40 +00:00
Axel Dörfler
de0807a907 Now uses the file name to build the area name, and not the full path anymore.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 15:24:39 +00:00
Axel Dörfler
e4211d820c Fixed another bad bug in the file cache: when one iovec would have to be
divided into several parts, it could happen that overwrite the whole data
portion with data beyond the part that should have been read.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 15:20:27 +00:00
Axel Dörfler
b4fd3816c8 Fixed the stupid bug that prevented you to see what you typed in when bash
was running. Thanks a lot to Jerome Duval who found this!
Since TTY ECHO mode doesn't look too well with the old shell, it will directly
start "sh" now, which should be the bash.
No longer prints out the TTY used when started, but now sets (as usually
done in BeOS) the TTY environment variable.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 03:51:21 +00:00
Axel Dörfler
ffc27ddbe7 fs_mount_volume() changed the order of arguments to be more intuitive.
Removed the fs_initialize_volume() function, as it's probably not going
to be needed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 01:03:04 +00:00
Axel Dörfler
eef883acab Semaphores created in the kernel always belong to the kernel; there is
absolutely no reason to move them to B_SYSTEM_TEAM (additionally, during
startup, set_sem_owner() may crash).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 00:52:27 +00:00
Axel Dörfler
efdc9c95d0 Replaced SYS_MAX_PATH_LEN with B_PATH_NAME_LENGTH.
Changed the last argument of _kern_mount() to be a string rather than a void pointer.
Greatly reduced the stack usage of _user_mount(); it now uses KPath instead
of on stack paths. It now also copies the parameter argument on the heap.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 00:35:27 +00:00
Axel Dörfler
6f5f688cde Thanks to Ingo, symbolic links are now correctly read all the time.
devfs_read_link() and rootfs_read_link() could write beyond the buffer
size passed in (off by one).
The comment for _kern_read_link() didn't fit to what the function really
did.
common_read_link() no longer null terminates the link - it's the file
system's responsibility to do that.
fs_read_link() is not supposed to return the length of the link anymore,
but only B_OK for success.

Note, we deviate slightly from POSIX here, where even a buffer too small
would be filled, and no terminating null byte has to be written at all.
We always return an error in case the buffer is too small, and the link
is not partially copied into the buffer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 13:11:46 +00:00
Axel Dörfler
eeb4323204 Implemented devfs_unpublish_partition() and devfs_unpublish_file_device().
Made the FS internal API a bit more consistent.
Removed devfs_unlink(), and devfs_rename() (which was just returning EROFS
anyway) - the devfs now appears completely read-only to the user. All
changes are triggered by kernel internal APIs (most usually through either
the devfs itself (old style drivers), the disk_device_manager, or the
standard device_manager).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 02:24:30 +00:00
Axel Dörfler
e876e8c516 Implemented devfs_publish_file_device(); it should actually work, but I haven't tested it yet.
Also implemented the now needed devfs_read_link() function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:58:08 +00:00
Axel Dörfler
433c716b82 Removed the empty function stubs from this file (and basically moved there
where they belong). Lazy Ingo ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:43:15 +00:00
Axel Dörfler
554e58f0d4 Added new functions devfs_[un]publish_file_device() - they're not implemented
yet, though, and just return B_ERROR.
devfs_unpublish_partition() now also returns B_ERROR since it's not yet
implemented.
Refactored the device publishing code, so that implementing devfs_publish_file_device()
will become easy.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:41:16 +00:00
Ingo Weinhold
de278b48c4 Now implements the _user_*() functions for the DDM syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:38:17 +00:00
Ingo Weinhold
7146639259 DDM syscalls added.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:37:37 +00:00
Ingo Weinhold
7fb2963ae4 * Added vfs_normalize_path() service call.
* Added resolve_mount_point_to_volume_root() which does what
  resolve_volume_root_to_mount_point() did. IOW the latter one didn't
  do what it advertised.
* Fixed dir_vnode_to_path(). Basically broken due to the broken
  resolve_volume_root_to_mount_point(), but also compared potentially
  unrelated vnode IDs (belonging to different volumes).
* Fixed get_dir_path_and_leaf(). It didn't deal correctly with paths
  ending in '/' (including the root dir).
* fs_mount() does now accept a NULL fsName, getting the FS name from
  the DDM in this case.
* fs_mount() now also supports mounting file images; it lets the DDM
  create a file device for them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:31:43 +00:00
Ingo Weinhold
c06238cbd6 * Reworked publishing/unpublishing of the device. This is now basically
done by (currently not existing) devfs functions.
* Overridden GetMediaStatus() and GetGeometry() to return useful data.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:22:04 +00:00
Ingo Weinhold
1e2e4b3c71 Re-added support for file devices.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9626 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:18:20 +00:00
Ingo Weinhold
cba3b01fdf Added support for path normalization.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:16:41 +00:00
Axel Dörfler
2c4f728f7e Added our preliminary mount replacements.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 17:00:29 +00:00
Ingo Weinhold
da87ac8c9a Added KFileDiskDevice to the build again. Fixed compile errors. It won't work yet, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 16:05:22 +00:00
Ingo Weinhold
4303e367b2 Now we need to explicitly disable RTTI in the boot loader, since it is generally enabled in the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 16:03:12 +00:00
Ingo Weinhold
6a6164e712 Renamed RecursiveLockAutoLocker to RecursiveLocker. Don't mount the standard file systems read-only anymore -- they either aren't or know better anyway.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 15:57:04 +00:00
Ingo Weinhold
e5452be634 Cleaned up GetPath(). In the kernel we no longer prefix the partition path names with "obos_" or "haiku_".
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 15:13:08 +00:00
Ingo Weinhold
0402530222 Extended Append() to also allow adding parts of path components. Added leaf component manipulation. Now always chop trailing slashes off the path.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 15:09:48 +00:00
Axel Dörfler
9902467dac Fixed the build in case debug output was enabled.
Moved the debug macros into the program flow, so that they don't look so
temporary :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 00:32:10 +00:00
Ingo Weinhold
480742bd7a KPath added to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 22:15:11 +00:00
Ingo Weinhold
f3604f65e7 * Added missing `flags' parameter for the mount functions.
* fs_mount() and fs_unmount() are now aware of partitions. A device to
  be mounted is looked up by the DDM and the mount state and mount
  cookie of the corresponding KPartition are updated accordingly.
  Still missing is support for mounting files. Moreover the device path
  needs to be normalized.
* Added RecursiveLockAutoLocker class to ease the `goto errN' pain a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 22:11:57 +00:00
Ingo Weinhold
5de8542789 Since the kernel links against libgcc.a and we use some C++ features that cause functions of libgcc.a to be included that use a couple of formerly undefined symbols (stderr, fprintf, abort, debugger) those had to be added to kernel_cpp.cpp. We don't build the kernel utils as static library anymore, since libgcc.a is listed at the end of the link command line and trying to change that would be a bit ugly. For C++ in the boot loader nothing changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 22:07:00 +00:00
Ingo Weinhold
2cee54a863 Use KPath now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9553 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:59:54 +00:00
Ingo Weinhold
8ece359269 Uses KPath now, which significantly reduces the stack footprint.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:59:05 +00:00
Ingo Weinhold
1766c66484 Added header directories needed now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:57:23 +00:00
Ingo Weinhold
92eb857652 Used KPath where possible.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9550 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:56:38 +00:00
Ingo Weinhold
92221d2425 KPath is used now where possible.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:56:05 +00:00