Commit Graph

4268 Commits

Author SHA1 Message Date
Oliver Tappe
bd13a264f7 Fix #6740:
* remove declaration of ctype-..._l() functions, as we do not provide
  them and they are not really needed by our hacked glibc
* replace remaining invocations of isspace_l() and isupper_l() in glibc
  with isspace() and isupper() respectively
This allows libroot to be built in DEBUG mode, again.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-09 21:36:35 +00:00
François Revol
f3319425ed Return 0 on success for the mount() and unmount() compatibility calls. Just cleaner.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-08 21:46:22 +00:00
François Revol
193e56fbef Add mount() and unmount() BeOS compatibility calls. This should help to run some old apps like Helios...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-06 22:28:07 +00:00
François Revol
ceee0a32a4 Fix warning.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-06 20:39:48 +00:00
Ingo Weinhold
e5d4255933 Init AtExitInfoBlock::fFirstUnused in the constructor. Probably fixes #6793.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-06 13:08:04 +00:00
Ingo Weinhold
3d64976518 The TRACE() macro is defined in runtime_loader_private.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-05 20:37:57 +00:00
Stephan Aßmus
08e6655afe Patch by kaliber (ticket #6333): Removed many instances of
passing an additional -Wall to the compiler, which may actually
have unwanted effects. -Wall is standard by the build system.
Also, -Wno-multichar was passed unnecessarily for Haiku targets.
I didn't remove it for the bfs_shell, hope this is what Ingo meant
in the ticket.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-05 20:31:11 +00:00
Ingo Weinhold
aa3507feea terminate_program(): Call the termination function of all images, not only
of the program image and its transitive dependencies.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 21:15:39 +00:00
Ingo Weinhold
e60625b708 get_sorted_image_list(): Allow passing a NULL image argument, meaning that
all loaded images will be sorted and returned.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 21:14:09 +00:00
François Revol
2ef563d813 80 cols & cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 19:37:30 +00:00
François Revol
f649b1fa77 Make multiboot.h usable from assembler, and remove duplicate defines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 19:06:36 +00:00
Ingo Weinhold
fb8e088927 Added dummy __cxa_atexit() and __cxa_finalize() to the kernel. We might
actually implement those, if we decide to support global
constructors/destructors in kernel add-ons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 16:26:43 +00:00
Ingo Weinhold
d64f6189c0 unload_library(): Added comment about the exit hook handling.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 16:22:11 +00:00
Ingo Weinhold
85f9496a24 Implemented __cxa_atexit() and __cxa_finalize() which are required by the
Itanium ABI. Whether __cxa_atexit() really works for associating hooks with
DSOs has not been tested yet, as our compiler doesn't use the function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 16:21:20 +00:00
Ingo Weinhold
b502275bc8 exit.c -> exit.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 11:07:01 +00:00
François Revol
4219bd961b Rework the ConsoleDevice to be a full featured window based console.
Only looses high intensity color from the plain console, but doesn't eat keystrokes, and a 2nd window opens for dprintf stuff.
Only Amiga makes it possible ;-)
http://revolf.free.fr/beos/shots/shot_haiku_loader_amiga_m68k_004.png


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-01 22:35:43 +00:00
François Revol
a55b596e1c Allocate the IOReq if not done yet at Open() time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-01 17:57:36 +00:00
François Revol
499f2a5c48 Some more work to get video support working, add generic code to support the boot splash in.
However all modes available are planar, and there doesn't seem to be a way to tell it in the kernel args framebuffer struct...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-01 17:24:20 +00:00
François Revol
9bc9cf069d Cleanup. Add a LLKeyboardDevice using lowlevel.library but it doesn't seem to be available in the kickstart I have anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-01 17:22:25 +00:00
Matt Madia
331c79ad0f Fixes error "SubInclude HAIKU_TOP without prior SubDir HAIKU_TOP", when
jamming from src/system/glue/arch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-31 18:08:54 +00:00
François Revol
3091264bb5 s/Copyirght/Copyright/ unless it's a neologism from Ithamar :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-31 17:27:50 +00:00
François Revol
d9025c9aae Last remnants of NewOS here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-31 00:56:14 +00:00
François Revol
3be6531e51 Remove antique makefile left from NewOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-31 00:46:38 +00:00
Ithamar R. Adema
e7682a8e3e ARM:
* Disable TRACE output of ELF relocation
* Implement R_ARM_RELATIVE (for kernel modules)

No more errors on 'loading' of kernel modules now!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 23:10:36 +00:00
Ithamar R. Adema
c9a4637342 * ARM: Initial stab at fixing ELF relocations (much more to do though for full ELF relocation support).
We now boot right up to "INIT: main: done... begin idle loop on cpu 0" ! :)
(Please note that there's still *lots* stubbed out)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 22:53:32 +00:00
Ithamar R. Adema
c917cd6261 * ARM: Major VM work
- This is mostly a copy of the x86 32bit paging method and infrastructure, this was copied for two reasons:
		1) It is the most complete VM arch
		2) The first ARM PAE patches have landed on alkml, so we will have to deal with it in the future as well,
		   and this infrastructure has proven to be ready ;)
	- No protection features, or dirty/accessed tracking yet
	- Lots of #if 0

	but....

	It boots all the way up to init_modules() now, and then dies because of a lack of (ARM) ELF relocation implementation!

	Since at this point the VM can be fully initialised, I'm going to focus on CPU exceptions next, so we can get KDL to trigger
	when it happens, and I can actually debug from there ;)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 14:10:30 +00:00
