* Use create_area_etc() instead of create_area() so we don't have to deal
with the physical address restrictions by hand.
* Force physical addresses < 4 GB for the time being.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37209 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use create_area_etc() instead of create_area(), so the alignment doesn't
need to be ensured by hand.
* Use B_32_BIT_MEMORY for the time being.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37207 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use the respective error types for OS and ACPICA functions.
* Don't lock the memory. The caller must do that, since there's no balancing
function that would unlock the memory again.
* Get the memory map of the given function, not of the on-stack variable.
* Added 64 bit support and a check for the PAE case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37202 a95241bf-73f2-0310-859d-f6bbb57e9c96
help the stack to detect and handle hotplug device removal.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37144 a95241bf-73f2-0310-859d-f6bbb57e9c96
Applied patch for #5209 by oruizdorantes for usb_asix, do the same for usb_davicom.
Will eventually rework it in order to remove duplicated IDs list.
The usb_serial driver also needs the same optimization,
but gathering the IDs list will take more time than refactor the code and since
usb_serial is not yet included in haiku image neither ready (no tty module), there is less user experience immediate gain...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37135 a95241bf-73f2-0310-859d-f6bbb57e9c96
restrictions for virtual/physical addresses.
* vm_page_allocate_page_run():
- Fixed conversion of base/limit to array indexes. sPhysicalPageOffset was not
taken into account.
- Takes a physical_address_restrictions instead of base/limit and also
supports alignment and boundary restrictions, now.
* map_backing_store(), VM[User,Kernel]AddressSpace::InsertArea()/
ReserveAddressRange() take a virtual_address_restrictions parameter, now. They
also support an alignment independent from the range size.
* create_area_etc(), vm_create_anonymous_area(): Take
{virtual,physical}_address_restrictions parameters, now.
* Removed no longer needed B_PHYSICAL_BASE_ADDRESS.
* DMAResources:
- Fixed potential overflows of uint32 when initializing from device node
attributes.
- Fixed bounce buffer creation TODOs: By using create_area_etc() with the
new restrictions parameters we can directly support physical high address,
boundary, and alignment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37131 a95241bf-73f2-0310-859d-f6bbb57e9c96
patch by Ziusudra.
* Use new(std::nothrow) instead of new.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37126 a95241bf-73f2-0310-859d-f6bbb57e9c96
* try to launch screen_blanker by path when a launch by signature fails.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37120 a95241bf-73f2-0310-859d-f6bbb57e9c96
* try at support realtek alc888. alsa uses this init sequence.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37113 a95241bf-73f2-0310-859d-f6bbb57e9c96
I'd like to know if keeping re_defrag is required. Tests welcome (see #5180).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37041 a95241bf-73f2-0310-859d-f6bbb57e9c96
* added quirks for idt 0x76b2 and apple macbook 0x00a1
* add headphones to the output path in case one input has a path to a used output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37012 a95241bf-73f2-0310-859d-f6bbb57e9c96
warnings, but also some oversights from earlier changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
that are wide enough for both virtual and physical addresses.
* DMABuffer, IORequest, IOScheduler,... and code using them: Use
generic_io_vec and generic_{addr,size}_t where necessary.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36997 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Select() didn't actually reselect even when asked to force things from AddMessage(), making the uploaded mail get an off-by-one unique id assigned and a second copy downloaded on subsequent fetching, though this would really need proofreading as I'm not really sure how it all works,
- the allocated buffer wasn't freed, making mail_daemon allocate 650MB, which obviously crashed when out of physical ram, now it only uses 15MB :p,
- try to find workable IMAP flags for sent and pending mails, or use custom ones when the server allows arbitrary flags,
- the LIST command wasn't checked for correct response, making subsequent commands like CREATE mailbox fail from the OK answer of previous ones when syncing on a new accound,
- try to read the creating time (actually modification time since creation time is reset when copying files around) and pass it to APPEND command so I won't get the whole 10000 mails all received as of today.
Now I can put all my old mails on an imap server (tested on dovecot) to read it from other OSes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36995 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added debug output to test_capacity().
* Minor other cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36990 a95241bf-73f2-0310-859d-f6bbb57e9c96
capacity by trying to read at the end of the medium.
* Not tested at all yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36989 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Internally, moved the contents of periph_io() into a static read_write()
function, and use it from the new periph_read_write() as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36988 a95241bf-73f2-0310-859d-f6bbb57e9c96
of having the logic be triggered by IOScheduler::SetDeviceCapacity(), as that
one might actually be called more often (for each call to update_capacity(),
ie. each B_GET_GEOMETRY/B_GET_DEVICE_SIZE will trigger it), and there is no
reason to throw away the cache every time (will make a difference during
partition/file system detection).
* In cd_init_device() just call update_capacity() instead of duplicating its
code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36986 a95241bf-73f2-0310-859d-f6bbb57e9c96
map_physical_memory()'s physicalAddress parameter type from void* to
phys_addr_t. This breaks source compatibility, but -- as long as
phys_{addr,size}_t remain 32 bit wide -- keeps binary compatibility with
BeOS.
* Adjusted all code using the affected interfaces (Oh what fun!). Added a few
TODOs in places where the wrong types (e.g. void* for physical addresses
are used). Looks like quite a few drivers aren't 64 bit safe and others
will break with PAE.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36960 a95241bf-73f2-0310-859d-f6bbb57e9c96
was detected; however, it should only do so when there is an actual LVDS panel
detected.
* This should fix one part of ticket #3149 - looks like there are two different
issues. Thanks to Robert J. Gebis for providing me remote access to his
system.
* Minor debug output improvements.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36941 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed one instance where ACPI and BeOS status codes was not handled right.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36897 a95241bf-73f2-0310-859d-f6bbb57e9c96
prices.rtf to be parsed correctly as reported by humdinger.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36884 a95241bf-73f2-0310-859d-f6bbb57e9c96
to stdout (mostly for testing).
* Removed no longer needed packaging jam rule.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36883 a95241bf-73f2-0310-859d-f6bbb57e9c96
invocation and fixes the dependency problem (missing grist on the sources)
that caused the headers not to be regenerated when the sources changed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36878 a95241bf-73f2-0310-859d-f6bbb57e9c96
streams in AVI files. Could confirm this with a test video. Thanks and sorry
for the delay!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36847 a95241bf-73f2-0310-859d-f6bbb57e9c96
packet did not specify a PTS. Made this change long ago, I don't believe it
helped much...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36846 a95241bf-73f2-0310-859d-f6bbb57e9c96
Linux driver does, thanks for idefix for tracking down the problem! Should fix
ticket #5960, but I don't personally have the hardware. The change can only
affect Intuos3 tablets, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36791 a95241bf-73f2-0310-859d-f6bbb57e9c96
but this one should go into alpha2 to make the card work as before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36746 a95241bf-73f2-0310-859d-f6bbb57e9c96
it makes use of gPCI which is initialized during pci module init. Might help
with #5936.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36745 a95241bf-73f2-0310-859d-f6bbb57e9c96
This fixes booting on the Samsung NP-N135, which used to reset before being able to enter the bootloader menu. It would be interesting if tickets #4408, #5539, #5696, and #5720 could be retested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36734 a95241bf-73f2-0310-859d-f6bbb57e9c96
now make sure no one else touched it in the mean time (in order to retrieve
consistent data for the index update). This should fix bug #5878.
* Squashed a TODO by locking the inode in the transaction as well.
* Fixed a quasi bug that would not have read the attribute data if there was no
live query for it; "fortunately", Volume::CheckForLiveQuery() is not
implemented yet, and always returns true.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36707 a95241bf-73f2-0310-859d-f6bbb57e9c96
To note, I'm grepping for "TR_CONTEXT" to identify which files to update.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36660 a95241bf-73f2-0310-859d-f6bbb57e9c96
(scsi_start_mode_sense_6(), scsi_start_mode_select_6()) also call
replace_request_data(), which does the same. Therefore the original request
data were lost. scsi_start_mode_select_6() also copied the wrong data due
to this.
* scsi_finish_mode_sense_10_6(): In case of error also call
restore_request_data() to restore the request data.
Fixes#5855 -- since the request data length was changed, unlock_memory() was
called with a different length than lock_memory(), thus triggering the
panic(). After starting CDPlayer the syslog is still spammed with failing
requests, so obviously something is still not OK.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36539 a95241bf-73f2-0310-859d-f6bbb57e9c96
supporting ID array (just that it only contains one entry).
* Fixed missing malloc() result check in embedded_controller_init_driver().
* Style fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36529 a95241bf-73f2-0310-859d-f6bbb57e9c96
* It confused ms and usecs for ec_timeout
* It tried to handle waiting like on platforms that can't do better timing than ms. Haiku can do much better, which simplifies the code a lot.
This should fix#4623 and #5825. At least on my laptop BatteryStatus never shows weirdness or reports errors in syslog.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36511 a95241bf-73f2-0310-859d-f6bbb57e9c96
layout management. Fixed a bug in the HVIFTranslator which did not release
the TranslatorSettings in it's destructor. Thanks a bunch!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36501 a95241bf-73f2-0310-859d-f6bbb57e9c96
BaseTranslator framework and layout management. Big coding style clean up, too.
Thanks a bunch, great work!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36466 a95241bf-73f2-0310-859d-f6bbb57e9c96
same BaseTranslator framework as many other translators are already using and
converting it to using layout management for the interface. Great work! Thanks
a lot!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36465 a95241bf-73f2-0310-859d-f6bbb57e9c96
USE_IO_CACHE macro in the header). Currently disabled, though. It works fine,
if the machine has a good deal of RAM. I tested with the anyboot CD -- the
boot and installation times drop dramatically. On machines with little RAM
there are issues, though. Apparently the cache isn't drained fast enough, so
that other allocations can fail.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36438 a95241bf-73f2-0310-859d-f6bbb57e9c96
working since r36416.
* Added more const, and removed all superfluous semicolons.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36429 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed irq_routing struct from ACPI.h to where it is used. Might be able to use acrestype.h instead of duplication.
* Disable old embedded controller and remove it from image.
* Move embedded controller code to busmanager module.
* Remove (some) code duplication
Should work as before, but is now initialized right after the bus manager. Can probably remove further code duplication.
I hope I've done it correctly, feedback is most welcome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36420 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The logical and physical block sizes are now retrieved from the info block,
though only the logical one is actually used (where ATA_BLOCK_SIZE was used
before).
* Also added retrieving the offset of the first logical block inside the first
physical one.
* All this stupidity just for Windows XP, it's really sad.
* Added "const" to some methods, removed some superfluous ';'.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36416 a95241bf-73f2-0310-859d-f6bbb57e9c96
of BKeymap was not compatible with IsDeadKey() of the other Keymap
incarnations.
* Now, I've renamed IsDeadKey() to DeadKey(), and introduced a new
ActiveDeadKey() method that works like the other former IsDeadKey().
* This fixes the dead key problems my earlier BKeymap work introduced.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36400 a95241bf-73f2-0310-859d-f6bbb57e9c96
had in our tree.
* Adapted Keymap, <input>keyboard, and consoled to use it - the additional
functionality is implemented via a subclass in the first two cases.
* "keymap" will come next.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36328 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Exposed ACPI API needed by Embedded Controller
This will be removed again if moved inside the bus manager.
It also duplicates ACPI's own headers so it might go out of sync atm.
* Added mutex to controller and fixed the mixup between acpi_status needed in int handlers and Haiku status.
* Major code cleanup
Not for headers as they are mostly redundant if we move the controller.
Variable names still needs some cleanup
This makes the ACPI errors from the controller understandable. I get AE_NO_HARDWARE_RESPONSE now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36318 a95241bf-73f2-0310-859d-f6bbb57e9c96
rescheduling; this allows DPC queues to be created before the scheduler is
running.
* Removed BeOS R5 support.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36289 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Made the USB keyboard driver safe to be used from more than one team - only
the first one will be able to retrieve any keys. Before, since there was no
locking, internal structures would have been messed up in that case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36283 a95241bf-73f2-0310-859d-f6bbb57e9c96
Possibly fixed the monitor timming.
TODO:
- Very big code cleanup.
- At the moment there is only one hardcoded dislplay_mode (1366 x 768).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36282 a95241bf-73f2-0310-859d-f6bbb57e9c96
* use it in readonlybootprompt instead of previous workaround code.
This makes the readonlybootprompt faster and lighter as it doesn't open and parse all the catalogs anymore, but only checks for their existence.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36276 a95241bf-73f2-0310-859d-f6bbb57e9c96
uint32 cookie that is saved per file handle and passed to the ProtocolHandler
objects.
* Beware that the output of the driver no longer shows the handler as pointer,
but the internal device cookie.
* Added handling of KB_SET_DEBUG_READER to the KeyboardDevice class (it just
doesn't do anything with that).
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36274 a95241bf-73f2-0310-859d-f6bbb57e9c96
driver, and that driver is using the raw_key_info structure as well.
* Renamed kb_mouse_driver.h to keyboard_mouse_driver.h.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36267 a95241bf-73f2-0310-859d-f6bbb57e9c96
uses it.
* While I were at it, I removed the ps2mouse driver as well, as well the whole
arch directory (as it is otherwise empty).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36261 a95241bf-73f2-0310-859d-f6bbb57e9c96
unify the three or so version we have of that class into one in the not so
distant future.
* Moved the AT keycode map into its own file.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36259 a95241bf-73f2-0310-859d-f6bbb57e9c96
in the PS/2 driver for now. The basic idea is to allow everyone to open the
device, but only allow one key reader (as usual). However, once someone
registers itself as a debugger, the original reader is blocked, and the
debugger can read the key presses instead.
* Renamed ps2_keyboard.c to .cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36256 a95241bf-73f2-0310-859d-f6bbb57e9c96
devices it's uninteresting, but for EHCI it may be implemented some day.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36246 a95241bf-73f2-0310-859d-f6bbb57e9c96
transfers was created with wrong permissions leading to a read-protected area.
Since we actually support read-protection in Haiku this caused a crash for all
fragmented transfers (transfers > 384K) leading to #5538.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36245 a95241bf-73f2-0310-859d-f6bbb57e9c96
the device again. Makes Axel's USB stick work and might also help with other
(broken) devices.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36234 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implement such a module for x86 which currently exports only an MSI API.
* Implement the PCI part for configuring and enabling MSIs.
* Some automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36223 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Only report lateness if it is beyond the accepted jitter.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36205 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fix connecting to INADDR_ANY work for tcp (effectively will
connect to INADDR_LOOPBACK)
* add same behaviour to udp
* move some ipv4-specific code out of tcp into ipv4 address module
* bind() and connect() now reject addresses from non-matching
families
* myself: minor cleanup in udp.cpp with respect to 80 chars limit
Closes#5716 - many thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36192 a95241bf-73f2-0310-859d-f6bbb57e9c96
BBufferConsumer::BufferReceived() cannot know whom to send the "buffer is
late" notification (unless we only have a single input). To solve this, the
media_header now contains extra fields that can be used to create a
media_source object.
* Unfortunately, BBufferProducer::SendBuffer() cannot know the output either in
case there is more than one. Hence, I deprecated the existing SendBuffer()
call and moved it into "private" - IOW old sources using it won't compile
anymore under Haiku.
* I introduced a new SendBuffer() variant that also gets the media_source as
argument.
* Updated all sources (that are part of the image) to use the new variant.
* Removed some purposely commented out code in the audio mixer.
* Implemented late buffer notification, as well as late buffer handling in the
audio mixer; this is a bit of work in progress, so the debug output is left
in there.
* Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36184 a95241bf-73f2-0310-859d-f6bbb57e9c96
and the transport addon. The actual command use as pipe is retrieved from the PPD that can be selected
at printer creation time.
Currently PPD selection is not shown (as the PPD directory is not available) and therefore the pipe
will not be inserted.
This still needs a bit of TLC, so hope to commit the last changes to fully support this later this week.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36173 a95241bf-73f2-0310-859d-f6bbb57e9c96
and easy to implement since ATAPI basically is SCSI anyway and we don't use many
problematic commands. Only tested for the 0x05 subclass, but 0x02 should work
the same.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36162 a95241bf-73f2-0310-859d-f6bbb57e9c96
- fix copyright,
- disable tracing,
- add support for reading attributes. The current naming is not final as I'm actually experimenting with it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36152 a95241bf-73f2-0310-859d-f6bbb57e9c96
* SuperBlock: In case of ReiserFS 3.6 we were stil loading only the old
superblock format.
* Added support for ReiserFS labels (volume names).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36132 a95241bf-73f2-0310-859d-f6bbb57e9c96
Clean it up, and try to fix other things. It is now opening menus, but crashes when opening windows...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36130 a95241bf-73f2-0310-859d-f6bbb57e9c96
our available buffer (we might want to move this into the BufferQueue class).
* Now, _AddData() remembers the flag (and its position), and will alter the
segment's flags field to reflect the current state.
* This fixes not being able to login into mmlr.dyndns.org.
* Fixed warnings when TCP_PROBE is defined.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36127 a95241bf-73f2-0310-859d-f6bbb57e9c96
* added a TODO questioning the closing master and slave in openpty() when applying window size fails.
* added TIOCSCTTY as a TTY ioctl code, the caller become controlling TTY. Review comments are welcome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36105 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Unlocking a removable drive was done in the wrong error label which would've
resulted in accessing deadbeef due to the volume being freed just before its
use or using the not initialized volume variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36103 a95241bf-73f2-0310-859d-f6bbb57e9c96
- put_vnode() also had a signature change,
- add backup server (commented) in config file,
- disable trace build,
- some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36077 a95241bf-73f2-0310-859d-f6bbb57e9c96