Commit Graph
2325 Commits
Author SHA1 Message Date
Ingo Weinhold 617ed3e4a9 Implemented the new attribute open/close/... FS hooks. The mapping to the
old interface is completely done in userland ATM.

It becomes more and more obvious that we probably need to provide
the kernel add-on with a bit more information about what the client FS
interface supports in the first place, so we can save unnecessary trips to
the userland. Opening/closing attributes for a FS using the old style
interface could be handled completely in the kernel add-on, for instance
(even if we lose a bit of accuracy wrt to open modes etc.).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 01:16:13 +00:00
Ingo Weinhold 9ce869f45f Welcome back, is_vnode_removed(), old friend!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 22:26:44 +00:00
Ingo Weinhold c10705cbda We do now provide the BeOS style FS add-ons with the kernel interface they
need via library libuserlandfs_beos_kernel.so. Fine-tuned the legacy headers
so they can by used by the the kernel interface emulation code as well as by
the add-ons. This is actually a bit hacky, since we build everything in the
Haiku build environment and thus mix these old headers and Haiku's.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 22:07:40 +00:00
Ingo Weinhold ca6faf4958 * Adjusted BeOSKernelFileSystem and BeOSKernelVolume to Haiku's FS interface.
* Moved stuff need for the BeOS interface only into the beos_* namespace.
* Shuffled a few things around to reduce the block cache implementation
  dependencies. compat.h and sysdep.c are gone accordingly.
* The whole UserlandFSServer builds now and could (at least theorectically)
  drive a FS add-on implementing the old interface. The required emulation of
  the BeOS kernel is not yet provided, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-28 04:54:13 +00:00
Ingo Weinhold 8474904ee0 Adjusted the FileSystem, Volume, and UserlandRequestHandler to the new FS
interface. The classes actually interfacing with the client FS add-on still
need to be adjusted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-27 23:27:27 +00:00
Ingo Weinhold 5d3147f66a Class renaming:
UserFileSystem -> FileSystem
  UserVolume -> Volume
  KernelUserFileSystem -> BeOSKernelFileSystem
  KernelUserVolume -> BeOSKernelVolume

The BeOSKernel* classes are indeed intended to handle FS implementations
that use the (old) BeOS FS interface. We'll see how well that will work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-26 16:26:02 +00:00
Ingo Weinhold 1546cbf149 Moved FileSystem class into the new Dispatcher subnamespace, so we can drop
the "User" part of the way more often used UserFileSystem and the other
classes that had it accordingly for consistency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-26 16:00:45 +00:00
Ingo Weinhold b12d25d15d First walk through the userlandfs kernel add-on to port it to the Haiku
FS interface. Adjusted old hooks, but didn't add the new ones yet. The
module builds now at least.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-26 02:54:05 +00:00
Ingo Weinhold 0b9da247dc Intermediate check-in. I've decided I rather want to use Pe instead of
Kate for this job. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-24 15:01:34 +00:00
Ingo Weinhold 83812f6752 Copied userlandfs code from the test tree to the haiku source tree,
where it will be ported to Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-24 00:30:19 +00:00
François Revol d436e544a4 Some fixes for the Haiku version... it's working!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-23 16:43:29 +00:00
Marcus Overhagen 9e8dd0a713 added PCI express capability
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-22 17:46:44 +00:00
Travis Geiselbrecht c2d83d3d4e the beos compiler is pretty pedantic and wont let you use c99 style variable decls.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-18 20:37:17 +00:00
Marcus Overhagen 637812eb4a init those pointers before using them
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-18 00:51:10 +00:00
Marcus Overhagen d9be4f1fa3 print satacap 0 and 1 registers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-18 00:19:06 +00:00
Marcus Overhagen 3f8d7bce7c added PCI capability support to bus api
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-18 00:18:13 +00:00
Marcus Overhagen b782e8cd79 added SATA capability to debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-17 23:24:40 +00:00
Marcus Overhagen 13dbe1c7ff Added support function to find a PCI capability offset in the configuration data, needed for SATA support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-17 22:57:59 +00:00
Axel Dörfler 5fbb5241c7 Fixed endless loop in the legacy keyboard driver (currently only used by consoled).
This actually fixes bug #1024.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-16 06:30:36 +00:00
Axel Dörfler 4ecd017140 * Fixed a bug that would not remove an existing attribute from the small data section
when the new attribute data was too large to fit into the small data section at all.
  This fixes the Trash icon update with a block size of 1024 bytes.
* This also fixes a bug where AddSmallData() required you to write back the inode even
  if it failed with B_DEVICE_FULL, but no one did it.