Ithamar R. Adema
72d414a517 * ARM: Start physical allocated range at top of memory; otherwise our page directory/tables won't be included
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 13:55:29 +00:00
Ingo Weinhold
13b81a3b8e * Added new thread flag THREAD_FLAGS_SINGLE_STEP, which is set to indicate that
userland single-stepping is enabled for the thread.
* x86_exit_user_debug_at_kernel_entry(): Always store DR6 and DR7 in the CPU
  structure, not only when breakpoints are installed.
* x86_handle_debug_exception(): When encountering a syscall single-step, also
  set the THREAD_FLAGS_DEBUG_THREAD thread flag. Otherwise the
  B_THREAD_DEBUG_STOP would be ignored.
* x86 interrupt handling, DISABLE_BREAKPOINTS():
  - Renamed to STOP_USER_DEBUGGING().
  - Now it also call x86_exit_user_debug_at_kernel_entry() when
    THREAD_FLAGS_SINGLE_STEP is set, so that the debug registers are saved.

Fixes #6751.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 11:31:01 +00:00
Ingo Weinhold
ee7817042b update_thread_user_debug_flag(): Don't set the THREAD_FLAGS_DEBUG_THREAD thread
flag, when B_THREAD_DEBUG_SINGLE_STEP is set. Not sure, if there ever was a
reason to do that, but there isn't now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 10:33:04 +00:00
François Revol
c489b073c8 Partial build fix. Still a lot to do to catch up with Ingo...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 01:33:50 +00:00
Ithamar R. Adema
7bc3564aa8 * ARM: Some more cleanup...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-28 11:19:20 +00:00
Ithamar R. Adema
ac4c302248 * Adjust code to use the new page directory/table helper macros.
* Some more code cleanup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-25 11:19:17 +00:00
François Revol
ee0c130257 Display flags and interlace in the mode menu items.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 22:46:06 +00:00
François Revol
b14f16077c Fix setting console position.
Generate a list of video modes, though there seem to be some dups and missing ones... The Nominal resolution doesn't mean it can't be better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 22:28:13 +00:00
François Revol
2e74287ab2 Force a 040 detection for now, it seems E-UAE is making kickstart detect it randomly :(
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 22:26:27 +00:00
Clemens Zeidler
4a5a077ff7 Add a private B_ATTR_CHANGE_NOTIFICATION flag to the open query syscall to tell the query to send notifications when an entry attribute changed and the entry stays in the query. Previously you only get created and removed messages, now you can also get updated messages. Only implement it for bfs.
Fix copy right.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 20:47:46 +00:00
François Revol
062c606d62 An implementation of a ConsoleDevice using console.device but it seems it requires having a window open.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 16:28:23 +00:00
François Revol
77fd9ce1f9 Of course we need the Exec call definition for ColdReboot().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 16:26:17 +00:00
François Revol
e4e2237013 reboot sanely from platform_exit().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 16:21:59 +00:00
Clemens Zeidler
ccdff0eb1f Fix bug when comparing flags. Simplify hash map key. Thanks Ingo!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 08:54:21 +00:00
François Revol
fc13691eeb Add a Clear() call to ExecDevice.
Seems there is a lowlevel.library which might be easier to use for keyboard, add some defs for it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 02:55:46 +00:00
François Revol
4ae7f92a58 Fix console_clear_screen(), ClearScreen() only clears from the current y position so we must Move() before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 02:12:18 +00:00
François Revol
6fff309da9 Almost working keyboard input. One can now select menu items, though it seems to miss 2/3 of the key presses.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 02:06:30 +00:00
François Revol
f2b7a266d7 Add an ExecDevice class to handle devices using Exec's IORequest calls. Subclass it as KeyboardDevice to use keyboard.device.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 01:16:36 +00:00
Clemens Zeidler
d63309cf5e Store the volume watcher in a separate hash table to not collide with
normal nodes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 00:49:48 +00:00
Ithamar R. Adema
3164579353 * ARM: Map full page directory, instead of just the first page
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 20:28:49 +00:00
François Revol
22d81b6c8e Implement proper console color handling.
Don't draw over the screen title.
Oddly the menu doesn't seem to clear the screen.
Looks much better now:
http://revolf.free.fr/beos/shots/shot_haiku_loader_amiga_m68k_003.png


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 19:13:55 +00:00
François Revol
bf6cf21094 Fix AmigaOS calls : a6 is required to point to the library base, but our gcc uses it as frame pointer, so we must save it before calling.
Fix the console and remove test panics. We now display the menu, although not in the best colors :
http://revolf.free.fr/beos/shots/shot_haiku_loader_amiga_m68k_002.png
(Yes, the mouse moves too :p)
Amiga !!!!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 15:53:51 +00:00
Ithamar R. Adema
e8b7cfe80e * ARM: print memory map before starting kernel
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 08:51:09 +00:00
François Revol
04fc737059 Start of implementation for the console. dprintf() now uses one of the console handles for simplicity.
It crashes for now though, seems we have a stack alignment issue or maybe mangled registers. Or maybe it's due to non-static initializers not being done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-22 21:09:10 +00:00