This means that the usb_callback_func now takes a status_t instead of a uint32 status.
Also the error codes are now different. I don't see this as a real problem in binary compatibility, as the status codes were never really documented and most drivers just assumed that a nonzero status meant an error.
Source compatibility breaks for callback functions and error defines. I fixed (hopefully) all places in the tree that are currenty included in the image and affected by the change.
* Corrected error reporting in UHCI and EHCI using the new status codes.
* Fixed a memory leak in EHCI where the async advance interrupt was not triggered in time.
* Fixed another race condition in usb_raw that could cause a crash when a device is removed while a transfer is pending.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18916 a95241bf-73f2-0310-859d-f6bbb57e9c96
This improves abstraction and allows bus drivers that are independant of ide_adapter.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18794 a95241bf-73f2-0310-859d-f6bbb57e9c96
parameter during construction).
* Doing so will now result in a kernel panic whenever your file system tries to
write to a block.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18719 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Rewrote both headers on the way.
* The usb module now exports both, the v2 and v3 module_info.
* Changed the internals of the USB Stack to give out usb_ids instead of opaque handles to internal classes.
* Cleaned up some more of the Stack by moving members into other classes and removing unused stuff.
* Updated the usb_raw driver from v2 to v3 API.
Since both usb_hid (which still uses the v2 API) and usb_raw (which now uses the v3 API) work, I'd call it a success ;-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18539 a95241bf-73f2-0310-859d-f6bbb57e9c96
this should simplify big times implementing ttyname() for ex, and could be handy anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17655 a95241bf-73f2-0310-859d-f6bbb57e9c96
systems a chance to know if they have locked already.
This fixes a locking problem in BFS where one thread tried to acquire two read
locks (where someone else trying to acquire a write lock would have caused a
dead lock).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17108 a95241bf-73f2-0310-859d-f6bbb57e9c96
is public now, even if it may not yet be public and fixed API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16995 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented the functions needed by ideinfo/idestatus using this one.
* The IDE bus manager now disables DMA if the safemode settings ask for this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16944 a95241bf-73f2-0310-859d-f6bbb57e9c96
* thermal driver uses get_object to obtain the passive device package.
Need changes to acpi_object_type to handle references... that'll have to come in the near future.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16637 a95241bf-73f2-0310-859d-f6bbb57e9c96
returns the root device node. Now its actually possible to
traverse the device node tree without a node to start with.
* Fixed execution order problem in dm_get_next_child_node(). The
supplied node was put first (which could cause its immediate
deletion), but was still accessed thereafter.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16268 a95241bf-73f2-0310-859d-f6bbb57e9c96
complicated to get a pci_info for a given pci_device before. The
function is not very efficiently implemented, but I didn't see how to
do that without more intrusive changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16267 a95241bf-73f2-0310-859d-f6bbb57e9c96
tested ok on Dano
note that _IO* macros were redefined for the R5 target, the ones in Haiku aren't compatible with R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14524 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added and implemented new functions cache_blocks_in_[sub_]transaction().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14431 a95241bf-73f2-0310-859d-f6bbb57e9c96
This is needed in case the on-disk representation of a file changes (due to reorganization/defragmentation).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13660 a95241bf-73f2-0310-859d-f6bbb57e9c96
VFS's interface, so that a file system only has to implement one interface.
As a side effect, the automatic file system detection may now work (not yet
tested, though).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12786 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also renamed some defines and structures, although the structure and some other names are still odd.
This module should probably be moved into the kernel anyway, as it provides basic and crucial services.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12646 a95241bf-73f2-0310-859d-f6bbb57e9c96
- has_signals_pending() is not declared in Be headers, and it isn't declared in
our KernelExport.h anymore, too
- removed snooze_etc() from KernelExport.h, as it's already defined in OS.h
(and really exported by libroot.so).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12506 a95241bf-73f2-0310-859d-f6bbb57e9c96
Lots of cleanup:
- moved B_NO_ENABLE_COUNTER flag definition out of int.h to KernelExport.h, as it's
described in the BeBook (although it's probably not really used that often :))
- int.c no longer has any platform dependent code (+ 0x20 on interrupt numbers is gone);
it's now entirely handled in the arch/x86/ section.
- the io_vectors[] is now statically initialized, instead of allocated from the heap
- removed {install|remove}_interrupt_handler(); they weren't that useful, arch_smp_init()
is now calling install_io_interrupt_handler() correctly instead
- introduced a new arch_int.h header file that currently contains NUM_IO_VECTORS only
(though on x86, it also has ARCH_INTERRUPT_BASE == 0x20).
- changed the return type from {install|remove}_io_interrupt_handler() from "long" to
"status_t"
- rearranged and cleaned the PIC initialization code, made the PIC code more prominent
- changed comments that talk about a non existing 8239 (the PIC chip is actually 8259)
- moved arch/x86/interrupts.h to the source directory, as it's not used outside
- added BeOS compatible interrupts_enabled() function, that should replace our
equivalent (and private) are_interrupts_enabled()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12477 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also changed readlink() to be POSIX compliant with those changes.
"ls -l" does now resolve links properly again (the new coreutils version outlined the problems).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12263 a95241bf-73f2-0310-859d-f6bbb57e9c96
send_notification() interface, which I personally find quite ugly.
Each notification type gets its own function, which makes very clear,
which parameters are to be supplied. Also note the addition of the
`name' parameter for the `entry removed' notification and `fromName'
for `entry moved'.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11145 a95241bf-73f2-0310-859d-f6bbb57e9c96
functionality as good as probe(), but that will change soon).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10848 a95241bf-73f2-0310-859d-f6bbb57e9c96
is now device_attr, pnp_bus_info bus_module_info, pnp_driver_info driver_module_info, ...
Small cleanup (more would be needed, but this has time).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10670 a95241bf-73f2-0310-859d-f6bbb57e9c96
The API makes it possible to later use faster indexed search on the table.
The table could probably also be regenerated by running a script on setmime -dump.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10579 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added API for sub transactions (not yet implemented).
Added file_cache_sync() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10047 a95241bf-73f2-0310-859d-f6bbb57e9c96
added flags parameter (for example for B_MOUNT_READ_ONLY).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9939 a95241bf-73f2-0310-859d-f6bbb57e9c96
BTW shouldn't those constants have the B_ prefix now that they are in a
public header?
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9160 a95241bf-73f2-0310-859d-f6bbb57e9c96
from both, Drivers.h, and fs_interface.h.
The latter no longer includes vfs_types.h for iovecs, but <sys/uio.h> for iovec.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9140 a95241bf-73f2-0310-859d-f6bbb57e9c96
Changed the fs_get_file_map() call a bit - the requested file offset and size
were missing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8869 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added file cache hook function that gets the extents of a file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8842 a95241bf-73f2-0310-859d-f6bbb57e9c96
make clear that they work differently from before (or soon will).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8841 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added prototype for unremove_vnode(), some other minor changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7805 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed them to match other exported BeOS functions as well (removed the vfs_ prefix).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7801 a95241bf-73f2-0310-859d-f6bbb57e9c96
is a work in progress; the name as well as the contents will change :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7769 a95241bf-73f2-0310-859d-f6bbb57e9c96
A module can now define modules it depends on, and they will be automatically
loaded before B_MODULE_INIT is called.
This information will also be evaluated by the boot loader, so that it can
load all needed modules without further hacks.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7316 a95241bf-73f2-0310-859d-f6bbb57e9c96
the number of bytes read/written in an argument. Until now, we had a buggy
mix between those two solutions. Courtesy of Jack Burton.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7100 a95241bf-73f2-0310-859d-f6bbb57e9c96
ready for testing. Also the documentation is far from complete (it's in it's early phases).
Unfortunately I don't have enough experience in hardware programming to prototype
it first, so I'll be testing the things that I design in the document.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4275 a95241bf-73f2-0310-859d-f6bbb57e9c96
Add again the load_driver_symbols() export into our KernelExport.h, as it's expected
by many kernel add-ons (drivers, modules)... the network ones, for a start.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2672 a95241bf-73f2-0310-859d-f6bbb57e9c96
Typedefs for debugger and kernel daemon hooks, cleaned up.
Added a ToDo item about the "abuse" of the quent structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2581 a95241bf-73f2-0310-859d-f6bbb57e9c96
Replaced <types.h> with <sys/types.h> because that's what those headers
were looking for.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1118 a95241bf-73f2-0310-859d-f6bbb57e9c96
license stuff in it :-).
Some cleanup on the other headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@638 a95241bf-73f2-0310-859d-f6bbb57e9c96
date than the Be file we started from. Also add the type 2 header and
start adding it to the pci_info structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@397 a95241bf-73f2-0310-859d-f6bbb57e9c96
These are the Be headers but my (albeit brief) research shows that
we're OK to include these as they were released quite a while back now.
Michael?
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@216 a95241bf-73f2-0310-859d-f6bbb57e9c96