Commit Graph
100 Commits
Author SHA1 Message Date
Michael Lotz 24a7f4c285 Disallow removing the "." entry. We do the same for ".." already and it seems
to be in line with what other systems do as well. Also fixes bug #3476.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-23 19:55:03 +00:00
Michael Lotz 1c053f1771 Obviously forgot this in the last commit...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-22 20:47:14 +00:00
Michael Lotz 6eba063647 * Added simplified possibility to schedule UHCI transfers from within KDL.
* Added debugger commands to resolve usb_ids to pipes.
* Adjusted the physical memory allocator to be usable in a slimmed down mode
  when running inside the kernel debugger.
* Implemented USB keyboard support for KDL through a kernel debugger add-on.
* Added kgetc() and made use of it where previously individual methods were used
  to ensure that reading characters always goes through the kernel debugger
  add-ons and the other methods.

This has some preconditions to meet though:
1) The keyboard must be in the boot protocol (currently the case but needs to
   be revisited once we have a full usb_hid).
2) The keyboard must be attached to a UHCI root port (i.e. not use EHCI or OHCI,
   also not through hubs unless those are USB 1.1).
3) the usb_hid driver has to be opened for this to work. This means that for the
   time between initializing USB and when usb_hid is opened by the input_server
   there is no keyboard support.

Also note that this has no way of detecting hot-plug, meaning that you can't
re-attach your USB keyboard from the hub to the root port once in KDL.

On the bright side of things, since this is a non-destructive mechanism it is
possible to enter and leave KDL without loosing the USB state.

Tested OK in QEMU, not tested on real hardware yet, will see in a few minutes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-22 20:46:27 +00:00
Michael Lotz f9e9051d3e * Implemented create/create dir/create symlink and remove/remove dir in the
write_overlay and add the necessary infrastructure for it.
* Fix setting permissions through write stat.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-21 02:35:55 +00:00
Michael Lotz c41ac5b0e1 * Remove the original overlay filesystem.
* Add attribute_overlay and write_overlay to the image/floppy instead.
* Mount a iso9660 boot volume with both write and attribute overlay for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 23:01:42 +00:00
Michael Lotz 66728ad8b8 Implemented write stat.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 22:40:30 +00:00
Michael Lotz 77b26c3221 We need a longer filesystem string here to fit in all the possible layers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 22:39:52 +00:00
Michael Lotz 9c67a177a8 No need to relay the attribute calls. Fixes attribute overlays when used with another layer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 21:45:46 +00:00
Michael Lotz 4ef4945001 Rename the trace output as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 21:13:02 +00:00
Michael Lotz af4245f8a3 Split overlay filesystem into attribute_overlay and write_overlay.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 21:11:59 +00:00
Michael Lotz 77fdecfec8 Preparing to split the overlay filesystem into an attribute_overlay and write_overlay module.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 20:30:51 +00:00
Michael Lotz a4041d8a6e * Fix missing initialization of the entry size on SetSize() that'd cause some
attribute writes to not be visible.
* Don't read past the current node size when emulating write support.
* Fix writing calculations so that writing actually works as intended.
* Actually follow the linked list when joining write_buffers instead of using
  the same pointer that becomes invalid after the first iteration.
* Small optimizations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 20:03:05 +00:00
Michael Lotz 49004dc730 Remove the additional fs_vnode_ops arugment from get_vnode() again as it's not
needed at all when used as intended. Thanks Ingo for the explanation on how this
is intended to work. Adjusted the overlay fs accordingly and updated/reverted
the changes to the other filesystems.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 18:13:01 +00:00
Michael Lotz ef38aa7efc * Add preliminary write support to the overlay filesystem when the underlying
fs is read-only. Not yet fully working, also directory operations like file
  creation/removal are yet missing.
