Commit Graph

11975 Commits

Author SHA1 Message Date
Axel Dörfler 2a912be1d8 Adapted Michael Noisternig's recent changes to the NewOS cbuf implementation
to ours - pretty hefty bugs, I wonder how it could work before at all.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 00:14:39 +00:00
Axel Dörfler 30cf0784e9 The device store fault handler will now check if a mapping exists
already before mapping it. That's necessary because the vm_soft_fault()
function cannot guaranty to call the fault handler only once.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 20:23:10 +00:00
Adi Oanca 0cb3fdda93 Nothing special. Just some cleanup to the update code. There is still a problem with layers not being properly updated sometimes when you move windows arround. The same problem occurs a lot more often when resizing windows. I'm traking it... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 20:03:07 +00:00
Axel Dörfler d73bf8eb9f The lock_memory() hack now plays a bit nicer and will not map memory
that has already been mapped before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 19:07:45 +00:00
Jérôme Duval 108953a630 fixed Jamfiles
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 18:46:44 +00:00
Axel Dörfler 6562f93e21 The fake_app_server is now installed and launched by default, so that
RUN_WITHOUT_APP_SERVER is no longer needed.
This reduces the hassle when switching between the real app_server and
consoled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 18:36:48 +00:00
Nathan Whitehorn 813830c9f8 Implemented the global firmware mutex, and fixed our fake spinlock implementation to actually work. The last bit of functionality I'm trying to trying to get from the bus manager, before I move onto drivers, is ACPI poweroff. Which, at least on my SMP machine, is hanging my system in ways I didn't even think possible. I suspect this may have to do with non-S5 wakeup GPEs still being enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 16:36:23 +00:00
Axel Dörfler a8715f0fa5 Added debug output to pipefs_create_dir().
It now returns B_NOT_SUPPORTED instead of ENOSYS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 14:16:16 +00:00
Axel Dörfler bc440dcb46 No longer used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 14:09:08 +00:00
Axel Dörfler fbf12e8758 The VM did not support the flags passed to set_area_protection(), but it didn't
know it yet - this fixes an endless loop in the VM fault handler.
set_area_protection() no longer disallows settings B_EXECUTE_AREA and B_WRITE_AREA
at the same time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 14:08:20 +00:00
Axel Dörfler d038008dae Replaced ERR_VM_INVALID_ASPACE with B_BAD_TEAM_ID for now (although B_BAD_VALUE
might be a better choice, this error suggests a kernel error - it shouldn't be
possible to achieve this with the public API).
Added fix_protection() function to make the area protection valid (ie. add
missing kernel protections), and also to make it consistent throughout the
API.
set_area_protection() no longer disallows setting B_EXECUTE_AREA and B_WRITE_AREA
at the same time: a) you can create areas with these flags, and b) it was thought
as a security feature, but it would be very weak (you could simply clone the
area read/write aynway).
The internal APIs now ask the arch VM if it can support the protection the
caller asked for.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 14:03:55 +00:00
Axel Dörfler ec5a9998df Added a B_NOT_SUPPORTED synonym for EOPNOTSUPP.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 13:56:16 +00:00
Axel Dörfler a11ef9a454 Replaced the last ERR_VFS_* error codes with appropriate public ones.
Maybe we want to define B_* codes for this, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 13:53:37 +00:00
Axel Dörfler f05e261fd7 The VM can now ask the platform dependent part if it supports a specified protection.
create_area() and friends should fail if it's not supported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 13:50:37 +00:00
Axel Dörfler 0bf4c7c564 The shortcut if you call setpgid(0, 0) is now also taken if you call it
with the IDs for the calling team, ie. setpgid(getpid(), getpid())
because it's essentially the same thing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 12:39:27 +00:00
Axel Dörfler 616fb065b2 fork() now also sets the __main_thread_id variable to match the new thread ID.
This fixes the "setpgrp() failed in child" message in gdb (that happened because
it lied and called setpgid() instead).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 12:36:00 +00:00
Jérôme Duval 25ac1b6259 Updated Wacom products
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 12:22:22 +00:00
Axel Dörfler 7f915be3c3 Fixed _kern_set_cwd() and _user_set_cwd() - they did not properly
handle cases with fd and path at the same time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 01:09:07 +00:00
Ingo Weinhold 1bd7e1b36c Fixed stupid mistake. RUN_WITHOUT_APP_SERVER is to be set when it is NOT yet set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 23:19:42 +00:00
Axel Dörfler ae614d48fc Some minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 23:00:48 +00:00
Ingo Weinhold b8a9276a89 Simplified the include paths by fine-tuning what is included.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 21:47:36 +00:00
Ingo Weinhold f3eaafc2f5 Include the thread ID in the debug output of thread_atkernel_exit().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12240 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 21:44:57 +00:00
Ingo Weinhold 8e26b085e5 Fixed double fault handler. Personally I disclaim all responsiblity
for these changes. I was mostly just staring in amazement at the screen
while Axel and Thomas were discussing IA32 internals. A particularly
fascinating moment was when Thomas produced the cause of a bug we had
been trying to track down for hours off the top of his head (of course
iret behaves specially when the NT bit is set :-). His slowness must be
excused though, since he hadn't slept for more then 30 hours. ;-)

