package init
This commit is contained in:
parent
da676f51ad
commit
91c17dae87
339
COPYING
Normal file
339
COPYING
Normal file
@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
26
OPT_LDFLAGS.patch
Normal file
26
OPT_LDFLAGS.patch
Normal file
@ -0,0 +1,26 @@
|
||||
Index: acpica-unix2-20170728/generate/unix/Makefile.config
|
||||
===================================================================
|
||||
--- acpica-unix2-20170728.orig/generate/unix/Makefile.config
|
||||
+++ acpica-unix2-20170728/generate/unix/Makefile.config
|
||||
@@ -23,6 +23,9 @@
|
||||
# OPT_CFLAGS can be overridden on the make command line by
|
||||
# adding OPT_CFLAGS="..." to the invocation.
|
||||
#
|
||||
+# OPT_LDFLAGS can be overridden on the make command line by
|
||||
+# adding OPT_LDFLAGS="..." to the invocation.
|
||||
+#
|
||||
# Notes:
|
||||
# gcc should be version 4 or greater, otherwise some of the options
|
||||
# used will not be recognized.
|
||||
@@ -157,6 +160,11 @@ LDFLAGS +=-m32
|
||||
endif
|
||||
|
||||
#
|
||||
+# Common linker flags
|
||||
+#
|
||||
+OPT_LDFLAGS ?=
|
||||
+
|
||||
+#
|
||||
# Optionally disable optimizations. Optimization causes problems on
|
||||
# some compilers such as gcc 4.4
|
||||
#
|
||||
64
acpibin.1
Normal file
64
acpibin.1
Normal file
@ -0,0 +1,64 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPIBIN 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpibin \- ACPI binary AML file utility
|
||||
.SH SYNOPSIS
|
||||
.B acpibin
|
||||
.RI [ <option> ... ]
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpibin
|
||||
command. The option list is taken from the acpibin interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpibin
|
||||
is a command provided to perform some basic and common operations on
|
||||
AML binary files.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-c <file1> <file2>
|
||||
Compare two binary AML files
|
||||
.TP
|
||||
.B \-d <in> <out>
|
||||
Dump AML binary to text file
|
||||
.TP
|
||||
.B \-e <sig> <in> <out>
|
||||
Extract binary AML table from acpidump file
|
||||
.TP
|
||||
.B \-h <file>
|
||||
Display table header for binary AML file
|
||||
.TP
|
||||
.B \-s <file>
|
||||
Update checksum for binary AML file
|
||||
.TP
|
||||
.B \-t
|
||||
Terse mode
|
||||
|
||||
.SH AUTHOR
|
||||
acpibin was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
159
acpica-tools.spec
Normal file
159
acpica-tools.spec
Normal file
@ -0,0 +1,159 @@
|
||||
Name: acpica-tools
|
||||
Version: 20190509
|
||||
Release: 4
|
||||
Summary: Tools for OS-independent reference implementation of ACPI
|
||||
|
||||
License: GPLv2
|
||||
URL: https://www.acpica.org/
|
||||
|
||||
Source0: https://acpica.org/sites/acpica/files/acpica-unix2-%{version}.tar.gz
|
||||
Source1: https://acpica.org/sites/acpica/files/acpitests-unix-%{version}.tar.gz
|
||||
Source2: iasl.1
|
||||
Source3: acpibin.1
|
||||
Source4: acpidump.1
|
||||
Source5: acpiexec.1
|
||||
Source6: acpihelp.1
|
||||
Source7: acpinames.1
|
||||
Source8: acpisrc.1
|
||||
Source9: acpixtract.1
|
||||
Source10: acpiexamples.1
|
||||
Source11: badcode.asl.result
|
||||
Source12: grammar.asl.result
|
||||
Source13: converterSample.asl.result
|
||||
Source14: run-misc-tests.sh
|
||||
Source15: COPYING
|
||||
|
||||
Patch0001: big-endian.patch
|
||||
Patch0002: unaligned.patch
|
||||
Patch0003: OPT_LDFLAGS.patch
|
||||
Patch0004: int-format.patch
|
||||
Patch0005: f23-harden.patch
|
||||
Patch0006: template.patch
|
||||
Patch0007: ppc64le.patch
|
||||
Patch0008: arm7hl.patch
|
||||
Patch0009: big-endian-v2.patch
|
||||
Patch0010: simple-64bit.patch
|
||||
Patch0011: mips-be-fix.patch
|
||||
Patch0012: cve-2017-13693.patch
|
||||
Patch0013: cve-2017-13694.patch
|
||||
Patch0014: cve-2017-13695.patch
|
||||
Patch0015: str-trunc-warn.patch
|
||||
Patch0016: ptr-cast.patch
|
||||
Patch0017: aslcodegen.patch
|
||||
Patch0018: facp.patch
|
||||
|
||||
BuildRequires: bison patchutils flex gcc
|
||||
Provides: acpixtract >= 20120913-7 iasl = %{version}-%{release} acpidump >= 20100513-5
|
||||
Provides: pmtools = %{version}-%{release}
|
||||
Obsoletes: iasl < 20120913-8 pmtools < 20100513-6
|
||||
|
||||
%description
|
||||
The ACPI Component Architecture (ACPICA) project provides an operating system (OS)-independent
|
||||
reference implementation of the Advanced Configuration and Power Interface Specification (ACPI).
|
||||
It can be easily adapted to execute under any host OS. The ACPICA code is meant to be directly
|
||||
integrated into the host OS as a kernel-resident subsystem. Hosting the ACPICA subsystem requires
|
||||
no changes to the core ACPICA code. Instead, a small OS-specific interface layer is written
|
||||
specifically for each host OS in order to interface the ACPICA code to the native OS services.
|
||||
The complexity of the ACPI specification leads to a lengthy and difficult implementation in
|
||||
operating system software. The primary purpose of the ACPI Component Architecture is to simplify
|
||||
ACPI implementations for operating system vendors (OSVs) by providing major portions of an ACPI
|
||||
implementation in OS-independent ACPI modules that can be easily integrated into any OS.
|
||||
|
||||
%package help
|
||||
Summary: Help documantation of acpica-tools package
|
||||
|
||||
%description help
|
||||
Help documantation of acpica-tools package.
|
||||
|
||||
%prep
|
||||
%autosetup -n acpica-unix2-%{version} -p1
|
||||
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
|
||||
|
||||
install -p %{SOURCE2} iasl.1
|
||||
install -p %{SOURCE3} acpibin.1
|
||||
install -p %{SOURCE4} acpidump.1
|
||||
install -p %{SOURCE5} acpiexec.1
|
||||
install -p %{SOURCE6} acpihelp.1
|
||||
install -p %{SOURCE7} acpinames.1
|
||||
install -p %{SOURCE8} acpisrc.1
|
||||
install -p %{SOURCE9} acpixtract.1
|
||||
install -p %{SOURCE10} acpiexamples.1
|
||||
install -p %{SOURCE11} badcode.asl.result
|
||||
install -p %{SOURCE12} grammar.asl.result
|
||||
install -p %{SOURCE13} converterSample.asl.result
|
||||
install -p %{SOURCE14} tests/run-misc-tests.sh
|
||||
install -p %{SOURCE15} COPYING
|
||||
|
||||
chmod a+x tests/run-misc-tests.sh
|
||||
chmod a-x changes.txt
|
||||
chmod a-x source/compiler/new_table.txt
|
||||
|
||||
%build
|
||||
CWARNINGFLAGS="\
|
||||
-std=c99 -Wall -Wbad-function-cast -Wdeclaration-after-statement -Werror -Wformat=2\
|
||||
-Wmissing-declarations -Wmissing-prototypes -Wstrict-aliasing=0 -Wstrict-prototypes\
|
||||
-Wswitch-default -Wpointer-arith -Wundef -Waddress -Waggregate-return -Winit-self\
|
||||
-Winline -Wmissing-declarations -Wmissing-field-initializers -Wnested-externs\
|
||||
-Wold-style-definition -Wno-format-nonliteral -Wredundant-decls -Wempty-body\
|
||||
-Woverride-init -Wlogical-op -Wmissing-parameter-type -Wold-style-declaration\
|
||||
-Wtype-limits"
|
||||
|
||||
export OPT_CFLAGS="%{optflags} $CWARNINGFLAGS"
|
||||
export OPT_LDFLAGS="%{__global_ldflags}"
|
||||
|
||||
%make_build
|
||||
|
||||
%install
|
||||
install -d %{buildroot}%{_bindir}
|
||||
install -pD generate/unix/bin*/* %{buildroot}%{_bindir}/
|
||||
|
||||
install -d %{buildroot}%{_mandir}/man1
|
||||
install -pDm 0644 *.1 %{buildroot}%{_mandir}/man1/
|
||||
|
||||
install -d %{buildroot}%{_docdir}/acpica-tools/examples
|
||||
install -pDm 0644 source/tools/examples/* %{buildroot}%{_docdir}/acpica-tools/examples/
|
||||
|
||||
%check
|
||||
cd tests
|
||||
|
||||
./aslts.sh
|
||||
[ $? -eq 0 ] || exit 1
|
||||
|
||||
./run-misc-tests.sh %{buildroot}%{_bindir} %{version}
|
||||
|
||||
cd templates
|
||||
make
|
||||
if [ -f diff.log ];then
|
||||
if [ -s diff.log ];then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
cd ..
|
||||
|
||||
%pre
|
||||
if [ -e %{_bindir}/acpixtract-acpica ];then
|
||||
alternatives --remove acpixtract %{_bindir}/acpixtract-acpica
|
||||
fi
|
||||
if [ -e %{_bindir}/acpidump-acpica ];then
|
||||
alternatives --remove acpidump %{_bindir}/acpidump-acpica
|
||||
fi
|
||||
|
||||
%postun
|
||||
if [ -e %{_bindir}/acpixtract-acpica ];then
|
||||
alternatives --remove acpixtract %{_bindir}/acpixtract-acpica
|
||||
fi
|
||||
if [ -e %{_bindir}/acpidump-acpica ];then
|
||||
alternatives --remove acpidump %{_bindir}/acpidump-acpica
|
||||
fi
|
||||
|
||||
%files
|
||||
%doc changes.txt source/compiler/new_table.txt COPYING
|
||||
%{_bindir}/*
|
||||
|
||||
%files help
|
||||
%{_mandir}/*
|
||||
%{_docdir}/*
|
||||
|
||||
%changelog
|
||||
* Tue Dec 31 2019 daiqianwen <daiqianwen@huawei.com> - 20190509-4
|
||||
- Package init
|
||||
BIN
acpica-unix2-20190509.tar.gz
Normal file
BIN
acpica-unix2-20190509.tar.gz
Normal file
Binary file not shown.
106
acpidump.1
Normal file
106
acpidump.1
Normal file
@ -0,0 +1,106 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPIDUMP 1 "July 24, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpidump \- ACPI table dump utility
|
||||
.SH SYNOPSIS
|
||||
.B acpidump
|
||||
.RI [ <option> ... ]
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpidump
|
||||
command. The option list is taken from the interactive help.
|
||||
.PP
|
||||
The
|
||||
.B acpidump
|
||||
command extracts the ACPI tables currently in use from the running
|
||||
kernel in a form usable for later processing by the
|
||||
.B acpixtract
|
||||
command.
|
||||
.PP
|
||||
Invocation of
|
||||
.B acpidump
|
||||
without parameters will dump all available ACPI tables. Multiple mixed
|
||||
instances of the
|
||||
.B \-a
|
||||
,
|
||||
.B \-f
|
||||
, and
|
||||
.B \-n
|
||||
parameters can be used.
|
||||
|
||||
.SH OPTIONS
|
||||
.PP
|
||||
.TP
|
||||
.B \-b
|
||||
Dump tables in binary format (versus the default human-readable form)
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-h | \-?
|
||||
Display this help message
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-o <file>
|
||||
Redirect output to a file. This file can be used later by
|
||||
.B acpixtract
|
||||
to examine the contents of the ACPI tables.
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-s
|
||||
Print table summaries only.
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-v
|
||||
Print the version of this utility.
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-z
|
||||
Verbose mode.
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-a <address>
|
||||
Get a table from a physical address (must be superuser and you must be
|
||||
careful which address you use -- dmesg will typically report the addresses
|
||||
for the various tables).
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-f <binary-file>
|
||||
Get a table from a binary file (see the
|
||||
.B \-b
|
||||
option).
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-n <signature>
|
||||
Get a table via it's name or signature (e.g., MADT or SSDT).
|
||||
|
||||
.SH SEE ALSO
|
||||
.B acpixtract(1)
|
||||
|
||||
.SH AUTHOR
|
||||
acpidump was written by Robert Moore <robert.moore@intel.com> and
|
||||
Chao Guan <chao.guan@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
49
acpiexamples.1
Normal file
49
acpiexamples.1
Normal file
@ -0,0 +1,49 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPIEXAMPLES 1 "August 8, 2018"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpiexamples \- program showing what the code examples actually do
|
||||
.SH SYNOPSIS
|
||||
.B acpiexamples
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpiexamples
|
||||
command. This command has no options available.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpiexamples
|
||||
prints out the results of various calls using the ACPICA source code,
|
||||
showing what happens when the calls are made. These results are from
|
||||
building and running the code provided in the
|
||||
/usr/share/doc/acpica-tools/examples directory that illustrate the
|
||||
proper sequencing of calls and how to make them.
|
||||
.PP
|
||||
Much more detailed documentation about ACPICA may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
None
|
||||
|
||||
.SH AUTHOR
|
||||
acpiexamples was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
102
acpiexec.1
Normal file
102
acpiexec.1
Normal file
@ -0,0 +1,102 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPIEXEC 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpiexec \- ACPI AML execution and debug utility
|
||||
.SH SYNOPSIS
|
||||
.B acpiexec
|
||||
.RI [ <option> ... ]
|
||||
.RI <aml-file>
|
||||
.B ...
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpiexec
|
||||
command. The option list is taken from the acpiexec interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpiexec
|
||||
provides a simulated execution environment for AML code so that it
|
||||
can be more easily tested and debugged.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-?
|
||||
Display the help message
|
||||
.TP
|
||||
.B \-b "command-line"
|
||||
Batch mode command line execution (cmd1;cmd2;...)
|
||||
.TP
|
||||
.B \-M [<method>]
|
||||
Batch mode method execution (Default: MAIN)
|
||||
.TP
|
||||
.B \-da
|
||||
Disable method abort on error
|
||||
.TP
|
||||
.B \-di
|
||||
Disable execution of _STA/_INI methods during init
|
||||
.TP
|
||||
.B \-do
|
||||
Disable Operation Region address simulation
|
||||
.TP
|
||||
.B \-dr
|
||||
Disable repair of method return values
|
||||
.TP
|
||||
.B \-dt
|
||||
Disable allocation tracking (performance)
|
||||
.TP
|
||||
.B \-ef
|
||||
Enable display of final memory statistics
|
||||
.TP
|
||||
.B \-ei
|
||||
Enable additional tests for ACPICA interfaces
|
||||
.TP
|
||||
.B \-em
|
||||
Enable interpreter Serialized mode
|
||||
.TP
|
||||
.B \-es
|
||||
Enable interpreter Slack mode
|
||||
.TP
|
||||
.B \-et
|
||||
Enable debug semaphore timeour
|
||||
.TP
|
||||
.B \-f <value>
|
||||
Operation Region initialization fill value
|
||||
.TP
|
||||
.B \-r
|
||||
Use hardware-reduced FADT V5
|
||||
.TP
|
||||
.B \-vi
|
||||
Verbose initialization output
|
||||
.TP
|
||||
.B \-vr
|
||||
Verbose region handler output
|
||||
.TP
|
||||
.B \-x <debug-level>
|
||||
Debug output level
|
||||
|
||||
.SH AUTHOR
|
||||
acpiexec was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
80
acpihelp.1
Normal file
80
acpihelp.1
Normal file
@ -0,0 +1,80 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPIHELP 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpihelp \- ACPI help utility
|
||||
.SH SYNOPSIS
|
||||
.B acpihelp
|
||||
.RI <option> ...
|
||||
.RI [<name-prefix>|<hex-value>]
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpihelp
|
||||
command. The option list is taken from the acpihelp interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpihelp
|
||||
provides descriptive text for AML and ASL keywords, methods, and opcodes.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
.PP
|
||||
If neither a <name-prefix> or a <hex-value> is provided,
|
||||
.B acpihelp
|
||||
will do the logical equivalent of a "display all."
|
||||
.PP
|
||||
A default search (that is, a search with no options) and a <name-prefix>
|
||||
can mean two different things: (1) if <name-prefix> does not start with
|
||||
an underscore, find ASL operator names, or (2) if <name-prefix> does start
|
||||
with an underscore, find ASL predefined method names.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.SS ACPI Names and Symbols
|
||||
.TP
|
||||
.B \-k [<name-prefix>]
|
||||
Find/Display ASL non-operator keyword(s)
|
||||
.TP
|
||||
.B \-m [<name-prefix>]
|
||||
Find/Display AML opcode name(s)
|
||||
.TP
|
||||
.B \-p [<name-prefix>]
|
||||
Find/Display ASL predefined method name(s)
|
||||
.TP
|
||||
.B \-s [<name-prefix>]
|
||||
Find/Display ASL operator name(s)
|
||||
|
||||
.PP
|
||||
.SS ACPI Values
|
||||
.TP
|
||||
.B \-e [<hex-value>]
|
||||
Decode ACPICA exception code
|
||||
.TP
|
||||
.B \-i
|
||||
Display known ACPI Device IDs (_HID)
|
||||
.TP
|
||||
.B \-i [<hex-value>]
|
||||
Decode hex AML opcode
|
||||
|
||||
.SH AUTHOR
|
||||
acpihelp was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
49
acpinames.1
Normal file
49
acpinames.1
Normal file
@ -0,0 +1,49 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPINAMES 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpinames \- ACPI name space dump utility
|
||||
.SH SYNOPSIS
|
||||
.B acpinames
|
||||
.RI <option> ...
|
||||
.RI <aml-file>
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpinames
|
||||
command. The option list is taken from the acpinames interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpinames
|
||||
prints out the complete ACPI name space for an AML file.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-? [<name-prefix>]
|
||||
Display this help message
|
||||
|
||||
.SH AUTHOR
|
||||
acpinames was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
72
acpisrc.1
Normal file
72
acpisrc.1
Normal file
@ -0,0 +1,72 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPISRC 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpisrc \- ACPICA source code conversion utility
|
||||
.SH SYNOPSIS
|
||||
.B acpisrc
|
||||
.RI [ -c | -l | -u] [-d] [-s] [-v] [-y] <source-dir> <dest-dir>
|
||||
.RI <aml-file>
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpisrc
|
||||
command. The option list is taken from the acpisrc interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpisrc
|
||||
converts the ACPICA into various forms for use with different operating
|
||||
systems.
|
||||
Source for ACPICA may be obtained from http://www.acpica.org/source/.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-c
|
||||
Generate cleaned version of the source
|
||||
.TP
|
||||
.B \-h
|
||||
Insert dual-license header into all module
|
||||
.TP
|
||||
.B \-l
|
||||
Generate Linux version of the source
|
||||
.TP
|
||||
.B \-u
|
||||
Generate custom source translation
|
||||
.TP
|
||||
.B \-d
|
||||
Leave debug statements in code
|
||||
.TP
|
||||
.B \-s
|
||||
Generate source statistics only
|
||||
.TP
|
||||
.B \-v
|
||||
Verbose mode
|
||||
.TP
|
||||
.B \-y
|
||||
Suppress file overwrite prompts
|
||||
|
||||
.SH AUTHOR
|
||||
acpisrc was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
BIN
acpitests-unix-20190509.tar.gz
Normal file
BIN
acpitests-unix-20190509.tar.gz
Normal file
Binary file not shown.
60
acpixtract.1
Normal file
60
acpixtract.1
Normal file
@ -0,0 +1,60 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ACPIXTRACT 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
acpixtract \- ACPICA source code conversion utility
|
||||
.SH SYNOPSIS
|
||||
.B acpixtract
|
||||
.RI [ <option> ... ]
|
||||
.RI <acpidump-file>
|
||||
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B acpixtract
|
||||
command. The option list is taken from the acpixtract interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B acpixtract
|
||||
extracts binary ACPI tables from the output of the
|
||||
.B acpidump
|
||||
command (see the
|
||||
.B pm-tools
|
||||
package). A default invocation will extract the DSDT and
|
||||
all SSDTs.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.TP
|
||||
.B \-a
|
||||
Extract all tables, not just DSDT/SSDT
|
||||
.TP
|
||||
.B \-l
|
||||
List table summaries, do not extract
|
||||
.TP
|
||||
.B \-s <signature>
|
||||
Extract all tables with <signature>
|
||||
|
||||
.SH AUTHOR
|
||||
acpixtract was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Al Stone <ahs3@redhat.com> for the
|
||||
Fedora project (but may be used by others).
|
||||
20
arm7hl.patch
Normal file
20
arm7hl.patch
Normal file
@ -0,0 +1,20 @@
|
||||
diff -Naur acpica-unix2-20170119/source/include/acmacros.h acpica-unix2-20170119-arm7hl/source/include/acmacros.h
|
||||
--- acpica-unix2-20170119/source/include/acmacros.h 2017-01-30 17:25:54.346151952 -0700
|
||||
+++ acpica-unix2-20170119-arm7hl/source/include/acmacros.h 2017-01-30 17:22:25.249388742 -0700
|
||||
@@ -178,6 +178,8 @@
|
||||
|
||||
/* 16-bit source, 16/32/64 destination */
|
||||
|
||||
+#define ACPI_MOVE_16_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];}
|
||||
+
|
||||
#define ACPI_MOVE_16_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
|
||||
(( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];}
|
||||
|
||||
@@ -199,6 +201,7 @@
|
||||
|
||||
/* 64-bit source, 16/32/64 destination */
|
||||
|
||||
+#define ACPI_MOVE_64_TO_8(d, s) ACPI_MOVE_16_TO_8(d, s) /* Truncate to 8 */
|
||||
#define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
|
||||
#define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */
|
||||
#define ACPI_MOVE_64_TO_64(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
|
||||
29
aslcodegen.patch
Normal file
29
aslcodegen.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Changes in the handling of comments caused some length fields to be used
|
||||
in new ways. The new way broke the existing adaptation for big endian
|
||||
support; this patch repairs that adaptation.
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@redhat.com>
|
||||
|
||||
Index: acpica-unix-20190405/source/compiler/aslcodegen.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/compiler/aslcodegen.c
|
||||
+++ acpica-unix-20190405/source/compiler/aslcodegen.c
|
||||
@@ -497,8 +497,7 @@ CgWriteTableHeader (
|
||||
|
||||
/* Table length. Checksum zero for now, will rewrite later */
|
||||
|
||||
- DWord = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
|
||||
- ACPI_MOVE_32_TO_32(&AslGbl_TableHeader.Length, &DWord);
|
||||
+ AslGbl_TableHeader.Length = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
|
||||
|
||||
/* Calculate the comment lengths for this definition block parseOp */
|
||||
|
||||
@@ -544,6 +543,8 @@ CgWriteTableHeader (
|
||||
CvDbgPrint (" Length: %u\n", CommentLength);
|
||||
}
|
||||
}
|
||||
+ DWord = AslGbl_TableHeader.Length;
|
||||
+ ACPI_MOVE_32_TO_32(&AslGbl_TableHeader.Length, &DWord);
|
||||
|
||||
AslGbl_TableHeader.Checksum = 0;
|
||||
Op->Asl.FinalAmlOffset = ftell (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
|
||||
266
badcode.asl.result
Normal file
266
badcode.asl.result
Normal file
@ -0,0 +1,266 @@
|
||||
badcode.asl 25: Mutex (MTX1, 32)
|
||||
Error 6125 - ^ SyncLevel must be in the range 0-15
|
||||
|
||||
badcode.asl 29: Name (BIG, 0x1234567887654321)
|
||||
Warning 3038 - ^ Truncating 64-bit constant found in 32-bit table
|
||||
|
||||
badcode.asl 33: Name (PKG1, Package(5) {0,1})
|
||||
Remark 2063 - ^ Initializer list shorter than declared package length
|
||||
|
||||
badcode.asl 37: Name (PATH, Buffer() {"\_SB_.PCI2._CRS"})
|
||||
Warning 3046 - ^ Invalid or unknown escape sequence
|
||||
|
||||
badcode.asl 41: Name (ESC1, "abcdefg\x00hijklmn")
|
||||
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
|
||||
|
||||
badcode.asl 49: FLD1, 8
|
||||
Error 6030 - ^ Access width of Field Unit extends beyond region limit
|
||||
|
||||
badcode.asl 55: Field (OPR2, DWordAcc, NoLock, Preserve)
|
||||
Error 6100 - ^ Host Operation Region requires ByteAcc access
|
||||
|
||||
badcode.asl 60: Field (OPR3, WordAcc, NoLock, Preserve)
|
||||
Error 6099 - ^ Host Operation Region requires BufferAcc access
|
||||
|
||||
badcode.asl 67: Method (MTH1, 0, NotSerialized, 32)
|
||||
Error 6125 - SyncLevel must be in the range 0-15 ^
|
||||
|
||||
badcode.asl 71: Store (Arg3, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
badcode.asl 71: Store (Arg3, Local0)
|
||||
Error 6006 - ^ Method argument is not initialized (Arg3)
|
||||
|
||||
badcode.asl 71: Store (Arg3, Local0)
|
||||
Remark 2087 - ^ Not a parameter, used as local only (Arg3)
|
||||
|
||||
badcode.asl 72: Store (Local1, Local2)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||
|
||||
badcode.asl 72: Store (Local1, Local2)
|
||||
Error 6066 - ^ Method local variable is not initialized (Local1)
|
||||
|
||||
badcode.asl 76: Subtract (MTX1, 4, Local3)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||
|
||||
badcode.asl 76: Subtract (MTX1, 4, Local3)
|
||||
Error 6058 - Invalid type ^ ([Mutex] found, Subtract operator requires [Integer|String|Buffer])
|
||||
|
||||
badcode.asl 80: CreateField (BUF1, 0, Subtract (4, 4), FLD1)
|
||||
Remark 2089 - Object is not referenced ^ (Name [FLD1] is within a method [MTH1])
|
||||
|
||||
badcode.asl 80: CreateField (BUF1, 0, Subtract (4, 4), FLD1)
|
||||
Warning 3083 - Field length must be non-zero ^
|
||||
|
||||
badcode.asl 84: Acquire (MTX1, 100)
|
||||
Warning 3130 - ^ Result is not used, possible operator timeout will be missed
|
||||
|
||||
badcode.asl 85: Wait (EVT1, 1)
|
||||
Warning 3130 - ^ Result is not used, possible operator timeout will be missed
|
||||
|
||||
badcode.asl 89: Add (INT1, 8)
|
||||
Error 6114 - ^ Result is not used, operator has no effect
|
||||
|
||||
badcode.asl 94: Store (5, INT1)
|
||||
Warning 3134 - ^ Statement is unreachable
|
||||
|
||||
badcode.asl 97: Method (MTH2)
|
||||
Remark 2119 - ^ Control Method marked Serialized (Due to use of Switch operator)
|
||||
|
||||
badcode.asl 97: Method (MTH2)
|
||||
Warning 3115 - ^ Not all control paths return a value (MTH2)
|
||||
|
||||
badcode.asl 101: Switch (ToInteger (INT1))
|
||||
Error 6078 - ^ No Case statements under Switch
|
||||
|
||||
badcode.asl 120: Store (MTH2 (), Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
badcode.asl 120: Store (MTH2 (), Local0)
|
||||
Warning 3122 - ^ Called method may not always return a value
|
||||
|
||||
badcode.asl 126: Method (MTH5) {Store (MTH4(), Local0)}
|
||||
Warning 3144 - Method Local is set but never used ^ (Local0)
|
||||
|
||||
badcode.asl 126: Method (MTH5) {Store (MTH4(), Local0)}
|
||||
Error 6080 - Called method returns no value ^
|
||||
|
||||
badcode.asl 132: Name (_HID, "*PNP0C0A") // Illegal leading asterisk
|
||||
Error 6061 - Invalid leading asterisk ^ (*PNP0C0A)
|
||||
|
||||
badcode.asl 136: Name (_HID, "PNP") // Too short, must be 7 or 8 chars
|
||||
Error 6033 - ^ _HID string must be exactly 7 or 8 characters (PNP)
|
||||
|
||||
badcode.asl 140: Name (_HID, "MYDEVICE01") // Too long, must be 7 or 8 chars
|
||||
Error 6033 - ^ _HID string must be exactly 7 or 8 characters (MYDEVICE01)
|
||||
|
||||
badcode.asl 144: Name (_HID, "acpi0001") // non-hex chars must be uppercase
|
||||
Error 6034 - ^ _HID prefix must be all uppercase or decimal digits (acpi0001)
|
||||
|
||||
badcode.asl 148: Name (_HID, "PNP-123") // HID must be alphanumeric
|
||||
Error 6002 - ^ String must be entirely alphanumeric (PNP-123)
|
||||
|
||||
badcode.asl 152: Name (_HID, "") // Illegal Null HID
|
||||
Error 6091 - ^ Invalid zero-length (null) string
|
||||
|
||||
badcode.asl 153: Name (_CID, "") // Illegal Null CID
|
||||
Error 6091 - ^ Invalid zero-length (null) string
|
||||
|
||||
badcode.asl 158: Name (_PRW, 4)
|
||||
Error 6105 - ^ Invalid object type for reserved name (_PRW: found Integer, Package required)
|
||||
|
||||
badcode.asl 159: Name (_FDI, Buffer () {0})
|
||||
Error 6105 - ^ Invalid object type for reserved name (_FDI: found Buffer, Package required)
|
||||
|
||||
badcode.asl 164: Method (_OSC, 5)
|
||||
Warning 3101 - ^ Reserved method has too many arguments (_OSC requires 4)
|
||||
|
||||
badcode.asl 164: Method (_OSC, 5)
|
||||
Warning 3107 - ^ Reserved method must return a value (Buffer required for _OSC)
|
||||
|
||||
badcode.asl 170: Name (_L01, 1)
|
||||
Error 6103 - ^ Reserved name must be a control method (with zero arguments)
|
||||
|
||||
badcode.asl 171: Name (_E02, 2)
|
||||
Error 6103 - ^ Reserved name must be a control method (with zero arguments)
|
||||
|
||||
badcode.asl 172: Name (_Q03, 3)
|
||||
Error 6103 - ^ Reserved name must be a control method (with zero arguments)
|
||||
|
||||
badcode.asl 173: Name (_ON, 0)
|
||||
Error 6103 - ^ Reserved name must be a control method (with zero arguments)
|
||||
|
||||
badcode.asl 174: Name (_INI, 1)
|
||||
Error 6103 - ^ Reserved name must be a control method (with zero arguments)
|
||||
|
||||
badcode.asl 175: Name (_PTP, 2)
|
||||
Error 6103 - ^ Reserved name must be a control method (with arguments)
|
||||
|
||||
badcode.asl 184: Method (_E1D)
|
||||
Error 6032 - ^ Name conflicts with a previous GPE method (_L1D)
|
||||
|
||||
badcode.asl 193: Return (Buffer(1){0x33})
|
||||
Warning 3104 - ^ Reserved method should not return a value (_FDM)
|
||||
|
||||
badcode.asl 197: Return ("Unexpected Return Value")
|
||||
Warning 3104 - Reserved method should not return a value ^ (_Q22)
|
||||
|
||||
badcode.asl 203: Device (EC)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
badcode.asl 205: Method (_REG, 2)
|
||||
Warning 3079 - ^ _REG has no corresponding Operation Region
|
||||
|
||||
badcode.asl 219: StartDependentFn (0, 0)
|
||||
Error 6019 - ^ Dependent function macros cannot be nested
|
||||
|
||||
badcode.asl 225: })
|
||||
Error 6070 - ^ Missing EndDependentFn() macro in dependent resource list
|
||||
|
||||
badcode.asl 242: 0x00002000, // Length
|
||||
Error 6049 - ^ Length is larger than Min/Max window
|
||||
|
||||
badcode.asl 247: 0x00001001, // Range Minimum
|
||||
Error 6001 - ^ Must be a multiple of alignment/granularity value
|
||||
|
||||
badcode.asl 248: 0x00002002, // Range Maximum
|
||||
Error 6001 - ^ Must be a multiple of alignment/granularity value
|
||||
|
||||
badcode.asl 255: 0xFFFF, // Address
|
||||
Warning 3060 - ^ Maximum 10-bit ISA address (0x3FF)
|
||||
|
||||
badcode.asl 264: 0x05 // Access Size
|
||||
Error 6042 - ^ Invalid AccessSize (Maximum is 4 - QWord access)
|
||||
|
||||
badcode.asl 268: QWordSpace (0xB0, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
|
||||
Error 6139 - Constant out of range ^ (0xB0, allowable: 0xC0-0xFF)
|
||||
|
||||
badcode.asl 279: 0x0200, // Range Minimum
|
||||
Error 6051 - ^ Address Min is greater than Address Max
|
||||
|
||||
badcode.asl 291: 0x00001002, // Length
|
||||
Error 6049 - ^ Length is larger than Min/Max window
|
||||
|
||||
badcode.asl 296: 0x00000010,
|
||||
Error 6048 - ^ Granularity must be zero or a power of two minus one
|
||||
|
||||
badcode.asl 305: 0x0000000000000B02, // Range Minimum
|
||||
Error 6001 - ^ Must be a multiple of alignment/granularity value
|
||||
|
||||
badcode.asl 315: 0x00000000002FFFFE, // Range Maximum
|
||||
Error 6001 - ^ Must be a multiple of alignment/granularity value (-1)
|
||||
|
||||
badcode.asl 326: 0x00000000, // Length
|
||||
Error 6043 - ^ Invalid combination of Length and Min/Max fixed flags
|
||||
|
||||
badcode.asl 335: 0x00000100, // Length
|
||||
Error 6043 - ^ Invalid combination of Length and Min/Max fixed flags
|
||||
|
||||
badcode.asl 344: 0x00000200, // Length
|
||||
Error 6043 - ^ Invalid combination of Length and Min/Max fixed flags
|
||||
|
||||
badcode.asl 349: 0x0000000F, // Granularity
|
||||
Error 6047 - ^ Granularity must be zero for fixed Min/Max
|
||||
|
||||
badcode.asl 358: DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||
Error 6090 - ^ Min/Max/Length/Gran are all zero, but no resource tag
|
||||
|
||||
badcode.asl 368: EndDependentFn ()
|
||||
Error 6071 - ^ Missing StartDependentFn() macro in dependent resource list
|
||||
|
||||
badcode.asl 388: CreateWordField (RSC3, \DWI1._LEN, LEN)
|
||||
Warning 3128 - ResourceTag larger than Field ^ (Size mismatch, Tag: 32 bits, Field: 16 bits)
|
||||
|
||||
badcode.asl 388: CreateWordField (RSC3, \DWI1._LEN, LEN)
|
||||
Remark 2089 - Object is not referenced ^ (Name [LEN_] is within a method [REM1])
|
||||
|
||||
badcode.asl 389: CreateByteField (RSC3, \DWI1._MIN, MIN)
|
||||
Warning 3128 - ResourceTag larger than Field ^ (Size mismatch, Tag: 32 bits, Field: 8 bits)
|
||||
|
||||
badcode.asl 389: CreateByteField (RSC3, \DWI1._MIN, MIN)
|
||||
Remark 2089 - Object is not referenced ^ (Name [MIN_] is within a method [REM1])
|
||||
|
||||
badcode.asl 390: CreateBitField (RSC3, \DWI1._RNG, RNG1)
|
||||
Warning 3128 - ResourceTag larger than Field ^ (Size mismatch, Tag: 2 bits, Field: 1 bit)
|
||||
|
||||
badcode.asl 390: CreateBitField (RSC3, \DWI1._RNG, RNG1)
|
||||
Remark 2089 - Object is not referenced ^ (Name [RNG1] is within a method [REM1])
|
||||
|
||||
badcode.asl 394: CreateQWordField (RSC3, \DWI1._MAX, MAX)
|
||||
Warning 3129 - ResourceTag smaller than Field ^ (Size mismatch, Tag: 32 bits, Field: 64 bits)
|
||||
|
||||
badcode.asl 394: CreateQWordField (RSC3, \DWI1._MAX, MAX)
|
||||
Remark 2089 - Object is not referenced ^ (Name [MAX_] is within a method [REM1])
|
||||
|
||||
badcode.asl 395: CreateBitField (RSC3, \DWI1._GRA, GRA)
|
||||
Warning 3128 - ResourceTag larger than Field ^ (Size mismatch, Tag: 32 bits, Field: 1 bit)
|
||||
|
||||
badcode.asl 395: CreateBitField (RSC3, \DWI1._GRA, GRA)
|
||||
Remark 2089 - Object is not referenced ^ (Name [GRA_] is within a method [REM1])
|
||||
|
||||
badcode.asl 396: CreateField (RSC3, \DWI1._MIF, 5, MIF)
|
||||
Warning 3129 - ResourceTag smaller than Field ^ (Size mismatch, Tag: 1 bit, Field: 5 bits)
|
||||
|
||||
badcode.asl 396: CreateField (RSC3, \DWI1._MIF, 5, MIF)
|
||||
Remark 2089 - Object is not referenced ^ (Name [MIF_] is within a method [REM1])
|
||||
|
||||
badcode.asl 397: CreateField (RSC3, \DWI1._RNG, 3, RNG2)
|
||||
Warning 3129 - ResourceTag smaller than Field ^ (Size mismatch, Tag: 2 bits, Field: 3 bits)
|
||||
|
||||
badcode.asl 397: CreateField (RSC3, \DWI1._RNG, 3, RNG2)
|
||||
Remark 2089 - Object is not referenced ^ (Name [RNG2] is within a method [REM1])
|
||||
|
||||
badcode.asl 404: Store (40, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
|
||||
Intel ACPI Component Architecture
|
||||
ASL+ Optimizing Compiler/Disassembler version VVVVVVVV
|
||||
Copyright (c) 2000 - 2019 Intel Corporation
|
||||
|
||||
Ignoring all errors, forcing AML file generation
|
||||
|
||||
ASL Input: badcode.asl - 11587 bytes 81 keywords 408 source lines
|
||||
AML Output: badcode.aml - 1195 bytes 20 opcodes 61 named objects
|
||||
|
||||
Compilation successful. 45 Errors, 29 Warnings, 11 Remarks, 16 Optimizations, 1 Constants Folded
|
||||
18
big-endian-v2.patch
Normal file
18
big-endian-v2.patch
Normal file
@ -0,0 +1,18 @@
|
||||
Updated versions of upstream often contain fixes that were not seen
|
||||
in the original big-endian patch; we try to capture those here.
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@redhat.com>
|
||||
|
||||
diff -Naur acpica-unix2-20170929.orig/source/compiler/asllookup.c acpica-unix2-20170929/source/compiler/asllookup.c
|
||||
--- acpica-unix2-20170929.orig/source/compiler/asllookup.c 2017-10-09 12:26:25.893508481 -0600
|
||||
+++ acpica-unix2-20170929/source/compiler/asllookup.c 2017-10-17 11:45:42.230763844 -0600
|
||||
@@ -249,7 +249,8 @@
|
||||
* ACPI names and are typically not referenced since they are meant
|
||||
* to be called by the host OS.
|
||||
*/
|
||||
- if (Node->Name.Ascii[0] == '_')
|
||||
+ ACPI_MOVE_32_TO_32(&tmp.Ascii, Node->Name.Ascii);
|
||||
+ if (tmp.Ascii[0] == '_')
|
||||
{
|
||||
return (AE_OK);
|
||||
}
|
||||
6643
big-endian.patch
Normal file
6643
big-endian.patch
Normal file
File diff suppressed because it is too large
Load Diff
24
converterSample.asl.result
Normal file
24
converterSample.asl.result
Normal file
@ -0,0 +1,24 @@
|
||||
converterSample.asl 37: Method(MAIN) {
|
||||
Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within)
|
||||
|
||||
converterSample.asl 48: Name(b,0);
|
||||
Remark 2089 - Object is not referenced ^ (Name [B___] is within a method [MAIN])
|
||||
|
||||
converterSample.asl 65: Method(SCOP)
|
||||
Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within)
|
||||
|
||||
converterSample.asl 68: Name (a1, 0x04)
|
||||
Remark 2089 - Object is not referenced ^ (Name [A1__] is within a method [SCOP])
|
||||
|
||||
converterSample.asl 76: Offset(0),//c37
|
||||
Remark 2158 - ^ Unnecessary/redundant use of Offset operator
|
||||
|
||||
|
||||
Intel ACPI Component Architecture
|
||||
ASL+ Optimizing Compiler/Disassembler version VVVVVVVV
|
||||
Copyright (c) 2000 - 2019 Intel Corporation
|
||||
|
||||
ASL Input: converterSample.asl - 1968 bytes 11 keywords 85 source lines
|
||||
AML Output: converterSample.aml - 180 bytes 2 opcodes 9 named objects
|
||||
|
||||
Compilation successful. 0 Errors, 0 Warnings, 5 Remarks, 12 Optimizations, 1 Constants Folded
|
||||
99
cve-2017-13693.patch
Normal file
99
cve-2017-13693.patch
Normal file
@ -0,0 +1,99 @@
|
||||
From 987a3b5cf7175916e2a4b6ea5b8e70f830dfe732 Mon Sep 17 00:00:00 2001
|
||||
From: Seunghun Han <kkamagui@gmail.com>
|
||||
Date: Wed, 19 Jul 2017 16:47:53 +0900
|
||||
Subject: [PATCH] acpi: acpica: fix acpi operand cache leak in dswstate.c
|
||||
|
||||
I found an ACPI cache leak in ACPI early termination and boot continuing case.
|
||||
|
||||
When early termination occurs due to malicious ACPI table, Linux kernel
|
||||
terminates ACPI function and continues to boot process. While kernel terminates
|
||||
ACPI function, kmem_cache_destroy() reports Acpi-Operand cache leak.
|
||||
|
||||
Boot log of ACPI operand cache leak is as follows:
|
||||
>[ 0.585957] ACPI: Added _OSI(Module Device)
|
||||
>[ 0.587218] ACPI: Added _OSI(Processor Device)
|
||||
>[ 0.588530] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
>[ 0.589790] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
>[ 0.591534] ACPI Error: Illegal I/O port address/length above 64K: C806E00000004002/0x2 (20170303/hwvalid-155)
|
||||
>[ 0.594351] ACPI Exception: AE_LIMIT, Unable to initialize fixed events (20170303/evevent-88)
|
||||
>[ 0.597858] ACPI: Unable to start the ACPI Interpreter
|
||||
>[ 0.599162] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
|
||||
>[ 0.601836] kmem_cache_destroy Acpi-Operand: Slab cache still has objects
|
||||
>[ 0.603556] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc5 #26
|
||||
>[ 0.605159] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
|
||||
>[ 0.609177] Call Trace:
|
||||
>[ 0.610063] ? dump_stack+0x5c/0x81
|
||||
>[ 0.611118] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
>[ 0.612632] ? acpi_sleep_proc_init+0x27/0x27
|
||||
>[ 0.613906] ? acpi_os_delete_cache+0xa/0x10
|
||||
>[ 0.617986] ? acpi_ut_delete_caches+0x3f/0x7b
|
||||
>[ 0.619293] ? acpi_terminate+0xa/0x14
|
||||
>[ 0.620394] ? acpi_init+0x2af/0x34f
|
||||
>[ 0.621616] ? __class_create+0x4c/0x80
|
||||
>[ 0.623412] ? video_setup+0x7f/0x7f
|
||||
>[ 0.624585] ? acpi_sleep_proc_init+0x27/0x27
|
||||
>[ 0.625861] ? do_one_initcall+0x4e/0x1a0
|
||||
>[ 0.627513] ? kernel_init_freeable+0x19e/0x21f
|
||||
>[ 0.628972] ? rest_init+0x80/0x80
|
||||
>[ 0.630043] ? kernel_init+0xa/0x100
|
||||
>[ 0.631084] ? ret_from_fork+0x25/0x30
|
||||
>[ 0.633343] vgaarb: loaded
|
||||
>[ 0.635036] EDAC MC: Ver: 3.0.0
|
||||
>[ 0.638601] PCI: Probing PCI hardware
|
||||
>[ 0.639833] PCI host bridge to bus 0000:00
|
||||
>[ 0.641031] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
|
||||
> ... Continue to boot and log is omitted ...
|
||||
|
||||
I analyzed this memory leak in detail and found acpi_ds_obj_stack_pop_and_
|
||||
delete() function miscalculated the top of the stack. acpi_ds_obj_stack_push()
|
||||
function uses walk_state->operand_index for start position of the top, but
|
||||
acpi_ds_obj_stack_pop_and_delete() function considers index 0 for it.
|
||||
Therefore, this causes acpi operand memory leak.
|
||||
|
||||
This cache leak causes a security threat because an old kernel (<= 4.9) shows
|
||||
memory locations of kernel functions in stack dump. Some malicious users
|
||||
could use this information to neutralize kernel ASLR.
|
||||
|
||||
I made a patch to fix ACPI operand cache leak.
|
||||
|
||||
Signed-off-by: Seunghun Han <kkamagui@gmail.com>
|
||||
|
||||
Github-Location: https://github.com/acpica/acpica/pull/295/commits/987a3b5cf7175916e2a4b6ea5b8e70f830dfe732
|
||||
---
|
||||
source/components/dispatcher/dsutils.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: acpica-unix2-20181213/source/components/dispatcher/dsutils.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20181213.orig/source/components/dispatcher/dsutils.c
|
||||
+++ acpica-unix2-20181213/source/components/dispatcher/dsutils.c
|
||||
@@ -759,6 +759,8 @@ AcpiDsCreateOperands (
|
||||
ACPI_PARSE_OBJECT *Arguments[ACPI_OBJ_NUM_OPERANDS];
|
||||
UINT32 ArgCount = 0;
|
||||
UINT32 Index = WalkState->NumOperands;
|
||||
+ UINT32 PrevNumOperands = WalkState->NumOperands;
|
||||
+ UINT32 NewNumOperands;
|
||||
UINT32 i;
|
||||
|
||||
|
||||
@@ -791,6 +793,7 @@ AcpiDsCreateOperands (
|
||||
|
||||
/* Create the interpreter arguments, in reverse order */
|
||||
|
||||
+ NewNumOperands = Index;
|
||||
Index--;
|
||||
for (i = 0; i < ArgCount; i++)
|
||||
{
|
||||
@@ -818,7 +821,11 @@ Cleanup:
|
||||
* pop everything off of the operand stack and delete those
|
||||
* objects
|
||||
*/
|
||||
- AcpiDsObjStackPopAndDelete (ArgCount, WalkState);
|
||||
+ WalkState->NumOperands = i;
|
||||
+ AcpiDsObjStackPopAndDelete (NewNumOperands, WalkState);
|
||||
+
|
||||
+ /* Restore operand count */
|
||||
+ WalkState->NumOperands = PrevNumOperands;
|
||||
|
||||
ACPI_EXCEPTION ((AE_INFO, Status, "While creating Arg %u", Index));
|
||||
return_ACPI_STATUS (Status);
|
||||
216
cve-2017-13694.patch
Normal file
216
cve-2017-13694.patch
Normal file
@ -0,0 +1,216 @@
|
||||
From 4a0243ecb4c94e2d73510d096c5ea4d0711fc6c0 Mon Sep 17 00:00:00 2001
|
||||
From: Seunghun Han <kkamagui@gmail.com>
|
||||
Date: Fri, 23 Jun 2017 14:19:48 +0900
|
||||
Subject: [PATCH] acpi: acpica: fix acpi parse and parseext cache leaks
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
I'm Seunghun Han, and I work for National Security Research Institute of
|
||||
South Korea.
|
||||
|
||||
I have been doing a research on ACPI and found an ACPI cache leak in ACPI
|
||||
early abort cases.
|
||||
|
||||
Boot log of ACPI cache leak is as follows:
|
||||
[ 0.352414] ACPI: Added _OSI(Module Device)
|
||||
[ 0.353182] ACPI: Added _OSI(Processor Device)
|
||||
[ 0.353182] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
[ 0.353182] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
[ 0.356028] ACPI: Unable to start the ACPI Interpreter
|
||||
[ 0.356799] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
|
||||
[ 0.360215] kmem_cache_destroy Acpi-State: Slab cache still has objects
|
||||
[ 0.360648] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W
|
||||
4.12.0-rc4-next-20170608+ #10
|
||||
[ 0.361273] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
|
||||
VirtualBox 12/01/2006
|
||||
[ 0.361873] Call Trace:
|
||||
[ 0.362243] ? dump_stack+0x5c/0x81
|
||||
[ 0.362591] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
[ 0.362944] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.363296] ? acpi_os_delete_cache+0xa/0x10
|
||||
[ 0.363646] ? acpi_ut_delete_caches+0x6d/0x7b
|
||||
[ 0.364000] ? acpi_terminate+0xa/0x14
|
||||
[ 0.364000] ? acpi_init+0x2af/0x34f
|
||||
[ 0.364000] ? __class_create+0x4c/0x80
|
||||
[ 0.364000] ? video_setup+0x7f/0x7f
|
||||
[ 0.364000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.364000] ? do_one_initcall+0x4e/0x1a0
|
||||
[ 0.364000] ? kernel_init_freeable+0x189/0x20a
|
||||
[ 0.364000] ? rest_init+0xc0/0xc0
|
||||
[ 0.364000] ? kernel_init+0xa/0x100
|
||||
[ 0.364000] ? ret_from_fork+0x25/0x30
|
||||
|
||||
I analyzed this memory leak in detail. I found that “Acpi-State” cache and
|
||||
“Acpi-Parse” cache were merged because the size of cache objects was same
|
||||
slab cache size.
|
||||
|
||||
I finally found “Acpi-Parse” cache and “Acpi-ParseExt” cache were leaked
|
||||
using SLAB_NEVER_MERGE flag in kmem_cache_create() function.
|
||||
|
||||
Real ACPI cache leak point is as follows:
|
||||
[ 0.360101] ACPI: Added _OSI(Module Device)
|
||||
[ 0.360101] ACPI: Added _OSI(Processor Device)
|
||||
[ 0.360101] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
[ 0.361043] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
[ 0.364016] ACPI: Unable to start the ACPI Interpreter
|
||||
[ 0.365061] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
|
||||
[ 0.368174] kmem_cache_destroy Acpi-Parse: Slab cache still has objects
|
||||
[ 0.369332] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
|
||||
4.12.0-rc4-next-20170608+ #8
|
||||
[ 0.371256] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
|
||||
VirtualBox 12/01/2006
|
||||
[ 0.372000] Call Trace:
|
||||
[ 0.372000] ? dump_stack+0x5c/0x81
|
||||
[ 0.372000] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
[ 0.372000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.372000] ? acpi_os_delete_cache+0xa/0x10
|
||||
[ 0.372000] ? acpi_ut_delete_caches+0x56/0x7b
|
||||
[ 0.372000] ? acpi_terminate+0xa/0x14
|
||||
[ 0.372000] ? acpi_init+0x2af/0x34f
|
||||
[ 0.372000] ? __class_create+0x4c/0x80
|
||||
[ 0.372000] ? video_setup+0x7f/0x7f
|
||||
[ 0.372000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.372000] ? do_one_initcall+0x4e/0x1a0
|
||||
[ 0.372000] ? kernel_init_freeable+0x189/0x20a
|
||||
[ 0.372000] ? rest_init+0xc0/0xc0
|
||||
[ 0.372000] ? kernel_init+0xa/0x100
|
||||
[ 0.372000] ? ret_from_fork+0x25/0x30
|
||||
[ 0.388039] kmem_cache_destroy Acpi-ParseExt: Slab cache still has objects
|
||||
[ 0.389063] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
|
||||
4.12.0-rc4-next-20170608+ #8
|
||||
[ 0.390557] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
|
||||
VirtualBox 12/01/2006
|
||||
[ 0.392000] Call Trace:
|
||||
[ 0.392000] ? dump_stack+0x5c/0x81
|
||||
[ 0.392000] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
[ 0.392000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.392000] ? acpi_os_delete_cache+0xa/0x10
|
||||
[ 0.392000] ? acpi_ut_delete_caches+0x6d/0x7b
|
||||
[ 0.392000] ? acpi_terminate+0xa/0x14
|
||||
[ 0.392000] ? acpi_init+0x2af/0x34f
|
||||
[ 0.392000] ? __class_create+0x4c/0x80
|
||||
[ 0.392000] ? video_setup+0x7f/0x7f
|
||||
[ 0.392000] ? acpi_sleep_proc_init+0x27/0x27
|
||||
[ 0.392000] ? do_one_initcall+0x4e/0x1a0
|
||||
[ 0.392000] ? kernel_init_freeable+0x189/0x20a
|
||||
[ 0.392000] ? rest_init+0xc0/0xc0
|
||||
[ 0.392000] ? kernel_init+0xa/0x100
|
||||
[ 0.392000] ? ret_from_fork+0x25/0x30
|
||||
|
||||
When early abort is occurred due to invalid ACPI information, Linux kernel
|
||||
terminates ACPI by calling acpi_terminate() function. The function calls
|
||||
acpi_ut_delete_caches() function to delete local caches (acpi_gbl_namespace_
|
||||
cache, state_cache, operand_cache, ps_node_cache, ps_node_ext_cache).
|
||||
|
||||
But the deletion codes in acpi_ut_delete_caches() function only delete
|
||||
slab caches using kmem_cache_destroy() function, therefore the cache
|
||||
objects should be flushed before acpi_ut_delete_caches() function.
|
||||
|
||||
“Acpi-Parse” cache and “Acpi-ParseExt” cache are used in an AML parse
|
||||
function, acpi_ps_parse_loop(). The function should have flush codes to
|
||||
handle an error state due to invalid AML codes.
|
||||
|
||||
This cache leak has a security threat because an old kernel (<= 4.9) shows
|
||||
memory locations of kernel functions in stack dump. Some malicious users
|
||||
could use this information to neutralize kernel ASLR.
|
||||
|
||||
To fix ACPI cache leak for enhancing security, I made a patch which has
|
||||
flush codes in acpi_ps_parse_loop() function.
|
||||
|
||||
I hope that this patch improves the security of Linux kernel.
|
||||
|
||||
Thank you.
|
||||
|
||||
Signed-off-by: Seunghun Han <kkamagui@gmail.com>
|
||||
|
||||
Github-Location: https://github.com/acpica/acpica/pull/278/commits/4a0243ecb4c94e2d73510d096c5ea4d0711fc6c0
|
||||
|
||||
---
|
||||
source/components/parser/psobject.c | 44 ++++++++++++++-----------------------
|
||||
1 file changed, 16 insertions(+), 28 deletions(-)
|
||||
|
||||
Index: acpica-unix2-20180531/source/components/parser/psobject.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20180531.orig/source/components/parser/psobject.c
|
||||
+++ acpica-unix2-20180531/source/components/parser/psobject.c
|
||||
@@ -709,7 +709,8 @@ AcpiPsCompleteFinalOp (
|
||||
ACPI_PARSE_OBJECT *Op,
|
||||
ACPI_STATUS Status)
|
||||
{
|
||||
- ACPI_STATUS Status2;
|
||||
+ ACPI_STATUS ReturnStatus = AE_OK;
|
||||
+ BOOLEAN Ascending = TRUE;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR (PsCompleteFinalOp, WalkState);
|
||||
@@ -726,7 +727,7 @@ AcpiPsCompleteFinalOp (
|
||||
{
|
||||
if (Op)
|
||||
{
|
||||
- if (WalkState->AscendingCallback != NULL)
|
||||
+ if (Ascending && WalkState->AscendingCallback != NULL)
|
||||
{
|
||||
WalkState->Op = Op;
|
||||
WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
|
||||
@@ -745,41 +746,28 @@ AcpiPsCompleteFinalOp (
|
||||
|
||||
if (Status == AE_CTRL_TERMINATE)
|
||||
{
|
||||
- Status = AE_OK;
|
||||
-
|
||||
- /* Clean up */
|
||||
- do
|
||||
- {
|
||||
- if (Op)
|
||||
- {
|
||||
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
|
||||
- if (ACPI_FAILURE (Status2))
|
||||
- {
|
||||
- return_ACPI_STATUS (Status2);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- AcpiPsPopScope (&(WalkState->ParserState), &Op,
|
||||
- &WalkState->ArgTypes, &WalkState->ArgCount);
|
||||
-
|
||||
- } while (Op);
|
||||
-
|
||||
- return_ACPI_STATUS (Status);
|
||||
+ Ascending = FALSE;
|
||||
+ ReturnStatus = AE_CTRL_TERMINATE;
|
||||
}
|
||||
|
||||
else if (ACPI_FAILURE (Status))
|
||||
{
|
||||
/* First error is most important */
|
||||
|
||||
- (void) AcpiPsCompleteThisOp (WalkState, Op);
|
||||
- return_ACPI_STATUS (Status);
|
||||
+ Ascending = FALSE;
|
||||
+ ReturnStatus = Status;
|
||||
}
|
||||
}
|
||||
|
||||
- Status2 = AcpiPsCompleteThisOp (WalkState, Op);
|
||||
- if (ACPI_FAILURE (Status2))
|
||||
+ Status = AcpiPsCompleteThisOp (WalkState, Op);
|
||||
+ if (ACPI_FAILURE (Status))
|
||||
{
|
||||
- return_ACPI_STATUS (Status2);
|
||||
+ Ascending = FALSE;
|
||||
+ if (ACPI_SUCCESS (ReturnStatus) ||
|
||||
+ ReturnStatus == AE_CTRL_TERMINATE)
|
||||
+ {
|
||||
+ ReturnStatus = Status;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -788,5 +776,5 @@ AcpiPsCompleteFinalOp (
|
||||
|
||||
} while (Op);
|
||||
|
||||
- return_ACPI_STATUS (Status);
|
||||
+ return_ACPI_STATUS (ReturnStatus);
|
||||
}
|
||||
90
cve-2017-13695.patch
Normal file
90
cve-2017-13695.patch
Normal file
@ -0,0 +1,90 @@
|
||||
From 37f2c716f2c6ab14c3ba557a539c3ee3224931b5 Mon Sep 17 00:00:00 2001
|
||||
From: Seunghun Han <kkamagui@gmail.com>
|
||||
Date: Wed, 19 Jul 2017 17:04:44 +0900
|
||||
Subject: [PATCH] acpi: acpica: fix acpi operand cache leak in nseval.c
|
||||
|
||||
I found an ACPI cache leak in ACPI early termination and boot continuing case.
|
||||
|
||||
When early termination occurs due to malicious ACPI table, Linux kernel
|
||||
terminates ACPI function and continues to boot process. While kernel terminates
|
||||
ACPI function, kmem_cache_destroy() reports Acpi-Operand cache leak.
|
||||
|
||||
Boot log of ACPI operand cache leak is as follows:
|
||||
>[ 0.464168] ACPI: Added _OSI(Module Device)
|
||||
>[ 0.467022] ACPI: Added _OSI(Processor Device)
|
||||
>[ 0.469376] ACPI: Added _OSI(3.0 _SCP Extensions)
|
||||
>[ 0.471647] ACPI: Added _OSI(Processor Aggregator Device)
|
||||
>[ 0.477997] ACPI Error: Null stack entry at ffff880215c0aad8 (20170303/exresop-174)
|
||||
>[ 0.482706] ACPI Exception: AE_AML_INTERNAL, While resolving operands for [OpcodeName unavailable] (20170303/dswexec-461)
|
||||
>[ 0.487503] ACPI Error: Method parse/execution failed [\DBG] (Node ffff88021710ab40), AE_AML_INTERNAL (20170303/psparse-543)
|
||||
>[ 0.492136] ACPI Error: Method parse/execution failed [\_SB._INI] (Node ffff88021710a618), AE_AML_INTERNAL (20170303/psparse-543)
|
||||
>[ 0.497683] ACPI: Interpreter enabled
|
||||
>[ 0.499385] ACPI: (supports S0)
|
||||
>[ 0.501151] ACPI: Using IOAPIC for interrupt routing
|
||||
>[ 0.503342] ACPI Error: Null stack entry at ffff880215c0aad8 (20170303/exresop-174)
|
||||
>[ 0.506522] ACPI Exception: AE_AML_INTERNAL, While resolving operands for [OpcodeName unavailable] (20170303/dswexec-461)
|
||||
>[ 0.510463] ACPI Error: Method parse/execution failed [\DBG] (Node ffff88021710ab40), AE_AML_INTERNAL (20170303/psparse-543)
|
||||
>[ 0.514477] ACPI Error: Method parse/execution failed [\_PIC] (Node ffff88021710ab18), AE_AML_INTERNAL (20170303/psparse-543)
|
||||
>[ 0.518867] ACPI Exception: AE_AML_INTERNAL, Evaluating _PIC (20170303/bus-991)
|
||||
>[ 0.522384] kmem_cache_destroy Acpi-Operand: Slab cache still has objects
|
||||
>[ 0.524597] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc5 #26
|
||||
>[ 0.526795] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
|
||||
>[ 0.529668] Call Trace:
|
||||
>[ 0.530811] ? dump_stack+0x5c/0x81
|
||||
>[ 0.532240] ? kmem_cache_destroy+0x1aa/0x1c0
|
||||
>[ 0.533905] ? acpi_os_delete_cache+0xa/0x10
|
||||
>[ 0.535497] ? acpi_ut_delete_caches+0x3f/0x7b
|
||||
>[ 0.537237] ? acpi_terminate+0xa/0x14
|
||||
>[ 0.538701] ? acpi_init+0x2af/0x34f
|
||||
>[ 0.540008] ? acpi_sleep_proc_init+0x27/0x27
|
||||
>[ 0.541593] ? do_one_initcall+0x4e/0x1a0
|
||||
>[ 0.543008] ? kernel_init_freeable+0x19e/0x21f
|
||||
>[ 0.546202] ? rest_init+0x80/0x80
|
||||
>[ 0.547513] ? kernel_init+0xa/0x100
|
||||
>[ 0.548817] ? ret_from_fork+0x25/0x30
|
||||
>[ 0.550587] vgaarb: loaded
|
||||
>[ 0.551716] EDAC MC: Ver: 3.0.0
|
||||
>[ 0.553744] PCI: Probing PCI hardware
|
||||
>[ 0.555038] PCI host bridge to bus 0000:00
|
||||
> ... Continue to boot and log is omitted ...
|
||||
|
||||
I analyzed this memory leak in detail and found AcpiNsEvaluate() function
|
||||
only removes Info->ReturnObject in AE_CTRL_RETURN_VALUE case. But, when errors
|
||||
occur, the status value is not AE_CTRL_RETURN_VALUE, and Info->ReturnObject is
|
||||
also not null. Therefore, this causes acpi operand memory leak.
|
||||
|
||||
This cache leak causes a security threat because an old kernel (<= 4.9) shows
|
||||
memory locations of kernel functions in stack dump. Some malicious users
|
||||
could use this information to neutralize kernel ASLR.
|
||||
|
||||
I made a patch to fix ACPI operand cache leak.
|
||||
|
||||
Signed-off-by: Seunghun Han <kkamagui@gmail.com>
|
||||
|
||||
Github-Location: https://github.com/acpica/acpica/pull/296/commits/37f2c716f2c6ab14c3ba557a539c3ee3224931b5
|
||||
|
||||
---
|
||||
source/components/namespace/nseval.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
Index: acpica-unix2-20181213/source/components/namespace/nseval.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20181213.orig/source/components/namespace/nseval.c
|
||||
+++ acpica-unix2-20181213/source/components/namespace/nseval.c
|
||||
@@ -336,6 +336,16 @@ AcpiNsEvaluate (
|
||||
Info->ReturnObject = NULL;
|
||||
}
|
||||
}
|
||||
+ else if (ACPI_FAILURE(Status))
|
||||
+ {
|
||||
+ /* If ReturnObject exists, delete it */
|
||||
+
|
||||
+ if (Info->ReturnObject)
|
||||
+ {
|
||||
+ AcpiUtRemoveReference (Info->ReturnObject);
|
||||
+ Info->ReturnObject = NULL;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_NAMES,
|
||||
"*** Completed evaluation of object %s ***\n",
|
||||
61
f23-harden.patch
Normal file
61
f23-harden.patch
Normal file
@ -0,0 +1,61 @@
|
||||
Introduce build hardening flags for f23
|
||||
|
||||
From: Al Stone <ahs3@redhat.com>
|
||||
|
||||
|
||||
---
|
||||
generate/unix/Makefile.config | 2 ++
|
||||
generate/unix/iasl/Makefile | 13 +++++++------
|
||||
2 files changed, 9 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: acpica-unix2-20180209/generate/unix/Makefile.config
|
||||
===================================================================
|
||||
--- acpica-unix2-20180209.orig/generate/unix/Makefile.config
|
||||
+++ acpica-unix2-20180209/generate/unix/Makefile.config
|
||||
@@ -182,6 +182,8 @@ ifneq ($(NOFORTIFY),TRUE)
|
||||
OPT_CFLAGS += -D_FORTIFY_SOURCE=2
|
||||
endif
|
||||
|
||||
+OPT_CFLAGS += -fPIC -pie
|
||||
+
|
||||
CFLAGS += \
|
||||
-D$(HOST)\
|
||||
-D_GNU_SOURCE\
|
||||
Index: acpica-unix2-20180209/generate/unix/iasl/Makefile
|
||||
===================================================================
|
||||
--- acpica-unix2-20180209.orig/generate/unix/iasl/Makefile
|
||||
+++ acpica-unix2-20180209/generate/unix/iasl/Makefile
|
||||
@@ -344,26 +344,27 @@ $(OBJDIR)/prparserparse.c $(OBJDIR)/prpa
|
||||
# Cannot use the common compile warning flags since the C files are created
|
||||
# by the utilities above and they are not necessarily ANSI C, etc.
|
||||
#
|
||||
+HARDENING_FLAGS = -fPIC -pie
|
||||
$(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
|
||||
$(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c
|
||||
@echo "- " "Intermediate" $<
|
||||
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||
31
facp.patch
Normal file
31
facp.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 7670c56ebe004e698551635f9c5d48a1794066dd Mon Sep 17 00:00:00 2001
|
||||
From: Al Stone <ahs3@ahs3.net>
|
||||
Date: Wed, 19 Dec 2018 16:52:41 -0700
|
||||
Subject: [PATCH] Correct DSDT Address field in FACP tables
|
||||
|
||||
The FADT allows either the DSDT Address or XDSDT Address field to be
|
||||
zero. However, the table definition used by the table compiler still
|
||||
requires the DSDT Address to be non-zero, which is not correct. So,
|
||||
remove the DT_NON_ZERO flag from the field.
|
||||
|
||||
Signed-off-by: Al Stone <ahs3@redhat.com>
|
||||
---
|
||||
source/common/dmtbinfo.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/source/common/dmtbinfo.c b/source/common/dmtbinfo.c
|
||||
index 2e1c54f84..07d3ce099 100644
|
||||
--- a/source/common/dmtbinfo.c
|
||||
+++ b/source/common/dmtbinfo.c
|
||||
@@ -292,7 +292,7 @@ ACPI_DMTABLE_INFO AcpiDmTableInfoFacs[] =
|
||||
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] =
|
||||
{
|
||||
{ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Facs), "FACS Address", 0},
|
||||
- {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address", DT_NON_ZERO},
|
||||
+ {ACPI_DMT_UINT32, ACPI_FADT_OFFSET (Dsdt), "DSDT Address", 0},
|
||||
{ACPI_DMT_UINT8, ACPI_FADT_OFFSET (Model), "Model", 0},
|
||||
{ACPI_DMT_FADTPM, ACPI_FADT_OFFSET (PreferredProfile), "PM Profile", 0},
|
||||
{ACPI_DMT_UINT16, ACPI_FADT_OFFSET (SciInterrupt), "SCI Interrupt", 0},
|
||||
--
|
||||
2.20.1
|
||||
|
||||
381
grammar.asl.result
Normal file
381
grammar.asl.result
Normal file
@ -0,0 +1,381 @@
|
||||
ACPI Warning: NsLookup: Type mismatch on GIDX (RegionField), searching for (Region) (20190509/nsaccess-732)
|
||||
ACPI Warning: NsLookup: Type mismatch on IDX2 (RegionField), searching for (Region) (20190509/nsaccess-732)
|
||||
ACPI Warning: NsLookup: Type mismatch on INDX (RegionField), searching for (Region) (20190509/nsaccess-732)
|
||||
ACPI Warning: NsLookup: Type mismatch on AIDX (RegionField), searching for (Region) (20190509/nsaccess-732)
|
||||
ACPI Warning: NsLookup: Type mismatch on C05D (RegionField), searching for (Region) (20190509/nsaccess-732)
|
||||
ACPI Warning: NsLookup: Type mismatch on INDX (RegionField), searching for (Region) (20190509/nsaccess-732)
|
||||
ACPI Warning: NsLookup: Type mismatch on IND2 (RegionField), searching for (Region) (20190509/nsaccess-732)
|
||||
grammar.asl 120: Device (A1)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 135: Device (A2)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 145: Device (A3)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 155: Device (A4)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 171: Device (IRES)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 199: Name (_NPK, Package ()
|
||||
Warning 3133 - ^ Unknown reserved name (_NPK)
|
||||
|
||||
grammar.asl 208: Device (RES)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 399: CreateByteField (PRT0, R000._ASZ, RSIZ)
|
||||
Remark 2089 - Object is not referenced ^ (Name [RSIZ] is within a method [_CRS])
|
||||
|
||||
grammar.asl 513: Name (_STR, Unicode ("test"))
|
||||
Remark 2089 - ^ Object is not referenced (Name [_STR] is within a method [TCOP])
|
||||
|
||||
grammar.asl 515: Store (MFLD, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
grammar.asl 522: NAME (ESC1, "abcdefg\x00hijklmn")
|
||||
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
|
||||
|
||||
grammar.asl 523: NAME (ESC2, "abcdefg\000hijklmn")
|
||||
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
|
||||
|
||||
grammar.asl 620: RCIV (Subtract (Arg0, 1))
|
||||
Remark 2098 - ^ Recursive method call (RCIV)
|
||||
|
||||
grammar.asl 668: Method(SMWE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||
|
||||
grammar.asl 668: Method(SMWE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||
|
||||
grammar.asl 668: Method(SMWE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg2)
|
||||
|
||||
grammar.asl 668: Method(SMWE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg3)
|
||||
|
||||
grammar.asl 673: Method(SMRE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||
|
||||
grammar.asl 673: Method(SMRE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||
|
||||
grammar.asl 673: Method(SMRE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg2)
|
||||
|
||||
grammar.asl 673: Method(SMRE, 4)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg3)
|
||||
|
||||
grammar.asl 701: CreateField (\_SB_.SBUF, 148, 96, FLDV)
|
||||
Remark 2089 - Object is not referenced ^ (Name [FLDV] is within a method [_INI])
|
||||
|
||||
grammar.asl 733: Method(_SRS)
|
||||
Warning 3102 - ^ Reserved method has too few arguments (_SRS requires 1)
|
||||
|
||||
grammar.asl 738: Device(EIO)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 822: If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
|
||||
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||
|
||||
grammar.asl 913: Device (DEV1)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 963: Divide (Local0, Local1, Local3)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||
|
||||
grammar.asl 988: Method (R226, 2)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||
|
||||
grammar.asl 988: Method (R226, 2)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||
|
||||
grammar.asl 1011: Store (Local0, Local1)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local1)
|
||||
|
||||
grammar.asl 1296: Method (OBJ1, 1, SERIALIZED)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||
|
||||
grammar.asl 1300: Name(BUFR, Buffer (Local0) {})
|
||||
Remark 2089 - ^ Object is not referenced (Name [BUFR] is within a method [OBJ1])
|
||||
|
||||
grammar.asl 1307: Alias (MTX1, MTX2)
|
||||
Remark 2089 - Object is not referenced ^ (Name [MTX2] is within a method [OBJ1])
|
||||
|
||||
grammar.asl 1329: CreateField (BUF2, 148, 96, FLD3)
|
||||
Remark 2089 - Object is not referenced ^ (Name [FLD3] is within a method [FLDS])
|
||||
|
||||
grammar.asl 1394: Store (0x1234567887654321, QWD2)
|
||||
Warning 3038 - ^ Truncating 64-bit constant found in 32-bit table
|
||||
|
||||
grammar.asl 1396: if (LNotEqual (Local0, 0x1234567887654321))
|
||||
Warning 3038 - Truncating 64-bit constant found in 32-bit table ^
|
||||
|
||||
grammar.asl 1476: SizeOf (BUFO)
|
||||
Error 6114 - ^ Result is not used, operator has no effect
|
||||
|
||||
grammar.asl 1496: Alias (MTX2, MTXA)
|
||||
Remark 2089 - Object is not referenced ^ (Name [MTXA] is within a method [OBJ2])
|
||||
|
||||
grammar.asl 1502: Acquire (MTX2, 1)
|
||||
Warning 3130 - ^ Result is not used, possible operator timeout will be missed
|
||||
|
||||
grammar.asl 1650: Add (Local0, Local1)
|
||||
Error 6114 - ^ Result is not used, operator has no effect
|
||||
|
||||
grammar.asl 1661: Add (Local0, Local1, Local2)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local2)
|
||||
|
||||
grammar.asl 1777: Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local0)
|
||||
|
||||
grammar.asl 1780: Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local1)
|
||||
|
||||
grammar.asl 1783: Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local2)
|
||||
|
||||
grammar.asl 1786: Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||
|
||||
grammar.asl 1789: Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local4)
|
||||
|
||||
grammar.asl 1792: Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local5)
|
||||
|
||||
grammar.asl 1821: Method (COND)
|
||||
Warning 3115 - ^ Not all control paths return a value (COND)
|
||||
|
||||
grammar.asl 1930: Store (RefOf (MAIN), Local5)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local5)
|
||||
|
||||
grammar.asl 2005: Device (IFEL)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2162: Device (NOSV)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2583: Device (IDXF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2611: Store (IFE0, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
grammar.asl 2612: Store (IFE1, Local1)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local1)
|
||||
|
||||
grammar.asl 2613: Store (IFE2, Local2)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||
|
||||
grammar.asl 2630: Device (NSTL)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2658: Device (RTBF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2756: Device (GPE2)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2771: Device (PRW2)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2819: Device (PRW1)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2886: Store (Arg0, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
grammar.asl 2889: Device (RTLV)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 2993: Name (_CRS,0)
|
||||
Error 6105 - ^ Invalid object type for reserved name (_CRS: found Integer, Buffer required)
|
||||
|
||||
grammar.asl 3017: Device (RETP)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 3053: Device (WHLR)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 3109: Device (ANDO)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 3383: Device (BRKP)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 3420: Device (ADSU)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 3513: Device (INDC)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 3611: Device (LOPS)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 3956: Device (FDSO)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 4120: Device (MLDV)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 4253: Device (NBIT)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 4489: Device (SHFT)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 4685: Device (XORD)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 5022: Device (CRBF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 5100: Device (IDX4)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 5639: Device (EVNT)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 5867: Device (SZLV)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 5960: Device (BYTF)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 5970: Device (C005)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 5972: Device (C013)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6027: Name (_HID, "*PNP0A06")
|
||||
Error 6061 - Invalid leading asterisk ^ (*PNP0A06)
|
||||
|
||||
grammar.asl 6166: Name (C18C, Package (2)
|
||||
Remark 2063 - ^ Initializer list shorter than declared package length
|
||||
|
||||
grammar.asl 6190: Device (C19B)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6199: Divide (Local1, 10, Local0, Local2) // Local0 = Local1 / 10
|
||||
Warning 3144 - Method Local is set but never used ^ (Local0)
|
||||
|
||||
grammar.asl 6244: Device (DWDF)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6276: Method (MKW_, 2)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||
|
||||
grammar.asl 6276: Method (MKW_, 2)
|
||||
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||
|
||||
grammar.asl 6285: Device (DVAX)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6328: Device (IDX6)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6352: Device (TST_)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6371: Store (IFE0, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
grammar.asl 6372: Store (IFE1, Local1)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local1)
|
||||
|
||||
grammar.asl 6373: Store (IFE2, Local2)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||
|
||||
grammar.asl 6376: Store (\IDX6.IFE0, Local3)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||
|
||||
grammar.asl 6377: Store (\IDX6.IFE1, Local4)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local4)
|
||||
|
||||
grammar.asl 6379: Store (\IDX6.TST_.IFE0, Local5)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local5)
|
||||
|
||||
grammar.asl 6380: Store (\IDX6.TST_.IFE1, Local6)
|
||||
Warning 3144 - Method Local is set but never used ^ (Local6)
|
||||
|
||||
grammar.asl 6393: Device (IDX5)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6478: Name (_CRS, Buffer(26) {"\_SB_.PCI2._CRS..........."})
|
||||
Warning 3046 - Invalid or unknown escape sequence ^
|
||||
|
||||
grammar.asl 6709: Device (BITI)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 6817: And (Local0, 1, Local0) // Local0 &= 1
|
||||
Error 6066 - ^ Method local variable is not initialized (Local0)
|
||||
|
||||
grammar.asl 6903: Name (_HID, "*PNP0C0A") // Control Method Battey ID
|
||||
Error 6061 - Invalid leading asterisk ^ (*PNP0C0A)
|
||||
|
||||
grammar.asl 6912: Device (IDX3)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 7057: Device(IDX7)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 7736: Device (MTCH)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 7757: CreateDWordField (TMD0, 4, DMA0)
|
||||
Remark 2089 - Object is not referenced ^ (Name [DMA0] is within a method [TEST])
|
||||
|
||||
grammar.asl 7758: CreateDWordField (TMD0, 8, PIO1)
|
||||
Remark 2089 - Object is not referenced ^ (Name [PIO1] is within a method [TEST])
|
||||
|
||||
grammar.asl 7759: CreateDWordField (TMD0, 12, DMA1)
|
||||
Remark 2089 - Object is not referenced ^ (Name [DMA1] is within a method [TEST])
|
||||
|
||||
grammar.asl 7760: CreateDWordField (TMD0, 16, CHNF)
|
||||
Remark 2089 - Object is not referenced ^ (Name [CHNF] is within a method [TEST])
|
||||
|
||||
grammar.asl 7934: Device (WHLB)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 8295: Device (IDX2)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 8678: Device (SIZO)
|
||||
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 8720: Name (PKG2, Package (4)
|
||||
Remark 2063 - ^ Initializer list shorter than declared package length
|
||||
|
||||
grammar.asl 9132: Store (_OS, Local0)
|
||||
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||
|
||||
grammar.asl 9262: Device (MBIT)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 9273: Device (MWRD)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 9281: Device (MBYT)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 9354: Device (SMIS)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
grammar.asl 9408: Device(CNDT)
|
||||
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||
|
||||
|
||||
Intel ACPI Component Architecture
|
||||
ASL+ Optimizing Compiler/Disassembler version VVVVVVVV
|
||||
Copyright (c) 2000 - 2019 Intel Corporation
|
||||
|
||||
Ignoring all errors, forcing AML file generation
|
||||
|
||||
ASL Input: grammar.asl - 323653 bytes 4818 keywords 10284 source lines
|
||||
AML Output: grammar.aml - 43758 bytes 4148 opcodes 670 named objects
|
||||
|
||||
Compilation successful. 6 Errors, 88 Warnings, 27 Remarks, 1106 Optimizations
|
||||
231
iasl.1
Normal file
231
iasl.1
Normal file
@ -0,0 +1,231 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH IASL 1 "January 23, 2013"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
iasl \- ACPI Source Language compiler/decompiler
|
||||
.SH SYNOPSIS
|
||||
.B iasl
|
||||
.RI [ <option> ... ]
|
||||
.RI <input-file>
|
||||
.B ...
|
||||
.SH DESCRIPTION
|
||||
This manual page briefly documents the
|
||||
.B iasl
|
||||
command. The option list is taken from the iasl interactive help.
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
.B iasl
|
||||
is an ASL compiler and decompiler. This command provides both the ability
|
||||
to translate one or more ASL source files to their corresponding AML binary
|
||||
files, and the ability to translate AML binary files back to readable
|
||||
ASL source.
|
||||
.PP
|
||||
Much more detailed documentation may be found at
|
||||
http://www.acpica.org/documentation/.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.PP
|
||||
.SS Global
|
||||
.TP
|
||||
.B \-@ <file>
|
||||
Specify command file
|
||||
.TP
|
||||
.B \-I <dir>
|
||||
Specify additional include directory
|
||||
.TP
|
||||
.B \-T <sig>|ALL|*
|
||||
Create table template file for ACPI <sig>
|
||||
.TP
|
||||
.B \-v
|
||||
Display compiler version
|
||||
|
||||
.PP
|
||||
.SS Preprocessor
|
||||
.TP
|
||||
.B \-D <symbol>
|
||||
Define sybol for preprocessor use
|
||||
.TP
|
||||
.B \-li
|
||||
Create prepocessed output file (*.i)
|
||||
.TP
|
||||
.B \-P
|
||||
Preprocess only and create preprocessor output file (*.i)
|
||||
.TP
|
||||
.B \-Pn
|
||||
Disable preprocessor
|
||||
|
||||
.PP
|
||||
.SS General Output
|
||||
.TP
|
||||
.B \-p <prefix>
|
||||
Specify path/filename prefix for all output files
|
||||
.TP
|
||||
.B \-va
|
||||
Disable all errors and warnings (summary only)
|
||||
.TP
|
||||
.B \-vi
|
||||
Less verbose errors and warnings for use with IDEs
|
||||
.TP
|
||||
.B \-vo
|
||||
Enable optimization comments
|
||||
.TP
|
||||
.B \-vr
|
||||
Disable remarks
|
||||
.TP
|
||||
.B \-vs
|
||||
Disable signon
|
||||
.TP
|
||||
.B \-w{1|2|3}
|
||||
Set warning reporting level
|
||||
.TP
|
||||
.B \-we
|
||||
Report warnings as errors
|
||||
|
||||
.PP
|
||||
.SS AML and Data Output Files
|
||||
.TP
|
||||
.B \-s{a|c}
|
||||
Create assembler or C source file (*.asm or *.c)
|
||||
.TP
|
||||
.B \-i{a|c}
|
||||
Create assembler or C include file (*.inc or *.h)
|
||||
.TP
|
||||
.B \-t{a|c|s}
|
||||
Create assembler, C, or ASL hex table (*.hex)
|
||||
|
||||
.PP
|
||||
.SS AML Code Generation
|
||||
.TP
|
||||
.B \-oa
|
||||
Disable all optimizations (compatibility mode)
|
||||
.TP
|
||||
.B \-of
|
||||
Disable constant folding
|
||||
.TP
|
||||
.B \-oi
|
||||
Disable integer optimization to Zero/One/Ones
|
||||
.TP
|
||||
.B \-on
|
||||
Disable named reference string optimization
|
||||
.TP
|
||||
.B \-cr
|
||||
Disable Resource Descriptor error checking
|
||||
.TP
|
||||
.B \-in
|
||||
Ignore NoOp operators
|
||||
.TP
|
||||
.B \-r <revision>
|
||||
Override table header Revision (1-255)
|
||||
|
||||
.PP
|
||||
.SS ASL Listing Files
|
||||
.TP
|
||||
.B \-l
|
||||
Create mixed listing file (ASL source and AML) (*.lst)
|
||||
.TP
|
||||
.B \-ln
|
||||
Create namespace file (*.nsp)
|
||||
.TP
|
||||
.B \-ls
|
||||
Create combined source file (expanded includes) (*.src)
|
||||
|
||||
.PP
|
||||
.SS ACPI Data Tables
|
||||
.TP
|
||||
.B \-G
|
||||
Compile custom table containing generic operators
|
||||
.TP
|
||||
.B \-vt
|
||||
Create verbose templates (full disassembly)
|
||||
|
||||
.PP
|
||||
.SS AML Disassembler
|
||||
.TP
|
||||
.B \-d [<file>]
|
||||
Disassemble AML to ASL source code file (*.dsl)
|
||||
.TP
|
||||
.B \-da [<file1>,<file2>]
|
||||
Disassemble multiple tables from single namespace
|
||||
.TP
|
||||
.B \-db
|
||||
Do not translate Buffers to Resource Templates
|
||||
.TP
|
||||
.B \-dc [<file>]
|
||||
Disassemble AML and immediately compile it
|
||||
.br
|
||||
(Obtain DSDT from current system if no input file)
|
||||
.TP
|
||||
.B \-e [<file1>,<file2>]
|
||||
Include ACPI table(s) for external symbol resolution
|
||||
.TP
|
||||
.B \-g
|
||||
Get ACPI tables and write to files (*.dat)
|
||||
.TP
|
||||
.B \-in
|
||||
Ignore NoOp opcodes
|
||||
.TP
|
||||
.B \-vt
|
||||
Dump binary table date in hex format within output file
|
||||
|
||||
.PP
|
||||
.SS Help
|
||||
.TP
|
||||
.B \-h
|
||||
Additional help and compiler debug options
|
||||
.TP
|
||||
.B \-hc
|
||||
Display operators allowed in constant expressions
|
||||
.TP
|
||||
.B \-hf
|
||||
Display help for output file name generation
|
||||
.TP
|
||||
.B \-hr
|
||||
Display ACPI reserved method names
|
||||
.TP
|
||||
.B \-ht
|
||||
Display currently supported ACPI table names
|
||||
|
||||
.PP
|
||||
.SS Debug
|
||||
.TP
|
||||
.B \-b{f|t}
|
||||
Create debug file (full or parse tree only) (*.txt)
|
||||
.TP
|
||||
.B \-f
|
||||
Ignore errors, force creation of AML output file(s)
|
||||
.TP
|
||||
.B \-n
|
||||
Parse only, no output generation
|
||||
.TP
|
||||
.B \-ot
|
||||
Display compiles times and statistics
|
||||
.TP
|
||||
.B \-x <level>
|
||||
Set debug level for trace output
|
||||
.TP
|
||||
.B \-z
|
||||
Do not insert new compiler ID for DataTables
|
||||
|
||||
.SH AUTHOR
|
||||
iasl was written by Robert Moore <robert.moore@intel.com>.
|
||||
.PP
|
||||
This manual page was written by Mattia Dongili <malattia@debian.org>,
|
||||
for the Debian project (but may be used by others). It was updated for
|
||||
the Fedora project by Al Stone <ahs3@redhat.com> (and may also be used
|
||||
by others).
|
||||
283
int-format.patch
Normal file
283
int-format.patch
Normal file
@ -0,0 +1,283 @@
|
||||
Use proper integer formatting
|
||||
|
||||
From: Al Stone <ahs3@redhat.com>
|
||||
|
||||
|
||||
---
|
||||
source/compiler/aslerror.c | 4 ++--
|
||||
source/compiler/aslopt.c | 2 +-
|
||||
source/compiler/aslprepkg.c | 2 +-
|
||||
source/components/debugger/dbexec.c | 2 +-
|
||||
source/components/dispatcher/dsmthdat.c | 4 ++--
|
||||
source/components/dispatcher/dsutils.c | 2 +-
|
||||
source/components/dispatcher/dswscope.c | 4 ++--
|
||||
source/components/events/evgpe.c | 4 ++--
|
||||
source/components/executer/exdump.c | 2 +-
|
||||
source/components/executer/exfldio.c | 4 ++--
|
||||
source/components/executer/exnames.c | 4 ++--
|
||||
source/components/hardware/hwregs.c | 2 +-
|
||||
source/components/tables/tbfadt.c | 6 +++---
|
||||
source/components/tables/tbxfroot.c | 6 +++---
|
||||
source/components/utilities/utownerid.c | 2 +-
|
||||
18 files changed, 28 insertions(+), 28 deletions(-)
|
||||
|
||||
Index: acpica-unix-20190405/source/compiler/aslerror.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/compiler/aslerror.c
|
||||
+++ acpica-unix-20190405/source/compiler/aslerror.c
|
||||
@@ -906,7 +906,7 @@ AslLogNewError (
|
||||
AslGbl_ExceptionCount[ModifiedLevel]++;
|
||||
if (!AslGbl_IgnoreErrors && AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
|
||||
{
|
||||
- printf ("\nMaximum error count (%u) exceeded\n", ASL_MAX_ERROR_COUNT);
|
||||
+ printf ("\nMaximum error count (%d) exceeded\n", ASL_MAX_ERROR_COUNT);
|
||||
|
||||
AslGbl_SourceLine = 0;
|
||||
AslGbl_NextError = AslGbl_ErrorLog;
|
||||
Index: acpica-unix-20190405/source/compiler/aslopt.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/compiler/aslopt.c
|
||||
+++ acpica-unix-20190405/source/compiler/aslopt.c
|
||||
@@ -583,7 +583,7 @@ OptOptimizeNamePath (
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_OPTIMIZATIONS,
|
||||
- "PATH OPTIMIZE: Line %5d ParentOp [%12.12s] ThisOp [%12.12s] ",
|
||||
+ "PATH OPTIMIZE: Line %5u ParentOp [%12.12s] ThisOp [%12.12s] ",
|
||||
Op->Asl.LogicalLineNumber,
|
||||
AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode),
|
||||
AcpiPsGetOpcodeName (Op->Common.AmlOpcode)));
|
||||
Index: acpica-unix-20190405/source/compiler/aslprepkg.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/compiler/aslprepkg.c
|
||||
+++ acpica-unix-20190405/source/compiler/aslprepkg.c
|
||||
@@ -309,7 +309,7 @@ ApCheckPackage (
|
||||
|
||||
if (Count & 1)
|
||||
{
|
||||
- sprintf (AslGbl_MsgBuffer, "%4.4s: Package length, %d, must be even.",
|
||||
+ sprintf (AslGbl_MsgBuffer, "%4.4s: Package length, %u, must be even.",
|
||||
Predefined->Info.Name, Count);
|
||||
|
||||
AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH,
|
||||
Index: acpica-unix-20190405/source/components/debugger/dbexec.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/debugger/dbexec.c
|
||||
+++ acpica-unix-20190405/source/components/debugger/dbexec.c
|
||||
@@ -230,7 +230,7 @@ AcpiDbExecuteMethod (
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Possible buffer overflow within AML Debugger "
|
||||
"buffer (size 0x%X needed 0x%X)",
|
||||
- ACPI_DEBUG_BUFFER_SIZE, (UINT32) ReturnObj->Length));
|
||||
+ (UINT32) ACPI_DEBUG_BUFFER_SIZE, (UINT32) ReturnObj->Length));
|
||||
}
|
||||
}
|
||||
|
||||
Index: acpica-unix-20190405/source/components/dispatcher/dsmthdat.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/dispatcher/dsmthdat.c
|
||||
+++ acpica-unix-20190405/source/components/dispatcher/dsmthdat.c
|
||||
@@ -291,7 +291,7 @@ AcpiDsMethodDataGetNode (
|
||||
if (Index > ACPI_METHOD_MAX_LOCAL)
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "Local index %u is invalid (max %u)",
|
||||
+ "Local index %u is invalid (max %d)",
|
||||
Index, ACPI_METHOD_MAX_LOCAL));
|
||||
return_ACPI_STATUS (AE_AML_INVALID_INDEX);
|
||||
}
|
||||
@@ -306,7 +306,7 @@ AcpiDsMethodDataGetNode (
|
||||
if (Index > ACPI_METHOD_MAX_ARG)
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "Arg index %u is invalid (max %u)",
|
||||
+ "Arg index %u is invalid (max %d)",
|
||||
Index, ACPI_METHOD_MAX_ARG));
|
||||
return_ACPI_STATUS (AE_AML_INVALID_INDEX);
|
||||
}
|
||||
Index: acpica-unix-20190405/source/components/dispatcher/dsutils.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/dispatcher/dsutils.c
|
||||
+++ acpica-unix-20190405/source/components/dispatcher/dsutils.c
|
||||
@@ -786,7 +786,7 @@ AcpiDsCreateOperands (
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
|
||||
- "NumOperands %d, ArgCount %d, Index %d\n",
|
||||
+ "NumOperands %d, ArgCount %u, Index %u\n",
|
||||
WalkState->NumOperands, ArgCount, Index));
|
||||
|
||||
/* Create the interpreter arguments, in reverse order */
|
||||
Index: acpica-unix-20190405/source/components/dispatcher/dswscope.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/dispatcher/dswscope.c
|
||||
+++ acpica-unix-20190405/source/components/dispatcher/dswscope.c
|
||||
@@ -149,7 +149,7 @@ AcpiDsScopeStackPush (
|
||||
WalkState->ScopeDepth++;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
- "[%.2d] Pushed scope ", (UINT32) WalkState->ScopeDepth));
|
||||
+ "[%.2d] Pushed scope ", WalkState->ScopeDepth));
|
||||
|
||||
OldScopeInfo = WalkState->ScopeInfo;
|
||||
if (OldScopeInfo)
|
||||
@@ -211,7 +211,7 @@ AcpiDsScopeStackPop (
|
||||
WalkState->ScopeDepth--;
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
|
||||
- "[%.2d] Popped scope [%4.4s] (%s), New scope -> ",
|
||||
+ "[%.2u] Popped scope [%4.4s] (%s), New scope -> ",
|
||||
(UINT32) WalkState->ScopeDepth,
|
||||
AcpiUtGetNodeName (ScopeInfo->Scope.Node),
|
||||
AcpiUtGetTypeName (ScopeInfo->Common.Value)));
|
||||
Index: acpica-unix-20190405/source/components/events/evgpe.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/events/evgpe.c
|
||||
+++ acpica-unix-20190405/source/components/events/evgpe.c
|
||||
@@ -489,7 +489,7 @@ AcpiEvGpeDetect (
|
||||
"Ignore disabled registers for GPE %02X-%02X: "
|
||||
"RunEnable=%02X, WakeEnable=%02X\n",
|
||||
GpeRegisterInfo->BaseGpeNumber,
|
||||
- GpeRegisterInfo->BaseGpeNumber + (ACPI_GPE_REGISTER_WIDTH - 1),
|
||||
+ (unsigned int) (GpeRegisterInfo->BaseGpeNumber + (ACPI_GPE_REGISTER_WIDTH - 1)),
|
||||
GpeRegisterInfo->EnableForRun,
|
||||
GpeRegisterInfo->EnableForWake));
|
||||
continue;
|
||||
Index: acpica-unix-20190405/source/components/executer/exdump.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/executer/exdump.c
|
||||
+++ acpica-unix-20190405/source/components/executer/exdump.c
|
||||
@@ -678,7 +678,7 @@ AcpiExDumpOperand (
|
||||
if (Depth > 0)
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "%*s[%u] %p Refs=%u ",
|
||||
- Depth, " ", Depth, ObjDesc, ObjDesc->Common.ReferenceCount));
|
||||
+ (int) Depth, " ", Depth, ObjDesc, ObjDesc->Common.ReferenceCount));
|
||||
}
|
||||
else
|
||||
{
|
||||
Index: acpica-unix-20190405/source/components/executer/exfldio.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/executer/exfldio.c
|
||||
+++ acpica-unix-20190405/source/components/executer/exfldio.c
|
||||
@@ -681,8 +681,8 @@ AcpiExWriteWithUpdateRule (
|
||||
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Unknown UpdateRule value: 0x%X",
|
||||
- (ObjDesc->CommonField.FieldFlags &
|
||||
- AML_FIELD_UPDATE_RULE_MASK)));
|
||||
+ (unsigned int) (ObjDesc->CommonField.FieldFlags &
|
||||
+ AML_FIELD_UPDATE_RULE_MASK)));
|
||||
return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
|
||||
}
|
||||
}
|
||||
Index: acpica-unix-20190405/source/components/executer/exnames.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/executer/exnames.c
|
||||
+++ acpica-unix-20190405/source/components/executer/exnames.c
|
||||
@@ -237,7 +237,7 @@ AcpiExNameSegment (
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
|
||||
"Leading character is not alpha: %02Xh (not a name)\n",
|
||||
- CharBuf[0]));
|
||||
+ (unsigned int) CharBuf[0]));
|
||||
Status = AE_CTRL_PENDING;
|
||||
}
|
||||
else
|
||||
@@ -249,7 +249,7 @@ AcpiExNameSegment (
|
||||
Status = AE_AML_BAD_NAME;
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Bad character 0x%02x in name, at %p",
|
||||
- *AmlAddress, AmlAddress));
|
||||
+ (unsigned int) (*AmlAddress), AmlAddress));
|
||||
}
|
||||
|
||||
*InAmlAddress = ACPI_CAST_PTR (UINT8, AmlAddress);
|
||||
Index: acpica-unix-20190405/source/components/hardware/hwregs.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/hardware/hwregs.c
|
||||
+++ acpica-unix-20190405/source/components/hardware/hwregs.c
|
||||
@@ -460,7 +460,7 @@ AcpiHwClearAcpiStatus (
|
||||
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_IO, "About to write %04X to %8.8X%8.8X\n",
|
||||
- ACPI_BITMASK_ALL_FIXED_STATUS,
|
||||
+ (UINT32) ACPI_BITMASK_ALL_FIXED_STATUS,
|
||||
ACPI_FORMAT_UINT64 (AcpiGbl_XPm1aStatus.Address)));
|
||||
|
||||
LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
|
||||
Index: acpica-unix-20190405/source/components/tables/tbfadt.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/tables/tbfadt.c
|
||||
+++ acpica-unix-20190405/source/components/tables/tbfadt.c
|
||||
@@ -233,7 +233,7 @@ AcpiTbInitGenericAddress (
|
||||
if (!(Flags & ACPI_FADT_GPE_REGISTER))
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "%s - 32-bit FADT register is too long (%u bytes, %u bits) "
|
||||
+ "%s - 32-bit FADT register is too long (%u bytes, %d bits) "
|
||||
"to convert to GAS struct - 255 bits max, truncating",
|
||||
RegisterName, ByteWidth, (ByteWidth * 8)));
|
||||
}
|
||||
@@ -304,7 +304,7 @@ AcpiTbSelectAddress (
|
||||
|
||||
ACPI_BIOS_WARNING ((AE_INFO,
|
||||
"32/64X %s address mismatch in FADT: "
|
||||
- "0x%8.8X/0x%8.8X%8.8X, using %u-bit address",
|
||||
+ "0x%8.8X/0x%8.8X%8.8X, using %d-bit address",
|
||||
RegisterName, Address32, ACPI_FORMAT_UINT64 (Address64),
|
||||
AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
|
||||
|
||||
@@ -628,7 +628,7 @@ AcpiTbConvertFadt (
|
||||
|
||||
ACPI_BIOS_WARNING ((AE_INFO,
|
||||
"32/64X address mismatch in FADT/%s: "
|
||||
- "0x%8.8X/0x%8.8X%8.8X, using %u-bit address",
|
||||
+ "0x%8.8X/0x%8.8X%8.8X, using %d-bit address",
|
||||
Name, Address32,
|
||||
ACPI_FORMAT_UINT64 (Address64->Address),
|
||||
AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
|
||||
Index: acpica-unix-20190405/source/components/tables/tbxfroot.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/tables/tbxfroot.c
|
||||
+++ acpica-unix-20190405/source/components/tables/tbxfroot.c
|
||||
@@ -177,7 +177,7 @@ AcpiFindRootPointer (
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Could not map memory at 0x%8.8X for length %u",
|
||||
- ACPI_EBDA_PTR_LOCATION, ACPI_EBDA_PTR_LENGTH));
|
||||
+ (UINT32) ACPI_EBDA_PTR_LOCATION, (UINT32) ACPI_EBDA_PTR_LENGTH));
|
||||
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
@@ -204,7 +204,7 @@ AcpiFindRootPointer (
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Could not map memory at 0x%8.8X for length %u",
|
||||
- PhysicalAddress, ACPI_EBDA_WINDOW_SIZE));
|
||||
+ PhysicalAddress, (UINT32) ACPI_EBDA_WINDOW_SIZE));
|
||||
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
@@ -236,7 +236,7 @@ AcpiFindRootPointer (
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
"Could not map memory at 0x%8.8X for length %u",
|
||||
- ACPI_HI_RSDP_WINDOW_BASE, ACPI_HI_RSDP_WINDOW_SIZE));
|
||||
+ (UINT32) ACPI_HI_RSDP_WINDOW_BASE, (UINT32) ACPI_HI_RSDP_WINDOW_SIZE));
|
||||
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
Index: acpica-unix-20190405/source/components/utilities/utownerid.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190405.orig/source/components/utilities/utownerid.c
|
||||
+++ acpica-unix-20190405/source/components/utilities/utownerid.c
|
||||
@@ -237,7 +237,7 @@ AcpiUtReleaseOwnerId (
|
||||
else
|
||||
{
|
||||
ACPI_ERROR ((AE_INFO,
|
||||
- "Release of non-allocated OwnerId: 0x%2.2X", OwnerId + 1));
|
||||
+ "Release of non-allocated OwnerId: 0x%2.2X", (UINT32) OwnerId + 1));
|
||||
}
|
||||
|
||||
(void) AcpiUtReleaseMutex (ACPI_MTX_CACHES);
|
||||
37
mips-be-fix.patch
Normal file
37
mips-be-fix.patch
Normal file
@ -0,0 +1,37 @@
|
||||
Index: acpica-unix-20190329/source/compiler/aslparseop.c
|
||||
===================================================================
|
||||
--- acpica-unix-20190329.orig/source/compiler/aslparseop.c
|
||||
+++ acpica-unix-20190329/source/compiler/aslparseop.c
|
||||
@@ -283,7 +283,16 @@ TrCreateValuedLeafOp (
|
||||
|
||||
|
||||
Op = TrAllocateOp (ParseOpcode);
|
||||
- Op->Asl.Value.Integer = Value;
|
||||
+ if (ParseOpcode == PARSEOP_NAMESTRING ||
|
||||
+ ParseOpcode == PARSEOP_NAMESEG ||
|
||||
+ ParseOpcode == PARSEOP_STRING_LITERAL)
|
||||
+ {
|
||||
+ Op->Asl.Value.String = (char *) Value;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ Op->Asl.Value.Integer = Value;
|
||||
+ }
|
||||
|
||||
DbgPrint (ASL_PARSE_OUTPUT,
|
||||
"\nCreateValuedLeafOp Ln/Col %u/%u NewOp %p "
|
||||
Index: acpica-unix-20190329/source/include/platform/aclinux.h
|
||||
===================================================================
|
||||
--- acpica-unix-20190329.orig/source/include/platform/aclinux.h
|
||||
+++ acpica-unix-20190329/source/include/platform/aclinux.h
|
||||
@@ -232,10 +232,8 @@
|
||||
#endif
|
||||
|
||||
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
-#if defined(__PPC64__) || defined(__s390x__)
|
||||
#define ACPI_BIG_ENDIAN
|
||||
#endif
|
||||
-#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
16
ppc64le.patch
Normal file
16
ppc64le.patch
Normal file
@ -0,0 +1,16 @@
|
||||
Index: acpica-unix-20190329/source/include/platform/aclinux.h
|
||||
===================================================================
|
||||
--- acpica-unix-20190329.orig/source/include/platform/aclinux.h
|
||||
+++ acpica-unix-20190329/source/include/platform/aclinux.h
|
||||
@@ -233,9 +233,11 @@
|
||||
#define __cdecl
|
||||
#endif
|
||||
|
||||
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
#if defined(__PPC64__) || defined(__s390x__)
|
||||
#define ACPI_BIG_ENDIAN
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
48
ptr-cast.patch
Normal file
48
ptr-cast.patch
Normal file
@ -0,0 +1,48 @@
|
||||
diff -Naur acpica-unix2-20180209.orig/source/components/tables/tbutils.c acpica-unix2-20180209/source/components/tables/tbutils.c
|
||||
--- acpica-unix2-20180209.orig/source/components/tables/tbutils.c 2018-03-15 16:47:21.831526264 -0600
|
||||
+++ acpica-unix2-20180209/source/components/tables/tbutils.c 2018-03-15 16:58:20.030097284 -0600
|
||||
@@ -238,9 +238,11 @@
|
||||
* 64-bit platform, XSDT: Move (unaligned) 64-bit to local,
|
||||
* return 64-bit
|
||||
*/
|
||||
- Address64 = (UINT64) TableEntry;
|
||||
|
||||
#if ACPI_MACHINE_WIDTH == 32
|
||||
+ UINT32 Tmp32 = (UINT32) TableEntry;
|
||||
+
|
||||
+ Address64 = (UINT64) Tmp32;
|
||||
if (Address64 > ACPI_UINT32_MAX)
|
||||
{
|
||||
/* Will truncate 64-bit address to 32 bits, issue warning */
|
||||
@@ -250,9 +252,15 @@
|
||||
" truncating",
|
||||
ACPI_FORMAT_UINT64 (Address64)));
|
||||
}
|
||||
-#endif
|
||||
+
|
||||
+ return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
|
||||
+ UINT32, TableEntry)));
|
||||
+#else
|
||||
+ Address64 = (UINT64) TableEntry;
|
||||
+
|
||||
return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
|
||||
UINT64, Address64)));
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
diff -Naur acpica-unix2-20180209.orig/source/compiler/aslparseop.c acpica-unix2-20180209/source/compiler/aslparseop.c
|
||||
--- acpica-unix2-20180209.orig/source/compiler/aslparseop.c 2018-03-15 17:20:09.844338074 -0600
|
||||
+++ acpica-unix2-20180209/source/compiler/aslparseop.c 2018-03-15 17:28:19.570800797 -0600
|
||||
@@ -287,7 +287,11 @@
|
||||
ParseOpcode == PARSEOP_NAMESEG ||
|
||||
ParseOpcode == PARSEOP_STRING_LITERAL)
|
||||
{
|
||||
+#if ACPI_MACHINE_WIDTH == 32
|
||||
+ Op->Asl.Value.String = (char *) (UINT32) Value;
|
||||
+#else
|
||||
Op->Asl.Value.String = (char *) Value;
|
||||
+#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
47
run-misc-tests.sh
Normal file
47
run-misc-tests.sh
Normal file
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# run the misc tests: we need to do this in a script since
|
||||
# some of these are expected to fail which would normally cause
|
||||
# the %check step to stop. however, this is expected behavior.
|
||||
# we are running iasl precisely because we expect it to stop when
|
||||
# presented with faulty ASL.
|
||||
#
|
||||
# this script assumes it is in the source 'tests' directory at
|
||||
# start.
|
||||
#
|
||||
|
||||
set -x
|
||||
|
||||
BINDIR="$1"
|
||||
VERSION="$2"
|
||||
|
||||
# create files to compare against
|
||||
$BINDIR/iasl -h
|
||||
|
||||
sed -e "s/VVVVVVVV/$VERSION/" \
|
||||
../badcode.asl.result > misc/badcode.asl.expected
|
||||
sed -e "s/VVVVVVVV/$VERSION/" \
|
||||
../grammar.asl.result > misc/grammar.asl.expected
|
||||
sed -e "s/VVVVVVVV/$VERSION/" \
|
||||
../converterSample.asl.result > misc/converterSample.asl.expected
|
||||
|
||||
cd misc
|
||||
|
||||
# see if badcode.asl failed as expected
|
||||
# NB: the -f option is required so we can see all of the errors
|
||||
$BINDIR/iasl -f badcode.asl 2>&1 | tee badcode.asl.actual
|
||||
diff badcode.asl.actual badcode.asl.expected >/dev/null 2>&1
|
||||
[ $? -eq 0 ] || exit 1
|
||||
|
||||
# see if grammar.asl failed as expected
|
||||
# NB: the -f option is required so we can see all of the errors
|
||||
$BINDIR/iasl -f -of grammar.asl 2>&1 | tee grammar.asl.actual
|
||||
diff grammar.asl.actual grammar.asl.expected >/dev/null 2>&1
|
||||
[ $? -eq 0 ] || exit 1
|
||||
|
||||
# see if converterSample.asl succeeded as expected
|
||||
$BINDIR/iasl converterSample.asl 2>&1 | tee converterSample.asl.actual
|
||||
diff converterSample.asl.actual converterSample.asl.expected >/dev/null 2>&1
|
||||
[ $? -ne 0 ] && exit 1
|
||||
|
||||
exit 0
|
||||
20
simple-64bit.patch
Normal file
20
simple-64bit.patch
Normal file
@ -0,0 +1,20 @@
|
||||
Description: Stop listing all 64bit architectures
|
||||
Check __LP64__ instead of maintaining a list of all
|
||||
64bit architectures.
|
||||
Author: Adrian Bunk <bunk@debian.org>
|
||||
|
||||
Index: acpica-unix-20190329/source/include/platform/aclinux.h
|
||||
===================================================================
|
||||
--- acpica-unix-20190329.orig/source/include/platform/aclinux.h
|
||||
+++ acpica-unix-20190329/source/include/platform/aclinux.h
|
||||
@@ -215,9 +215,7 @@
|
||||
#define ACPI_FLUSH_CPU_CACHE()
|
||||
#define ACPI_CAST_PTHREAD_T(Pthread) ((ACPI_THREAD_ID) (Pthread))
|
||||
|
||||
-#if defined(__ia64__) || (defined(__x86_64__) && !defined(__ILP32__)) ||\
|
||||
- defined(__aarch64__) || defined(__PPC64__) ||\
|
||||
- defined(__s390x__)
|
||||
+#if defined(__LP64__)
|
||||
#define ACPI_MACHINE_WIDTH 64
|
||||
#define COMPILER_DEPENDENT_INT64 long
|
||||
#define COMPILER_DEPENDENT_UINT64 unsigned long
|
||||
112
str-trunc-warn.patch
Normal file
112
str-trunc-warn.patch
Normal file
@ -0,0 +1,112 @@
|
||||
Index: acpica-unix2-20181003/source/compiler/aslanalyze.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20181003.orig/source/compiler/aslanalyze.c
|
||||
+++ acpica-unix2-20181003/source/compiler/aslanalyze.c
|
||||
@@ -355,11 +355,16 @@ AnCheckMethodReturnValue (
|
||||
*/
|
||||
if (ThisNodeBtype != 0)
|
||||
{
|
||||
- sprintf (AslGbl_MsgBuffer,
|
||||
+ int cnt;
|
||||
+ char *strp;
|
||||
+
|
||||
+ cnt = asprintf (&strp,
|
||||
"Method returns [%s], %s operator requires [%s]",
|
||||
AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2);
|
||||
|
||||
- AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, AslGbl_MsgBuffer);
|
||||
+ AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, strp);
|
||||
+ if (cnt > 0)
|
||||
+ free(strp);
|
||||
}
|
||||
}
|
||||
}
|
||||
Index: acpica-unix2-20181003/source/compiler/aslpredef.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20181003.orig/source/compiler/aslpredef.c
|
||||
+++ acpica-unix2-20181003/source/compiler/aslpredef.c
|
||||
@@ -159,14 +159,19 @@ ApCheckForPredefinedMethod (
|
||||
if (MethodInfo->NumReturnNoValue &&
|
||||
ThisName->Info.ExpectedBtypes)
|
||||
{
|
||||
+ int cnt;
|
||||
+ char *strp;
|
||||
+
|
||||
AcpiUtGetExpectedReturnTypes (AslGbl_StringBuffer,
|
||||
ThisName->Info.ExpectedBtypes);
|
||||
|
||||
- sprintf (AslGbl_MsgBuffer, "%s required for %4.4s",
|
||||
- AslGbl_StringBuffer, ThisName->Info.Name);
|
||||
+ cnt = asprintf (&strp, "%s required for %4.4s",
|
||||
+ AslGbl_StringBuffer, ThisName->Info.Name);
|
||||
|
||||
AslError (ASL_WARNING, ASL_MSG_RESERVED_RETURN_VALUE, Op,
|
||||
- AslGbl_MsgBuffer);
|
||||
+ strp);
|
||||
+ if (cnt > 0)
|
||||
+ free(strp);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -698,18 +703,26 @@ TypeErrorExit:
|
||||
|
||||
AcpiUtGetExpectedReturnTypes (AslGbl_StringBuffer, ExpectedBtypes);
|
||||
|
||||
- if (PackageIndex == ACPI_NOT_PACKAGE_ELEMENT)
|
||||
- {
|
||||
- sprintf (AslGbl_MsgBuffer, "%4.4s: found %s, %s required",
|
||||
- PredefinedName, TypeName, AslGbl_StringBuffer);
|
||||
- }
|
||||
- else
|
||||
{
|
||||
- sprintf (AslGbl_MsgBuffer, "%4.4s: found %s at index %u, %s required",
|
||||
- PredefinedName, TypeName, PackageIndex, AslGbl_StringBuffer);
|
||||
+ int cnt;
|
||||
+ char *strp;
|
||||
+
|
||||
+ if (PackageIndex == ACPI_NOT_PACKAGE_ELEMENT)
|
||||
+ {
|
||||
+ cnt = asprintf (&strp, "%4.4s: found %s, %s required",
|
||||
+ PredefinedName, TypeName, AslGbl_StringBuffer);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ cnt = asprintf (&strp, "%4.4s: found %s at index %u, %s required",
|
||||
+ PredefinedName, TypeName, PackageIndex, AslGbl_StringBuffer);
|
||||
+ }
|
||||
+
|
||||
+ AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, strp);
|
||||
+ if (cnt > 0)
|
||||
+ free(strp);
|
||||
}
|
||||
|
||||
- AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, AslGbl_MsgBuffer);
|
||||
return (AE_TYPE);
|
||||
}
|
||||
|
||||
Index: acpica-unix2-20181003/source/compiler/aslwalks.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20181003.orig/source/compiler/aslwalks.c
|
||||
+++ acpica-unix2-20181003/source/compiler/aslwalks.c
|
||||
@@ -507,15 +507,19 @@ AnOperandTypecheckWalkEnd (
|
||||
else if (!CommonBtypes)
|
||||
{
|
||||
/* No match -- this is a type mismatch error */
|
||||
+ int cnt;
|
||||
+ char *strp;
|
||||
|
||||
AnFormatBtype (AslGbl_StringBuffer, ThisNodeBtype);
|
||||
AnFormatBtype (AslGbl_StringBuffer2, RequiredBtypes);
|
||||
|
||||
- sprintf (AslGbl_MsgBuffer, "[%s] found, %s operator requires [%s]",
|
||||
+ cnt = asprintf (&strp, "[%s] found, %s operator requires [%s]",
|
||||
AslGbl_StringBuffer, OpInfo->Name, AslGbl_StringBuffer2);
|
||||
|
||||
AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE,
|
||||
- ArgOp, AslGbl_MsgBuffer);
|
||||
+ ArgOp, strp);
|
||||
+ if (cnt > 0)
|
||||
+ free(strp);
|
||||
}
|
||||
|
||||
NextArgument:
|
||||
22
template.patch
Normal file
22
template.patch
Normal file
@ -0,0 +1,22 @@
|
||||
Add in a needed parameter for a test file template
|
||||
|
||||
From: Al Stone <ahs3@redhat.com>
|
||||
|
||||
|
||||
---
|
||||
tests/templates/Makefile | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: acpica-unix2-20161222/tests/templates/Makefile
|
||||
===================================================================
|
||||
--- acpica-unix2-20161222.orig/tests/templates/Makefile
|
||||
+++ acpica-unix2-20161222/tests/templates/Makefile
|
||||
@@ -2,7 +2,7 @@
|
||||
PROG= templates
|
||||
|
||||
templates :
|
||||
- sh templates.sh
|
||||
+ sh templates.sh 1
|
||||
|
||||
clean :
|
||||
rm -f *.asl *.aml *.dsl *.hex diff.log
|
||||
105
unaligned.patch
Normal file
105
unaligned.patch
Normal file
@ -0,0 +1,105 @@
|
||||
Patch carried over from the prior iasl package and updated. This allows
|
||||
for builds on systems requiring aligned memory access. Please see
|
||||
http://lists.acpica.org/pipermail/devel/2010-July/000159.html. Resolves
|
||||
BZ#865013 and BZ#856856.
|
||||
--
|
||||
|
||||
Add more platforms to the list of the ones requiring aligned memory access.
|
||||
Also fix callsites where wrong assumptions where made in terms of aligment.
|
||||
|
||||
Signed-off-by: Mattia Dongili <malattia@linux.it>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
source/components/executer/exoparg2.c | 12 +++++++++---
|
||||
source/include/actypes.h | 26 +++++++++++++-------------
|
||||
3 files changed, 32 insertions(+), 21 deletions(-)
|
||||
|
||||
Index: acpica-unix2-20170728/source/components/executer/exoparg2.c
|
||||
===================================================================
|
||||
--- acpica-unix2-20170728.orig/source/components/executer/exoparg2.c
|
||||
+++ acpica-unix2-20170728/source/components/executer/exoparg2.c
|
||||
@@ -172,6 +172,8 @@ AcpiExOpcode_2A_2T_1R (
|
||||
ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc1 = NULL;
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc2 = NULL;
|
||||
+ UINT64 ReturnValue1 = 0;
|
||||
+ UINT64 ReturnValue2 = 0;
|
||||
ACPI_STATUS Status;
|
||||
|
||||
|
||||
@@ -206,8 +208,10 @@ AcpiExOpcode_2A_2T_1R (
|
||||
Status = AcpiUtDivide (
|
||||
Operand[0]->Integer.Value,
|
||||
Operand[1]->Integer.Value,
|
||||
- &ReturnDesc1->Integer.Value,
|
||||
- &ReturnDesc2->Integer.Value);
|
||||
+ &ReturnValue1, &ReturnValue2);
|
||||
+ ReturnDesc1->Integer.Value = ReturnValue1;
|
||||
+ ReturnDesc2->Integer.Value = ReturnValue2;
|
||||
+
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
goto Cleanup;
|
||||
@@ -282,6 +286,7 @@ AcpiExOpcode_2A_1T_1R (
|
||||
ACPI_OPERAND_OBJECT **Operand = &WalkState->Operands[0];
|
||||
ACPI_OPERAND_OBJECT *ReturnDesc = NULL;
|
||||
UINT64 Index;
|
||||
+ UINT64 ReturnValue = 0;
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
ACPI_SIZE Length = 0;
|
||||
|
||||
@@ -327,7 +332,8 @@ AcpiExOpcode_2A_1T_1R (
|
||||
Operand[0]->Integer.Value,
|
||||
Operand[1]->Integer.Value,
|
||||
NULL,
|
||||
- &ReturnDesc->Integer.Value);
|
||||
+ &ReturnValue);
|
||||
+ ReturnDesc->Integer.Value = ReturnValue;
|
||||
break;
|
||||
|
||||
case AML_CONCATENATE_OP: /* Concatenate (Data1, Data2, Result) */
|
||||
Index: acpica-unix2-20170728/source/include/actypes.h
|
||||
===================================================================
|
||||
--- acpica-unix2-20170728.orig/source/include/actypes.h
|
||||
+++ acpica-unix2-20170728/source/include/actypes.h
|
||||
@@ -143,6 +143,19 @@ typedef COMPILER_DEPENDENT_INT64
|
||||
*/
|
||||
#define ACPI_THREAD_ID UINT64
|
||||
|
||||
+/*
|
||||
+ * In the case of the Itanium Processor Family (IPF), the hardware does not
|
||||
+ * support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED flag
|
||||
+ * to indicate that special precautions must be taken to avoid alignment faults.
|
||||
+ * (IA64 or ia64 is currently used by existing compilers to indicate IPF.)
|
||||
+ *
|
||||
+ * Note: EM64T and other X86-64 processors support misaligned transfers,
|
||||
+ * so there is no need to define this flag.
|
||||
+ */
|
||||
+#if defined (__IA64__) || defined (__ia64__) || defined(__alpha__) || defined(__sparc__) || defined(__hppa__)
|
||||
+#define ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
+#endif
|
||||
+
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@@ -170,20 +183,6 @@ typedef UINT64
|
||||
#define ACPI_USE_NATIVE_DIVIDE /* Has native 64-bit integer support */
|
||||
#define ACPI_USE_NATIVE_MATH64 /* Has native 64-bit integer support */
|
||||
|
||||
-/*
|
||||
- * In the case of the Itanium Processor Family (IPF), the hardware does not
|
||||
- * support misaligned memory transfers. Set the MISALIGNMENT_NOT_SUPPORTED
|
||||
- * flag to indicate that special precautions must be taken to avoid alignment
|
||||
- * faults. (IA64 or ia64 is currently used by existing compilers to indicate
|
||||
- * IPF.)
|
||||
- *
|
||||
- * Note: EM64T and other X86-64 processors support misaligned transfers,
|
||||
- * so there is no need to define this flag.
|
||||
- */
|
||||
-#if defined (__IA64__) || defined (__ia64__)
|
||||
-#define ACPI_MISALIGNMENT_NOT_SUPPORTED
|
||||
-#endif
|
||||
-
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
Loading…
x
Reference in New Issue
Block a user