Postfix/prefix increment evaluation order is not changed by parantheses. Use '+ 1' for readability instead. CID 2982.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39966 a95241bf-73f2-0310-859d-f6bbb57e9c96
Afaict it looks like it results in unbalanced Acquire calls on the parent. CID 10393.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39964 a95241bf-73f2-0310-859d-f6bbb57e9c96
A bit confused about the signedness handling in ring_buffer internals though, int32 to size_t.
Unnested the acpi_namespace_read function a bit and removed dead check for negative lengths from read. CID 4093.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39963 a95241bf-73f2-0310-859d-f6bbb57e9c96
Embedded Controller still needs some looking into, and I had to remove the WIP code for dumping MADT.
Both are on my TODO.
Also removed a lot of unneeded parts of ACPICA from trunk and did some cleanup in Jamfile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39565 a95241bf-73f2-0310-859d-f6bbb57e9c96
It needs a bit polish in code but wanted to commit before leaving BG.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39124 a95241bf-73f2-0310-859d-f6bbb57e9c96
(This is just until we do proper irq-handling)
On my machines it works either way so I'd like to get feedback on this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38695 a95241bf-73f2-0310-859d-f6bbb57e9c96
The changes looks reasonable, although I don't have VMWare to test with.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38602 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
There are TODO's in here, because the ACPI module needs restructuring and which I will take care of.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38289 a95241bf-73f2-0310-859d-f6bbb57e9c96
See http://clang.llvm.org/compatibility.html#c++ why it is needed. Note that HashMap.h Key and Value are typenames as well.
Afaict this is correctly done, builds and runs on gcc4. This fixes#5892.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37550 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
* 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
While there has been no reports of fan or temperature problems that we know of,
there are rumours that this might happen.
It's a good idea to check that fans and temperature works as normal
just to be safe.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36474 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
* 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
The code is in a part of the ACPI code we import, so using its code style and is based on similar code a
few lines above.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35592 a95241bf-73f2-0310-859d-f6bbb57e9c96
Changes from ACPI include:
* eliminate unnecessary invocations of the _STA method, which in turn can improve boot times.
* Implemented an additional repair for predefined method return values.
* Removed the obsolete ACPI_INTEGER data type.
* Removed the unused UINT32_STRUCT type, and the obsolete Integer64 field in the parse tree object.
* Added additional warning options for the gcc-4 generation.
* Enhanced automatic data type conversions for predefined name repairs.
* Implemented automatic removal of null package elements during predefined name repairs.
* Implemented a repair for the predefined _FDE and _GTM names.
* Implemented additional module-level code support.
* Fixed possible mutex acquisition errors when running _REG methods.
* Fixed a possible memory leak during module-level code execution.
* Removed messages for successful predefined repair(s).
* Implemented a post-order callback to AcpiWalkNamespace.
* Modified the behavior of the operation region memory mapping cache for SystemMemory.
* Implemented an automatic repair for predefined methods that must return sorted lists.
* Fixed a possible fault during predefined name validation if a return Package object contains NULL elements.
* Implemented additional module-level executable AML code support.
* Fixed a problem where an Operation Region _REG method could be executed more than once.
* Fixed a possible memory leak for the Scope() ASL operator.
* Implemented a run-time repair for the _MAT predefined method.
* Implemented a run-time repair for the _BIF and _BIX predefined methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35559 a95241bf-73f2-0310-859d-f6bbb57e9c96
* moves Firefox's jam code to BeZillaBrowser
* echos a warning on Firefox being phased out.
* sets BeZillaBrowser as a dependency of Firefox
The last two to ease transition from Firefox. This fixes#3529.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35456 a95241bf-73f2-0310-859d-f6bbb57e9c96
* static variables should start with s.
* function blocks should start on new line.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34668 a95241bf-73f2-0310-859d-f6bbb57e9c96
This probably fixes#2801 and is what the FreeBSD driver does.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34667 a95241bf-73f2-0310-859d-f6bbb57e9c96
This saves ~0.5s of boot time here, but I suspect it might be better for CD.
Enabled loadSymbols in kernel settings so the behavior should be the same as before this change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34666 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Corrected AcpiOsReadable and AcpiOsWritable to always return true in kernel and to better check bit flags otherwise.
* Removed comment about implementing acpi object cache with slab (object_cache). ACPI's own is simple, light and nice enough.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33887 a95241bf-73f2-0310-859d-f6bbb57e9c96
The previous code used kill_thread() and then destroyed the common RingBuffer.
This wasn't working, and as Axel notes it's not really working on kernel side.
* Added RingBuffer::DestroyLock
* Changed the thread to exit gracefully on RingBuffer semaphore destruction.
* Changed close function to destroy RingBuffer sem, wait_for_thread and then destroy resources.
* Minor code style fixes.
(And also my first commit.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33795 a95241bf-73f2-0310-859d-f6bbb57e9c96