Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 8ca264f509 Fixed the makehdimage script that Andrew broke so violently :-P
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 22:42:17 +00:00
Axel Dörfler 99e1c71ee6 - fixed a locking bug in the file cache: get_file_map() could been called with either
only a read lock on the inode, or without a lock at all (in case of prefetching) - it
  is now using the cache_ref's lock to make sure it's retrieved only once and doesn't
  waste/corrupts any memory.
- since that fix made it mandatory to fix write_chunk_into_cache() to not call pages_io()
  while holding the cache_ref's lock (was a to-do item before), I changed it to make
  that possible.
- It now also supports write-through caches in theory - as there is no way yet to tell
  a cache to work this way.
- Optimized for the not so uncommon case of writing the last part of a file that is not
  a multiple of the page size - it won't call pages_io() anymore then, but zero the rest
  of the page directly.
- vm_page_write_modified() is now calling write_page() without holding the cache_ref's
  lock as well.
The updated write_chunk_to_cache() is not so well tested, though, but appears to work
so far.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 21:32:31 +00:00
Axel Dörfler 07810890b5 Entering an empty line to the debugger will no longer match the first best command
available.
Broken escape sequences are now properly ignored (read one character too much before).
Since the current line buffer is part of the history, we now delete that buffer when
crossing the current line again while traversing the history (restoring the former
buffer would be the nicest way, but that would require another empty buffer and more
copying).
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 21:24:13 +00:00
Axel Dörfler 70c3e1a42c The escape sequence for erasing lines is now also supported (it's used by KDL command history).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 20:55:02 +00:00
Axel Dörfler ed73e0eefa arch_debug_blue_screen_getchar() can now also return escape sequences for cursor
movement - IOW, the history of kernel debugger calls is now working also from
the on-screen KDL.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 20:53:44 +00:00
Axel Dörfler a10cd10b2b Fixed a hypothetical bug: switch_sem_etc() was using thread_get_current_thread()
in an error message without checking for a NULL pointer (which happens during
early boot, and even though it would be impossible to get there at that time,
it shouldn't be accidently copied to anywhere else this way).
Added a compile time option to monitor the last thread that successfully
acquired a semaphore (disabled, though, only enable it when needed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 20:13:05 +00:00
Axel Dörfler 61aceefd6e The debugger command "waiting" now also accepts a semaphore as argument (specified by ID),
and will only list those threads waiting for that one if used that way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 15:57:56 +00:00
Axel Dörfler d6c32d2bf3 The debugger's "sc"/"where" command now accepts a thread ID as parameter (and
then shows the stack crawl of that stack instead of the current one).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-19 12:53:58 +00:00
Axel Dörfler c987e126de Testing against IS_KERNEL_ADDRESS() is more correct.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-19 12:52:19 +00:00
Axel Dörfler 851028d043 Fixed a warning I accidently introduced with the last change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13978 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-18 23:33:54 +00:00
Axel Dörfler cd661dfcf8 Now dumps all semaphores matching the name you are searching for, not only the first one.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-18 15:13:03 +00:00
Axel Dörfler f79ba0f9ba Now always prints out a message if the searched sem could not be found, and not
only under certain conditions.
Now also accepts decimal numbers as IDs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-18 15:11:18 +00:00
Axel Dörfler e5c0e4a655 Now prints an error if no thread matching the requested criteria could be found.
Simplified parsing the ID (no need to differentiate between hex and decimal, if
we do both anyway).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-18 15:09:30 +00:00
Axel Dörfler e8e4accd16 Add some useful debugger commands to the VFS layer for dumping a vnode, an fs_mount, and
the mounts/vnodes list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-18 15:07:38 +00:00
Axel Dörfler 5913a657df Added two possible "ToDo" comments.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-18 12:41:18 +00:00
Axel Dörfler ec130eefb6 TBarMenuTitle::DrawContents() now checks if there is a logo before trying to
draw it.
This fixes the crashing bug when being compiled from Zeta (because of the
different message storage format) - debugged under Haiku thanks to Ingo's
great work :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-18 00:05:37 +00:00
Axel Dörfler a4f1e9491d Fixed two warnings (comparison of signed and unsigned values).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-17 18:07:50 +00:00
Axel Dörfler 944eada15a Calmed down SCSI bus manager a bit in case it got a non-DMA safe buffer
from block_io (which seem to happen frequently...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-13 12:39:10 +00:00
Axel Dörfler b96ea69c37 You really can do the same mistake twice, even in two subsequent lines of code...
get_file_map() now seems to work correctly in all regular cases.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-13 12:37:13 +00:00
Axel Dörfler 634c23467b If allocating a new node fails, the bplustree_header::maximum_size field is now
reseted to its old value.
BPlusTree::SetTo() is now less strict about maximum_size vs. inode size differences;
it will now print a warning and set the maximum_size to the inode size, even though
the tree might be corrupted (reading should always be as compatible and forgiving
as possible).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-12 22:13:28 +00:00
Axel Dörfler 90f1dccb72 Our ELF loader now gets something like error handling - it may still have some
(memory) holes, but failing to load an add-on should no longer exit your
application. Reported by Korli.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-12 20:52:46 +00:00
Axel Dörfler fbdd53ace2 Extended the node checker a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-12 19:56:08 +00:00
Axel Dörfler 65af8c8327 bfs_get_file_map() no longer returns the preallocation area as part of the
file data - it checks if the current run goes beyond the file size and cuts
it off after the block containing that last few bytes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-12 19:52:26 +00:00
Axel Dörfler 4430d71191 Better error checking (at least panic if something goes wrong, instead of ignoring).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-12 19:51:17 +00:00
Axel Dörfler 139353cf1a Fixed two bugs in the new file extent caching code:
- under certain situations, the wrong extent could be chosen (off-by-one error)
- the resulting length of the first vector was incorrectly calculated for all
  extents but the first
Improved error checking a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-12 19:50:42 +00:00
Axel Dörfler c3c73413e8 Removed execute property from source files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-11 17:37:44 +00:00
Axel Dörfler d50852ad0c Fixed creation of the "Screen Savers" directory; due to the bug in the fs_shell_command,
it ended up having a '\' in it.
Added bochs config line example for an 80 MB image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-11 12:38:39 +00:00
Axel Dörfler ee0951d2b5 Fixed missing escaping of spaces in command names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-11 12:34:24 +00:00
Axel Dörfler 13d77a4cde Now fills in the machine field with something more appropriate (currently mimics
BeOS behaviour). Maybe we want to have some different values here later on.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-09 22:58:58 +00:00
Axel Dörfler 7964c56d67 Added vfs_get_cwd() call to get the mount_id and vnode_id of the current
working directory (instead of the full path).
Cleanup of some remaining "int" status variables (where it should have
been a "status_t").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-09 16:25:01 +00:00
Axel Dörfler 9962d68b54 Now cleanly frees all resources when removed from the cache.
Also removes team listeners when the session is deleted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-09 16:20:23 +00:00
Axel Dörfler 8733b7318d The stack trace in the kernel debugger is now safe against accessing invalid
user memory (it got its own fault handler). IOW the stack frame is not changed
in that case anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-09 16:09:26 +00:00
Axel Dörfler dd3c15369e The "consoled" application was broken since r13800 - it did open the console driver
in read-only mode, but only wrote to it (which erroneously worked before that change).
Only a white screen appeared, no prompt, nothing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-09 13:21:01 +00:00
Axel Dörfler eeed33b66c Now reads in all saved previous sessions, and also prefetches main (named) sessions
like the boot process. Prefetching standard apps does not work yet.
Note, since it always just caches the whole file regardless of what part of it had
been read (missing stuff here, and in the file cache), and since our I/O scheduler
doesn't do anything yet, it might end up slower than just reading the stuff one by
one.
Also, it currently let the triggering app/session wait while it's prefetching the
data. So although it is working, it doesn't work great at all.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-05 11:55:32 +00:00
Axel Dörfler eab435cd59 vfs_get_vnode_cache() now only allocates a new cache if requested: this
prevents the system to allocate caches for files that don't use or have
a file cache (ie. only those can be mmap()ed!).
Therefore, cache_prefetch() no longer crashes when trying to prefetch
files without a file cache.
read_into_cache() no longer does anything if the requested size is 0.
Fixed a bug in cache_prefetch_vnode(): if the cache couldn't be retrieved,
it put the vnode, but didn't own it (the caller does).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-05 11:52:22 +00:00
Axel Dörfler 06ae92cd04 Maybe it's better to free the team resources after notifying the watchers;
since the hooks are called in the context of the team.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-05 10:27:08 +00:00
Axel Dörfler 59165b8548 Now writes its findings to disk, and filters out tiny apps by some made up heuristic.
Still doesn't do anything of use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-04 16:40:00 +00:00
Axel Dörfler 67f207164b Copied some code from the console driver: we now understand cursor movements,
and even color changes :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-04 14:55:11 +00:00
Axel Dörfler 6b9018bf1c Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-04 14:48:27 +00:00
Axel Dörfler c4b1e37117 Added support for the AS_GET_DESKTOP command.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-04 14:42:06 +00:00
Axel Dörfler 22365ebc40 Added a command line application that officially ends the boot process
(for the "launch_speedup" module).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 17:26:02 +00:00
Axel Dörfler 95839f5c92 The file cache now has another init method that is called after the boot
device becomes available.
Currently, it opens the "launch_speedup" module (if available), later it
should consult a settings file for what to do.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13894 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 17:25:03 +00:00
Axel Dörfler 677abc798a Started a cache module that is supposed to speed up application
launching and the boot process.
Doesn't do much yet beyond collecting data, though. Anyway, this
is a test, it might not end up in the distribution.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 17:22:03 +00:00
Axel Dörfler 0d299e8a4b The team watching mechanism now works as intended.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 16:57:40 +00:00
Axel Dörfler 5159717538 team_delete_team() should have called delete_team_struct() instead of just
freeing the team - it leaked dead children semaphores and death entries;
waiting for a specific team could not have worked before.
Fixed delete_team_struct(), it did not correctly free the death list (would
have accessed freed memory).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 12:42:01 +00:00
Axel Dörfler 99c566f6c9 Added a team watching mechanism in the kernel, not yet tested (but at least doesn't cause any harm yet :-)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-03 12:00:42 +00:00
Axel Dörfler 3798d46911 Calmed down start up a tiny bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 16:43:30 +00:00
Axel Dörfler 8fef8adb6e Replaced all dprintf() calls from the kernel debugger with kprintf() calls.
(there might be some more left, but it's not urgent or fatal)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 16:28:20 +00:00
Axel Dörfler 8b45467cd0 Added debug commands "ready", "running", and "waiting" that only list those
threads which are doing said thing.
Replaced all dprintf() calls from the kernel debugger with kprintf() calls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13883 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 16:27:00 +00:00
Axel Dörfler ed65cbe349 The kernel debugger no longer uses dprintf() but kprintf() when printing
(dprintf() locks using acquire_spinlock() which can itself drop into the
kernel debugger, causing an endless loop (until the stack was full).
Removed debug_putchar().
The gdb interface is now calling arch_debug_serial_*() directly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 16:25:27 +00:00
Axel Dörfler 0a51327f98 Fixed on-screen KDL keyboard input routine: it now works much more reliable
and ignores keyboard input. Also, it now uses the definitions from the PS/2
HID driver (from ps2.h).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 16:19:36 +00:00
Axel Dörfler 2acdca47e2 Moved all PS/2 definitions into a separate include file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 16:16:30 +00:00
Axel Dörfler b41629dc08 Enabled the REPORT_ERROR() and RETURN_ERROR() macros also in non-debug mode (for now).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 12:13:11 +00:00
Axel Dörfler 8c52ae3e96 SeekDown() now prints out an error message when failing in a certain way (instead
of just using the RETURN_ERROR() macro).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 12:12:23 +00:00
Axel Dörfler c50cfe23dd Fixed crashing bug in remove_vnode(): it freed the vnode, but it didn't
remove it from the hash, and thus, left a dead pointer around.
free_vnode() does now also remove the vnode from the hash - this is done
so that the file system is notified about removal/put of the vnode before
there is a chance that this vnode is recreated/reloaded (could make the
life of file system writers a bit easier).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-02 11:20:04 +00:00
Axel Dörfler 11a3346caa The file extent map is now cached as well. Code is not optimal yet, and almost not
tested for fragmented files - but it seems to work good enough for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-01 22:34:02 +00:00
Axel Dörfler b72cf2601f Renamed vfs_vnode_acquire_ref() to vnode_acquire_vnode().
Removed vfs_vnode_release_ref(), as vfs_put_vnode() already does the same thing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-01 14:32:23 +00:00
Axel Dörfler 186857529e cache_prefetch() now comes in two flavours: one with a direct vnode pointer,
the other one with usual device/inode ID pair.
Both versions now accept an offset/size pair to specify the region of the
file to be prefetched - this may be turned into a file_vec_io array later on.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-01 14:24:58 +00:00
Axel Dörfler b7d8ef5a0d The term vnode_ptr is not used anywhere else; renamed vfs_put_vnode_ptr() to vfs_put_vnode().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13865 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-01 14:17:41 +00:00
Axel Dörfler 433cc8c2c9 Added missing safety check when reading in a node.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-01 13:00:53 +00:00
Axel Dörfler 9882caaadd The path resolving functions can now also fill in the ID of the parent directory.
This is currently only used for the file cache module API.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-01 12:44:59 +00:00
Axel Dörfler c64fca3e22 Made copy_to_bfs_image compile and work again after Ingo's changes to
the fs_shell (some months ago, but no one noticed yet)...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-29 14:07:49 +00:00
Axel Dörfler 02cf6d0008 Since we now only have a single file to save, we no longer create a sub-directory
"HaikuTerminal" in the user settings directory, but just a file called either
"Terminal" (for the Haiku build) or "HaikuTerminal" (for the R5 build).
Last commit also made sure the settings target path existed - this is now no
longer necessary, and thus, disabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-29 13:17:40 +00:00
Axel Dörfler 662f52848a Removed all global preferences path constants.
PrefHandler now exports a static method GetDefaultPath() which gets the
path to the default settings file (using find_directory(), of course).
Disabled locale support; should be easy to reenable when needed again, though.
Made all the PrefHandler getters a lot more robust (could easily crash when asking
for an unknown item).
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-29 13:12:48 +00:00
Axel Dörfler b11eac8c18 Our Terminal is already a bit older than 2005...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-29 13:08:22 +00:00
Axel Dörfler dcd14cab61 Added Terminal application.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13827 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-25 23:52:36 +00:00
Axel Dörfler 8e326c9cc1 Some style changes I forgot to commit.
Also, BLocker now accepts NULL as a name and won't crash anymore in that case
("some BLocker" is then chosen as name).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13826 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-25 23:29:44 +00:00
Axel Dörfler 35a71b1936 The app_server now inherits from MessageLooper as well.
Removed unused stuff.
The app_server now deletes itself when done (and therefore must not be
allocated on the stack anymore).
The cursor handling should be moved over to the desktop as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13825 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-25 21:53:48 +00:00
Axel Dörfler 770c05d6cc The Desktop class now gets its own message processing loop: moved application
creation/deletion (and management) over to that class.
ServerApp now gets a desktop pointer, and no longer uses gDesktop.
Converted private MessageLooper::_MessagePort() to a public method MessagePort()
so that the looper can be addressed from elsewhere without using PostMessage().
Added a real basic message loop to MessageLooper::_MessageLoop().
BApplication now only asks the app_server to get its desktop object which should
now be used for everything that's not in the realm of the application.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13824 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-25 21:08:34 +00:00
Axel Dörfler 5f2edc0ffc The Desktop class now inherits from MessageLooper as well, the AppServer
class runs it, too.
No real message processing is done yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13816 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-24 17:14:17 +00:00
Axel Dörfler c6a2527297 Split ServerWindow::Quit() into two parts, and moved the generic one to
the MessageLooper class - the other part is called from there as virtual
_PrepareQuit().
Moved the class documentation to the source file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-24 17:13:02 +00:00
Axel Dörfler 89ab121e66 Factored a MessageLooper class out of ServerWindow and ServerApp. Could still
be improved a bit (Quit() and _MessageLooper() are empty right now).
Removed ServerApp::PingTarget().
Hopefully cleared some confusion about ServerApp::fClientLooperPort and fClientToken
(previously fHandlerToken), even if it's currently unused.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13807 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-23 18:30:48 +00:00
Axel Dörfler 5fcc5dfec9 Never used strlcpy() when compiled for R5, dunno why Jerome added this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-22 16:01:52 +00:00
Axel Dörfler 1270e8a017 Updated version info in the resource file as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13802 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-22 07:51:28 +00:00
Axel Dörfler 08f833c027 Fixed two bugs:
- when undoing the first change, any later change would make that first change reappear
- in hex mode editing, changes were not merged because they changed the same byte
Updated version info.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-22 07:50:29 +00:00
Axel Dörfler da1f176a9a You can no longer write to O_RDONLY streams, and you can no longer read from O_WRONLY streams (thanks to Ingo for this hint).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-22 06:54:19 +00:00
Axel Dörfler f4a8c33b5c Fixed a bug in put_death_stack_and_reschedule(): release_sem_etc() was called
with the thread lock held, which might have caused a panic later on, if there
was another thread waiting for the death stack semaphore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13769 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-19 18:10:12 +00:00
Axel Dörfler 230a037ed4 Fixed a bad bug in vm_copy_on_write_area(): the area's cache offset was not taken
into account when remapping the pages read-only; it could have overwritten valid
page mappings this way. This was also the reason for the Terminal to crash - it
does now work as it should, although some keys don't work (like tab completion)).
vm_copy_area() no longer always sets B_KERNEL_WRITE_AREA if no kernel protection
was specified, but mirrors the userland protection (for example, the x86 MMU is
not able to have a page writable in kernel but not in userland). This caused
some areas to be read/write when read-only would have been enough.
vm_copy_area() now panics when vm_copy_on_write_area() fails - that's of course
no real solution, but it's bettern than letting it silently fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-19 18:00:31 +00:00
Axel Dörfler c05350e781 Fixed some bugs, partially by Oscar Lesta.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-19 17:19:02 +00:00
Axel Dörfler 530cb79cf1 Exchanged the order of the "Cancel" and "Reboot"/"Shutdown" buttons (and made the
latter the default), with Ingo's generous admission :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 16:43:40 +00:00
Axel Dörfler 83d1f41819 Fixed compilation with debug output turned on.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 10:34:25 +00:00
Axel Dörfler 4821aac375 The window is not supposed to resize the top level view. This removes the
"look-through" area in Terminal, and probably ShowImage as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 10:30:29 +00:00
Axel Dörfler 39d30137dc A call to SetSizeLimits() can change the window frame, so it's now updated, too (a separate FrameResized() message is sent anyway).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 09:53:37 +00:00
Axel Dörfler 2ca990b801 Moved the RootLayer::LayerRemoved() call from the ServerWindow destructor to RootLayer::RemoveWinBorder().
ServerWindow printed the title in its destructor after freeing it (with debug output turned on).
Calmed it down a bit, too (disabled "listening on port...").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 09:24:08 +00:00
Axel Dörfler 0e430ce96e Fixed the crashing bug with BAlerts - have I already said that this code is a mess?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 09:22:34 +00:00
Axel Dörfler e98e8fe256 Forgot to commit Jamfile before: removed AboutWindow.cpp.
Cleaned up ShellPrefView a little.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 08:11:43 +00:00
Axel Dörfler 716af53244 Removed MENU_SHOW_ABOUT constant - it's no longer used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:55:51 +00:00
Axel Dörfler 76649c0319 Removed the ugly about window, and replaced it with a common BAlert.
Moved the alert to TermApp, too - TermWindow now only forwards the B_ABOUT_REQUESTED message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:54:48 +00:00
Axel Dörfler 42a1650087 Accidently disabled set_mouse_position() with my last commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:38:23 +00:00
Axel Dörfler ce37cb1bf8 Deleted the now obsolete MYOB folder.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:36:51 +00:00
Axel Dörfler d3dc729f9f Moved the files out of the MYOB folder into the main folder.
There are some double entries (like TermApp.cpp and TerminalApp.cpp, so
it still needs a further cleanup).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13734 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:35:17 +00:00
Axel Dörfler 477bd4f0e0 Removed paragraph about muterm-2.3.zip - it's still in the history, if
anyone wants to have another look at it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:28:17 +00:00
Axel Dörfler e2ee42c5bd Moved Andrew's Terminal files into a subfolder - maybe this should be moved
to his developer branch. Maybe he wants to integrate the changes, too, whatever
he has done.
Removed unused files (muterm-2.3.zip, Jamfile - both still in history).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13732 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:27:01 +00:00
Axel Dörfler 1771f7ae79 Signatures are case insensitive - I hope I fixed all occurences now... (but probably not)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13731 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:08:17 +00:00
Axel Dörfler bb00e2687c MIME types and signatures are case insensitive.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13730 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 07:06:21 +00:00
Axel Dörfler a22dce79df Fixed warning (wrong format).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 06:53:36 +00:00
Axel Dörfler 845ba70ef5 Fixed warnings, minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-18 06:51:16 +00:00
Axel Dörfler 0332bd6f41 Removed bsd_mem.h and the functions it used from there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-17 20:58:44 +00:00
Axel Dörfler ef8810f2ad Extracted the settings stuff from the Desktop class. If you now need to access
the desktop's settings, you have to do something like this:
	DesktopSettings settings(desktop);
	settings.SetMouseMode(mode);
The advantage of this is that this object is fully locked, and cannot lead to
corrupted settings anymore. Also, the settings will stay the same until you
delete the object again.
Updated all accesses to use this new API.
Removed no longer used FFM messages.
Implemented AS_{GET|SET}_MENU_INFO for future use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-17 16:25:48 +00:00
Axel Dörfler 223b96641b Implemented the focus follows mouse stuff over the standard mouse mode functions; the other functions look deprecated to me.
Added a comment to load_menu_settings() - I think that stuff should be moved into the server.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-17 16:13:58 +00:00