* _RemoveSmallData() no longer requires you to write the inode back on success.
* Made most small data methods private.
* WriteAttribute() now tries to put the data into the small data section even if it
  existed as a separate file before (the file is then removed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-07 16:46:42 +00:00
Axel Dörfler bbf8311d15 * Fixed a race condition between deletion of the endpoint and canceling its timers;
the timer functions could access invalid memory.
* The endpoint manager now panics if a bound endpoint is not in the hash.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-07 14:13:37 +00:00
Axel Dörfler 230a0989fd bfs_free_cookie() now always write locks the inode - before it only hold a read lock
which wasn't enough when tampering with the inode's data, and it also acquired that
lock too late.
Thanks to Stefano for pointing this out.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-06 16:28:48 +00:00
François Revol 20d237e4d1 Support for building the vmware gfx driver as a package, thx to Urias McCullough <umccullough at gmail dot com>.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-06 06:15:01 +00:00
Travis Geiselbrecht dcdc4f4b43 pulled over some stuff from newos:
at boot, per cpu, detect the cpu, pull down all the relevant cpuid bits and
save them into the per-cpu structure. Changed most of the code scattered here
and there that reads the cpuid to use a new api, x86_check_feature, which looks
at the saved bits.
Also changed the system_info stuff to read from these bits.
While i was at it, refreshed all the bits to be current.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-05 01:46:28 +00:00
Axel Dörfler ad7e408e18 The SemaphorePool method could hand out unbalanced semaphores - it only called
Semaphore::ZeroCount() on new semaphores, not on used ones. Found by Stefano, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-02 17:12:00 +00:00
Michael Lotz 4771489e89 Changing from a stack allocated result struct to a heap allocated one. This removes the possibility that a timed out transfer that later still triggers the callback writes into invalid stack space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 01:18:17 +00:00
Michael Lotz a94a8358e8 With plain R5 kernels, the usb module image is apparently loaded twice (once for each exported module), while for BONE kernels and up the module is only loaded once.
So the mechanism with the global variable did not work for R5 what caused two USB stacks and host controller drivers to be active concurrently which resulted in completely unpredictable results.
This kind-of-inelegant fix was all I could come up with, if someone has a better idea please send it this way.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 01:12:40 +00:00
François Revol b6a6e8e347 Add debugger kernel modules to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 22:12:47 +00:00
François Revol a08aa5f3fe Add code to work as a kernel module. Builds now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 22:12:10 +00:00
François Revol 8c0f52bd5d fix path
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:39:50 +00:00
François Revol 4dca8fed0d AddSubdir...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:39:04 +00:00
François Revol 0223d2d0bb Move your body...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 21:34:40 +00:00
Marcus Overhagen cc30d340c3 When getting the memory map, ask only for 2046 bytes instead of
2048 bytes. This should fix bugs #993 and #997.
On BeOS R5 asking for 2 bytes too much wasn't a problem, as we 
only need the first page_entry, and it didn't return any Error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19992 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-28 12:59:45 +00:00
Marcus Overhagen ad13bfbbd7 Added unconditional debug output. You will most likely see it when "sync" is stalled,
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 22:52:09 +00:00
Marcus Overhagen 55a5f66c21 Made the "get_memory_map failed" error panic the kernel, to avoid random
crashes at a later time. I observed one error at 8033a802, but the address
was allocated by the driver and should have been fully locked.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 22:06:35 +00:00
Marcus Overhagen 562ce636d3 reverted r19986. uncached mapping didn't work, instead it was falling back to vesa mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 21:17:38 +00:00
Marcus Overhagen e0858f4dd5 added a temporary workaround for bug report #994
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 20:56:44 +00:00
Michael Lotz e40b5c0d59 Fixed a wrong index that could cause crashes with devices containing generic descriptors
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 14:36:03 +00:00
François Revol caa76e0da1 Fix some warnings (unused args...). Only bad protos left.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 13:33:53 +00:00
François Revol ab28e0ff2c For interfaces listed in a domain but without any address we returned {2, AF_UNSPEC}, but we only skipped 1 byte instead of 2... fixed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 11:07:08 +00:00
François Revol 448d2a891a Make sure strings are 0-terminated. Fix some settings values.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-25 09:30:27 +00:00
Jérôme Duval c3ccb39319 reduce trace from these two
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-24 18:56:25 +00:00
Axel Dörfler fc317af25e Writing to attributes was deadlock prone; the BFS volume lock was acquired with
the BFS Journal lock held.
Since our get_vnode() is no longer unsafe (unlike Be's version of it), we can
get rid of the UNSAFE_GET_VNODE stuff, which also solves this bug.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-23 17:09:21 +00:00
François Revol d86cd90850 gcc4 is also picky about writing to const variables... grr
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-23 14:38:42 +00:00
François Revol eed616a9cd Cosmetic. As gcc4 doesn't seem to get multi-line strings, use multiple one-line-strings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-23 14:27:14 +00:00
Waldemar Kornewald aeb2c49f00 Little test commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-23 08:34:20 +00:00
Jérôme Duval ae5385c497 fix gcc4 build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-22 20:25:08 +00:00
Michael Lotz f891e74eee Fixed wrong usage of object types in OHCI. The types are bitmasks, not values.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-22 15:19:01 +00:00
Axel Dörfler 9ecaa867f7 Applied patch by Vasilis Kaoutsis: now checks for the MSR feature as well; obviously
some Pentium 200 MMX pretend to support MTRRs.
This should fix bug #553.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-22 14:45:50 +00:00
Axel Dörfler 80bca3d3c8 Added NTFS file system add-on written by Troeglazov Gerasim (a.k.a. 3dEyes**).
It's based on ntfs-3g-0.20070102-BETA, and therefore under the GPL license.
Writing is currently disabled for safety reasons, and you'll have to mount
it manually, as the identify hooks are not yet implemented.
Thanks a lot for your work!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-22 08:13:07 +00:00