* Add notifications for stat and attribute changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 01:20:10 +00:00
Michael Lotz b1a58597b9 Add a new fs_volume op all_layers_mounted() that is called when all layers have
been mounted. This is to allow layered filesystems to setup internal data that
requires all the sub/super volumes to be available.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-19 01:16:07 +00:00
Michael Lotz 896e3e9c52 Fix wrong check, thanks Axel :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-18 17:52:51 +00:00
Michael Lotz 81915026c1 Make use of the new private B_NO_HANDLED_INFO in the FreeBSD compatibility layer
for now. This is a workaround and should be removed once we have proper
interrupt return values from FreeBSD drivers. Should work around interrupt
storms for shared interrupts with some network cards that use a FreeBSD driver.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-17 21:49:34 +00:00
Michael Lotz 3684e40bb8 * Introduce a (private) flag B_NO_HANDLED_INFO for install_io_interrupt_handler.
It causes the interrupt handler to be inserted at the very end of the list
  instead of at the top. It is intended to be used as a workaround when a
  interrupt handler cannot know if it actually handled the interrupt. This
  should never be used by native drivers. Also if we know that the result is
  not valid because of this flag we won't disable the vector in case we count
  many unhandled interrupts as those numbers are then unreliable.
* Moved B_NO_LOCK_VECTOR to be a private flag as well.
* Made the interrupt handler list a simple manually maintaned singly linked list
  instead of the doubly linked one used with insque and remque as it greatly
  simplifies things for such an easy use case and is more compact.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-17 21:41:51 +00:00
Michael Lotz 3b5507a987 * Added create/write/remove/rename support for attributes to the overlay fs.
* Implemented writing attributes back to attribute files. Not tested or enabled.
* Fix reading attribute dirs, they need a separate cookie that links attribute
  files to the dir index as multiple read-dirs could happen at the same time.
* Fix some obvious bugs in size calculations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-17 02:05:58 +00:00
Michael Lotz 65cae88fb5 Fix the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-16 16:44:51 +00:00
Michael Lotz b962e48498 _kern_open_parent_dir has different semantics for the supplied name argument.
It's supposed to be filled with the entry name of the directory and not as in
all the other cases used as a leaf name to be appended to the dir. This would
lead to some errors with operations based on directory fds in the build libroot
and build libbe and in the end make generate_attribute_stores fail on platforms
that don't have an 0 initialized stack (since the supplied name buffer would
contain garbage later attached to the directory path).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 21:10:02 +00:00
Michael Lotz 4b08e1b9e3 Add the host libsupc++ to generate_attribute_stores.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 17:08:05 +00:00
Michael Lotz f96525f73f The GCC4 built boot floppy archive is too large, it doesn't fit on a 1.44 image.
Therefore we switch to building a 2.88 floppy image in that case so it's at
least usable to build a bootable CD.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 14:54:05 +00:00
Michael Lotz b435702774 * Simplify the build of the CD a bit, just reuse the image scripts as those hold
what we want.
* Remove some more temporary files/directories after the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 13:30:42 +00:00
Michael Lotz 816f925d39 Add generate_attribute_stores to the tools using the Be API so it builds on other platforms as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 12:31:33 +00:00
Michael Lotz 66a8699255 Fix build for GCC4 also.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 12:27:45 +00:00
Michael Lotz 1ba7617834 Fix build. The header is not needed at all.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 12:12:45 +00:00
Michael Lotz e2c3dec923 Preliminary support for building ISO only Haiku CDs. Not working completely
clean yet. Provides a haiku-cd target and creates a bootable image using mkisofs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 02:34:32 +00:00
Michael Lotz bea22f6240 * Add overlay filesystem to the boot floppy and normal image.
* When booting from an iso, mount the boot volume with the overlay layer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 22:51:50 +00:00
Michael Lotz a413108c54 Make the overlay filesystem a standalone module. It can now be mounted as an
additional layer by supplying "-t <actualFileSystem>:overlay" to a mount command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 20:57:15 +00:00
Michael Lotz 3c1b330b3b Add volume ops to the overlay filesystem and prepare it to be a standalone module.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 20:32:10 +00:00
Michael Lotz a26c243920 * Adding volume ops to the overlay filesystem.
* Remove the previous method of applying the overlay by flags. In the future the
  overlay can just be mounted as a filesystem layer. This is probably how layers
  were intended to work in the first place.
