Commit Graph

1796 Commits

Author SHA1 Message Date
Jérôme Duval
245df7abd3 added exFAT partition type
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 20:30:00 +00:00
Oliver Tappe
137c5fe2ba * add implementation of bindfs, which can be used to bind-mount
a folder to some other place in the filesystem hierarchy
* add helper function to VFS that encapsulates the "conversion" of a
  vnode-pointer to a fs_vnode-pointer (used by bindfs)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-16 16:33:11 +00:00
François Revol
8dfd99a91c Build fix for r40196. Should now be back to previous state (breaks at vm stuff).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-13 12:29:15 +00:00
Philippe Houdoin
67938b0d59 Switched boot splash compression to use boot_zlib (which was already
used by tarfs anyway) instead of RLE.
While this should allows larger logo/icons, it doesn't remove the
current 300000 bytes size limits for haiku_loader, so #6710 is not yet fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-12 15:43:14 +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
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
Oliver Tappe
db03311342 Closing #7056:
* inherit umask of calling process to images loaded via exec...()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-02 19:12:19 +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
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
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
Rene Gollent
27a115f668 Revert r39846 and r39847.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-14 17:55:38 +00:00
Rene Gollent
7040b50df5 Add support for thread rename and priority change notifications to the
debugger API/message set.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-14 05:08:47 +00:00
Ingo Weinhold
07655104d5 Eliminated _acquire_spinlock(). Since the macro is defined after
acquire_spinlock_inline(), there's actually no undesired recursion.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 13:55:20 +00:00
Ingo Weinhold
c07db2ec3f * elf_find_symbol(): Skip undefined symbols and symbols with the wrong binding.
* Implemented missing handling of symbolically linked images and of weak
  symbols.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 13:32:24 +00:00
Ingo Weinhold
56d734a1aa Added new private API to get more information on a team:
* Userland interface: get_extended_team_info().
* Syscall: _kern_get_extended_team_info.

Only partially implemented yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-16 19:42:08 +00:00
Ingo Weinhold
5609b854b5 Added a Remove() version to which the previous element needs to be passed as
well. This is rather ugly, but it was the quickest way to provide O(1) element
removal. This class could really use some love.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-04 14:58:10 +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
107ce9b0fb * ARM: Remove fields that were no longer used since r39168...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 13:57:32 +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
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
d38153721e * Add page directory/table helper macros.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-25 11:16:21 +00:00
Ithamar R. Adema
2609a6bc98 * Fix header guard.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 22:06:22 +00:00
François Revol
c8afe2ca9b Fix header guard which prevented from including text_console.h along with this one.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 19:08:52 +00:00
Fredrik Holmqvist
f55ffb1a8e Completed structures for MADT APIC structures. I may now have a Frankenheimer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 15:49:17 +00:00
Jérôme Duval
01929b0c94 added a mapping for 0x83 to BTRFS
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 15:19:58 +00:00
Fredrik Holmqvist
868d2a2ed5 Compile first, commit after. Not the other way around.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 09:49:55 +00:00
Fredrik Holmqvist
a808dd7283 Adding more structures for MADT APIC structures. Correct some missed documentation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 09:48:17 +00:00
Fredrik Holmqvist
d7a03e967e Started adding structures for MADT APIC structures.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 09:01:24 +00:00
Fredrik Holmqvist
228b810454 Add the different APIC type ids for MADT APIC structures.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 07:44:39 +00:00
Ithamar R. Adema
150820bc87 * Remove PXA270 code from Freerunner header file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-22 17:31:04 +00:00
Philippe Houdoin
5f86ad125d Relax the copyright...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-11 13:39:37 +00:00
Philippe Houdoin
89fa2a8573 Move the boot images conditional selection in one place, to remove
possible mismatch images info between loader and kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-11 12:54:21 +00:00
Philippe Houdoin
3bd99634d1 Make the development boot splash more discret, relaying on the usual
quite hidden bug theme.
This also reduce its RLE compression size, which should fix #6710.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-11 10:47:06 +00:00
François Revol
91d95c16eb Clone atari platform args headers. This gets the Amiga loader to link.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 18:16:16 +00:00
Philippe Houdoin
64141b1b74 Enable development splash logo for "official" --distro_compatibility.
The official release one stay the well-known one, just renamed to show it's trademarked images.
Fixed #6183.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-05 10:31:13 +00:00
Fredrik Holmqvist
01f964efeb Introduce a gSystemShutdown flag to be able to check if system is shutting down. ACPI Embedded Controller now uses polling when it is set to true.
This might help with ACPI shutdown issues, if not this change can be reverted. Not verified as it works on all my machines even without this.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-08 19:19:49 +00:00
Andreas Färber
5b086e27e8 boot_net: Add iSCSI initiator support
Add support for both discovery and regular iSCSI sessions. Command and status
sequence numbers do differentiate between session and connection but only
one connection per session is currently supported.