The code doesn't wholeheartedly deal with multi-processor machines yet.
Axel will certainly do some cleanup...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 21:43:47 +00:00
Jérôme Duval 3a2b5bfc6d * don't rely on fchdir-stub.c anymore to provide fchdir as we support it
* #undef DEBUG in plib/physmem.c to avoid debug code
* comment out #define mktime rpl_mktime, don't know why it wasn't detected
* now links mv, chown, chgrp, rm, chmod, du, mkdir, pwd against libroot.so for fchdir



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 19:33:37 +00:00
Axel Dörfler 8c6be7fa23 Changed some odd strings, added missing ones.
In case of an unknown error, it will now also take the error base definitions
into account (ie. it could return "Unknown Application Kit Error (x)").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 19:25:21 +00:00
Stephan Aßmus 30f5afc8a9 I'm keeping the version which can be used as a BView replacement here. The API for the one used in app_server will change for it to be come more efficient.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 17:47:41 +00:00
Axel Dörfler d3ff9cc39a The boot menu no longer changes the meaning of the default video mode once
you choose it in the menu.
The boot loader now always switches into a graphics mode unless it's in
debug mode (currently triggered by pressing the escape key on startup).
That means, "Standard VGA" now actually means mode 0x12 (640x480x4)
instead of text mode.
Since the current limited boot logo code would do stupid things with VGA
planes, there will now only be some colored blocks visible during boot.
Implemented support for monochrome modes in the frame buffer console.
Additionally, the frame buffer console now has support for the VGA mode; it
will treat all 4 bit modes as monochrome for now (the VGA 0x12 mode is a
planar mode so this works nicely).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 16:56:18 +00:00
Axel Dörfler 56aa0c51dc _user_get_safemode_options() would touch the provided buffer even if there was
an error (and thus, would trash it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 16:15:02 +00:00
Axel Dörfler 4d5f980d99 The boot loader MMU can now also unmap/free memory - this is needed if the frame
buffer resolution changes during execution (ie. if the boot menu is opened late
and you change the video mode).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 16:10:09 +00:00
Axel Dörfler 8b618fc01c The mouse add-on got the meaning of COMPILE_FOR_R5 a bit wrong.
Now, it will always link against our libbe.so, so it might not work under
R5 anymore at all (which is okay since it can now be run natively).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:36:17 +00:00
Axel Dörfler e5b0e0b5e3 Changed the set_segment_descriptor()'s usage of the limit/granularity
flag. Now, it will choose how to set the granularity by evaluating the
limit.
This call was actually already used this way in the kernel, so that
the TLS and TSS segments were much too large (harmless but incorrect).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:34:18 +00:00
Axel Dörfler 9d06770cdc The iframe stack is now in a special structure iframe_stack.
Introduced a gBootFrameStack that is used until the first thread structure
is available - this allows stack crawls and useful register dumps during
early startup. Could also be solved differently by making sure there is
always a thread structure installed in %dr3 (ie. the boot thread would
get a static thread structure instead of a static iframe stack only).
This might be a better solution as i386_handle_trap() would no longer
need to check for an existing thread structure.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:13:25 +00:00
Axel Dörfler edb5566393 Fixed struct tss; there is no ss3/sp3.
Moved ptentry/pdentry to arch_vm_translation_map.c and renamed them to
page_table_entry and page_directory_entry.
Fixed a race condition that happened when memory was remapped (which
can currently happen because lock_memory() does not work correctly, and
there might be other conditions as well, like certain vm_store fault
handlers). Now, page table and directory entries are updated atomically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:07:24 +00:00
Axel Dörfler 311049d751 Added a new PartitionMap::CountNonEmptyPartitions() - now, a partition map
is only accepted when there is at least one valid partition in it.
Before, the module would accept even the BFS boot loader which is now less
likely (IOW you can now boot with Bochs again).
Also, if there was one invalid partition, the partitions that come after
it are no longer ignored.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:01:34 +00:00
Axel Dörfler 597c7235b9 Made the current debug stuff in our two keyboard drivers (one is used
by consoled by default, the other is used by the input_server) more consistent:
Now, F12 will get you into the kernel debugger. The escape key was somehow not
too happy with vim before :))


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 13:58:19 +00:00
Axel Dörfler b31c89d6e3 elf_lookup_symbol_address() can now safely be called before elf_init() has been called.
This is helpful in getting a stack crawl during early startup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 13:40:10 +00:00
Axel Dörfler 0c2ca2f1bf shutdown() is the main kernel shutdown function that also syncs disks, etc.
It cannot be called with interrupts off, and is likely to fail in the debugger;
arch_cpu_shutdown() reboots the machine directly which is what we want here.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 13:38:31 +00:00
Andrew Bachmann 6e061f37b4 document and support both -h and --help for help
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-03 00:53:23 +00:00
Andrew Bachmann 1c7379cd43 remove annoying warnings provoked by echo headers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-02 23:56:22 +00:00
Andrew Bachmann 1f13471244 support -h in addition to --help for help
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-02 22:18:07 +00:00
Axel Dörfler d305ab35ac Added the get_boot_item() call similar to what BeOS exports (have a look at
the APM driver to see it at work).
The frame buffer console now creates such a boot item to give a potential
VESA driver access to the boot frame buffer configuration.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 15:09:09 +00:00
Axel Dörfler 7cac40a1f2 A tiny cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 14:24:19 +00:00
Axel Dörfler e02e12de8a Updated radeon driver to the latest BeBits release 5.1.0.1.
Probably only works under Haiku due to the new area flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 14:16:38 +00:00
Axel Dörfler eb2068515f This fixes the build again; due to the glibc includes, math.h would not
be used from posix/math.h but some glibc headers. This is not nice, but
it works.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 13:12:19 +00:00
Stephan Aßmus 8940f93c1d AccelerantHWInterface now uses a MallocBuffer as RenderingBuffer for the back buffer instead of a BitmapBuffer, which under Haiku does not work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 10:36:23 +00:00
Michael Lotz 7d5778defa Added support for GetEscapements() too. Still unfinished. Maybe this should be moved elsewhere?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 09:18:25 +00:00
Michael Lotz c2da902f2e Implemented BPortLink::AttachShape and BPortLink::ReadShape and used them for passing the shapes in AS_GET_GLYPH_SHAPES.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 07:29:04 +00:00
Michael Lotz ebf8af66c9 Added support for BFont::GetGlyphShapes. Not finished yet and untested, delivery method as to be changed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 07:00:32 +00:00
Michael Lotz 3661cae99c Aren't these supposed to be chars?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 04:03:11 +00:00
Michael Lotz 69353f3c4c Added ColorControl.cpp to the build. Also enabled PrintJob.cpp again, it doesn't break anything, why was it disabled? Sample applications can now be compiled unmodified using libopenbeos.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 03:33:43 +00:00