* Move the filesystem module info and filesystem name from the fs_mount to the
  fs_volume structure. Filesystem layering is done by having multiple layered
  volumes and we want to be able to have a different fs per layer.
* Adapt VFS code to this move.
* Implement mounting layered filesystems. Specifying multiple filesystems
  separated by a colon on mount will cause the layers to be set up and the
  corresponding filesystems to be mounted at that layer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 20:30:49 +00:00
Michael Lotz 3e01561729 Request an overlay for the root vnode as well so attributes are available on the fs root as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 12:49:41 +00:00
Michael Lotz 6e5f12279d Handle the overlay request flag in publish_vnode() as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 12:48:44 +00:00
Michael Lotz cbaec88839 Add a generate_attribute_stores build tool. It can be used to recursively
generate attribute stores for attribute overlay. This can be used to generate
ISO only Haiku CDs with attribute support in the future. Note that while they
are mostly bootable they aren't really usable yet because of the missing query
support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 00:28:35 +00:00
Michael Lotz a079780e8a * Add the iso9660 filesystem to the floppy image.
* Allow iso9660 partitions to be boot partitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 00:11:15 +00:00
Michael Lotz 3f31053904 Skip our attribute directory when reading directories.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-14 00:06:28 +00:00
Michael Lotz 576cd2495d * Compacted some of the code and inlined the DumpRoster implementation into the
class as it's so little code.
* No need to allocate the roster on the heap.
* Add /dev/bus/usb to the device location to make it more clear.
* Add the device location to the non-verbose output as well.
* Put the manufacturer and product strings into quotes to make it clearer that
  those are just strings. Avoids just blank output when a device doesn't provide
  those strings.
* Remove trailing whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-12 23:05:57 +00:00
Michael Lotz f7de06baf3 The device object is supposed to be deleted after the removed hook returns.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-12 21:09:00 +00:00
Michael Lotz 00405f2286 * Add an additional argument to get_vnode() that gets the fs_vnode_ops of the
node. That is needed for a layered filesystem to be able to construct a full
  fs_vnode out of a volume/inode pair.
* Adapt places where get_vnode is used. Sadly this is a C API and we can't just
  use a default NULL for that argument.
* Introduce a flag B_VNODE_WANTS_OVERLAY_SUB_NODE that can be returned in the
  flags field of a fs get_vnode call. A filesystem can use this flag to indicate
  that it doesn't support the full set of fs features (attributes, write support)
  and it'd like to have unsupported calls emulated by an overlay sub node.
* Add a perliminary overlay filesystem that emulates file attributes using files
  on a filesystem where attributes aren't supported. It does currently only
  support reading attributes/attribute directories though. All other calls are
  just passed through to the super filesystem.
* Adjust places where a HAS_FS_CALL() is taken as a guarantee that the operation
  is supported. For the overlay filesystem we may later return a B_UNSUPPORTED,
  so make sure that in that case proper fallback options are taken.
* Make the iso9660 filesystem request overlay sub nodes. This can be fine tuned
  later to only trigger where there are features on a CD that need emulation
  at all.

If you happened to know the attribute file format and location you could build
an iso with read-only attribute support now. Note that this won't be enough to
get a bootable iso-only image as the query and index support is yet missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-09 23:06:31 +00:00
Michael Lotz bc2836bbaa Allow pressing 'p' to disable paging during boot debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29169 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 21:38:30 +00:00
Michael Lotz 2d871992b8 Only try to store attributes on destruction if the required root node is available. Should fix bug #3426 where an incompletely constructed volume object is deleted.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 16:55:45 +00:00
Michael Lotz 173700f0d7 Fix base URL I accidently messed up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 14:53:53 +00:00
Michael Lotz d5ec51ca02 Allow for a separate UserBuildConfig directly in the output directory (i.e.
generated). When not using build profiles this allows for separate configuration
per output directory. When using build profiles you could for example have a
different profile per output directory with the same name (so an @disk with
different settings per output dir for example).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 13:20:19 +00:00
Michael Lotz fbac0185ad * Clean that up a bit and combine the ifs for GCC2/4.
* Also don't install the GCC2 package on a GCC4 based hybrid, as it's again not
  usable without proper manual setup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 12:47:29 +00:00