Code is Big Endian for now, so compile it for ppc only.

Based on RFC 3720 ff. Tested against OpenSolaris 2009.06.

Resolves most of ticket #5319.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-05 22:30:41 +00:00
Andreas Färber
040b33980c boot_net: Prepare socket-specific TCP window size
Pass the desired window size from the socket to the service.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38530 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-04 22:36:35 +00:00
Andreas Färber
b7e825d6e7 boot_net: Add TCP support
Modelled after UDP, add limited TCP support to the boot net stack. The socket
works by queuing received packets as well as sent packets that have not yet
been ACK'ed. Some known issues are documented, especially there's only limited
congestion control. I.e., we send immediately and in unlimited quantity, thus
its use should be restricted to local networks, and due to a fixed window size
there is potential for our socket being overrun with data packets before they
are read. Some corner cases like wrapping sequence numbers may cause a timeout.

The TCP implementation is based on Andrew S. Tanenbaum's "Computer Networks",
4th ed., as well as lecture notes from Prof. W. Effelsberg, the relevant RFCs
and Wikipedia. The pseudo-random number Galois LFSR used for the sequence
number was suggested by Endre Varga.

Since the code is unlikely to get much smaller, better merge it now so that
subsequent changes get easier to review. No platform actively uses TCP sockets
yet, and the receiving code has been reviewed for endianness issues and should
terminate okay after verifying the checksum if no sockets are open.
Based on a version tested with custom code (#5240) as well as with iSCSI.
Compile-tested boot_loader_openfirmware, pxehaiku-loader with gcc4 and
haiku_loader with gcc2. Closes ticket #5240.

Changes from #5240 proposed patch:
* Various bug fixes related to queuing, some memory leaks fixed.
* Never bump the sequence number when dequeuing a packet. It's done afterwards.
* Don't bump the sequence number again when resending the queue or ACK'ing.
* Aggressively ACK while waiting for packets.
* Don't queue sent ACK-only packets.
* More trace output, esp. for queue inspection.
* Adapted use of TCP header flags to r38434.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-31 01:00:06 +00:00
Andreas Färber
30743318f1 boot net: Style fixes
Fix style issue, pointed out by Axel.

No functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 18:50:14 +00:00
Andreas Färber
df66656fec boot net: Preparations for TCP
Add protocol number and struct for TCP header.

First minuscule part of ticket #5240.
Checked that pxehaiku_loader still compiles, too.

Changes from proposed patch:
* Simplify struct by merging flags into one 8-bit field.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-29 22:12:17 +00:00
Andreas Färber
b96cb61620 boot net: Style fixes
No functional changes yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-29 21:34:16 +00:00
Oliver Tappe
dbe1e23aa8 Optimised passing around of timezone a bit
* _kern_[sg]et_timezone() now accepts/passes out the timezone name, too
* adjust Time preflet and clockconfig to pass the timezone name into the kernel
  when calling _kern_set_timezone()
* ajust implementation of tzset() to fetch the timezone name from the kernel
  via _kern_get_timezone() instead of reading 'libroot_timezone_info'
* the Time preflet no longer writes 'libroot_timezone_info'


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-16 22:01:28 +00:00
Oliver Tappe
6bb7a098b7 * added missing 'void' to make the get_timezone_offset() declaration a proper
prototype and not just a forward


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-04 21:57:44 +00:00
Oliver Tappe
e0ea55e0a0 * added get_timezone_offset() to kernel, which returns the offset in seconds
* made FAT add-on use get_timezone_offset(), this time correctly adjusted for
  the difference in units (minutes/seconds)
This makes the times in our FAT-fs agree with Linux again, at least :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-04 17:11:47 +00:00
Oliver Tappe
7e965f506d More consolidation of timezone code:
* dropped DaylightSavingTime from real_time_clock code in kernel, it was
  never really being used for what it meant (and just being referred to by
  gettimeofday(), which put a different meaning to it
* adjusted the syscalls get_timezone() & set_timezone() as well as their callers 
  accordingly
* got rid of get_rtc_info() and rtc_info struct in kernel, as it was only
  being referred to by the FAT add-on and that one (like gettimeofday()) put a
  different meaning to tz_minuteswest. Added a comment to FAT's util.c
  showing a possible solution, should the hardcoded GMT timezone pose a problem.
* fixed declaration of gettimeofday() to match POSIX base specs, issue 7
* changed implementation of gettimeofday() to not bother trying to fill struct
  timezone - it was using wrong values before, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-03 23:02:57 +00:00