Commit Graph
100 Commits
Author SHA1 Message Date
Ingo Weinhold 100541ec40 waitpid(): Fixed regression introduced with my signals changes: When WNOHANG was
specified the syscall error code B_WOULD_BLOCK would no longer be mapped to 0.
Fixes #7693.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-15 02:42:53 +00:00
Ingo Weinhold 5b0ecc5fd1 Make sure headers/build is in the include paths, so that the Haiku counterparts
most headers refer to can be found. Fixes the build under Haiku (ticket #7688).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-15 01:20:20 +00:00
Ingo Weinhold 40f4cf2aca Attempt to fix the FreeBSD build. We don't really what KernelExport.h defines,
so include OS.h instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 13:44:07 +00:00
Ingo Weinhold 38c1f44d70 load_image_internal(): Forgot to reserve room on the stack for the program
arguments and environment. Fixes failures to start programs in case the space
available through rounding to full page sizes wasn't sufficient.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 13:39:54 +00:00
Ingo Weinhold 9437559db1 * Added function team_init_exit_info_on_error() which initializes the team's
exit info with some generic status.
* team_create_thread_start(), common_thread_entry(): Initializes the team's
  exit info (if that's the main thread) before calling thread_exit(). Fixes
  #7686.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 13:04:31 +00:00
Ingo Weinhold dc2b8faba2 exit_debugger(): Only try to release the semaphore when no one holds the
scheduler lock. Otherwise we may deadlock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 12:48:06 +00:00
Ingo Weinhold ec5cc81fa0 exit_debugger():
* Only try to cancel the a transfer, if sUseUSBKeyboard is set.
* Set the "_usbPipe" parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 12:46:40 +00:00
Ingo Weinhold dc3ba981d4 Added try_acquire_spinlock().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 12:41:11 +00:00
Ingo Weinhold 4cc4f7bb18 * Added KMessage to libroot_build.
* libbe_build: Where possible we directly use the actual Haiku headers and
  sources, now. In the headers/build headers we just include the respective
  Haiku headers as needed. That still allows overrides where necessary. The
  intention is to make it easier to keep the build stuff in sync.
* Fixed a few printf() format and signed/unsigned comparison warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 11:42:49 +00:00
Ingo Weinhold 45ec6bf344 BResources::SetToImage(): Compile conditionally based on
HAIKU_TARGET_PLATFORM_HAIKU, so the file can also be compiled for the host
platform.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 11:29:08 +00:00
Ingo Weinhold e76046d3f9 Use casts that are more portable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 11:27:24 +00:00
Ingo Weinhold 32a44923a6 * Use B_PRI* macros.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42176 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 11:26:43 +00:00
Ingo Weinhold 4bb026ea4b Missing header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 11:26:05 +00:00
Ingo Weinhold 54cf3a72ba Changed sReplyPortInUse type from long to int32, so it be used with
atomic_add() also on 64 bit architectures.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 11:25:37 +00:00
Ingo Weinhold aa08883069 Use a more portable cast.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 11:23:48 +00:00
Ingo Weinhold eff23a8157 Added missing header <Size.h>.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 01:25:51 +00:00
Ingo Weinhold a928c3f001 operation <<(): Use the standard types [unsigned] long [long] instead of
[u]int32 and [u]int64 to avoid clashes with the int/unsigned int versions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 01:07:16 +00:00
Ingo Weinhold 07cadb8481 Make use of the UsePrivateBuildHeaders rule.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 00:51:52 +00:00
Ingo Weinhold c86c8e2163 Added PrivateBuildHeaders and UsePrivateBuildHeaders rules.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 00:46:33 +00:00
Ingo Weinhold af9a2c4e23 Small style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-14 00:41:12 +00:00
Ingo Weinhold 0a187107e7 arch_debug_serial_[try_]getchar(): Look at the line status we read a bit closer
before assuming we have data. If the I/O port isn't valid (e.g. because there
is no serial port) 0xff seems to be a typical value to read. In that case fail.
Fixes KDL input on machines without serial port -- kgetc() would always think
it read something from the serial port, never trying any other input.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 18:25:08 +00:00
Ingo Weinhold e823d4a6be Small refactoring: Moved serial port initialization to helper function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 17:35:37 +00:00
Ingo Weinhold 90ade5e298 * Added file_system_module_info::uninitialize() analogously to
partition_module_info::uninitialize().
* Implemented the hook for BFS.
* Implemented KFileSystem::Uninitialize().

Fixes failure to initialize a BFS initialized device with an intel partition
map.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 01:53:11 +00:00
Ingo Weinhold 0b7fe5cbe2 partition_module_info::uninitialize(): Added block size parameter for
convenience.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 01:38:03 +00:00
Ingo Weinhold 285f4cf441 * Added optional partition_module_info::uninitialize() hook. It is supposed to
destroy the partitioning system's on-disk structure.
* Adjusted the existing partitioning system implementations accordingly.
  Actually implemented the hook for the intel partitioning system.
* Added Uninitialize() method to KDiskSystem and KPartitioningSystem. The latter
  implements the method calling the new module hook.
* _user_uninitialize_partition(): Also let the disk system uninitialize the
  on-disk structure.

This fixes the failure to initialize a disk device with BFS, when it contains a
valid partition map with at least one partition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 01:27:13 +00:00
Ingo Weinhold f84387d6c4 _user_initialize_partition(): After performing the operation don't set the new
disk system, if the partition already has a disk system set. This can happen
when the disk system's initialization function is lazy and just lets the DDM
rescan the partition. In bad cases the previous disk system has a higher
priority than the new one and, if its on-disk structures have not been
destroyed, it will win the rescan. Not setting the disk system in such cases at
least leaves the partition object in a consistent state.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 00:35:49 +00:00
Ingo Weinhold ec623acad8 Removed weird debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 00:21:30 +00:00
Ingo Weinhold e53a1e0f94 Removed unnecessary (and broken) hack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 00:02:18 +00:00
Ingo Weinhold 6436e4676f MainWindow::_UpdateMenus():
* Don't fall back to the disk device, if no partition was selected. No idea why
  that was done. It led to operations (like initialize) being enabled that
  would fail, if invoked.
* Don't check CanInitialize() on the selected partition with its current disk
  system to determine whether to enable the initialization menu. No idea why
  that was done either. It led to the menu being disabled, when there was no
  reason for it.
* Also disable the initialization menu when no partition is selected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-13 00:00:20 +00:00
Ingo Weinhold 5e78920c12 * Added platform_debug_get_log_buffer() which returns the debug log buffer and
its size.
* Added "Display current boot loader log" item to the "Debug Options" boot
  loader menu. It displays what the boot loader has logged so far. Might be
  interesting for early boot issues when serial debugging is not possible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 23:31:57 +00:00
Ingo Weinhold 8bcc50c336 * Added arch_debug_blue_screen_try_getchar() and arch_debug_serial_try_getchar()
which don't wait for a character, but return -1 when no character is
  available ATM. Implemented correctly for x86 only.
* Changed the semantics of the debugger_module_info::debugger_getchar() hook.
  It is supposed to return immediately now.
* Adjusted usb_keyboard accordingly. Hacked UHCI's debug_process_transfer() to
  achieve that. It does now start, check, or cancel a transfer. Split
  UHCI::ProcessDebugTransfer() into StartDebugTransfer(), and
  CheckDebugTransfer() accordingly, and also added a CancelDebugTransfer().
  The latter seems to have issues. Michael, please have a look. I have no clue
  what I'm doing. :-)
* Adjusted kgetc() to poll all possible inputs using the new
  functions/semantics. This allows to use any input (USB, PS/2, serial) in KDL.
* Removed the no longer needed "serial_input" command.
* read_line(): Also support 0x7f as backspace code. That's what xterm sends.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 17:15:42 +00:00
Ingo Weinhold b23ab34f66 I accidentally committed r42122 and r42123 to the signals branch. Merged into
trunk. The interesting part of r42122 was already fixed in the trunk, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 14:53:02 +00:00
Ingo Weinhold 24df65921b Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
  handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
  support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
  of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
  [set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-12 00:00:23 +00:00
Ingo Weinhold 2e8aa19c63 * The boot loader does now set up an IDT that allows it to catch processor
exceptions (page faults and the like). The handler dumps possibly interesting
  information (registers, a (numerical) stack trace) to the serial output, and,
  if possible, also to the screen. That should help debugging boot loader
  crashes.
* For the IDT the boot loader sets up for the kernel the descriptors are set up
  the same way, so until the kernel initializes the IDT itself (arch_init()) the
  facility is still in place and can thus catch very early kernel boot crashes.
  Unfortunately the on-screen output doesn't seem to work anymore at that point,
  so the output only goes to the serial port...
* ... and to the debug syslog -- dprintf() does now append it there after
  debug_cleanup() has been called. Seems to work fine in qemu, but when I tested
  it on real hardware the debug syslog was gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-11 00:08:42 +00:00
Ingo Weinhold 202706381e * Added TODOs where IsDataPending() is called incorrectly. Since it has stupid
semantics, I'd recommend introducing an _IsDataPending() with sane semantics
  and use that.
* IsDataPending() Added TODO regarding possible overflow.
* SetTimeout(): Added TODO regarding consistency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-07 16:35:49 +00:00
Ingo Weinhold ace7983115 Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-07 16:20:18 +00:00
Ingo Weinhold dfc8551aad open_executable(): Changed search order according to the ABI specs. DT_RPATH
is now searched before the LIBRARY_PATH/ADDON_PATH. Fixes #7638.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-04 13:28:31 +00:00
Ingo Weinhold 9536ec0297 Reimplemented the gdb stub support for the 'g' command (read registers):
* Added an arch_debug_gdb_get_registers() interface that is supposed to provide
  the register values in the format expected by gdb and implemented it for x86.
* Reimplemented gdb_regreply() to use that. Also made it buffer overflow safe.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-03 15:35:10 +00:00
Ingo Weinhold ad63c6796c Improved debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41833 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-30 18:48:10 +00:00
Ingo Weinhold e5003582d1 Reverted r41727. Accidentally committed to wrong branch.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-25 00:46:11 +00:00
Ingo Weinhold 38894ae9a8 Fixed check. sigset() is supposed to return the previous signal disposition,
respectively SIG_HOLD, if the signal was blocked.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-25 00:41:57 +00:00
Ingo Weinhold 10919035c8 PlainTextCatalog::WriteToFile(): Escape characters in the comment string.
Hopefully undoes the string changes seen on HTA since r41629.

Note that the asymmetric escaping/unescaping (PlainTextCatalog::WriteToFile()
vs. BHashMapCatalog::SetString()) is rather broken and needs to be fixed.

+alpha I guess.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-22 21:21:01 +00:00
Ingo Weinhold 7873172c47 Disabled displaying country flags for languages. Prevents #7517.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-21 14:26:24 +00:00
Ingo Weinhold ee3d8836e7 * BHashMapCatalog::SetString(): Also process escaped characters in the comment.
Fixes #7543 (ReadOnlyBootPrompt only showing English welcome text).
* Disabled fingerprint check in linkcatkeys. Fingerprints change due to the
  BHashMapCatalog::SetString() change.

+alpha 3


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-21 14:24:07 +00:00
Ingo Weinhold c2069a9a2e Patch by "starsseed" (with style fixes by myself):
PartitionMapWriter::WriteMBR(): Also read the old MBR from disk when the boot
code shall be overwritten. Prevents overwriting of the disk ID. Closes ticket
#7507.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-18 10:34:53 +00:00
Ingo Weinhold 222b8cf7b7 cache_io(): Since satisfy_cache_io() (respectively the function it calls)
unlocks the cache, we have to look up the page again, since someone else could
have removed it in the meantime. Possibly fixes #7514.

+r1alpha3


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-18 10:13:44 +00:00
Ingo Weinhold 5e36c12a42 mmu_allocate_physical(): The wrong base argument was passed to
get_free_physical_address_range(). Fixes the debug syslog feature.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-11 19:10:26 +00:00
Ingo Weinhold b7786ebd30 find_undefined_symbol_add_on(): Resolve non-weak symbols defined in the add-on
to themselves. This works around the problem that those symbols could be
resolved to symbols in the application, which is usually undesired. Weak
symbols have the same problem, but the the runtime loader cannot decide which
should be resolved locally and which mustn't.

The root issue is that BeOS style add-ons simply cannot be supported by a
standard-complying ELF loader.

Affects gcc 4 only, since with gcc 2 we link everything symbolically. The best
solution for the time being would be to build gcc 4 add-ons with default
hidden visibility, exporting only the symbols that should be visible.

Related ticket: #7114


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-19 11:59:03 +00:00
Ingo Weinhold cd463b4dd2 find_undefined_symbol_beos(): Forgot to return the image in the code
introduced in r40211.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 22:43:01 +00:00
Ingo Weinhold ca7aa99f98 * Added SymbolLookupInfo::requestingSymbol which is passed in by
resolve_symbol().
* find_undefined_symbol_beos(): Does now check whether
  SymbolLookupInfo::requestingSymbol is defined, and, if so, returns it
  directly. This saves the time for the hash table lookup and also works
  around broken files like SoundPlay. Fixes the runtime loader part of #7094.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 12:43:13 +00:00
Ingo Weinhold 4535495d80 Merged the signals branch into trunk, with these changes:
* The team and thread kernel structures have been renamed to Team and Thread
  respectively and moved into the new BKernel namespace.
* Several (kernel add-on) sources have been converted from C to C++ since
  private kernel headers are included that are no longer C compatible.

Changes after merging:
* Fixed gcc 2 build (warnings mainly in the scary firewire bus manager).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-10 21:54:38 +00:00
Ingo Weinhold 44b9a93e46 Added intermediate (addr_t) casts before the cast of the parse_expression()
result (uint64) to pointer (CID 4723-4726).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-04 21:28:46 +00:00
Ingo Weinhold 0af0e394a5 Missed earlier: LargeMemoryPhysicalPageMapper::MemsetPhysical(): Changed
pageOffset variable type from phys_addr_t to addr_t. Avoids potential width
difference when casting to pointer later (CID 4718).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-04 21:16:53 +00:00
Ingo Weinhold 5defb0fe6f LargeMemoryPhysicalPageMapper::Memcpy{From,To}Physical(): Changed pageOffset
variable type from phys_addr_t to addr_t. Avoids potential width difference
when casting to pointer later (CID 4719-4722).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-04 21:13:53 +00:00
Ingo Weinhold e468e31f7f Added intermediate cast to addr_t before cast to pointer (CID 4717).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-04 21:05:07 +00:00
Ingo Weinhold 3292bde924 Opening a FIFO end is supposed to block until the other end is opened, too.
So we need a little work-around to open both ends in the shell process to
avoid blocking. Apparently Haiku's FIFO implementation isn't quite conforming
yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-04 01:39:30 +00:00
Ingo Weinhold 17ebe2b021 Reimplemented the communication with the FS shell for Unixish systems (now
including also Haiku) using FIFOs instead of Unix sockets. Advantages:
* Multiple FS shells can run concurrently, since they no longer need a unique
  address.
* Killing/aborting the build_haiku_image script will automatically tear down
  the FS shell as well, so there shouldn't be any stray FS shell processes
  anymore. Hopefully also fixes #5498.

So far only tested under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-04 01:06:56 +00:00
Ingo Weinhold 40982d1e05 Check user_strlcpy() return value (CID 4053).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-03 19:09:14 +00:00
Ingo Weinhold 0068f3c810 Fixed uint32 underflow in backwards loop (CID 2601).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-03 18:30:19 +00:00
Ingo Weinhold a5270963e5 Changed put_parameter() return type to void. The value was always true and
never checked anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-03 18:03:23 +00:00
Ingo Weinhold 0536ff83e9 * IS_KERNEL_ADDRESS(): Avoid the check against KERNEL_BASE or KERNEL_TOP, if
that's the limit of the addr_t domain anyway.
* Defined IS_USER_ADDRESS() to !IS_KERNEL_ADDRESS(), which semantically it was
  already, just more verbosely.

Should, in the future, avoid hundreds of useless Coverity tickets where the
macros are used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-03 17:56:04 +00:00
Ingo Weinhold a0d93d1416 * VMCache::Unlock(): Renamed local variable consumerLocked to avoid shadowing
the parameter (CID 5329).
* _MergeWithOnlyConsumer(): Removed the somewhat weird consumerLocked
  parameter. The caller can unlock itself, if desired. Improves Unlock()
  readability.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-03 00:44:40 +00:00
Ingo Weinhold b734adba63 find_thread(): thread::name is an array, so the NULL check is useless
(CID 4073).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-03 00:09:27 +00:00
Ingo Weinhold 66e8557230 common_rename(): Fixed incorrect check (array address instead of first
element, CID 4077).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 23:46:17 +00:00
Ingo Weinhold e85a4793d2 strcpy() -> strlcpy() (CID 7986).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 23:32:47 +00:00
Ingo Weinhold b0da468aeb call_apm_bios(): Moved otherwise unreachable code into "#if __GNUC__ < 4"
block (CID 10315).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 23:30:28 +00:00
Ingo Weinhold b51ec9de58 sprintf() -> snprintf() (CID 7985).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 23:16:01 +00:00
Ingo Weinhold 3872a2d2fc Fixed suspicious implicit sign extension computing the frame buffer size
(CIDs 8056, 8057, 8058).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 23:14:10 +00:00
Ingo Weinhold 447e61909f Always initialize fSize in the BIOSDrive constructor -- InitCheck() uses it
(CID 10272).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 23:03:01 +00:00
Ingo Weinhold b2330bb319 strcpy() -> strlcpy() (CID 7984).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 22:37:31 +00:00
Ingo Weinhold 80b5decbec Init MenuItem::fShortcut in constructor (CID 10273).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 22:35:09 +00:00
Ingo Weinhold 61aa1456a5 Check get_node_from() return value (CID 647).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 22:27:10 +00:00
Ingo Weinhold 70fc82404f sprintf() -> snprintf() (CID 7983).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 22:22:32 +00:00
Ingo Weinhold 3e9f742d23 Check fstat() return value (CID 2514).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 22:20:18 +00:00
Ingo Weinhold be4b43e03f At least theoretically kernelSettings and safemodeSettings can be NULL
(CID 4230).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 14:44:33 +00:00
Ingo Weinhold 8018cd7f61 Also initialize fCachedBlock, as it is used in the destructor. Related to
CID 10271, though that's actually the only member it doesn't mention.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 14:36:25 +00:00
Ingo Weinhold 10a50e7cd5 Broken if condition (CID 2600).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 14:28:55 +00:00
Ingo Weinhold 9a3d05d795 Check return value of fstat() (CID 2513). Cannot really fail in the boot
loader, but the check doesn't harm either.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 14:22:32 +00:00
Ingo Weinhold a037e9b3d0 Init fNode (CID 10264).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 14:16:19 +00:00
Ingo Weinhold f746d7fb49 * Removed my copyright. I had nothing to do with this file.
* FileMapDisk::RegisterFileMapBootItem(): Commented out unreachable code
  (CID 10367).
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 14:13:21 +00:00
Ingo Weinhold 097b4917d3 Use the unnamed namespace instead of an unofficial one.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 00:44:41 +00:00
Ingo Weinhold 7e36984164 Removed Humdinger's resize mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 00:29:17 +00:00
Ingo Weinhold 74c7ad20f4 Set B_NOT_RESIZABLE for the deskbar and the desktop window. Fixes #6999.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 00:23:03 +00:00
Ingo Weinhold d23cadce4c [_{kern,user}_]{start,stop}_system_watching()
-> [_{kern,user}_]{start,stop}_watching_system()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 17:01:23 +00:00
Ingo Weinhold 756b64fd83 * Removed the obsolescent [B]Reference[able] API and replaced the remaining
uses. Fixes the gcc 2 acpi build.
* Renamed WeakReferenceable::{Add,Remove}Reference() to
  {Acquire,Release}Reference() for consistency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 16:35:42 +00:00
Ingo Weinhold 88e38c178a Replace uses of obsolescent BReference[able] API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 14:29:37 +00:00
Ingo Weinhold c3e066cf6d Replaced uses of obsolescent BReference[able] API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 13:50:30 +00:00
Ingo Weinhold 09d6a5822a Added a test program for the system watching mechanism.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 01:50:27 +00:00
Ingo Weinhold d2bf328d72 Implemented a generic system watching mechanism with a userland API. Currently
only a few events can be watched (team creation/deletion/exec, thread creation/
deletion/name changes). The functions start_system_watching()/
stop_system_watching start/stop watching events.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 01:49:52 +00:00
Ingo Weinhold 4ebc8f615d * Added a "name changed" notification to the thread notification service.
* Added a "team" field to the notification events.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 01:44:15 +00:00
Ingo Weinhold 2d8d1cdbaa * Implemented a generic way to associate data with a team which is
automatically cleaned up when the team is deleted: Class AssociatedData is
  the base class for a data item, AssociatedDataOwner a container for them
  (struct team derives from it). Functions team_associate_data() and
  team_dissociate_data() add/remove data.
* Turned sTeamHash into a BOpenHashTable (necessary since struct team is no
  longer a POD).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-16 01:15:35 +00:00
Ingo Weinhold eeecbf6fb8 The header is no longer included from pure C sources, so we can finally freely
use C++.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39859 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-15 23:18:13 +00:00
Ingo Weinhold 76c4f83965 * priv.c -> priv.cpp
* Defined curthread to NULL. Using Haiku's struct thread is not acceptable
  without proper locking and the only purpose ATM is to pass it to priv_check()
  which ignores it anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-15 23:12:38 +00:00
Ingo Weinhold a68810a9a4 Don't use private kernel API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-15 23:09:14 +00:00
Ingo Weinhold 078e1762a3 AddOnManager::MessageReceived(): ERROR() -> TRACE()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-08 18:34:54 +00:00
Ingo Weinhold 9f1aca35af Implemented Humdinger's resizing method, activated on Cmd-Ctrl-middle-click.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 21:36:45 +00:00
Ingo Weinhold 97d623045e ResizeBorderState: Set a suitable mouse cursor.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 20:29:10 +00:00
Ingo Weinhold 8689fe066a Added method SetManagementCursor() that allows to set a cursor that overrides
the normal cursor set with SetCursor(). Intended for window management
interactions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 20:25:57 +00:00
Ingo Weinhold 006f748565 * Got rid of DefaultWindowBehaviour::Region again. Since we also need to
discriminate between the different borders and corners, there wasn't much
  difference between it and Decorator::Region anymore and we can as well use
  the latter.
* Added new state ManageWindowState which is entered when the mouse is over the
  window and the window management modifiers are held down. When being in this
  state the borders that will be resized when pressing the right mouse button
  are highlighted.
* Added State::ExitState() hook for cleanup work.
* _NextState() does now call Desktop::SetMouseEventWindow() for our window when
  entering a new state, respectively resets it when going stateless.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 18:28:52 +00:00
Ingo Weinhold 92fe8be943 * ExtendDirtyRegion(): The left and right border rects don't include the
corners. Make sure they are added as well.
* GetComponentColors(): Added support for HIGHLIGHT_RESIZE_BORDER. We simply
  shift the standard colors towards blue. Improvements welcome.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 18:17:34 +00:00