Michael Lotz 1c433de84c * Always install the "other tools" as part of the development optional package.
These all work on pure GCC4 images as well because they do not use any of our
  C++ APIs.
* Remove the GCC4 package from hybrid installs though, as it's not usable
  without proper setup. Also the trick with rewriting the symlink obviously
  doesn't work because symlinks are done way earlier than unzipping the optional
  packages when building the image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-08 12:40:16 +00:00
Michael Lotz 3119d7c601 * Correctly handle the phantom state. In this state we don't have any valid key
information and we must not overwrite the last valid buffer. Otherwise we
  generate spurious key ups when entering and spurious key downs when leaving
  the phantom state.
* Implement getting/setting of keyboard repeat delay and rate so they become
  settable by the keyboard preferences.
* Rework repeat handling a bit. With a large enough repeat delay (i.e. bigger
  than the report interval of the device) we would never get the timeout case
  and therefore never start repeating.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-07 23:09:00 +00:00
Michael Lotz f3ed32b7c0 Fix wrong usage of endpoint address.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-07 00:11:22 +00:00
Michael Lotz 4a9f6b4a06 Add support for the arm target as well. Not that we'd support it in any way yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-06 23:09:47 +00:00
Michael Lotz 3572efc239 Should fix bug #3401. Put the parenthesis at the wrong spot resulting in wrong offsets.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 23:47:38 +00:00
Michael Lotz d9c6f9a92c Remove separate GCC4 versions of add_debug_command()/remove_debug_command() and
add the const in any case. As Axel points out these are C functions and we do
not affect binary compatibility by changing their signature.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 23:32:25 +00:00
Michael Lotz 779bacf0fe This was most probably a typo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 23:25:41 +00:00
Michael Lotz d0eaec3086 Fix more operator precedence errors. These do not do what you'd expect at first
sight. The comparison operator takes precedence over the binary ones.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 23:24:55 +00:00
Michael Lotz 9490cc05f3 Fix wrong check.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 22:16:49 +00:00
Michael Lotz 6eb09230ba * Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 22:12:55 +00:00
Michael Lotz c33667d400 Fixing warnings under GCC4 in preparation to enable -Werror there as well:
* Replaced the use of offsetof() for structs that aren't PODs. Add a
  offset_of_member() macro to util/khash.h because that's what it's used for
  in our cases.
* Change the signature of add_debugger_command()/remove_debugger_command() on
  GCC > 2 to avoid the depricated conversion from string constants to char *.
* Adding some "suggested" parenthesis. I know that not everyone likes that, but
  it pointed out at least one bug that is fixed here as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 20:48:02 +00:00
Michael Lotz 7ac433fc8c Fix deprecated include.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 17:29:42 +00:00
Michael Lotz 3c33e2749f Don't exit early when encountering an empty slot in the report. There seem to
be keyboards that leave gaps. It's not really specified in the docs, they only
say that the ordering of keys is indetermined. So I guess intermixing empty
slots is equally valid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-31 23:04:09 +00:00
Michael Lotz 3509dd95c0 Workaround that should not break on bison 2.3.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-29 02:26:22 +00:00
Michael Lotz 76043ac59a * Update the GCC4 package. This package has the builtin __BEOS__ define removed
and also comes with proper default includes.
* If installing GCC4 as part of a GCC2 based hybrid build, re-setup the gnupro
  link that is overwritten by the GCC4 package.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-29 01:25:23 +00:00
Michael Lotz 28ff07ab3c Revert the ftpd compile workaround as it apparently breaks on bison 2.3. Wonder why I got a report that it worked...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-28 22:57:02 +00:00
Michael Lotz 1421048866 Check the presence of the C++ header dir. The native and cross GCC4 do have
different directory layouts and this way we can still use a native compiler
as a cross compiler since we don't make the decision based on whether we are
cross compiling or not.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-28 22:24:13 +00:00
Michael Lotz 55751274e7 Fix C++ header location.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-28 16:53:01 +00:00
Michael Lotz 28b5bc7576 The include-fixed directory is a normal default include dir on GCC4.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-28 02:08:39 +00:00
Michael Lotz a16e2a1c69 Forgot to update this reference when renaming be/ to os/.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-28 02:02:51 +00:00
Michael Lotz 3bdbdcb23e The default include paths have been updated from be/ to os/ so copy correspondingly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 23:57:59 +00:00
Michael Lotz 73476a18af Add a prebuilt GCC 4.3.3 package to the Development optional package. It's
installed either when building with GCC4 or when making a hybrid. Can be
installed separatly as well. Have fun :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 07:33:08 +00:00
Michael Lotz 8ffb1d6966 Updating config for current GCC4 cross compiler.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 05:15:41 +00:00
Michael Lotz 621e8eeb9e Fix usage of wrong port change values. The request numbers were compared with
the bitmap instead of the masks. Spotted by Mika Lindqvist (after 100 reboots),
thanks for tracking down such hard to spot errors!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-26 00:57:02 +00:00
Michael Lotz 74a366707f When linking against libgcc already don't include these symbols. Otherwise we
get multiple definitions of them when building with GCC4 on a GCC4 host.
With that we can now build completely on a GCC4 host with native GCC 4.3.3.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-25 21:28:43 +00:00
Michael Lotz 3fcc6b3abe Temporary fix for compilation issue on bison 2.4. See ticket #3137.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-25 21:15:28 +00:00
Michael Lotz 374c632c55 Rumour has it that we now have Haiku hosts with GCC > 2 as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-25 19:25:16 +00:00
Michael Lotz 3c885c3390 Fix missing inclue.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-25 18:14:46 +00:00
Michael Lotz d0a06a0995 Add missing mkdtemp prototype.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-25 17:11:22 +00:00
Michael Lotz bfa2519c44 Explicit linking against libsupc++ doesn't seem to be necessary here (works with
GCC2) and produces multiple definitions with GCC4. Please yell if this breaks
cross-compiling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-24 11:25:43 +00:00
Michael Lotz f14fe767bf * Rework the USB tracing mechanism. Cleaned it up and make it more convenient to
use. It will now print out the usb_ids of the objects that generate the trace
  messages. These IDs are unique compared to the device address used previously,
  because device addresses are per bus while usb_ids are global. This makes
  trace output from devices across multiple controllers distinguishable.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-24 01:28:31 +00:00
Michael Lotz 569eafd85e Disable KDL enter key in usb_hid. It's not usable yet and hitting it by accident without a way back kinda sucks...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 23:23:30 +00:00
Michael Lotz 09a009d4af Move include directories for C++ headers to the beginning. This makes
include_next work properly with newer headers. GCC 4.3.2 has a <cstddef> in its
C++ headers for example that does an include_next of <stddef.h>. The latter is
located in the C headers. For this to work, the include directory for the C
headers needs to be specified later than the one of the C++ headers.
With that Haiku is now completely buildable with GCC 4.3.2.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 03:23:21 +00:00
Michael Lotz bc840cd466 Remove this panic. This one is triggered when booting my GCC 4.3.2 built image
but I don't see why. If someone still knows why this was put there, please check.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 03:15:35 +00:00
Michael Lotz ce837badf2 Fix GCC2 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 03:10:17 +00:00
Michael Lotz fb3e35fcec Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2
build. I sure hope that this doesn't break the build for anyone else.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28992 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 03:05:15 +00:00
Michael Lotz 7e359a9b53 Having the first argument to main() non-int is an error in GCC 4.3.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 02:37:28 +00:00
Michael Lotz 0644703068 Having the first argument to main() non-int is an error in GCC 4.3.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 02:07:37 +00:00
Michael Lotz aacebf533d Having the first argument to main() non-int is an error in GCC 4.3.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 01:55:40 +00:00
Michael Lotz f89856e548 Having the first argument to main() non-int is an error in GCC 4.3.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 01:49:32 +00:00
Michael Lotz ddb785a296 Better return B_ERROR when not compiling the actual call in.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 01:30:29 +00:00
Michael Lotz c9c7eecd8e Comment out problematic inline asm statement for GCC 4. The direct reference
to sAPMBiosEntry generates undefined symbols and I'm not in a condition to fix
this right now. Added a TODO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 01:24:47 +00:00
Michael Lotz eff61480cc Fix header and add std namespace to nothrow.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28985 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 01:21:27 +00:00
Michael Lotz 64f7e20f9c Add -ffreestanding to kernel C/C++ flags. This means that ISO conventions like
the main() signature are not applied and do not generate errors when violated.
Our bootloader has a non-standard main() signature for example, which is of
course fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 00:40:41 +00:00
Michael Lotz 18cd67c760 Add missing headers (malloc/free, string functions, memcpy, etc. undeclared).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 00:36:25 +00:00
Michael Lotz b668bf21b2 Change function name to work with stricter name lookup in GCC 4.3. See
http://gcc.gnu.org/gcc-4.3/porting_to.html for reference.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28981 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-22 23:10:50 +00:00
Michael Lotz 23ce8ab1da Tiny cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-20 20:59:40 +00:00
Michael Lotz 236ecca7da Fix missing mutex_unlock() in case of opening an already removed device.
Spotted by Mika Lindqvist, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-19 17:35:56 +00:00
Michael Lotz a8b0095433 Style cleanup. Please at least try to...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28953 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-19 12:33:59 +00:00
Michael Lotz 9cad6c3632 Add ioctl cases for B_GET_ICON, B_GET_ICON_NAME and B_GET_VECTOR_ICON. The first
won't be implemented, the second currently isn't and the third is. This gets
rid of the frequent "unhandled ioctl" messages when using USB drives and also
adds the nice pendrive icon to the mount list when using USB storage devices.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-19 01:58:05 +00:00
Michael Lotz c8a2b8db37 As Marcus pointed out, the imul instruction clobbers the conditional code
register. Therefore "cc" should be added to the clobber list. Adding that here
as it's part of a patch attached to the freetype bugtracker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-19 00:48:59 +00:00
Michael Lotz 6f5bc65419 Fix the build on Haiku/BeOS. Apparently our GCC doesn't like the "+d"
constraint, so I replaced it with a "d" input and "=d" output constraint
instead, which should be equivalent. Please yell if my logic is flawed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-18 23:56:00 +00:00
Michael Lotz 8311b012d1 * Fix a lock leak in the eject/load ioctls. It did return directly without
unlocking the device again, causing deadlocks after unmounting a USB mass
  storage device.
* Synchronize on close again, but this time with proper locking of the device.
* Restructured usb_disk_synchronize() a bit and updated comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-18 14:30:03 +00:00
Michael Lotz b289baf147 * The close hook did trigger a synchronize without locking the device. This
could have messed up the state of other transfers currently running on that
  device. Since devices are regularly opened/closed for enumeration/scanning
  from different threads, this could've easily lead to bad situations. I've
  removed the sync completely as it's not our task to issue it and because
  a close doesn't always correspond with an unmount at all.
* Retry receiving the command status wrapper also when another error than a
  stall is returned. The specs aren't too specific, but the graphic suggests
  this is a general recovery path.
* Do a reset in case there is an error during data transfer to start the next
  command from a clean state.
* Make sure we never acknowledge more data than we actually transfered. This
  is to make sure devices that return broken residue values do not mess up our
  transfers.
* Detect a few more cases of invalid and non-meaningful command status wrappers.
* If the device explicitly tells us that the sync command isn't supported don't
  try it a few more times. Only retry at most five times if an unspecific error
  is returned that could also come from another (temporary) error case.
* Add a bit more trace output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-18 01:34:22 +00:00
Michael Lotz 8f30f14edd Fix pretty severe error in the convenience functions Pipe::SetFeature(),
Pipe::ClearFeature() and Pipe::GetStatus(). These requests take the endpoint
address in the logical form, including the direction bit. This caused all those
requests to fail for all input pipes, most prominently visible in mass storage
where a mass storage reset could never be done completely and would cause many
devices to be unable to recover from errors.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-18 01:13:17 +00:00