RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/acpica-tools#97b38e48de60dcda464ba13c4571a9669a887813
This commit is contained in:
parent
1d234602ac
commit
6da3f65ae2
137
.gitignore
vendored
137
.gitignore
vendored
@ -0,0 +1,137 @@
|
|||||||
|
series
|
||||||
|
/acpica-unix2-20130823.tar.gz
|
||||||
|
/acpitests-unix-20130823.tar.gz
|
||||||
|
/acpica-unix2-20130927.tar.gz
|
||||||
|
/acpitests-unix-20130927.tar.gz
|
||||||
|
/acpica-unix2-20131115.tar.gz
|
||||||
|
/acpitests-unix-20131115.tar.gz
|
||||||
|
/acpica-unix2-20131218.tar.gz
|
||||||
|
/acpitests-unix-20131218.tar.gz
|
||||||
|
/acpica-unix2-20140114.tar.gz
|
||||||
|
/acpitests-unix-20140114.tar.gz
|
||||||
|
/acpica-unix2-20140214.tar.gz
|
||||||
|
/acpitests-unix-20140214.tar.gz
|
||||||
|
/acpica-unix2-20140325.tar.gz
|
||||||
|
/acpitests-unix-20140325.tar.gz
|
||||||
|
/acpica-unix2-20140424.tar.gz
|
||||||
|
/acpitests-unix-20140424.tar.gz
|
||||||
|
/acpica-unix2-20140724.tar.gz
|
||||||
|
/acpitests-unix-20140724.tar.gz
|
||||||
|
/acpica-unix2-20140828.tar.gz
|
||||||
|
/acpitests-unix-20140828.tar.gz
|
||||||
|
/acpica-unix2-20140926.tar.gz
|
||||||
|
/acpitests-unix-20140926.tar.gz
|
||||||
|
/acpica-unix2-20141107.tar.gz
|
||||||
|
/acpitests-unix-20141107.tar.gz
|
||||||
|
/acpica-unix2-20150204.tar.gz
|
||||||
|
/acpitests-unix-20150204.tar.gz
|
||||||
|
/acpica-unix2-20150408.tar.gz
|
||||||
|
/acpitests-unix-20150408.tar.gz
|
||||||
|
/acpica-unix2-20150410.tar.gz
|
||||||
|
/acpitests-unix-20150410.tar.gz
|
||||||
|
/acpica-unix2-20150515.tar.gz
|
||||||
|
/acpitests-unix-20150515.tar.gz
|
||||||
|
/acpica-unix2-20150619.tar.gz
|
||||||
|
/acpitests-unix-20150619.tar.gz
|
||||||
|
/acpitests-unix-20150717.tar.gz
|
||||||
|
/acpica-unix2-20150717.tar.gz
|
||||||
|
/acpica-unix2-20150818.tar.gz
|
||||||
|
/acpitests-unix-20150818.tar.gz
|
||||||
|
/acpica-unix2-20150930.tar.gz
|
||||||
|
/acpitests-unix-20150930.tar.gz
|
||||||
|
/acpica-unix2-20151124.tar.gz
|
||||||
|
/acpitests-unix-20151124.tar.gz
|
||||||
|
/acpica-unix2-20151218.tar.gz
|
||||||
|
/acpitests-unix-20151218.tar.gz
|
||||||
|
/acpica-unix2-20160108.tar.gz
|
||||||
|
/acpitests-unix-20160108.tar.gz
|
||||||
|
/acpica-unix2-20160212.tar.gz
|
||||||
|
/acpitests-unix-20160212.tar.gz
|
||||||
|
/acpica-unix2-20160318.tar.gz
|
||||||
|
/acpitests-unix-20160318.tar.gz
|
||||||
|
/acpica-unix2-20160422.tar.gz
|
||||||
|
/acpitests-unix-20160422.tar.gz
|
||||||
|
/acpica-unix2-20160527.tar.gz
|
||||||
|
/acpitests-unix-20160527.tar.gz
|
||||||
|
/acpica-unix2-20160729.tar.gz
|
||||||
|
/acpitests-unix-20160729.tar.gz
|
||||||
|
/acpica-unix2-20160831.tar.gz
|
||||||
|
/acpitests-unix-20160831.tar.gz
|
||||||
|
/acpica-unix2-20160930.tar.gz
|
||||||
|
/acpitests-unix-20160930.tar.gz
|
||||||
|
/acpica-unix2-20161117.tar.gz
|
||||||
|
/acpitests-unix-20161117.tar.gz
|
||||||
|
/acpica-unix2-20161222.tar.gz
|
||||||
|
/acpitests-unix-20161222.tar.gz
|
||||||
|
/acpica-unix2-20170119.tar.gz
|
||||||
|
/acpitests-unix-20170119.tar.gz
|
||||||
|
/acpica-unix2-20170224.tar.gz
|
||||||
|
/acpitests-unix-20170224.tar.gz
|
||||||
|
/acpica-unix2-20170303.tar.gz
|
||||||
|
/acpitests-unix-20170303.tar.gz
|
||||||
|
/acpica-unix2-20170531.tar.gz
|
||||||
|
/acpitests-unix-20170531.tar.gz
|
||||||
|
/acpica-unix2-20170629.tar.gz
|
||||||
|
/acpitests-unix-20170629.tar.gz
|
||||||
|
/acpica-unix2-20170728.tar.gz
|
||||||
|
/acpitests-unix-20170728.tar.gz
|
||||||
|
/acpica-unix2-20170831.tar.gz
|
||||||
|
/acpitests-unix-20170831.tar.gz
|
||||||
|
/acpica-unix2-20170929.tar.gz
|
||||||
|
/acpitests-unix-20170929.tar.gz
|
||||||
|
/acpica-unix2-20171110.tar.gz
|
||||||
|
/acpitests-unix-20171110.tar.gz
|
||||||
|
/acpica-unix2-20171215.tar.gz
|
||||||
|
/acpitests-unix-20171215.tar.gz
|
||||||
|
/acpica-unix2-20180105.tar.gz
|
||||||
|
/acpitests-unix-20180105.tar.gz
|
||||||
|
/acpica-unix2-20180209.tar.gz
|
||||||
|
/acpitests-unix-20180209.tar.gz
|
||||||
|
/acpica-unix2-20180313.tar.gz
|
||||||
|
/acpitests-unix-20180313.tar.gz
|
||||||
|
/acpica-unix2-20180427.tar.gz
|
||||||
|
/acpitests-unix-20180427.tar.gz
|
||||||
|
/acpica-unix2-20180508.tar.gz
|
||||||
|
/acpitests-unix-20180508.tar.gz
|
||||||
|
/acpica-unix2-20180531.tar.gz
|
||||||
|
/acpitests-unix-20180531.tar.gz
|
||||||
|
/acpica-unix2-20180629.tar.gz
|
||||||
|
/acpitests-unix-20180629.tar.gz
|
||||||
|
/acpica-unix2-20180810.tar.gz
|
||||||
|
/acpitests-unix-20180810.tar.gz
|
||||||
|
/acpica-unix2-20181003.tar.gz
|
||||||
|
/acpitests-unix-20181003.tar.gz
|
||||||
|
/acpica-unix2-20181031.tar.gz
|
||||||
|
/acpitests-unix-20181031.tar.gz
|
||||||
|
/acpica-unix2-20181213.tar.gz
|
||||||
|
/acpitests-unix-20181213.tar.gz
|
||||||
|
/acpica-unix2-20190108.tar.gz
|
||||||
|
/acpitests-unix-20190108.tar.gz
|
||||||
|
/acpica-unix2-20190215.tar.gz
|
||||||
|
/acpitests-unix-20190215.tar.gz
|
||||||
|
/acpica-unix2-20190329.tar.gz
|
||||||
|
/acpitests-unix-20190329.tar.gz
|
||||||
|
/acpica-unix2-20190405.tar.gz
|
||||||
|
/acpitests-unix-20190405.tar.gz
|
||||||
|
/acpica-unix2-20190509.tar.gz
|
||||||
|
/acpitests-unix-20190509.tar.gz
|
||||||
|
/acpica-unix2-20190703.tar.gz
|
||||||
|
/acpitests-unix-20190703.tar.gz
|
||||||
|
/acpica-unix2-20190816.tar.gz
|
||||||
|
/acpitests-unix-20190816.tar.gz
|
||||||
|
/acpica-unix2-20191018.tar.gz
|
||||||
|
/acpitests-unix-20191018.tar.gz
|
||||||
|
/acpica-unix2-20191213.tar.gz
|
||||||
|
/acpitests-unix-20191213.tar.gz
|
||||||
|
/acpica-unix2-20200110.tar.gz
|
||||||
|
/acpitests-unix-20200110.tar.gz
|
||||||
|
/acpica-unix2-20200214.tar.gz
|
||||||
|
/acpitests-unix-20200214.tar.gz
|
||||||
|
/acpica-unix2-20200326.tar.gz
|
||||||
|
/acpitests-unix-20200326.tar.gz
|
||||||
|
/acpica-unix2-20200430.tar.gz
|
||||||
|
/acpitests-unix-20200430.tar.gz
|
||||||
|
/acpica-unix2-20200528.tar.gz
|
||||||
|
/acpitests-unix-20200528.tar.gz
|
||||||
|
/acpica-unix2-20200717.tar.gz
|
||||||
|
/acpitests-unix-20200717.tar.gz
|
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-20200528/generate/unix/Makefile.config
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/generate/unix/Makefile.config
|
||||||
|
+++ acpica-unix2-20200528/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.
|
||||||
|
@@ -164,6 +167,11 @@ LDFLAGS +=-m32
|
||||||
|
endif
|
||||||
|
|
||||||
|
#
|
||||||
|
+# Common linker flags
|
||||||
|
+#
|
||||||
|
+OPT_LDFLAGS ?=
|
||||||
|
+
|
||||||
|
+#
|
||||||
|
# Optionally disable optimizations. Optimization causes problems on
|
||||||
|
# some compilers such as gcc 4.4
|
||||||
|
#
|
26
README.Fedora
Normal file
26
README.Fedora
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
Packaging Notes for Fedora
|
||||||
|
==========================
|
||||||
|
The upstream source contains documentation that may or may not be licensed
|
||||||
|
in a freely redistributable manner. In an excess of caution, the manuals in
|
||||||
|
question have been removed from the source we start with. You can still get
|
||||||
|
your own copies of the documentation from here:
|
||||||
|
|
||||||
|
https://www.acpica.org/documentation/
|
||||||
|
|
||||||
|
The two manuals affected are:
|
||||||
|
|
||||||
|
(1) ACPICA Reference Manual, describing the ACPI Component Architecture
|
||||||
|
in some detail, and
|
||||||
|
|
||||||
|
(2) ASL Compiler Reference Manual, describing how to use iasl
|
||||||
|
|
||||||
|
While there are man pages for the commands, they are very brief. The
|
||||||
|
documents above are recommended reading.
|
||||||
|
|
||||||
|
|
||||||
|
Test Cases
|
||||||
|
==========
|
||||||
|
The aapits tests do not currently build properly. They will be added to
|
||||||
|
this package once they do. In the meantime, ASL, template and misc tests
|
||||||
|
will be run as part of %check.
|
||||||
|
|
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).
|
790
acpica-tools.spec
Normal file
790
acpica-tools.spec
Normal file
@ -0,0 +1,790 @@
|
|||||||
|
Name: acpica-tools
|
||||||
|
Version: 20200717
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: ACPICA tools for the development and debug of ACPI tables
|
||||||
|
|
||||||
|
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: README.Fedora
|
||||||
|
Source3: iasl.1
|
||||||
|
Source4: acpibin.1
|
||||||
|
Source5: acpidump.1
|
||||||
|
Source6: acpiexec.1
|
||||||
|
Source7: acpihelp.1
|
||||||
|
Source8: acpinames.1
|
||||||
|
Source9: acpisrc.1
|
||||||
|
Source10: acpixtract.1
|
||||||
|
Source11: acpiexamples.1
|
||||||
|
Source12: badcode.asl.result
|
||||||
|
Source13: grammar.asl.result
|
||||||
|
Source14: converterSample.asl.result
|
||||||
|
Source15: run-misc-tests.sh
|
||||||
|
Source16: COPYING
|
||||||
|
|
||||||
|
Patch0: big-endian.patch
|
||||||
|
Patch1: big-endian-dmtbdump.patch
|
||||||
|
Patch2: big-endian-dmtbdump1.patch
|
||||||
|
Patch3: big-endian-dmtbdump2.patch
|
||||||
|
Patch4: big-endian-dmtbdump3.patch
|
||||||
|
Patch5: unaligned.patch
|
||||||
|
Patch6: OPT_LDFLAGS.patch
|
||||||
|
Patch7: int-format.patch
|
||||||
|
Patch8: f23-harden.patch
|
||||||
|
Patch9: template.patch
|
||||||
|
Patch10: ppc64le.patch
|
||||||
|
Patch11: arm7hl.patch
|
||||||
|
Patch12: big-endian-v2.patch
|
||||||
|
Patch13: simple-64bit.patch
|
||||||
|
Patch14: mips-be-fix.patch
|
||||||
|
Patch15: cve-2017-13693.patch
|
||||||
|
Patch16: cve-2017-13694.patch
|
||||||
|
Patch17: cve-2017-13695.patch
|
||||||
|
Patch18: str-trunc-warn.patch
|
||||||
|
Patch19: ptr-cast.patch
|
||||||
|
Patch20: aslcodegen.patch
|
||||||
|
Patch21: facp.patch
|
||||||
|
Patch24: armv7-str-fixes.patch
|
||||||
|
Patch25: dbtest.patch
|
||||||
|
#Patch27: big-endian-v3.patch
|
||||||
|
|
||||||
|
BuildRequires: bison patchutils flex gcc
|
||||||
|
|
||||||
|
# The previous iasl package contained only a very small subset of these tools
|
||||||
|
# and it produced only the iasl package listed below; further, the pmtools
|
||||||
|
# package -- which provides acpidump -- also provides a /usr/sbin/acpixtract
|
||||||
|
# that we don't really want to collide with
|
||||||
|
Provides: acpixtract >= 20120913-7
|
||||||
|
Provides: iasl = %{version}-%{release}
|
||||||
|
Obsoletes: iasl < 20120913-8
|
||||||
|
|
||||||
|
# The pmtools package provides an obsolete and deprecated version of the
|
||||||
|
# acpidump command from lesswatts.org which has now been taken off-line.
|
||||||
|
# ACPICA, however, is providing a new version and we again do not want to
|
||||||
|
# conflict with the command name.
|
||||||
|
Provides: acpidump >= 20100513-5
|
||||||
|
Provides: pmtools = %{version}-%{release}
|
||||||
|
Obsoletes: pmtools < 20100513-6
|
||||||
|
|
||||||
|
%description
|
||||||
|
The ACPI Component Architecture (ACPICA) project provides an OS-independent
|
||||||
|
reference implementation of the Advanced Configuration and Power Interface
|
||||||
|
Specification (ACPI). ACPICA code contains those portions of ACPI meant to
|
||||||
|
be directly integrated into the host OS as a kernel-resident subsystem, and
|
||||||
|
a small set of tools to assist in developing and debugging ACPI tables.
|
||||||
|
|
||||||
|
This package contains only the user-space tools needed for ACPI table
|
||||||
|
development, not the kernel implementation of ACPI. The following commands
|
||||||
|
are installed:
|
||||||
|
-- iasl: compiles ASL (ACPI Source Language) into AML (ACPI Machine
|
||||||
|
Language), suitable for inclusion as a DSDT in system firmware.
|
||||||
|
It also can disassemble AML, for debugging purposes.
|
||||||
|
-- acpibin: performs basic operations on binary AML files (e.g.,
|
||||||
|
comparison, data extraction)
|
||||||
|
-- acpidump: write out the current contents of ACPI tables
|
||||||
|
-- acpiexec: simulate AML execution in order to debug method definitions
|
||||||
|
-- acpihelp: display help messages describing ASL keywords and op-codes
|
||||||
|
-- acpinames: display complete ACPI name space from input AML
|
||||||
|
-- acpisrc: manipulate the ACPICA source tree and format source files
|
||||||
|
for specific environments
|
||||||
|
-- acpixtract: extract binary ACPI tables from acpidump output (see
|
||||||
|
also the pmtools package)
|
||||||
|
|
||||||
|
This version of the tools is being released under GPLv2 license.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n acpica-unix2-%{version}
|
||||||
|
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
|
||||||
|
|
||||||
|
%patch0 -p1 -b .big-endian
|
||||||
|
%patch1 -p1 -b .big-endian-dmtbdump
|
||||||
|
%patch2 -p1 -b .big-endian-dmtbdump1
|
||||||
|
%patch3 -p1 -b .big-endian-dmtbdump2
|
||||||
|
%patch4 -p1 -b .big-endian-dmtbdump3
|
||||||
|
%patch5 -p1 -b .unaligned
|
||||||
|
%patch6 -p1 -b .OPT_LDFLAGS
|
||||||
|
%patch7 -p1 -b .int-format
|
||||||
|
%patch8 -p1 -b .f23-harden
|
||||||
|
# do not preserve a backup for this patch; it alters the results
|
||||||
|
# of the template test case and forces it to fail
|
||||||
|
%patch9 -p1
|
||||||
|
%patch10 -p1 -b .ppc64le
|
||||||
|
%patch11 -p1 -b .arm7hl
|
||||||
|
%patch12 -p1 -b .big-endian-v2
|
||||||
|
%patch13 -p1 -b .simple-64bit
|
||||||
|
%patch14 -p1 -b .mips-be-fix
|
||||||
|
%patch15 -p1 -b .cve-2017-13693
|
||||||
|
%patch16 -p1 -b .cve-2017-13694
|
||||||
|
%patch17 -p1 -b .cve-2017-13695
|
||||||
|
%patch18 -p1 -b .str-trunc-warn
|
||||||
|
%patch19 -p1 -b .ptr-cast
|
||||||
|
%patch20 -p1 -b .aslcodegen
|
||||||
|
%patch21 -p1 -b .facp
|
||||||
|
%patch24 -p1 -b .armv7-str-fixes
|
||||||
|
%patch25 -p1 -b .dbtest
|
||||||
|
#%patch27 -p1 -b .big-endian-v3
|
||||||
|
|
||||||
|
cp -p %{SOURCE2} README.Fedora
|
||||||
|
cp -p %{SOURCE3} iasl.1
|
||||||
|
cp -p %{SOURCE4} acpibin.1
|
||||||
|
cp -p %{SOURCE5} acpidump.1
|
||||||
|
cp -p %{SOURCE6} acpiexec.1
|
||||||
|
cp -p %{SOURCE7} acpihelp.1
|
||||||
|
cp -p %{SOURCE8} acpinames.1
|
||||||
|
cp -p %{SOURCE9} acpisrc.1
|
||||||
|
cp -p %{SOURCE10} acpixtract.1
|
||||||
|
cp -p %{SOURCE11} acpiexamples.1
|
||||||
|
cp -p %{SOURCE12} badcode.asl.result
|
||||||
|
cp -p %{SOURCE13} grammar.asl.result
|
||||||
|
cp -p %{SOURCE14} converterSample.asl.result
|
||||||
|
cp -p %{SOURCE15} tests/run-misc-tests.sh
|
||||||
|
chmod a+x tests/run-misc-tests.sh
|
||||||
|
cp -p %{SOURCE16} COPYING
|
||||||
|
|
||||||
|
# spurious executable permissions on text files in upstream
|
||||||
|
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"
|
||||||
|
|
||||||
|
OPT_CFLAGS="%{optflags} $CWARNINGFLAGS"
|
||||||
|
OPT_LDFLAGS="%{__global_ldflags}"
|
||||||
|
export OPT_CFLAGS
|
||||||
|
export OPT_LDFLAGS
|
||||||
|
|
||||||
|
make
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
# Install the binaries
|
||||||
|
mkdir -p %{buildroot}%{_bindir}
|
||||||
|
install -pD generate/unix/bin*/* %{buildroot}%{_bindir}/
|
||||||
|
|
||||||
|
# Install the man pages
|
||||||
|
mkdir -p %{buildroot}%{_mandir}/man1
|
||||||
|
install -pDm 0644 *.1 %{buildroot}%{_mandir}/man1/
|
||||||
|
|
||||||
|
# Install the examples source code
|
||||||
|
mkdir -p %{buildroot}%{_docdir}/acpica-tools/examples
|
||||||
|
install -pDm 0644 source/tools/examples/* %{buildroot}%{_docdir}/acpica-tools/examples/
|
||||||
|
|
||||||
|
%check
|
||||||
|
cd tests
|
||||||
|
|
||||||
|
# ASL tests
|
||||||
|
./aslts.sh # relies on non-zero exit
|
||||||
|
[ $? -eq 0 ] || exit 1
|
||||||
|
|
||||||
|
# misc tests
|
||||||
|
./run-misc-tests.sh %{buildroot}%{_bindir} %{version}
|
||||||
|
|
||||||
|
%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
|
||||||
|
%doc README.Fedora COPYING
|
||||||
|
%{_bindir}/*
|
||||||
|
%{_mandir}/*/*
|
||||||
|
%{_docdir}/*/*
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Jul 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200430-3
|
||||||
|
- Second attempt - Rebuilt for
|
||||||
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20200430-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 8 2020 Al Stone <ahs3@redhat.com> - 202004306-1
|
||||||
|
- Update to 202004306 source tree, including patch refreshes
|
||||||
|
|
||||||
|
* Wed Apr 1 2020 Al Stone <ahs3@redhat.com> - 20200326-1
|
||||||
|
- Update to 20200326 source tree, including patch refreshes
|
||||||
|
- Removed a couple of patches that got included upstream
|
||||||
|
|
||||||
|
* Wed Feb 26 2020 Al Stone <ahs3@redhat.com> - 20200214-1
|
||||||
|
- Update to 20200214 source tree, including patch refreshes
|
||||||
|
- Add patch to fix up issues where strings and 4-byte quantities
|
||||||
|
get interchanged; C strings want to be null terminated now, but
|
||||||
|
AML does not so using strncpy is painful.
|
||||||
|
- Add patch for s390x specific issue (dbtest), where initializing a
|
||||||
|
string on the stack behaves a little differently
|
||||||
|
- "PCC" is a defined Register() type, but "PlatformCommChannel" was
|
||||||
|
being used instead; put it back to "PCC" as it should be in pcc.patch
|
||||||
|
- Add another big-endian patch to compensate for changes to nsutils.c
|
||||||
|
|
||||||
|
* Mon Feb 24 2020 Al Stone <ahs3@redhat.com> - 20200110-1
|
||||||
|
- Update to 20200110 source tree, including patch refreshes
|
||||||
|
|
||||||
|
* Sun Feb 23 2020 Al Stone <ahs3@redhat.com> - 20191213-1
|
||||||
|
- Update to 20191213 source tree, including patch refeshes.
|
||||||
|
- badexit patch no longer needed, so removed
|
||||||
|
- GCC10 enforces -fno-common now, catching multiple places where linkage
|
||||||
|
is not explicitly stated; added a patch to resolve the linker errors
|
||||||
|
|
||||||
|
* Sun Feb 23 2020 Al Stone <ahs3@redhat.com> - 20191018-2
|
||||||
|
- Upstream does not build from source -- this release not pushed into
|
||||||
|
the archives and noted here just for record keeping
|
||||||
|
|
||||||
|
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 20190816-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Nov 23 2019 Al Stone <ahs3@redhat.com> - 20191018-1
|
||||||
|
- Update to 20191019 source tree, including patch refeshes.
|
||||||
|
|
||||||
|
* Tue Oct 29 2019 Al Stone <ahs3@redhat.com> - 20190816-1
|
||||||
|
- Update to 20190816 source tree, including patch refeshes.
|
||||||
|
- Add a patch to fix a non-zero exit from iasl -T ALL that actually succeeds
|
||||||
|
- Remove the "template" tests; they have been subsumed by aslts.sh as they
|
||||||
|
should be
|
||||||
|
|
||||||
|
* Thu Oct 24 2019 Al Stone <ahs3@redhat.com> - 20190703-1
|
||||||
|
- Update to 20190703 source tree, including patch refeshes.
|
||||||
|
|
||||||
|
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20190509-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun May 26 2019 Peter Robinson <pbrobinson@fedoraproject.org> 20190509-4
|
||||||
|
- Bump release for clean upgrade from F-29
|
||||||
|
|
||||||
|
* Mon May 13 2019 Al Stone <ahs3@redhat.com> - 20190509-2
|
||||||
|
- Added an arm7hl specific fix acenv.h; GCC9 on arm7hl can now deal
|
||||||
|
with misalignments so the unaligned patch could be relaxed a bit
|
||||||
|
- the templates test was failing because of the backup left behind
|
||||||
|
by the patch macro, so change the invocation of the macro.
|
||||||
|
|
||||||
|
* Sat May 11 2019 Al Stone <ahs3@redhat.com> - 20190509-1
|
||||||
|
- Update to 20190509 source tree, including patch refeshes.
|
||||||
|
|
||||||
|
* Fri May 10 2019 Al Stone <ahs3@redhat.com> - 20190405-1
|
||||||
|
- Update to 20190405 source tree, including patch refeshes.
|
||||||
|
|
||||||
|
* Fri May 10 2019 Al Stone <ahs3@redhat.com> - 20190329-1
|
||||||
|
- Update to 20190329 source tree, including patch refeshes.
|
||||||
|
|
||||||
|
* Fri May 10 2019 Al Stone <ahs3@redhat.com> - 20190215-1
|
||||||
|
- Update to 20190215 source tree, including patch refeshes.
|
||||||
|
|
||||||
|
* Fri May 10 2019 Al Stone <ahs3@redhat.com> - 20190108-1
|
||||||
|
- Update to 20190108 source tree, including patch refeshes.
|
||||||
|
- Replace use of strncpy() with memcpy() when moving ASCII bytes around;
|
||||||
|
the tables use "strings" but they are seldom null terminated, causing
|
||||||
|
GCC9 to complain. Closes BZ#1674629.
|
||||||
|
|
||||||
|
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 20181213-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Dec 19 2018 Al Stone <ahs3@redhat.com> - 20181213-2
|
||||||
|
- Add a patch to allow zero DSDT addresses in the FADT when compiling
|
||||||
|
|
||||||
|
* Thu Dec 13 2018 Al Stone <ahs3@redhat.com> - 20181213-1
|
||||||
|
- Update to 20181213 source tree, including patch refeshes.
|
||||||
|
- Refresh patches; folded be-tpm2 into the larger big-endian patch after
|
||||||
|
|
||||||
|
* Thu Dec 13 2018 Al Stone <ahs3@redhat.com> - 20181031-1
|
||||||
|
- Update to 20181031 source tree, including patch refeshes. Closes BZ#1656229
|
||||||
|
- Refresh patches; folded be-tpm2 into the larger big-endian patch after
|
||||||
|
cleaning it up a bit
|
||||||
|
- Merge in acpica-tools-tests PR
|
||||||
|
|
||||||
|
* Wed Oct 24 2018 Al Stone <ahs3@redhat.com> - 20181003-1
|
||||||
|
- Update to 20181003 source tree, including patch refeshes. Closes BZ#1634207
|
||||||
|
- Merge in dump-tables PR
|
||||||
|
|
||||||
|
* Mon Sep 17 2018 Al Stone <ahs3@redhat.com> - 20180810-1
|
||||||
|
- Update to 20180810 source tree, including patch refeshes. Closes BZ#1614986
|
||||||
|
|
||||||
|
* Wed Aug 8 2018 Al Stone <ahs3@redhat.com> - 20180629-3
|
||||||
|
- Add in man page for acpiexamples. So that the man page makes some sense,
|
||||||
|
also copy the source code used for acpiexamples to the doc directory for
|
||||||
|
this package. Closes BZ#1611145.
|
||||||
|
- Add in the converterSample.asl file from the misc tests. Clean up the
|
||||||
|
run-misc-tests.sh script, too, to make it more robust by simplifying
|
||||||
|
the work done.
|
||||||
|
|
||||||
|
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20180629-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sun Jul 8 2018 Al Stone <ahs3@redhat.com> - 20180629-1
|
||||||
|
- Update to 20180629 source tree, including patch refeshes. Closes BZ#1584923
|
||||||
|
- Includes upstream fix for #1592971 (iasl segfault).
|
||||||
|
|
||||||
|
* Thu Jun 21 2018 Al Stone <ahs3@redhat.com> - 20180531-1
|
||||||
|
- Update to 20180531 source tree, including patch refeshes. Closes BZ#1584923
|
||||||
|
|
||||||
|
* Tue May 22 2018 Al Stone <ahs3@redhat.com> - 20180508-2
|
||||||
|
- %%pre and %%post scriptlets fail -- stupid thinko where I inadvertently
|
||||||
|
tested for alternatives not existing, vs existing
|
||||||
|
|
||||||
|
* Tue May 15 2018 Al Stone <ahs3@redhat.com> - 20180508-1
|
||||||
|
- Update to 20180508 source tree, including patch refeshes. Closes BZ#1544048
|
||||||
|
- acpidump/acpixtract no longer have alternatives, so remove the scriptlets
|
||||||
|
that maintain them and just install them directly; we do leave the pre-
|
||||||
|
and post- scriptlets to remove the alternatives for now. Closes BZ#1576970
|
||||||
|
- Typo: OPT_LDFLAGS, not OPT_LDLAGS in the build section. Closes BZ#1560542
|
||||||
|
|
||||||
|
* Mon May 14 2018 Al Stone <ahs3@redhat.com> - 20180427-1
|
||||||
|
- Update to 20180427 source tree, including patch refeshes. Closes BZ#1544048
|
||||||
|
|
||||||
|
* Mon May 14 2018 Al Stone <ahs3@redhat.com> - 20180313-1
|
||||||
|
- Update to 20180313 source tree, including patch refeshes. Closes BZ#1544048
|
||||||
|
|
||||||
|
* Fri Mar 16 2018 Al Stone <ahs3@redhat.com> - 20180209-1
|
||||||
|
- Update to 20180209 source tree, including patch refeshes. Closes BZ#1544048
|
||||||
|
- CVE-2017-13693: operand cache leak in dsutils.c -- applied github patch to
|
||||||
|
fix the leak. Resolves BZ#1485346.
|
||||||
|
- CVE-2017-13694: acpi parse and parseext cache leaks in psobjects.c -- applied
|
||||||
|
github patch to fix the leaks. Resolves BZ#1485348.
|
||||||
|
- CVE-2017-13695: operand cache leak in nseval.c -- applied github patch to fix
|
||||||
|
the leak. Resolves BZ#1485349.
|
||||||
|
- Security fixes for the CVEs above applied. Closes BZ#1485355. NOTE: these
|
||||||
|
patches fix acpica-tools ONLY; the kernel needs to be patch separately.
|
||||||
|
- Added gcc to BuildRequires
|
||||||
|
- It turns out the %%build section was incorrectly passing in OPT_CFLAGS; it
|
||||||
|
made the wrong assumptions about what generate/unix/Makefile.config did with
|
||||||
|
that value. Added to the spec file what should happen so that a full and
|
||||||
|
complete set of C flags get passed in, not just the small subset that was.
|
||||||
|
- Clean up compiler warnings for truncated strings
|
||||||
|
- Clean up compiler warnings for pointer casting on 32-bit architectures
|
||||||
|
|
||||||
|
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 20180105-3
|
||||||
|
- Escape macros in %%changelog
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 20180105-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 8 2018 Al Stone <ahs3@redhat.com> - 20180105-1
|
||||||
|
- Update to 20180105 source tree, including patch refeshes. Closes BZ#1526651
|
||||||
|
- Cleaned up changelog. Closes BZ#1525938
|
||||||
|
- Pulled in a mips32/BE patch from Debian, for completeness sake
|
||||||
|
|
||||||
|
* Mon Jan 8 2018 Al Stone <ahs3@redhat.com> - 20171215-1
|
||||||
|
- Update to 20171215 source tree, including patch refeshes
|
||||||
|
|
||||||
|
* Mon Nov 20 2017 Al Stone <ahs3@redhat.com> - 20171110-1
|
||||||
|
- Update to 20171110 source tree, including patch refeshes
|
||||||
|
- Add patch for mips64el build, should it ever be needed; it also cleans
|
||||||
|
up all 64-bit arches, so nice to have regardless
|
||||||
|
- Add new patch for a TPM2 big-endian issue.
|
||||||
|
|
||||||
|
* Fri Oct 6 2017 Al Stone <ahs3@redhat.com> - 20170929-1
|
||||||
|
- Update to 20170929 source tree, including patch refeshes
|
||||||
|
- Removed aslts-acpibin.patch to fix PATH problem in ASLTS; in upstream now
|
||||||
|
|
||||||
|
* Wed Sep 27 2017 Al Stone <ahs3@redhat.com> - 20170831-1
|
||||||
|
- Update to 20170831 source tree, including patch refeshes
|
||||||
|
- Add aslts-acpibin.patch to fix PATH problem in ASLTS that prevents
|
||||||
|
some tests from being run
|
||||||
|
|
||||||
|
* Fri Aug 18 2017 Al Stone <ahs3@redhat.com> - 20170728-3
|
||||||
|
- Completed the big-endian fixes (I think)
|
||||||
|
- Fix ppc64le.patch that inadvertently broke s390x
|
||||||
|
- Minor patch refresh
|
||||||
|
- Re-enable full %%check for s390x
|
||||||
|
|
||||||
|
* Mon Aug 14 2017 Al Stone <ahs3@redhat.com> - 20170728-2
|
||||||
|
- Start some long delayed clean-up
|
||||||
|
- Temporarily disable one test section until all the big-endian issues
|
||||||
|
can be resolved; it provides what may be a false negative result
|
||||||
|
- Consolidate the big-endian patches
|
||||||
|
|
||||||
|
* Fri Aug 11 2017 Al Stone <ahs3@redhat.com> - 20170728-1
|
||||||
|
- Update to 20170728 source tree, including patch refeshes
|
||||||
|
|
||||||
|
* Fri Aug 11 2017 Al Stone <ahs3@redhat.com> - 20170629-1
|
||||||
|
- Update to 20170629 source tree, including patch refeshes
|
||||||
|
|
||||||
|
* Fri Aug 11 2017 Al Stone <ahs3@redhat.com> - 20170531-1
|
||||||
|
- Update to 20170531 source tree, including patch refeshes
|
||||||
|
|
||||||
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170303-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170303-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri May 5 2017 Al Stone <ahs3@redhat.com> - 20170303-3
|
||||||
|
- Correct ppc64le.patch; it was not setting little-endian properly.
|
||||||
|
|
||||||
|
* Tue May 2 2017 Al Stone <ahs3@redhat.com> - 20170303-2
|
||||||
|
- Correct update-big-endian.patch; it introduced a bug due to logic being
|
||||||
|
replaced in the wrong order.
|
||||||
|
|
||||||
|
* Fri Mar 31 2017 Al Stone <ahs3@redhat.com> - 20170303-1
|
||||||
|
- Update to latest upstream. Closes BZ#1381017.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Fri Mar 31 2017 Al Stone <ahs3@redhat.com> - 20170224-1
|
||||||
|
- Update to latest upstream. Closes BZ#1381017.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 20170119-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 30 2017 Al Stone <ahs3@redhat.com> - 20170119-1
|
||||||
|
- Update to latest upstream. Closes BZ#1381017.
|
||||||
|
- Refresh patches.
|
||||||
|
- Add patch to fix ASLTS.
|
||||||
|
- Add patch to fix ppc64le build.
|
||||||
|
- Add patch to fix arm7hl build.
|
||||||
|
|
||||||
|
* Mon Jan 9 2017 Al Stone <ahs3@redhat.com> - 20161222-1
|
||||||
|
- Update to latest upstream. Closes BZ#1381017.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Mon Jan 9 2017 Al Stone <ahs3@redhat.com> - 20160930-3
|
||||||
|
- Restructure the repairs for big-endian support to simplify patching -- it is
|
||||||
|
all combined into update-big-endian.patch now. (NB: this version may still
|
||||||
|
have issues on big-endian)
|
||||||
|
|
||||||
|
* Fri Dec 9 2016 Al Stone <ahs3@redhat.com> - 20160930-2
|
||||||
|
- Major repairs to compiler and disassembler code to make it endian-neutral
|
||||||
|
again (added patches big-endian-part1 and big-endian-part2).
|
||||||
|
|
||||||
|
* Fri Oct 28 2016 Al Stone <ahs3@redhat.com> - 20160930-2
|
||||||
|
- Update to latest upstream. Closes BZ#1381017.
|
||||||
|
- Refresh patches.
|
||||||
|
- Major repairs to disassembler code to make it endian-neutral again.
|
||||||
|
|
||||||
|
* Thu Sep 1 2016 Al Stone <ahs3@redhat.com> - 20160831-1
|
||||||
|
- Update to latest upstream. Closes BZ#1372107.
|
||||||
|
- Refresh patches.
|
||||||
|
- Closes BZ#1365193 -- s390x FTBFS due to int/ptr size mismatch: made sure
|
||||||
|
the tools built with 64-bit integers for s390x
|
||||||
|
|
||||||
|
* Tue Aug 2 2016 Al Stone <ahs3@redhat.com> - 20160729-1
|
||||||
|
- Update to latest upstream. Closes BZ#1361737.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Thu Jun 9 2016 Al Stone <ahs3@redhat.com> - 20160527-1
|
||||||
|
- Update to latest upstream. Closes BZ#1340573.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Tue Apr 26 2016 Al Stone <ahs3@redhat.com> - 20160422-1
|
||||||
|
- Update to latest upstream. Closes BZ#1329774.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Sat Mar 19 2016 Al Stone <ahs3@redhat.com> - 20160318-1
|
||||||
|
- Update to latest upstream. Closes BZ#1319359.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Mon Feb 22 2016 Al Stone <ahs3@redhat.com> - 20160212-1
|
||||||
|
- Update to latest upstream. Closes BZ#1307192.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 20160108-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 11 2016 Al Stone <ahs3@redhat.com> - 20160108-1
|
||||||
|
- Update to latest upstream. Closes BZ#1297078.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Wed Jan 6 2016 Al Stone <ahs3@redhat.com> - 20151218-1
|
||||||
|
- Update to latest upstream. Closes BZ#1292987.
|
||||||
|
- Refresh patches, and remove one no longer needed (acpinames).
|
||||||
|
|
||||||
|
* Tue Dec 15 2015 Al Stone <ahs3@redhat.com> - 20151124-1
|
||||||
|
- Update to latest upstream. Closes BZ#1267772.
|
||||||
|
- Refresh patches.
|
||||||
|
- Add back in a patch to rename source/tools/acpinames/AcpiNames.h to remove
|
||||||
|
the camel case; this is a leftover in the conversion to Un*x files, and
|
||||||
|
crept back in with this version.
|
||||||
|
|
||||||
|
* Wed Oct 14 2015 Al Stone <ahs3@redhat.com> - 20150930-1
|
||||||
|
- Update to latest upstream. Closes BZ#1267772.
|
||||||
|
- Refresh patches, and remove one no longer needed.
|
||||||
|
|
||||||
|
* Thu Sep 10 2015 Al Stone <ahs3@redhat.com> - 20150818-2
|
||||||
|
- Remove extraneous patch files for AAPITS.
|
||||||
|
- Correct an assumption that all names are stored in little-endian format.
|
||||||
|
Fix is in asllookup-ppc64.patch. Closes BZ#1251972.
|
||||||
|
|
||||||
|
* Wed Sep 9 2015 Al Stone <ahs3@redhat.com> - 20150818-1
|
||||||
|
- Update to latest upstream. Closes BZ#1256134.
|
||||||
|
- Refresh patches
|
||||||
|
- This version deprecates aapits (ACPICA API Test Suite) for now; this is
|
||||||
|
in accordance with upstream wishes, but in this maintainer's view, may
|
||||||
|
not be the correct long term solution as there is no other API specific
|
||||||
|
test suite.
|
||||||
|
- Add a patch to rename source/tools/acpinames/AcpiNames.h to remove the
|
||||||
|
camel case; this is a leftover in the conversion to Un*x files.
|
||||||
|
|
||||||
|
* Tue Aug 4 2015 Al Stone <ahs3@redhat.com> - 20150717-1
|
||||||
|
- Update to latest upstream. Closes BZ#1244449.
|
||||||
|
- Refresh patches
|
||||||
|
- Bodge back together the aapits makefile after source file relocations in
|
||||||
|
the primary ACPICA component files
|
||||||
|
- Update the misc test results to incorporate iasl improvements
|
||||||
|
|
||||||
|
* Tue Jun 30 2015 Al Stone <ahs3@redhat.com> - 20150619-2
|
||||||
|
- Silly error: forgot to remove patches that are no longer needed
|
||||||
|
|
||||||
|
* Mon Jun 29 2015 Al Stone <ahs3@redhat.com> - 20150619-1
|
||||||
|
- Update to latest upstream. Closes BZ#1232512.
|
||||||
|
- Refresh patches
|
||||||
|
|
||||||
|
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20150515-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jun 3 2015 Al Stone <ahs3@redhat.com> - 20150515-2
|
||||||
|
- Replace dev-mem patch with nodevmem; this is a much more robust version of
|
||||||
|
the functionality needed, and set up properly for arm64 -- the patch makes
|
||||||
|
it so that acpidump does not use /dev/mem at all on arm64 since it might
|
||||||
|
not contain the right data.
|
||||||
|
|
||||||
|
* Mon Jun 1 2015 Al Stone <ahs3@redhat.com> - 20150515-1
|
||||||
|
- Update to latest upstream. Closes BZ#122166
|
||||||
|
- Refresh patches
|
||||||
|
- Add patch from upstream for incorrect UUIDs for NFIT
|
||||||
|
- Add patch from Linaro to remove use of /dev/mem (use /sys instead)
|
||||||
|
- Add patch from upstream to correct ARM GIC entries in MADT
|
||||||
|
- Add patch to fix segfaults reported. Closes BZ#1219341.
|
||||||
|
|
||||||
|
* Mon Apr 13 2015 Al Stone <ahs3@redhat.com> - 20150410-1
|
||||||
|
- Update to latest upstream. Closes BZ#1190383
|
||||||
|
- Refresh patches
|
||||||
|
|
||||||
|
* Fri Apr 10 2015 Al Stone <ahs3@redhat.com> - 20150408-1
|
||||||
|
- Update to latest upstream. Closes BZ#1190383
|
||||||
|
- Refresh patches
|
||||||
|
|
||||||
|
* Mon Mar 2 2015 Al Stone <ahs3@redhat.com> - 20150204-1
|
||||||
|
- Update to latest upstream. Closes BZ#1190383
|
||||||
|
- Refresh patches
|
||||||
|
|
||||||
|
* Mon Nov 17 2014 Al Stone <ahs3@redhat.com> - 20141107-1
|
||||||
|
- Update to latest upstream. Closes BZ#1147131.
|
||||||
|
- Refresh patches
|
||||||
|
- Patch to ensure ASLTS always reports when an error occurs, instead
|
||||||
|
of glossing over it has been incorporated upstream, so remove patch.
|
||||||
|
|
||||||
|
* Wed Oct 1 2014 Al Stone <ahs3@redhat.com> - 20140926-1
|
||||||
|
- Update to latest upstream. Closes BZ#1147131.
|
||||||
|
- Refresh patches
|
||||||
|
- Add patch to ensure ASLTS always reports when an error occurs, instead
|
||||||
|
of glossing over it.
|
||||||
|
- Add use of %%__global_ldflags. Closes BZ#1126134.
|
||||||
|
|
||||||
|
* Fri Aug 29 2014 Al Stone <ahs3@redhat.com> - 20140828-1
|
||||||
|
- Update to latest upstream. Closes BZ#1135352.
|
||||||
|
- Refresh patches.
|
||||||
|
|
||||||
|
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 20140724-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 28 2014 Al Stone <ahs3@redhat.com> - 20140724-1
|
||||||
|
- Update to latest upstream. Closes BZ#1114275.
|
||||||
|
- This update adds support for the 5.1 version of the ACPI specification
|
||||||
|
- Refresh patches so everything applies properly.
|
||||||
|
|
||||||
|
* Fri Jun 6 2014 Dan Horák <dan[at]danny.cz> - 20140424-3
|
||||||
|
- refresh the big endian patch so it applies correctly, fixes build on big endians
|
||||||
|
|
||||||
|
* Thu May 22 2014 Al Stone <ahs3@redhat.com> - 20140424-2
|
||||||
|
- Add ppc64le as a 64-bit arch in run-misc-tests.sh. Closes BZ#1098614.
|
||||||
|
- Re-enable big-endian support in iasl.
|
||||||
|
|
||||||
|
* Wed May 7 2014 Al Stone <ahs3@redhat.com> - 20140424-1
|
||||||
|
- Update to latest upstream. Closes BZ#1091189.
|
||||||
|
|
||||||
|
* Fri Apr 4 2014 Al Stone <ahs3@redhat.com> - 20140325-1
|
||||||
|
- Update to latest upstream. Closes BZ#1080791.
|
||||||
|
- Incorporated patch to fix broken symlinks. Closes BZ#1074256.
|
||||||
|
- Add patch to fix missing .o files in aapits tests.
|
||||||
|
|
||||||
|
* Wed Feb 26 2014 Al Stone <ahs3@redhat.com> - 20140214-1
|
||||||
|
- Update to latest upstream. Closes BZ#1053396.
|
||||||
|
- Remove temporary patch so that AAPITS will build and run.
|
||||||
|
- Add patch to print asllookup.c warning properly on big endian;
|
||||||
|
Closes BZ#1069178.
|
||||||
|
|
||||||
|
* Tue Jan 21 2014 Al Stone <ahs3@redhat.com> - 20140114-1
|
||||||
|
- Update to latest upstream. Closes BZ#1053396.
|
||||||
|
- Remove temporary patch to add Makefile missing from upstream tarball.
|
||||||
|
- Add temporary patch so that AAPITS will build and run.
|
||||||
|
|
||||||
|
* Tue Jan 7 2014 Al Stone <ahs3@redhat.com> - 20131218-1
|
||||||
|
- Update to latest upstream. Closes BZ#1044951.
|
||||||
|
- Add temporary patch to add Makefile missing from upstream tarball.
|
||||||
|
|
||||||
|
* Mon Nov 25 2013 Al Stone <ahs3@redhat.com> - 20131115-1
|
||||||
|
- Update to latest upstream. Closes BZ#1031255.
|
||||||
|
- Add a little code to workaround build problems that can occur (the tests
|
||||||
|
will fail) when a build starts before midnight, but ends after midnight
|
||||||
|
- Remove patch to include Makefile.config that was missing from tarball.
|
||||||
|
|
||||||
|
* Wed Oct 09 2013 Al Stone <ahs3@redhat.com> - 20130927-1
|
||||||
|
- Update to latest upstream. Closes BZ#1013090.
|
||||||
|
- Add temporary patch to include Makefile.config being missing from tarball.
|
||||||
|
|
||||||
|
* Fri Sep 13 2013 Michael Schwendt <mschwendt@fedoraproject.org> - 20130823-5
|
||||||
|
- correct iasl obs_ver
|
||||||
|
|
||||||
|
* Tue Sep 10 2013 Dean Nelson <dnelson@redhat.com> - 20130823-4
|
||||||
|
- Fix run-misc-tests.sh script to properly set the number of BITS to 64
|
||||||
|
when run on a s390x system.
|
||||||
|
|
||||||
|
* Tue Sep 10 2013 Michael Schwendt <mschwendt@fedoraproject.org> - 20130823-3
|
||||||
|
- correct pmtools obs_ver
|
||||||
|
|
||||||
|
* Tue Aug 27 2013 Al Stone <ahs3@redhat.com> - 20130823-2
|
||||||
|
- Add in a copy of the GPLv2 text in order to comply with the requirement
|
||||||
|
to always redistribute the terms of the license.
|
||||||
|
|
||||||
|
* Mon Aug 26 2013 Al Stone <ahs3@redhat.com> - 20130823-1
|
||||||
|
- Update to latest upstream source.
|
||||||
|
|
||||||
|
* Tue Aug 20 2013 Al Stone <ahs3@redhat.com> - 20130725-2
|
||||||
|
- Fix several rpmlint items (listed below)
|
||||||
|
- Add versions to explicit provides for acpixtract, acpidump
|
||||||
|
- Not all setup steps used -q
|
||||||
|
- Setup executable test script (run-misc-tests.sh) differently
|
||||||
|
- Removed unneeded commented out line with macros in it
|
||||||
|
- Removed mixed use of spaces and tabs (all spaces now)
|
||||||
|
- Corrected source URLs (upstream moved)
|
||||||
|
|
||||||
|
* Sun Aug 18 2013 Al Stone <ahs3@redhat.com> - 20130725-1
|
||||||
|
- Update to latest upstream source.
|
||||||
|
|
||||||
|
* Wed Jul 24 2013 Al Stone <ahs3@redhat.com> - 20130626-1
|
||||||
|
- Update to latest upstream source.
|
||||||
|
- Move acpidump to acpidump-acpica so it be an alternative properly
|
||||||
|
- Add basic man page for acpidump
|
||||||
|
- Enable use of AAPITS tests during the check step
|
||||||
|
|
||||||
|
* Sun Jun 02 2013 Al Stone <ahs3@redhat.com> - 20130517-2
|
||||||
|
- Correct an oversight: we provide an acpidump in conflict with the
|
||||||
|
version in pmtools (which appears to be dead upstream) but had not
|
||||||
|
made it an alternative before
|
||||||
|
|
||||||
|
* Tue May 28 2013 Al Stone <ahs3@redhat.com> - 20130517-1
|
||||||
|
- Update to latest upstream source.
|
||||||
|
- Remove acpica-tools-config.patch -- now in upstream
|
||||||
|
- Remove iasl-signed-char.patch -- now in upstream
|
||||||
|
- Updated debian-big_endian.patch
|
||||||
|
- Updated debian-unaligned.patch
|
||||||
|
|
||||||
|
* Mon May 13 2013 Al Stone <ahs3@redhat.com> - 20130328-1
|
||||||
|
- Update to latest upstream source.
|
||||||
|
|
||||||
|
* Wed Mar 20 2013 Al Stone <ahs3@redhat.com> - 20130214-2
|
||||||
|
- Incorporate use of optflags macro in the build.
|
||||||
|
- Remove extraneous rm -rf of buildroot.
|
||||||
|
- Remove extraneous use of defattr in the files section.
|
||||||
|
- Incorporate use of parallel make.
|
||||||
|
- Remove extraneous use of the clean section.
|
||||||
|
- Use simpler globbing in the files section.
|
||||||
|
- Use simpler globbing in the install section.
|
||||||
|
- Remove obsolete git notes from README.Fedora.
|
||||||
|
- Remove ExcludeArch restrictions.
|
||||||
|
|
||||||
|
* Mon Feb 18 2013 Al Stone <ahs3@redhat.com> - 20130214-1
|
||||||
|
- New upstream.
|
||||||
|
- Remove most of the config file patch; still need to remove -m{32,64}.
|
||||||
|
- Clarify the licensing; this source is dual-licensed and is being released
|
||||||
|
under the GPLv2 as allowed by the original Intel license.
|
||||||
|
- Redo the misc tests so they compare results properly.
|
||||||
|
|
||||||
|
* Wed Feb 06 2013 Al Stone <ahs3@redhat.com> - 20130117-6
|
||||||
|
- Added a zero-fill to a date used in comparing testing results so that the
|
||||||
|
comparison would be correct on days numbered < 10.
|
||||||
|
|
||||||
|
* Thu Jan 31 2013 Al Stone <ahs3@redhat.com> - 20130117-5
|
||||||
|
- Simplify versioning scheme and revert to the original scheme in use by
|
||||||
|
iasl, which is use the latest official tarball date (2013017) as the
|
||||||
|
version and 1%%{?dist} as the release, to be incremented for packaging
|
||||||
|
and bug fixes as needed.
|
||||||
|
|
||||||
|
* Wed Jan 30 2013 Al Stone <ahs3@redhat.com> - 20130117-4
|
||||||
|
- Do a little reset: go back to using just the original upstream tarball
|
||||||
|
instead of the latest git; the snapshot approach was more complicated
|
||||||
|
than needed.
|
||||||
|
- Upstream tarballs split commands from test suites, so had to add the
|
||||||
|
test suite back in as another Source: file.
|
||||||
|
- Change versioning scheme to include the APCI specification level (5.0),
|
||||||
|
the latest official tarball date (2013017) and a revision level (the
|
||||||
|
.1 at the end) for packaging and bug fixes as needed.
|
||||||
|
- Changed the License field to reflect the source tarball change; the release
|
||||||
|
tarball is dual-licensed, Intel ACPI or GPLv2.
|
||||||
|
- Updated patches to apply cleanly as needed.
|
||||||
|
- Corrected Obsoletes and Provides version numbers.
|
||||||
|
|
||||||
|
* Mon Jan 28 2013 Al Stone <ahs3@redhat.com> - 20130117-3
|
||||||
|
- Reconcile Fedora and Debian patches to be as alike as possible
|
||||||
|
|
||||||
|
* Mon Jan 28 2013 Al Stone <ahs3@redhat.com> - 20130117-2
|
||||||
|
- Verify ExcludeArch restrictions -- the architectures excluded can have
|
||||||
|
no use for these tools. Hardware support for ACPI is simply not
|
||||||
|
implemented for them.
|
||||||
|
- Corrected versioning to note this source came from a git pull.
|
||||||
|
- Add License file as upstream has not yet provided one (and has not for
|
||||||
|
many years).
|
||||||
|
- Insert properly versioned Provides and Obsoletes for iasl.
|
||||||
|
- Corrected files to use man.1* (vs man.1.gz) to allow flexibility in the
|
||||||
|
compression being used.
|
||||||
|
|
||||||
|
* Wed Jan 23 2013 Al Stone <ahs3@redhat.com> - 20130117-1
|
||||||
|
- Clone from the current iasl package, with the intent of replacing it
|
||||||
|
- Update source to latest upstream
|
||||||
|
- NB: ACPICA documentation would normally be included in a source tarball.
|
||||||
|
But, since it is not clearly redistributable, it is not included in the
|
||||||
|
source RPM for this package.
|
||||||
|
- Build all ACPICA tools, not just iasl (and hence the package replacement)
|
||||||
|
- Add in brief man pages
|
||||||
|
- Set up acpixtract from this package as an alternative to the same command
|
||||||
|
in the pmtools package
|
||||||
|
- Run the check step once built
|
||||||
|
|
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).
|
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).
|
21
arm7hl.patch
Normal file
21
arm7hl.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Index: acpica-unix-20191018/source/include/acmacros.h
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/include/acmacros.h
|
||||||
|
+++ acpica-unix-20191018/source/include/acmacros.h
|
||||||
|
@@ -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];\
|
12
armv7-str-fixes.patch
Normal file
12
armv7-str-fixes.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -Naur acpica-unix2-20200214.orig/source/include/actypes.h acpica-unix2-20200214/source/include/actypes.h
|
||||||
|
--- acpica-unix2-20200214.orig/source/include/actypes.h 2020-02-25 15:41:26.479349637 -0700
|
||||||
|
+++ acpica-unix2-20200214/source/include/actypes.h 2020-02-25 15:44:49.519082258 -0700
|
||||||
|
@@ -561,7 +561,7 @@
|
||||||
|
#define ACPI_COPY_NAMESEG(dest,src) (*ACPI_CAST_PTR (UINT32, (dest)) = *ACPI_CAST_PTR (UINT32, (src)))
|
||||||
|
#else
|
||||||
|
#define ACPI_COMPARE_NAMESEG(a,b) (!strncmp (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAMESEG_SIZE))
|
||||||
|
-#define ACPI_COPY_NAMESEG(dest,src) (strncpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
|
||||||
|
+#define ACPI_COPY_NAMESEG(dest,src) (memcpy (ACPI_CAST_PTR (char, (dest)), ACPI_CAST_PTR (char, (src)), ACPI_NAMESEG_SIZE))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Support for the special RSDP signature (8 characters) */
|
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-20191018/source/compiler/aslcodegen.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/compiler/aslcodegen.c
|
||||||
|
+++ acpica-unix-20191018/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 (\MTH2)
|
||||||
|
|
||||||
|
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 ^ (\MTH4)
|
||||||
|
|
||||||
|
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 - 2020 Intel Corporation
|
||||||
|
|
||||||
|
Ignoring all errors, forcing AML file generation
|
||||||
|
|
||||||
|
ASL Input: badcode.asl - 11588 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
|
162
big-endian-dmtbdump.patch
Normal file
162
big-endian-dmtbdump.patch
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
Index: acpica-unix-20191018/source/common/dmtbdump.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/common/dmtbdump.c
|
||||||
|
+++ acpica-unix-20191018/source/common/dmtbdump.c
|
||||||
|
@@ -277,6 +277,8 @@ AcpiDmDumpRsdt (
|
||||||
|
UINT32 Entries;
|
||||||
|
UINT32 Offset;
|
||||||
|
UINT32 i;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT32 Address;
|
||||||
|
|
||||||
|
|
||||||
|
/* Point to start of table pointer array */
|
||||||
|
@@ -286,12 +288,14 @@ AcpiDmDumpRsdt (
|
||||||
|
|
||||||
|
/* RSDT uses 32-bit pointers */
|
||||||
|
|
||||||
|
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
|
||||||
|
|
||||||
|
for (i = 0; i < Entries; i++)
|
||||||
|
{
|
||||||
|
AcpiDmLineHeader2 (Offset, sizeof (UINT32), "ACPI Table Address", i);
|
||||||
|
- AcpiOsPrintf ("%8.8X\n", Array[i]);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Address, &Array[i]);
|
||||||
|
+ AcpiOsPrintf ("%8.8X\n", Address);
|
||||||
|
Offset += sizeof (UINT32);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -317,6 +321,8 @@ AcpiDmDumpXsdt (
|
||||||
|
UINT32 Entries;
|
||||||
|
UINT32 Offset;
|
||||||
|
UINT32 i;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT64 Address;
|
||||||
|
|
||||||
|
|
||||||
|
/* Point to start of table pointer array */
|
||||||
|
@@ -326,12 +332,14 @@ AcpiDmDumpXsdt (
|
||||||
|
|
||||||
|
/* XSDT uses 64-bit pointers */
|
||||||
|
|
||||||
|
- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Entries = (Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
|
||||||
|
|
||||||
|
for (i = 0; i < Entries; i++)
|
||||||
|
{
|
||||||
|
AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
|
||||||
|
- AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Array[i]));
|
||||||
|
+ ACPI_MOVE_64_TO_64(&Address, &Array[i]);
|
||||||
|
+ AcpiOsPrintf ("%8.8X%8.8X\n", ACPI_FORMAT_UINT64 (Address));
|
||||||
|
Offset += sizeof (UINT64);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -358,12 +366,12 @@ AcpiDmDumpFadt (
|
||||||
|
ACPI_TABLE_HEADER *Table)
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
-
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
/* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||||
|
- AcpiDmTableInfoFadt1);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt1);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -371,11 +379,9 @@ AcpiDmDumpFadt (
|
||||||
|
|
||||||
|
/* Check for FADT revision 2 fields (ACPI 1.0B MS extensions) */
|
||||||
|
|
||||||
|
- if ((Table->Length > ACPI_FADT_V1_SIZE) &&
|
||||||
|
- (Table->Length <= ACPI_FADT_V2_SIZE))
|
||||||
|
+ if ((Length > ACPI_FADT_V1_SIZE) && (Length <= ACPI_FADT_V2_SIZE))
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||||
|
- AcpiDmTableInfoFadt2);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt2);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -384,10 +390,9 @@ AcpiDmDumpFadt (
|
||||||
|
|
||||||
|
/* Check for FADT revision 3/4 fields and up (ACPI 2.0+ extended data) */
|
||||||
|
|
||||||
|
- else if (Table->Length > ACPI_FADT_V2_SIZE)
|
||||||
|
+ else if (Length > ACPI_FADT_V2_SIZE)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||||
|
- AcpiDmTableInfoFadt3);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFadt3);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -395,9 +400,9 @@ AcpiDmDumpFadt (
|
||||||
|
|
||||||
|
/* Check for FADT revision 5 fields and up (ACPI 5.0+) */
|
||||||
|
|
||||||
|
- if (Table->Length > ACPI_FADT_V3_SIZE)
|
||||||
|
+ if (Length > ACPI_FADT_V3_SIZE)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0,
|
||||||
|
AcpiDmTableInfoFadt5);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -407,9 +412,9 @@ AcpiDmDumpFadt (
|
||||||
|
|
||||||
|
/* Check for FADT revision 6 fields and up (ACPI 6.0+) */
|
||||||
|
|
||||||
|
- if (Table->Length > ACPI_FADT_V3_SIZE)
|
||||||
|
+ if (Length > ACPI_FADT_V3_SIZE)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0,
|
||||||
|
AcpiDmTableInfoFadt6);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -420,11 +425,11 @@ AcpiDmDumpFadt (
|
||||||
|
|
||||||
|
/* Validate various fields in the FADT, including length */
|
||||||
|
|
||||||
|
- AcpiTbCreateLocalFadt (Table, Table->Length);
|
||||||
|
+ AcpiTbCreateLocalFadt (Table, Length);
|
||||||
|
|
||||||
|
/* Validate FADT length against the revision */
|
||||||
|
|
||||||
|
- AcpiDmValidateFadtLength (Table->Revision, Table->Length);
|
||||||
|
+ AcpiDmValidateFadtLength (Table->Revision, Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -450,6 +455,7 @@ AcpiDmValidateFadtLength (
|
||||||
|
UINT32 Length)
|
||||||
|
{
|
||||||
|
UINT32 ExpectedLength;
|
||||||
|
+ UINT32 Tmp32;
|
||||||
|
|
||||||
|
|
||||||
|
switch (Revision)
|
||||||
|
@@ -485,7 +491,8 @@ AcpiDmValidateFadtLength (
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (Length == ExpectedLength)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Tmp32, &Length);
|
||||||
|
+ if (Tmp32 == ExpectedLength)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -493,5 +500,5 @@ AcpiDmValidateFadtLength (
|
||||||
|
AcpiOsPrintf (
|
||||||
|
"\n// ACPI Warning: FADT revision %X does not match length: "
|
||||||
|
"found %X expected %X\n",
|
||||||
|
- Revision, Length, ExpectedLength);
|
||||||
|
+ Revision, Tmp32, ExpectedLength);
|
||||||
|
}
|
637
big-endian-dmtbdump1.patch
Normal file
637
big-endian-dmtbdump1.patch
Normal file
@ -0,0 +1,637 @@
|
|||||||
|
Index: acpica-unix-20191018/source/common/dmtbdump1.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/common/dmtbdump1.c
|
||||||
|
+++ acpica-unix-20191018/source/common/dmtbdump1.c
|
||||||
|
@@ -79,17 +79,21 @@ AcpiDmDumpAsf (
|
||||||
|
UINT32 DataOffset = 0;
|
||||||
|
UINT32 i;
|
||||||
|
UINT8 Type;
|
||||||
|
+ UINT32 Len;
|
||||||
|
+ UINT16 SubLen;
|
||||||
|
|
||||||
|
|
||||||
|
/* No main table, only subtables */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Len, &Table->Length);
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Len)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Subtable->Header.Length, AcpiDmTableInfoAsfHdr);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubLen, &Subtable->Header.Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Len, Offset, Subtable,
|
||||||
|
+ SubLen, AcpiDmTableInfoAsfHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -146,8 +150,7 @@ AcpiDmDumpAsf (
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Subtable->Header.Length, InfoTable);
|
||||||
|
+ Status = AcpiDmDumpTable (Len, Offset, Subtable, SubLen, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -163,7 +166,7 @@ AcpiDmDumpAsf (
|
||||||
|
for (i = 0; i < DataCount; i++)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, DataOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (Len, DataOffset,
|
||||||
|
DataTable, DataLength, DataInfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -209,15 +212,14 @@ AcpiDmDumpAsf (
|
||||||
|
|
||||||
|
/* Point to next subtable */
|
||||||
|
|
||||||
|
- if (!Subtable->Header.Length)
|
||||||
|
+ if (!SubLen)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("Invalid zero subtable header length\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- Offset += Subtable->Header.Length;
|
||||||
|
- Subtable = ACPI_ADD_PTR (ACPI_ASF_INFO, Subtable,
|
||||||
|
- Subtable->Header.Length);
|
||||||
|
+ Offset += SubLen;
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_ASF_INFO, Subtable, SubLen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -241,12 +243,13 @@ AcpiDmDumpCpep (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_CPEP_POLLING *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_CPEP);
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoCpep);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -256,7 +259,7 @@ AcpiDmDumpCpep (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_CPEP_POLLING, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
@@ -296,7 +299,10 @@ AcpiDmDumpCsrt (
|
||||||
|
ACPI_CSRT_GROUP *Subtable;
|
||||||
|
ACPI_CSRT_SHARED_INFO *SharedInfoTable;
|
||||||
|
ACPI_CSRT_DESCRIPTOR *SubSubtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT32 SubLength;
|
||||||
|
+ UINT32 SubSubLength;
|
||||||
|
+ UINT32 SharedInfoLength;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_CSRT);
|
||||||
|
UINT32 SubOffset;
|
||||||
|
UINT32 SubSubOffset;
|
||||||
|
@@ -307,14 +313,16 @@ AcpiDmDumpCsrt (
|
||||||
|
|
||||||
|
/* Subtables (Resource Groups) */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Resource group subtable */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
+ ACPI_MOVE_32_TO_32(&SubLength, &Subtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoCsrt0);
|
||||||
|
+ SubLength, AcpiDmTableInfoCsrt0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -334,19 +342,20 @@ AcpiDmDumpCsrt (
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- SubOffset += Subtable->SharedInfoLength;
|
||||||
|
+ ACPI_MOVE_32_TO_32(&SharedInfoLength, &Subtable->SharedInfoLength);
|
||||||
|
+ SubOffset += SharedInfoLength;
|
||||||
|
|
||||||
|
/* Sub-Subtables (Resource Descriptors) */
|
||||||
|
|
||||||
|
SubSubtable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, Table,
|
||||||
|
Offset + SubOffset);
|
||||||
|
|
||||||
|
- while ((SubOffset < Subtable->Length) &&
|
||||||
|
- ((Offset + SubOffset) < Table->Length))
|
||||||
|
+ while ((SubOffset < SubLength) && ((Offset + SubOffset) < Length))
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
+ ACPI_MOVE_32_TO_32(&SubSubLength, &SubSubtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset + SubOffset, SubSubtable,
|
||||||
|
- SubSubtable->Length, AcpiDmTableInfoCsrt2);
|
||||||
|
+ SubSubLength, AcpiDmTableInfoCsrt2);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -356,7 +365,7 @@ AcpiDmDumpCsrt (
|
||||||
|
|
||||||
|
/* Resource-specific info buffer */
|
||||||
|
|
||||||
|
- InfoLength = SubSubtable->Length - SubSubOffset;
|
||||||
|
+ InfoLength = SubSubLength - SubSubOffset;
|
||||||
|
if (InfoLength)
|
||||||
|
{
|
||||||
|
Status = AcpiDmDumpTable (Length,
|
||||||
|
@@ -370,16 +379,15 @@ AcpiDmDumpCsrt (
|
||||||
|
|
||||||
|
/* Point to next sub-subtable */
|
||||||
|
|
||||||
|
- SubOffset += SubSubtable->Length;
|
||||||
|
+ SubOffset += SubSubLength;
|
||||||
|
SubSubtable = ACPI_ADD_PTR (ACPI_CSRT_DESCRIPTOR, SubSubtable,
|
||||||
|
- SubSubtable->Length);
|
||||||
|
+ SubSubLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Point to next subtable */
|
||||||
|
|
||||||
|
- Offset += Subtable->Length;
|
||||||
|
- Subtable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Subtable,
|
||||||
|
- Subtable->Length);
|
||||||
|
+ Offset += SubLength;
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Subtable, SubLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -403,16 +411,20 @@ AcpiDmDumpDbg2 (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_DBG2_DEVICE *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT16 SubLength;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_DBG2);
|
||||||
|
UINT32 i;
|
||||||
|
UINT32 ArrayOffset;
|
||||||
|
UINT32 AbsoluteOffset;
|
||||||
|
UINT8 *Array;
|
||||||
|
+ UINT16 Tmp16;
|
||||||
|
+ UINT16 AlsoTmp16;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDbg2);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -422,11 +434,12 @@ AcpiDmDumpDbg2 (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoDbg2Device);
|
||||||
|
+ SubLength, AcpiDmTableInfoDbg2Device);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -436,13 +449,13 @@ AcpiDmDumpDbg2 (
|
||||||
|
|
||||||
|
for (i = 0; i < Subtable->RegisterCount; i++)
|
||||||
|
{
|
||||||
|
- ArrayOffset = Subtable->BaseAddressOffset +
|
||||||
|
- (sizeof (ACPI_GENERIC_ADDRESS) * i);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->BaseAddressOffset);
|
||||||
|
+ ArrayOffset = Tmp16 + (sizeof (ACPI_GENERIC_ADDRESS) * i);
|
||||||
|
AbsoluteOffset = Offset + ArrayOffset;
|
||||||
|
Array = (UINT8 *) Subtable + ArrayOffset;
|
||||||
|
|
||||||
|
Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoDbg2Addr);
|
||||||
|
+ SubLength, AcpiDmTableInfoDbg2Addr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -453,13 +466,13 @@ AcpiDmDumpDbg2 (
|
||||||
|
|
||||||
|
for (i = 0; i < Subtable->RegisterCount; i++)
|
||||||
|
{
|
||||||
|
- ArrayOffset = Subtable->AddressSizeOffset +
|
||||||
|
- (sizeof (UINT32) * i);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->AddressSizeOffset);
|
||||||
|
+ ArrayOffset = Tmp16 + (sizeof (UINT32) * i);
|
||||||
|
AbsoluteOffset = Offset + ArrayOffset;
|
||||||
|
Array = (UINT8 *) Subtable + ArrayOffset;
|
||||||
|
|
||||||
|
Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoDbg2Size);
|
||||||
|
+ SubLength, AcpiDmTableInfoDbg2Size);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -469,12 +482,13 @@ AcpiDmDumpDbg2 (
|
||||||
|
/* Dump the Namestring (required) */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- ArrayOffset = Subtable->NamepathOffset;
|
||||||
|
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->NamepathOffset);
|
||||||
|
+ ArrayOffset = Tmp16;
|
||||||
|
AbsoluteOffset = Offset + ArrayOffset;
|
||||||
|
Array = (UINT8 *) Subtable + ArrayOffset;
|
||||||
|
|
||||||
|
Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoDbg2Name);
|
||||||
|
+ SubLength, AcpiDmTableInfoDbg2Name);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -484,9 +498,10 @@ AcpiDmDumpDbg2 (
|
||||||
|
|
||||||
|
if (Subtable->OemDataOffset)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Length, Offset + Subtable->OemDataOffset,
|
||||||
|
- Table, Subtable->OemDataLength,
|
||||||
|
- AcpiDmTableInfoDbg2OemData);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&Tmp16, &Subtable->OemDataOffset);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&AlsoTmp16, &Subtable->OemDataLength);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset + Tmp16,
|
||||||
|
+ Table, AlsoTmp16, AcpiDmTableInfoDbg2OemData);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -495,9 +510,9 @@ AcpiDmDumpDbg2 (
|
||||||
|
|
||||||
|
/* Point to next subtable */
|
||||||
|
|
||||||
|
- Offset += Subtable->Length;
|
||||||
|
+ Offset += SubLength;
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Subtable,
|
||||||
|
- Subtable->Length);
|
||||||
|
+ SubLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -521,17 +536,20 @@ AcpiDmDumpDmar (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_DMAR_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT16 SubLength;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_DMAR);
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
ACPI_DMAR_DEVICE_SCOPE *ScopeTable;
|
||||||
|
UINT32 ScopeOffset;
|
||||||
|
UINT8 *PciPath;
|
||||||
|
UINT32 PathOffset;
|
||||||
|
+ UINT16 SubType;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDmar);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -541,13 +559,14 @@ AcpiDmDumpDmar (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoDmarHdr);
|
||||||
|
+ SubLength, AcpiDmTableInfoDmarHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -555,7 +574,8 @@ AcpiDmDumpDmar (
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
|
||||||
|
- switch (Subtable->Type)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||||
|
+ switch (SubType)
|
||||||
|
{
|
||||||
|
case ACPI_DMAR_TYPE_HARDWARE_UNIT:
|
||||||
|
|
||||||
|
@@ -590,12 +610,12 @@ AcpiDmDumpDmar (
|
||||||
|
default:
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n",
|
||||||
|
- Subtable->Type);
|
||||||
|
+ SubType);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, InfoTable);
|
||||||
|
+ SubLength, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -604,8 +624,8 @@ AcpiDmDumpDmar (
|
||||||
|
/*
|
||||||
|
* Dump the optional device scope entries
|
||||||
|
*/
|
||||||
|
- if ((Subtable->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
|
||||||
|
- (Subtable->Type == ACPI_DMAR_TYPE_NAMESPACE))
|
||||||
|
+ if ((SubType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
|
||||||
|
+ (SubType == ACPI_DMAR_TYPE_NAMESPACE))
|
||||||
|
{
|
||||||
|
/* These types do not support device scopes */
|
||||||
|
|
||||||
|
@@ -613,7 +633,7 @@ AcpiDmDumpDmar (
|
||||||
|
}
|
||||||
|
|
||||||
|
ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, Subtable, ScopeOffset);
|
||||||
|
- while (ScopeOffset < Subtable->Length)
|
||||||
|
+ while (ScopeOffset < SubLength)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable,
|
||||||
|
@@ -654,9 +674,8 @@ AcpiDmDumpDmar (
|
||||||
|
NextSubtable:
|
||||||
|
/* Point to next subtable */
|
||||||
|
|
||||||
|
- Offset += Subtable->Length;
|
||||||
|
- Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Subtable,
|
||||||
|
- Subtable->Length);
|
||||||
|
+ Offset += SubLength;
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Subtable, SubLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -683,12 +702,15 @@ AcpiDmDumpDrtm (
|
||||||
|
ACPI_DRTM_RESOURCE_LIST *DrtmRl;
|
||||||
|
ACPI_DRTM_DPS_ID *DrtmDps;
|
||||||
|
UINT32 Count;
|
||||||
|
+ UINT32 ValidatedCount;
|
||||||
|
+ UINT32 ResourceCount;
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
|
||||||
|
- AcpiDmTableInfoDrtm);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoDrtm);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -702,7 +724,7 @@ AcpiDmDumpDrtm (
|
||||||
|
|
||||||
|
DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset);
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||||
|
DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables),
|
||||||
|
AcpiDmTableInfoDrtm0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -715,10 +737,11 @@ AcpiDmDumpDrtm (
|
||||||
|
/* Dump Validated table addresses */
|
||||||
|
|
||||||
|
Count = 0;
|
||||||
|
- while ((Offset < Table->Length) &&
|
||||||
|
- (DrtmVtl->ValidatedTableCount > Count))
|
||||||
|
+ ACPI_MOVE_32_TO_32(&ValidatedCount, &DrtmVtl->ValidatedTableCount);
|
||||||
|
+ while ((Offset < Length) &&
|
||||||
|
+ (ValidatedCount > Count))
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||||
|
ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64),
|
||||||
|
AcpiDmTableInfoDrtm0a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -734,7 +757,7 @@ AcpiDmDumpDrtm (
|
||||||
|
|
||||||
|
DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset);
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||||
|
DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources),
|
||||||
|
AcpiDmTableInfoDrtm1);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -747,10 +770,11 @@ AcpiDmDumpDrtm (
|
||||||
|
/* Dump the Resource List */
|
||||||
|
|
||||||
|
Count = 0;
|
||||||
|
- while ((Offset < Table->Length) &&
|
||||||
|
- (DrtmRl->ResourceCount > Count))
|
||||||
|
+ ACPI_MOVE_32_TO_32(&ResourceCount, &DrtmRl->ResourceCount);
|
||||||
|
+ while ((Offset < Length) &&
|
||||||
|
+ (ResourceCount > Count))
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset,
|
||||||
|
ACPI_ADD_PTR (void, Table, Offset),
|
||||||
|
sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -766,7 +790,7 @@ AcpiDmDumpDrtm (
|
||||||
|
|
||||||
|
DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset);
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- (void) AcpiDmDumpTable (Table->Length, Offset,
|
||||||
|
+ (void) AcpiDmDumpTable (Length, Offset,
|
||||||
|
DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -790,12 +814,13 @@ AcpiDmDumpEinj (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_WHEA_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_EINJ);
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoEinj);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -805,7 +830,7 @@ AcpiDmDumpEinj (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
@@ -843,12 +868,13 @@ AcpiDmDumpErst (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_WHEA_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_ERST);
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoErst);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -858,7 +884,7 @@ AcpiDmDumpErst (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_WHEA_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
@@ -896,17 +922,19 @@ AcpiDmDumpFpdt (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_FPDT_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_FPDT);
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
+ UINT16 Type;
|
||||||
|
|
||||||
|
|
||||||
|
/* There is no main table (other than the standard ACPI header) */
|
||||||
|
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
@@ -918,7 +946,8 @@ AcpiDmDumpFpdt (
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- switch (Subtable->Type)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&Type, &Subtable->Type);
|
||||||
|
+ switch (Type)
|
||||||
|
{
|
||||||
|
case ACPI_FPDT_TYPE_BOOT:
|
||||||
|
|
||||||
|
@@ -932,8 +961,7 @@ AcpiDmDumpFpdt (
|
||||||
|
|
||||||
|
default:
|
||||||
|
|
||||||
|
- AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n",
|
||||||
|
- Subtable->Type);
|
||||||
|
+ AcpiOsPrintf ("\n**** Unknown FPDT subtable type 0x%X\n\n", Type);
|
||||||
|
|
||||||
|
/* Attempt to continue */
|
||||||
|
|
||||||
|
@@ -981,16 +1009,19 @@ AcpiDmDumpGtdt (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_GTDT_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT16 SubLength;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_GTDT);
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
UINT32 SubtableLength;
|
||||||
|
UINT32 GtCount;
|
||||||
|
+ UINT32 Tmp32;
|
||||||
|
ACPI_GTDT_TIMER_ENTRY *GtxTable;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoGtdt);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1017,7 +1048,7 @@ AcpiDmDumpGtdt (
|
||||||
|
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
@@ -1035,8 +1066,9 @@ AcpiDmDumpGtdt (
|
||||||
|
case ACPI_GTDT_TYPE_TIMER_BLOCK:
|
||||||
|
|
||||||
|
SubtableLength = sizeof (ACPI_GTDT_TIMER_BLOCK);
|
||||||
|
- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
|
||||||
|
+ Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
|
||||||
|
Subtable))->TimerCount;
|
||||||
|
+ ACPI_MOVE_32_TO_32(&GtCount, &Tmp32);
|
||||||
|
|
||||||
|
InfoTable = AcpiDmTableInfoGtdt0;
|
||||||
|
break;
|
||||||
|
@@ -1057,8 +1089,9 @@ AcpiDmDumpGtdt (
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, InfoTable);
|
||||||
|
+ SubLength, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1117,16 +1150,18 @@ AcpiDmDumpHest (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_HEST_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_HEST);
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
UINT32 SubtableLength;
|
||||||
|
UINT32 BankCount;
|
||||||
|
ACPI_HEST_IA_ERROR_BANK *BankTable;
|
||||||
|
+ UINT16 SubType;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHest);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1136,10 +1171,11 @@ AcpiDmDumpHest (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
BankCount = 0;
|
||||||
|
- switch (Subtable->Type)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||||
|
+ switch (SubType)
|
||||||
|
{
|
||||||
|
case ACPI_HEST_TYPE_IA32_CHECK:
|
||||||
|
|
887
big-endian-dmtbdump2.patch
Normal file
887
big-endian-dmtbdump2.patch
Normal file
@ -0,0 +1,887 @@
|
|||||||
|
Index: acpica-unix2-20200528/source/common/dmtbdump2.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/common/dmtbdump2.c
|
||||||
|
+++ acpica-unix2-20200528/source/common/dmtbdump2.c
|
||||||
|
@@ -75,16 +75,23 @@ AcpiDmDumpIort (
|
||||||
|
ACPI_IORT_SMMU *IortSmmu = NULL;
|
||||||
|
UINT32 Offset;
|
||||||
|
UINT32 NodeOffset;
|
||||||
|
+ UINT16 NodeLength;
|
||||||
|
UINT32 Length;
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
char *String;
|
||||||
|
UINT32 i;
|
||||||
|
UINT32 MappingByteLength;
|
||||||
|
+ UINT32 TableLen;
|
||||||
|
+ UINT32 ItsCount;
|
||||||
|
+ UINT32 MappingCount;
|
||||||
|
+ UINT32 CtxIntCount;
|
||||||
|
+ UINT32 PmuIntCount;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIort);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&TableLen, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, 0, Table, 0, AcpiDmTableInfoIort);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -95,18 +102,19 @@ AcpiDmDumpIort (
|
||||||
|
|
||||||
|
/* Dump the OptionalPadding (optional) */
|
||||||
|
|
||||||
|
- if (Iort->NodeOffset > Offset)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&NodeOffset, &Iort->NodeOffset);
|
||||||
|
+ if (NodeOffset > Offset)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Table,
|
||||||
|
- Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad);
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset, Table,
|
||||||
|
+ NodeOffset - Offset, AcpiDmTableInfoIortPad);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- Offset = Iort->NodeOffset;
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Offset, &Iort->NodeOffset);
|
||||||
|
+ while (Offset < TableLen)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
@@ -142,7 +150,8 @@ AcpiDmDumpIort (
|
||||||
|
case ACPI_IORT_NODE_PCI_ROOT_COMPLEX:
|
||||||
|
|
||||||
|
InfoTable = AcpiDmTableInfoIort2;
|
||||||
|
- Length = IortNode->Length - NodeOffset;
|
||||||
|
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||||
|
+ Length = NodeLength - NodeOffset;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ACPI_IORT_NODE_SMMU:
|
||||||
|
@@ -155,7 +164,8 @@ AcpiDmDumpIort (
|
||||||
|
case ACPI_IORT_NODE_SMMU_V3:
|
||||||
|
|
||||||
|
InfoTable = AcpiDmTableInfoIort4;
|
||||||
|
- Length = IortNode->Length - NodeOffset;
|
||||||
|
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||||
|
+ Length = NodeLength - NodeOffset;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ACPI_IORT_NODE_PMCG:
|
||||||
|
@@ -171,7 +181,8 @@ AcpiDmDumpIort (
|
||||||
|
|
||||||
|
/* Attempt to continue */
|
||||||
|
|
||||||
|
- if (!IortNode->Length)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||||
|
+ if (!NodeLength)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("Invalid zero length IORT node\n");
|
||||||
|
return;
|
||||||
|
@@ -182,7 +193,7 @@ AcpiDmDumpIort (
|
||||||
|
/* Dump the node subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||||
|
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||||
|
Length, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -202,9 +213,10 @@ AcpiDmDumpIort (
|
||||||
|
|
||||||
|
if (IortItsGroup)
|
||||||
|
{
|
||||||
|
- for (i = 0; i < IortItsGroup->ItsCount; i++)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&ItsCount, &IortItsGroup->ItsCount);
|
||||||
|
+ for (i = 0; i < ItsCount; i++)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||||
|
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||||
|
4, AcpiDmTableInfoIort0a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -221,12 +233,13 @@ AcpiDmDumpIort (
|
||||||
|
|
||||||
|
/* Dump the Padding (optional) */
|
||||||
|
|
||||||
|
- if (IortNode->Length > NodeOffset)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||||
|
+ if (NodeLength > NodeOffset)
|
||||||
|
{
|
||||||
|
MappingByteLength =
|
||||||
|
IortNode->MappingCount * sizeof (ACPI_IORT_ID_MAPPING);
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||||
|
- Table, IortNode->Length - NodeOffset - MappingByteLength,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||||
|
+ Table, NodeLength - NodeOffset - MappingByteLength,
|
||||||
|
AcpiDmTableInfoIort1a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -244,8 +257,8 @@ AcpiDmDumpIort (
|
||||||
|
if (IortSmmu)
|
||||||
|
{
|
||||||
|
Length = 2 * sizeof (UINT64);
|
||||||
|
- NodeOffset = IortSmmu->GlobalInterruptOffset;
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||||
|
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->GlobalInterruptOffset);
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||||
|
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||||
|
Length, AcpiDmTableInfoIort3a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -253,10 +266,11 @@ AcpiDmDumpIort (
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- NodeOffset = IortSmmu->ContextInterruptOffset;
|
||||||
|
- for (i = 0; i < IortSmmu->ContextInterruptCount; i++)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->ContextInterruptOffset);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&CtxIntCount, &IortSmmu->ContextInterruptCount);
|
||||||
|
+ for (i = 0; i < CtxIntCount; i++)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||||
|
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||||
|
8, AcpiDmTableInfoIort3b);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -267,10 +281,11 @@ AcpiDmDumpIort (
|
||||||
|
NodeOffset += 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
- NodeOffset = IortSmmu->PmuInterruptOffset;
|
||||||
|
- for (i = 0; i < IortSmmu->PmuInterruptCount; i++)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortSmmu->PmuInterruptOffset);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&PmuIntCount, &IortSmmu->PmuInterruptCount);
|
||||||
|
+ for (i = 0; i < PmuIntCount; i++)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||||
|
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||||
|
8, AcpiDmTableInfoIort3c);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -290,12 +305,13 @@ AcpiDmDumpIort (
|
||||||
|
|
||||||
|
/* Dump the ID mappings */
|
||||||
|
|
||||||
|
- NodeOffset = IortNode->MappingOffset;
|
||||||
|
- for (i = 0; i < IortNode->MappingCount; i++)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&NodeOffset, &IortNode->MappingOffset);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&MappingCount, &IortNode->MappingCount);
|
||||||
|
+ for (i = 0; i < MappingCount; i++)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
Length = sizeof (ACPI_IORT_ID_MAPPING);
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + NodeOffset,
|
||||||
|
ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
|
||||||
|
Length, AcpiDmTableInfoIortMap);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -309,7 +325,8 @@ AcpiDmDumpIort (
|
||||||
|
NextSubtable:
|
||||||
|
/* Point to next node subtable */
|
||||||
|
|
||||||
|
- Offset += IortNode->Length;
|
||||||
|
+ ACPI_MOVE_16_TO_16(&NodeLength, &IortNode->Length);
|
||||||
|
+ Offset += NodeLength;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -340,11 +357,14 @@ AcpiDmDumpIvrs (
|
||||||
|
ACPI_IVRS_DE_HEADER *DeviceEntry;
|
||||||
|
ACPI_IVRS_HEADER *Subtable;
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT16 SubLength;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIvrs);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoIvrs);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -353,13 +373,14 @@ AcpiDmDumpIvrs (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoIvrsHdr);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ SubLength, AcpiDmTableInfoIvrsHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -391,7 +412,7 @@ AcpiDmDumpIvrs (
|
||||||
|
|
||||||
|
/* Attempt to continue */
|
||||||
|
|
||||||
|
- if (!Subtable->Length)
|
||||||
|
+ if (!SubLength)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("Invalid zero length subtable\n");
|
||||||
|
return;
|
||||||
|
@@ -402,8 +423,8 @@ AcpiDmDumpIvrs (
|
||||||
|
/* Dump the subtable */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, InfoTable);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ SubLength, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -429,7 +450,7 @@ AcpiDmDumpIvrs (
|
||||||
|
sizeof (ACPI_IVRS_HARDWARE2));
|
||||||
|
}
|
||||||
|
|
||||||
|
- while (EntryOffset < (Offset + Subtable->Length))
|
||||||
|
+ while (EntryOffset < (Offset + SubLength))
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
/*
|
||||||
|
@@ -491,7 +512,7 @@ AcpiDmDumpIvrs (
|
||||||
|
|
||||||
|
/* Dump the Device Entry */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, EntryOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, EntryOffset,
|
||||||
|
DeviceEntry, EntryLength, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -507,8 +528,8 @@ AcpiDmDumpIvrs (
|
||||||
|
NextSubtable:
|
||||||
|
/* Point to next subtable */
|
||||||
|
|
||||||
|
- Offset += Subtable->Length;
|
||||||
|
- Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Subtable, Subtable->Length);
|
||||||
|
+ Offset += SubLength;
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Subtable, SubLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -534,7 +555,7 @@ AcpiDmDumpLpit (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_LPIT_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_LPIT);
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
UINT32 SubtableLength;
|
||||||
|
@@ -542,8 +563,9 @@ AcpiDmDumpLpit (
|
||||||
|
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_LPIT_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
@@ -607,13 +629,14 @@ AcpiDmDumpMadt (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_SUBTABLE_HEADER *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_MADT);
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMadt);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -623,7 +646,7 @@ AcpiDmDumpMadt (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
@@ -769,11 +792,13 @@ AcpiDmDumpMcfg (
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_MCFG);
|
||||||
|
ACPI_MCFG_ALLOCATION *Subtable;
|
||||||
|
+ UINT32 Len;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMcfg);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Len, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Len, 0, Table, 0, AcpiDmTableInfoMcfg);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -782,17 +807,17 @@ AcpiDmDumpMcfg (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Len)
|
||||||
|
{
|
||||||
|
- if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length)
|
||||||
|
+ if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Len)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n",
|
||||||
|
- (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length));
|
||||||
|
+ (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Len));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Len, Offset, Subtable,
|
||||||
|
sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -826,6 +851,7 @@ AcpiDmDumpMpst (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_MPST);
|
||||||
|
+ ACPI_TABLE_MPST *Mpst;
|
||||||
|
ACPI_MPST_POWER_NODE *Subtable0;
|
||||||
|
ACPI_MPST_POWER_STATE *Subtable0A;
|
||||||
|
ACPI_MPST_COMPONENT *Subtable0B;
|
||||||
|
@@ -834,11 +860,13 @@ AcpiDmDumpMpst (
|
||||||
|
UINT16 SubtableCount;
|
||||||
|
UINT32 PowerStateCount;
|
||||||
|
UINT32 ComponentCount;
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMpst);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMpst);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -846,13 +874,14 @@ AcpiDmDumpMpst (
|
||||||
|
|
||||||
|
/* Subtable: Memory Power Node(s) */
|
||||||
|
|
||||||
|
- SubtableCount = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount;
|
||||||
|
+ Mpst = ACPI_CAST_PTR (ACPI_TABLE_MPST, Table);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubtableCount, &Mpst->PowerNodeCount);
|
||||||
|
Subtable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Table, Offset);
|
||||||
|
|
||||||
|
- while ((Offset < Table->Length) && SubtableCount)
|
||||||
|
+ while ((Offset < Length) && SubtableCount)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable0,
|
||||||
|
sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -861,8 +890,8 @@ AcpiDmDumpMpst (
|
||||||
|
|
||||||
|
/* Extract the sub-subtable counts */
|
||||||
|
|
||||||
|
- PowerStateCount = Subtable0->NumPowerStates;
|
||||||
|
- ComponentCount = Subtable0->NumPhysicalComponents;
|
||||||
|
+ ACPI_MOVE_32_TO_32(&PowerStateCount, &Subtable0->NumPowerStates);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&ComponentCount, &Subtable0->NumPhysicalComponents);
|
||||||
|
Offset += sizeof (ACPI_MPST_POWER_NODE);
|
||||||
|
|
||||||
|
/* Sub-subtables - Memory Power State Structure(s) */
|
||||||
|
@@ -873,7 +902,7 @@ AcpiDmDumpMpst (
|
||||||
|
while (PowerStateCount)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0A,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable0A,
|
||||||
|
sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -883,7 +912,7 @@ AcpiDmDumpMpst (
|
||||||
|
Subtable0A++;
|
||||||
|
PowerStateCount--;
|
||||||
|
Offset += sizeof (ACPI_MPST_POWER_STATE);
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* Sub-subtables - Physical Component ID Structure(s) */
|
||||||
|
|
||||||
|
@@ -896,7 +925,7 @@ AcpiDmDumpMpst (
|
||||||
|
|
||||||
|
while (ComponentCount)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0B,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable0B,
|
||||||
|
sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -911,17 +940,19 @@ AcpiDmDumpMpst (
|
||||||
|
/* Point to next Memory Power Node subtable */
|
||||||
|
|
||||||
|
SubtableCount--;
|
||||||
|
+ ACPI_MOVE_32_TO_32(&PowerStateCount, &Subtable0->NumPowerStates);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&ComponentCount, &Subtable0->NumPhysicalComponents);
|
||||||
|
Subtable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Subtable0,
|
||||||
|
sizeof (ACPI_MPST_POWER_NODE) +
|
||||||
|
- (sizeof (ACPI_MPST_POWER_STATE) * Subtable0->NumPowerStates) +
|
||||||
|
- (sizeof (ACPI_MPST_COMPONENT) * Subtable0->NumPhysicalComponents));
|
||||||
|
+ (sizeof (ACPI_MPST_POWER_STATE) * PowerStateCount) +
|
||||||
|
+ (sizeof (ACPI_MPST_COMPONENT) * ComponentCount));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Subtable: Count of Memory Power State Characteristic structures */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
Subtable1 = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable0);
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable1,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable1,
|
||||||
|
sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -936,10 +967,10 @@ AcpiDmDumpMpst (
|
||||||
|
Subtable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, Subtable1,
|
||||||
|
sizeof (ACPI_MPST_DATA_HDR));
|
||||||
|
|
||||||
|
- while ((Offset < Table->Length) && SubtableCount)
|
||||||
|
+ while ((Offset < Length) && SubtableCount)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable2,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable2,
|
||||||
|
sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -972,11 +1003,13 @@ AcpiDmDumpMsct (
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_MSCT);
|
||||||
|
ACPI_MSCT_PROXIMITY *Subtable;
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMsct);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMsct);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -985,12 +1018,12 @@ AcpiDmDumpMsct (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1025,11 +1058,13 @@ AcpiDmDumpMtmr (
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_MTMR);
|
||||||
|
ACPI_MTMR_ENTRY *Subtable;
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMtmr);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoMtmr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1038,12 +1073,12 @@ AcpiDmDumpMtmr (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1085,11 +1120,17 @@ AcpiDmDumpNfit (
|
||||||
|
ACPI_NFIT_SMBIOS *SmbiosInfo = NULL;
|
||||||
|
ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL;
|
||||||
|
UINT32 i;
|
||||||
|
+ UINT32 TableLength;
|
||||||
|
+ UINT16 SubLength;
|
||||||
|
+ UINT16 SubType;
|
||||||
|
+ UINT32 Count;
|
||||||
|
+ UINT16 Count16;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoNfit);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&TableLength, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNfit);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1098,19 +1139,21 @@ AcpiDmDumpNfit (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < TableLength)
|
||||||
|
{
|
||||||
|
/* NFIT subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoNfitHdr);
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
|
||||||
|
+ SubLength, AcpiDmTableInfoNfitHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- switch (Subtable->Type)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||||
|
+ switch (SubType)
|
||||||
|
{
|
||||||
|
case ACPI_NFIT_TYPE_SYSTEM_ADDRESS:
|
||||||
|
|
||||||
|
@@ -1165,7 +1208,7 @@ AcpiDmDumpNfit (
|
||||||
|
|
||||||
|
/* Attempt to continue */
|
||||||
|
|
||||||
|
- if (!Subtable->Length)
|
||||||
|
+ if (!SubLength)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("Invalid zero length subtable\n");
|
||||||
|
return;
|
||||||
|
@@ -1174,8 +1217,8 @@ AcpiDmDumpNfit (
|
||||||
|
}
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, InfoTable);
|
||||||
|
+ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
|
||||||
|
+ SubLength, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1183,14 +1226,15 @@ AcpiDmDumpNfit (
|
||||||
|
|
||||||
|
/* Per-subtable variable-length fields */
|
||||||
|
|
||||||
|
- switch (Subtable->Type)
|
||||||
|
+ switch (SubType)
|
||||||
|
{
|
||||||
|
case ACPI_NFIT_TYPE_INTERLEAVE:
|
||||||
|
|
||||||
|
Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable);
|
||||||
|
- for (i = 0; i < Interleave->LineCount; i++)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Count, &Interleave->LineCount);
|
||||||
|
+ for (i = 0; i < Count; i++)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
|
||||||
|
&Interleave->LineOffset[i],
|
||||||
|
sizeof (UINT32), AcpiDmTableInfoNfit2a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -1204,12 +1248,11 @@ AcpiDmDumpNfit (
|
||||||
|
|
||||||
|
case ACPI_NFIT_TYPE_SMBIOS:
|
||||||
|
|
||||||
|
- Length = Subtable->Length -
|
||||||
|
- sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
|
||||||
|
+ Length = SubLength - sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
|
||||||
|
|
||||||
|
if (Length)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLength,
|
||||||
|
sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8),
|
||||||
|
SmbiosInfo,
|
||||||
|
Length, AcpiDmTableInfoNfit3a);
|
||||||
|
@@ -1224,9 +1267,10 @@ AcpiDmDumpNfit (
|
||||||
|
case ACPI_NFIT_TYPE_FLUSH_ADDRESS:
|
||||||
|
|
||||||
|
Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable);
|
||||||
|
- for (i = 0; i < Hint->HintCount; i++)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&Count16, &Hint->HintCount);
|
||||||
|
+ for (i = 0; i < Count16; i++)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
|
||||||
|
&Hint->HintAddress[i],
|
||||||
|
sizeof (UINT64), AcpiDmTableInfoNfit6a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
@@ -1245,8 +1289,8 @@ AcpiDmDumpNfit (
|
||||||
|
NextSubtable:
|
||||||
|
/* Point to next subtable */
|
||||||
|
|
||||||
|
- Offset += Subtable->Length;
|
||||||
|
- Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Subtable, Subtable->Length);
|
||||||
|
+ Offset += SubLength;
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Subtable, SubLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1271,12 +1315,13 @@ AcpiDmDumpPcct (
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_PCCT_SUBSPACE *Subtable;
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_PCCT);
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPcct);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1286,7 +1331,7 @@ AcpiDmDumpPcct (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
@@ -1426,16 +1471,21 @@ AcpiDmDumpPmtt (
|
||||||
|
ACPI_PMTT_HEADER *MemSubtable;
|
||||||
|
ACPI_PMTT_HEADER *DimmSubtable;
|
||||||
|
ACPI_PMTT_DOMAIN *DomainArray;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_PMTT);
|
||||||
|
UINT32 MemOffset;
|
||||||
|
UINT32 DimmOffset;
|
||||||
|
UINT32 DomainOffset;
|
||||||
|
- UINT32 DomainCount;
|
||||||
|
+ UINT16 DomainCount;
|
||||||
|
+ UINT16 SubLength;
|
||||||
|
+ UINT16 Tmp16;
|
||||||
|
+ UINT16 MemLength;
|
||||||
|
+ UINT16 DimmLength;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPmtt);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1445,13 +1495,14 @@ AcpiDmDumpPmtt (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubLength, &Subtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoPmttHdr);
|
||||||
|
+ SubLength, AcpiDmTableInfoPmttHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1470,7 +1521,7 @@ AcpiDmDumpPmtt (
|
||||||
|
/* Dump the fixed-length portion of the subtable */
|
||||||
|
|
||||||
|
Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
- Subtable->Length, AcpiDmTableInfoPmtt0);
|
||||||
|
+ SubLength, AcpiDmTableInfoPmtt0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1482,15 +1533,16 @@ AcpiDmDumpPmtt (
|
||||||
|
MemSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Subtable,
|
||||||
|
sizeof (ACPI_PMTT_SOCKET));
|
||||||
|
|
||||||
|
- while (((Offset + MemOffset) < Table->Length) &&
|
||||||
|
- (MemOffset < Subtable->Length))
|
||||||
|
+ while (((Offset + MemOffset) < Length) &&
|
||||||
|
+ (MemOffset < SubLength))
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
+ ACPI_MOVE_16_TO_16(&MemLength, &MemSubtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length,
|
||||||
|
Offset + MemOffset, MemSubtable,
|
||||||
|
- MemSubtable->Length, AcpiDmTableInfoPmttHdr);
|
||||||
|
+ MemLength, AcpiDmTableInfoPmttHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1510,7 +1562,7 @@ AcpiDmDumpPmtt (
|
||||||
|
|
||||||
|
Status = AcpiDmDumpTable (Length,
|
||||||
|
Offset + MemOffset, MemSubtable,
|
||||||
|
- MemSubtable->Length, AcpiDmTableInfoPmtt1);
|
||||||
|
+ MemLength, AcpiDmTableInfoPmtt1);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1518,13 +1570,14 @@ AcpiDmDumpPmtt (
|
||||||
|
|
||||||
|
/* Walk the variable count of proximity domains */
|
||||||
|
|
||||||
|
- DomainCount = ((ACPI_PMTT_CONTROLLER *) MemSubtable)->DomainCount;
|
||||||
|
+ Tmp16 = ((ACPI_PMTT_CONTROLLER *) MemSubtable)->DomainCount;
|
||||||
|
+ ACPI_MOVE_16_TO_16(&DomainCount, &Tmp16);
|
||||||
|
DomainOffset = sizeof (ACPI_PMTT_CONTROLLER);
|
||||||
|
DomainArray = ACPI_ADD_PTR (ACPI_PMTT_DOMAIN, MemSubtable,
|
||||||
|
sizeof (ACPI_PMTT_CONTROLLER));
|
||||||
|
|
||||||
|
- while (((Offset + MemOffset + DomainOffset) < Table->Length) &&
|
||||||
|
- ((MemOffset + DomainOffset) < Subtable->Length) &&
|
||||||
|
+ while (((Offset + MemOffset + DomainOffset) < Length) &&
|
||||||
|
+ ((MemOffset + DomainOffset) < SubLength) &&
|
||||||
|
DomainCount)
|
||||||
|
{
|
||||||
|
Status = AcpiDmDumpTable (Length,
|
||||||
|
@@ -1552,15 +1605,16 @@ AcpiDmDumpPmtt (
|
||||||
|
DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubtable,
|
||||||
|
DomainOffset);
|
||||||
|
|
||||||
|
- while (((Offset + MemOffset + DimmOffset) < Table->Length) &&
|
||||||
|
- (DimmOffset < MemSubtable->Length))
|
||||||
|
+ while (((Offset + MemOffset + DimmOffset) < Length) &&
|
||||||
|
+ (DimmOffset < MemLength))
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
+ ACPI_MOVE_16_TO_16(&DimmLength, &DimmSubtable->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length,
|
||||||
|
Offset + MemOffset + DimmOffset, DimmSubtable,
|
||||||
|
- DimmSubtable->Length, AcpiDmTableInfoPmttHdr);
|
||||||
|
+ DimmLength, AcpiDmTableInfoPmttHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1580,7 +1634,7 @@ AcpiDmDumpPmtt (
|
||||||
|
|
||||||
|
Status = AcpiDmDumpTable (Length,
|
||||||
|
Offset + MemOffset + DimmOffset, DimmSubtable,
|
||||||
|
- DimmSubtable->Length, AcpiDmTableInfoPmtt2);
|
||||||
|
+ DimmLength, AcpiDmTableInfoPmtt2);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -1588,23 +1642,22 @@ AcpiDmDumpPmtt (
|
||||||
|
|
||||||
|
/* Point to next DIMM subtable */
|
||||||
|
|
||||||
|
- DimmOffset += DimmSubtable->Length;
|
||||||
|
+ DimmOffset += DimmLength;
|
||||||
|
DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
|
||||||
|
- DimmSubtable, DimmSubtable->Length);
|
||||||
|
+ DimmSubtable, DimmLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Point to next Controller subtable */
|
||||||
|
|
||||||
|
- MemOffset += MemSubtable->Length;
|
||||||
|
+ MemOffset += MemLength;
|
||||||
|
MemSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
|
||||||
|
- MemSubtable, MemSubtable->Length);
|
||||||
|
+ MemSubtable, MemLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Point to next Socket subtable */
|
||||||
|
|
||||||
|
- Offset += Subtable->Length;
|
||||||
|
- Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
|
||||||
|
- Subtable, Subtable->Length);
|
||||||
|
+ Offset += SubLength;
|
||||||
|
+ Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Subtable, SubLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1765,6 +1818,8 @@ AcpiDmDumpS3pt (
|
||||||
|
ACPI_FPDT_HEADER *Subtable;
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
ACPI_TABLE_S3PT *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables);
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT16 SubType;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
@@ -1775,20 +1830,22 @@ AcpiDmDumpS3pt (
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &S3ptTable->Length);
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, S3ptTable, Offset);
|
||||||
|
- while (Offset < S3ptTable->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
Subtable->Length, AcpiDmTableInfoS3ptHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- switch (Subtable->Type)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&SubType, &Subtable->Type);
|
||||||
|
+ switch (SubType)
|
||||||
|
{
|
||||||
|
case ACPI_S3PT_TYPE_RESUME:
|
||||||
|
|
||||||
|
@@ -1803,7 +1860,7 @@ AcpiDmDumpS3pt (
|
||||||
|
default:
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n",
|
||||||
|
- Subtable->Type);
|
||||||
|
+ SubType);
|
||||||
|
|
||||||
|
/* Attempt to continue */
|
||||||
|
|
||||||
|
@@ -1816,7 +1873,7 @@ AcpiDmDumpS3pt (
|
||||||
|
}
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
Subtable->Length, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
250
big-endian-dmtbdump3.patch
Normal file
250
big-endian-dmtbdump3.patch
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
Index: acpica-unix-20191018/source/common/dmtbdump3.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/common/dmtbdump3.c
|
||||||
|
+++ acpica-unix-20191018/source/common/dmtbdump3.c
|
||||||
|
@@ -68,9 +68,11 @@ void
|
||||||
|
AcpiDmDumpSlic (
|
||||||
|
ACPI_TABLE_HEADER *Table)
|
||||||
|
{
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
- (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table,
|
||||||
|
- Table->Length - sizeof (*Table), AcpiDmTableInfoSlic);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ (void) AcpiDmDumpTable (Length, sizeof (ACPI_TABLE_HEADER), Table,
|
||||||
|
+ Length - sizeof (*Table), AcpiDmTableInfoSlic);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -93,14 +95,17 @@ AcpiDmDumpSlit (
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
UINT32 Offset;
|
||||||
|
UINT8 *Row;
|
||||||
|
- UINT32 Localities;
|
||||||
|
+ UINT64 Localities;
|
||||||
|
UINT32 i;
|
||||||
|
UINT32 j;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT64 Tmp64;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSlit);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSlit);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -108,7 +113,8 @@ AcpiDmDumpSlit (
|
||||||
|
|
||||||
|
/* Display the Locality NxN Matrix */
|
||||||
|
|
||||||
|
- Localities = (UINT32) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
|
||||||
|
+ Tmp64 = (UINT64) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
|
||||||
|
+ ACPI_MOVE_64_TO_64(&Localities, &Tmp64);
|
||||||
|
Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]);
|
||||||
|
Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry;
|
||||||
|
|
||||||
|
@@ -121,7 +127,7 @@ AcpiDmDumpSlit (
|
||||||
|
{
|
||||||
|
/* Check for beyond EOT */
|
||||||
|
|
||||||
|
- if (Offset >= Table->Length)
|
||||||
|
+ if (Offset >= Length)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf (
|
||||||
|
"\n**** Not enough room in table for all localities\n");
|
||||||
|
@@ -173,11 +179,13 @@ AcpiDmDumpSrat (
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_SRAT);
|
||||||
|
ACPI_SUBTABLE_HEADER *Subtable;
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSrat);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSrat);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -186,12 +194,12 @@ AcpiDmDumpSrat (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
Subtable->Length, AcpiDmTableInfoSratHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -245,7 +253,7 @@ AcpiDmDumpSrat (
|
||||||
|
}
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
Subtable->Length, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -282,13 +290,14 @@ AcpiDmDumpStao (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
char *Namepath;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT32 StringLength;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_STAO);
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoStao);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -297,7 +306,7 @@ AcpiDmDumpStao (
|
||||||
|
|
||||||
|
/* The rest of the table consists of Namepath strings */
|
||||||
|
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
Namepath = ACPI_ADD_PTR (char, Table, Offset);
|
||||||
|
StringLength = strlen (Namepath) + 1;
|
||||||
|
@@ -339,11 +348,14 @@ AcpiDmDumpTcpa (
|
||||||
|
ACPI_TABLE_TCPA_HDR *Subtable = ACPI_ADD_PTR (
|
||||||
|
ACPI_TABLE_TCPA_HDR, Table, Offset);
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
+ UINT32 Length;
|
||||||
|
+ UINT16 PlatformClass;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table,
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table,
|
||||||
|
0, AcpiDmTableInfoTcpaHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -354,18 +366,19 @@ AcpiDmDumpTcpa (
|
||||||
|
* Examine the PlatformClass field to determine the table type.
|
||||||
|
* Either a client or server table. Only one.
|
||||||
|
*/
|
||||||
|
- switch (CommonHeader->PlatformClass)
|
||||||
|
+ ACPI_MOVE_16_TO_16(&PlatformClass, &CommonHeader->PlatformClass);
|
||||||
|
+ switch (PlatformClass)
|
||||||
|
{
|
||||||
|
case ACPI_TCPA_CLIENT_TABLE:
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Table->Length - Offset, AcpiDmTableInfoTcpaClient);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ Length - Offset, AcpiDmTableInfoTcpaClient);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ACPI_TCPA_SERVER_TABLE:
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
- Table->Length - Offset, AcpiDmTableInfoTcpaServer);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
+ Length - Offset, AcpiDmTableInfoTcpaServer);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
@@ -512,11 +525,13 @@ AcpiDmDumpVrtc (
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_VRTC);
|
||||||
|
ACPI_VRTC_ENTRY *Subtable;
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoVrtc);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoVrtc);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -525,12 +540,12 @@ AcpiDmDumpVrtc (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -565,11 +580,13 @@ AcpiDmDumpWdat (
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_WDAT);
|
||||||
|
ACPI_WDAT_ENTRY *Subtable;
|
||||||
|
+ UINT32 Length;
|
||||||
|
|
||||||
|
|
||||||
|
/* Main table */
|
||||||
|
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoWdat);
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWdat);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
@@ -578,12 +595,12 @@ AcpiDmDumpWdat (
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Subtable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ while (Offset < Length)
|
||||||
|
{
|
||||||
|
/* Common subtable header */
|
||||||
|
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
|
||||||
|
sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -618,12 +635,13 @@ AcpiDmDumpWpbt (
|
||||||
|
{
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
ACPI_TABLE_WPBT *Subtable;
|
||||||
|
- UINT32 Length = Table->Length;
|
||||||
|
+ UINT32 Length;
|
||||||
|
UINT16 ArgumentsLength;
|
||||||
|
|
||||||
|
|
||||||
|
/* Dump the main table */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
|
||||||
|
Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -633,10 +651,10 @@ AcpiDmDumpWpbt (
|
||||||
|
/* Extract the arguments buffer length from the main table */
|
||||||
|
|
||||||
|
Subtable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table);
|
||||||
|
- ArgumentsLength = Subtable->ArgumentsLength;
|
||||||
|
+ ACPI_MOVE_16_TO_16(&ArgumentsLength, &Subtable->ArgumentsLength);
|
||||||
|
|
||||||
|
/* Dump the arguments buffer */
|
||||||
|
|
||||||
|
- (void) AcpiDmDumpTable (Table->Length, 0, Table, ArgumentsLength,
|
||||||
|
+ (void) AcpiDmDumpTable (Length, 0, Table, ArgumentsLength,
|
||||||
|
AcpiDmTableInfoWpbt0);
|
||||||
|
}
|
19
big-endian-v2.patch
Normal file
19
big-endian-v2.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
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>
|
||||||
|
|
||||||
|
Index: acpica-unix-20191018/source/compiler/asllookup.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/compiler/asllookup.c
|
||||||
|
+++ acpica-unix-20191018/source/compiler/asllookup.c
|
||||||
|
@@ -249,7 +249,8 @@ LkIsObjectUsed (
|
||||||
|
* 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);
|
||||||
|
}
|
140
big-endian-v3.patch
Normal file
140
big-endian-v3.patch
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
diff -Naur acpica-unix2-20200214.orig/source/components/namespace/nsutils.c acpica-unix2-20200214/source/components/namespace/nsutils.c
|
||||||
|
--- acpica-unix2-20200214.orig/source/components/namespace/nsutils.c 2020-02-14 10:33:55.000000000 -0700
|
||||||
|
+++ acpica-unix2-20200214/source/components/namespace/nsutils.c 2020-02-26 10:25:43.477022167 -0700
|
||||||
|
@@ -363,6 +363,15 @@
|
||||||
|
|
||||||
|
/* Move on the next segment */
|
||||||
|
|
||||||
|
+ {
|
||||||
|
+ /* Make sure the name segment reflects endian-ness first */
|
||||||
|
+
|
||||||
|
+ UINT32 Tmp32 = 0;
|
||||||
|
+
|
||||||
|
+ memcpy(&Tmp32, Result, ACPI_NAMESEG_SIZE);
|
||||||
|
+ ACPI_MOVE_32_TO_32(Result, &Tmp32);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
ExternalName++;
|
||||||
|
Result += ACPI_NAMESEG_SIZE;
|
||||||
|
}
|
||||||
|
diff -Naur acpica-unix2-20200214.orig/source/common/dmtbdump2.c acpica-unix2-20200214/source/common/dmtbdump2.c
|
||||||
|
--- acpica-unix2-20200214.orig/source/common/dmtbdump2.c 2020-02-26 11:44:13.732967820 -0700
|
||||||
|
+++ acpica-unix2-20200214/source/common/dmtbdump2.c 2020-02-26 12:38:44.286849954 -0700
|
||||||
|
@@ -1685,6 +1685,8 @@
|
||||||
|
UINT32 Offset = sizeof (ACPI_TABLE_FPDT);
|
||||||
|
ACPI_DMTABLE_INFO *InfoTable;
|
||||||
|
UINT32 i;
|
||||||
|
+ UINT32 TableLen;
|
||||||
|
+ UINT32 NumPrivRes;
|
||||||
|
|
||||||
|
|
||||||
|
/* There is no main table (other than the standard ACPI header) */
|
||||||
|
@@ -1692,7 +1694,8 @@
|
||||||
|
/* Subtables */
|
||||||
|
|
||||||
|
Offset = sizeof (ACPI_TABLE_HEADER);
|
||||||
|
- while (Offset < Table->Length)
|
||||||
|
+ ACPI_MOVE_32_TO_32(&TableLen, &Table->Length);
|
||||||
|
+ while (Offset < TableLen)
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("\n");
|
||||||
|
|
||||||
|
@@ -1704,7 +1707,7 @@
|
||||||
|
AcpiOsPrintf ("Invalid subtable length\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset, Subtable,
|
||||||
|
Subtable->Length, AcpiDmTableInfoPpttHdr);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1746,7 +1749,7 @@
|
||||||
|
AcpiOsPrintf ("Invalid subtable length\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset, Subtable,
|
||||||
|
Subtable->Length, InfoTable);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
{
|
||||||
|
@@ -1762,15 +1765,16 @@
|
||||||
|
|
||||||
|
/* Dump SMBIOS handles */
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(&NumPrivRes, &PpttProcessor->NumberOfPrivResources);
|
||||||
|
if ((UINT8)(Subtable->Length - SubtableOffset) <
|
||||||
|
- (UINT8)(PpttProcessor->NumberOfPrivResources * 4))
|
||||||
|
+ (UINT8)(NumPrivRes * 4))
|
||||||
|
{
|
||||||
|
AcpiOsPrintf ("Invalid private resource number\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
- for (i = 0; i < PpttProcessor->NumberOfPrivResources; i++)
|
||||||
|
+ for (i = 0; i < NumPrivRes; i++)
|
||||||
|
{
|
||||||
|
- Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
|
||||||
|
+ Status = AcpiDmDumpTable (TableLen, Offset + SubtableOffset,
|
||||||
|
ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, SubtableOffset),
|
||||||
|
4, AcpiDmTableInfoPptt0a);
|
||||||
|
if (ACPI_FAILURE (Status))
|
||||||
|
diff -Naur acpica-unix2-20200214.orig/source/compiler/dttable2.c acpica-unix2-20200214/source/compiler/dttable2.c
|
||||||
|
--- acpica-unix2-20200214.orig/source/compiler/dttable2.c 2020-02-26 11:44:13.726967769 -0700
|
||||||
|
+++ acpica-unix2-20200214/source/compiler/dttable2.c 2020-02-26 12:39:03.671014890 -0700
|
||||||
|
@@ -1087,9 +1087,11 @@
|
||||||
|
Subtable->Buffer, sizeof (ACPI_SUBTABLE_HEADER));
|
||||||
|
if (PpttProcessor)
|
||||||
|
{
|
||||||
|
+ UINT32 NumPrivRes;
|
||||||
|
+
|
||||||
|
/* Compile initiator proximity domain list */
|
||||||
|
|
||||||
|
- PpttProcessor->NumberOfPrivResources = 0;
|
||||||
|
+ NumPrivRes = 0;
|
||||||
|
while (*PFieldList)
|
||||||
|
{
|
||||||
|
Status = DtCompileTable (PFieldList,
|
||||||
|
@@ -1105,8 +1107,9 @@
|
||||||
|
|
||||||
|
DtInsertSubtable (ParentTable, Subtable);
|
||||||
|
PpttHeader->Length += (UINT8)(Subtable->Length);
|
||||||
|
- PpttProcessor->NumberOfPrivResources++;
|
||||||
|
+ NumPrivRes++;
|
||||||
|
}
|
||||||
|
+ ACPI_MOVE_32_TO_32(&PpttProcessor->NumberOfPrivResources, &NumPrivRes);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
diff -Naur acpica-unix2-20200214.orig/source/compiler/aslload.c acpica-unix2-20200214/source/compiler/aslload.c
|
||||||
|
--- acpica-unix2-20200214.orig/source/compiler/aslload.c 2020-02-14 10:33:53.000000000 -0700
|
||||||
|
+++ acpica-unix2-20200214/source/compiler/aslload.c 2020-02-27 13:25:19.308413494 -0700
|
||||||
|
@@ -175,13 +175,17 @@
|
||||||
|
ACPI_NAMESPACE_NODE *Node;
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
char *ExternalPath;
|
||||||
|
+ char TmpPath[ACPI_NAMESEG_SIZE];
|
||||||
|
|
||||||
|
|
||||||
|
SourceRegion = UtGetArg (Op, 0);
|
||||||
|
if (SourceRegion)
|
||||||
|
{
|
||||||
|
- Status = AcpiNsLookup (WalkState->ScopeInfo,
|
||||||
|
- SourceRegion->Asl.Value.String, AmlType, ACPI_IMODE_EXECUTE,
|
||||||
|
+ char TmpName[ACPI_NAMESEG_SIZE];
|
||||||
|
+
|
||||||
|
+ ACPI_MOVE_32_TO_32(TmpName, SourceRegion->Asl.Value.String);
|
||||||
|
+ Status = AcpiNsLookup (WalkState->ScopeInfo, TmpName,
|
||||||
|
+ AmlType, ACPI_IMODE_EXECUTE,
|
||||||
|
ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node);
|
||||||
|
if (Status == AE_NOT_FOUND)
|
||||||
|
{
|
||||||
|
@@ -232,8 +236,9 @@
|
||||||
|
|
||||||
|
default:
|
||||||
|
|
||||||
|
+ ACPI_MOVE_32_TO_32(TmpPath, Child->Asl.Value.String);
|
||||||
|
Status = AcpiNsLookup (WalkState->ScopeInfo,
|
||||||
|
- Child->Asl.Value.String,
|
||||||
|
+ TmpPath,
|
||||||
|
ACPI_TYPE_LOCAL_REGION_FIELD,
|
||||||
|
ACPI_IMODE_LOAD_PASS1,
|
||||||
|
ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
|
4693
big-endian.patch
Normal file
4693
big-endian.patch
Normal file
File diff suppressed because it is too large
Load Diff
26
converterSample.asl.result
Normal file
26
converterSample.asl.result
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
converterSample.asl 37: Method(MAIN) {
|
||||||
|
Remark 2120 - ^ Control Method should be made Serialized due to creation of named objects within (\MAIN)
|
||||||
|
|
||||||
|
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 (\SCOP)
|
||||||
|
|
||||||
|
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 - 2020 Intel Corporation
|
||||||
|
|
||||||
|
Ignoring all errors, forcing AML file generation
|
||||||
|
|
||||||
|
ASL Input: converterSample.asl - 1968 bytes 11 keywords 85 source lines
|
||||||
|
AML Output: converterSample.aml - 182 bytes 2 opcodes 9 named objects
|
||||||
|
|
||||||
|
Compilation successful. 0 Errors, 0 Warnings, 5 Remarks, 10 Optimizations
|
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-unix-20191018/source/components/dispatcher/dsutils.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/components/dispatcher/dsutils.c
|
||||||
|
+++ acpica-unix-20191018/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-unix-20191018/source/components/parser/psobject.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/components/parser/psobject.c
|
||||||
|
+++ acpica-unix-20191018/source/components/parser/psobject.c
|
||||||
|
@@ -707,7 +707,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);
|
||||||
|
@@ -724,7 +725,7 @@ AcpiPsCompleteFinalOp (
|
||||||
|
{
|
||||||
|
if (Op)
|
||||||
|
{
|
||||||
|
- if (WalkState->AscendingCallback != NULL)
|
||||||
|
+ if (Ascending && WalkState->AscendingCallback != NULL)
|
||||||
|
{
|
||||||
|
WalkState->Op = Op;
|
||||||
|
WalkState->OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
|
||||||
|
@@ -743,41 +744,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;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -786,5 +774,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-unix-20191018/source/components/namespace/nseval.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/components/namespace/nseval.c
|
||||||
|
+++ acpica-unix-20191018/source/components/namespace/nseval.c
|
||||||
|
@@ -329,6 +329,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",
|
39
dbtest.patch
Normal file
39
dbtest.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
On s390, GCC does not like the string initialization in this case. When
|
||||||
|
ValueToWrite is initialized this way, GCC tries to copy the entire string
|
||||||
|
into an ACPI_OBJECT instead of just the pointer (see the use in the call
|
||||||
|
to memcpy()). So, move the init so GCC recognizes that ValueToWrite is
|
||||||
|
only a pointer, and not a whole string that needs to be moved.
|
||||||
|
|
||||||
|
diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica-unix2-20200214/source/components/debugger/dbtest.c
|
||||||
|
--- acpica-unix2-20200214.orig/source/components/debugger/dbtest.c 2020-02-14 10:33:54.000000000 -0700
|
||||||
|
+++ acpica-unix2-20200214/source/components/debugger/dbtest.c 2020-02-25 10:50:42.793372070 -0700
|
||||||
|
@@ -719,9 +719,10 @@
|
||||||
|
ACPI_OBJECT *Temp1 = NULL;
|
||||||
|
ACPI_OBJECT *Temp2 = NULL;
|
||||||
|
ACPI_OBJECT *Temp3 = NULL;
|
||||||
|
- char *ValueToWrite = "Test String from AML Debugger";
|
||||||
|
+ char *ValueToWrite = NULL;
|
||||||
|
ACPI_OBJECT WriteValue;
|
||||||
|
ACPI_STATUS Status;
|
||||||
|
+ const char *TestStr = "Test String from AML Debugger";
|
||||||
|
|
||||||
|
|
||||||
|
/* Read the original value */
|
||||||
|
@@ -737,6 +738,9 @@
|
||||||
|
|
||||||
|
/* Write a new value */
|
||||||
|
|
||||||
|
+ ValueToWrite = AcpiOsAllocateZeroed(strlen(TestStr)+1);
|
||||||
|
+ strncpy(ValueToWrite, TestStr, strlen(TestStr)+1);
|
||||||
|
+
|
||||||
|
WriteValue.Type = ACPI_TYPE_STRING;
|
||||||
|
WriteValue.String.Length = strlen (ValueToWrite);
|
||||||
|
WriteValue.String.Pointer = ValueToWrite;
|
||||||
|
@@ -790,6 +794,7 @@
|
||||||
|
if (Temp1) {AcpiOsFree (Temp1);}
|
||||||
|
if (Temp2) {AcpiOsFree (Temp2);}
|
||||||
|
if (Temp3) {AcpiOsFree (Temp3);}
|
||||||
|
+ if (ValueToWrite) {AcpiOsFree (ValueToWrite);}
|
||||||
|
return (Status);
|
||||||
|
}
|
||||||
|
|
71
f23-harden.patch
Normal file
71
f23-harden.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
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-20200528/generate/unix/Makefile.config
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/generate/unix/Makefile.config
|
||||||
|
+++ acpica-unix2-20200528/generate/unix/Makefile.config
|
||||||
|
@@ -189,6 +189,8 @@ ifneq ($(NOFORTIFY),TRUE)
|
||||||
|
OPT_CFLAGS += -D_FORTIFY_SOURCE=2
|
||||||
|
endif
|
||||||
|
|
||||||
|
+OPT_CFLAGS += -fPIC -pie
|
||||||
|
+
|
||||||
|
CFLAGS += \
|
||||||
|
-D$(ACPI_HOST)\
|
||||||
|
-D_GNU_SOURCE\
|
||||||
|
Index: acpica-unix2-20200528/generate/unix/iasl/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/generate/unix/iasl/Makefile
|
||||||
|
+++ acpica-unix2-20200528/generate/unix/iasl/Makefile
|
||||||
|
@@ -358,34 +358,35 @@ $(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)/dtcompilerparserlex.o : $(OBJDIR)/dtcompilerparserlex.c
|
||||||
|
@echo "- " "Intermediate" $<
|
||||||
|
- @$(CC) -c $(CFLAGS) -Wall -Werror -o$@ $<
|
||||||
|
+ @$(CC) -c $(CFLAGS) $(HARDENING_FLAGS) -Wall -Werror -o$@ $<
|
||||||
|
|
||||||
|
$(OBJDIR)/dtcompilerparserparse.o : $(OBJDIR)/dtcompilerparserparse.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$@ $<
|
28
facp.patch
Normal file
28
facp.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
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(-)
|
||||||
|
|
||||||
|
Index: acpica-unix2-20200528/source/common/dmtbinfo.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/common/dmtbinfo.c
|
||||||
|
+++ acpica-unix2-20200528/source/common/dmtbinfo.c
|
||||||
|
@@ -184,7 +184,7 @@ ACPI_DMTABLE_INFO AcpiDmTableI
|
||||||
|
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},
|
65
gcc9.patch
Normal file
65
gcc9.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
diff -Naur acpica-unix2-20190108/source/common/dmrestag.c acpica-unix2-20190108-patch/source/common/dmrestag.c
|
||||||
|
--- acpica-unix2-20190108/source/common/dmrestag.c 2019-01-08 14:10:31.000000000 -0700
|
||||||
|
+++ acpica-unix2-20190108-patch/source/common/dmrestag.c 2019-05-10 13:57:10.768398838 -0600
|
||||||
|
@@ -710,10 +710,25 @@
|
||||||
|
* end up in the final compiled AML, it's just an appearance issue for the
|
||||||
|
* disassembled code.
|
||||||
|
*/
|
||||||
|
- Pathname[strlen (Pathname) - ACPI_NAME_SIZE] = 0;
|
||||||
|
- strncat (Pathname, ResourceNode->Name.Ascii, ACPI_NAME_SIZE);
|
||||||
|
- strcat (Pathname, ".");
|
||||||
|
- strncat (Pathname, Tag, ACPI_NAME_SIZE);
|
||||||
|
+ {
|
||||||
|
+ /*
|
||||||
|
+ * GCC9 forces some contortions when non-null-terminated char
|
||||||
|
+ * strings are being used; using strncat() might be simpler,
|
||||||
|
+ * but the assumption that the string is null-terminated gets
|
||||||
|
+ * checked and AML does not always guarantee that is true.
|
||||||
|
+ */
|
||||||
|
+ char *tmp;
|
||||||
|
+ unsigned char dot = '.';
|
||||||
|
+
|
||||||
|
+ Pathname[strlen (Pathname) - ACPI_NAME_SIZE] = 0;
|
||||||
|
+ tmp = Pathname + strlen(Pathname);
|
||||||
|
+ memcpy (tmp, ResourceNode->Name.Ascii, ACPI_NAME_SIZE);
|
||||||
|
+ tmp += ACPI_NAME_SIZE;
|
||||||
|
+ memcpy (tmp, &dot, 1);
|
||||||
|
+ tmp++;
|
||||||
|
+ memcpy (tmp, Tag, ACPI_NAME_SIZE);
|
||||||
|
+ tmp += ACPI_NAME_SIZE;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
/* Internalize the namepath to AML format */
|
||||||
|
|
||||||
|
diff -Naur acpica-unix2-20190108/source/compiler/aslcodegen.c acpica-unix2-20190108-patch/source/compiler/aslcodegen.c
|
||||||
|
--- acpica-unix2-20190108/source/compiler/aslcodegen.c 2019-05-10 13:40:12.827411487 -0600
|
||||||
|
+++ acpica-unix2-20190108-patch/source/compiler/aslcodegen.c 2019-05-10 13:25:34.667850614 -0600
|
||||||
|
@@ -450,11 +450,11 @@
|
||||||
|
*/
|
||||||
|
if (AcpiGbl_CaptureComments)
|
||||||
|
{
|
||||||
|
- strncpy(AcpiGbl_TableSig, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||||
|
+ memcpy(AcpiGbl_TableSig, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||||
|
Child->Asl.Value.String = ACPI_SIG_XXXX;
|
||||||
|
}
|
||||||
|
|
||||||
|
- strncpy (AslGbl_TableHeader.Signature, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||||
|
+ memcpy (AslGbl_TableHeader.Signature, Child->Asl.Value.String, ACPI_NAME_SIZE);
|
||||||
|
|
||||||
|
/* Revision */
|
||||||
|
|
||||||
|
@@ -471,12 +471,12 @@
|
||||||
|
/* OEMID */
|
||||||
|
|
||||||
|
Child = Child->Asl.Next;
|
||||||
|
- strncpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, ACPI_OEM_ID_SIZE);
|
||||||
|
+ memcpy (AslGbl_TableHeader.OemId, Child->Asl.Value.String, ACPI_OEM_ID_SIZE);
|
||||||
|
|
||||||
|
/* OEM TableID */
|
||||||
|
|
||||||
|
Child = Child->Asl.Next;
|
||||||
|
- strncpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, ACPI_OEM_TABLE_ID_SIZE);
|
||||||
|
+ memcpy (AslGbl_TableHeader.OemTableId, Child->Asl.Value.String, ACPI_OEM_TABLE_ID_SIZE);
|
||||||
|
|
||||||
|
/* OEM Revision */
|
||||||
|
|
584
grammar.asl.result
Normal file
584
grammar.asl.result
Normal file
@ -0,0 +1,584 @@
|
|||||||
|
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 247: Name (PRT0, ResourceTemplate ()
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RES._CRS)
|
||||||
|
|
||||||
|
grammar.asl 399: CreateByteField (PRT0, R000._ASZ, RSIZ)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [RSIZ] is within a method [_CRS])
|
||||||
|
|
||||||
|
grammar.asl 406: Name (BUF0, ResourceTemplate ()
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RES._PRS)
|
||||||
|
|
||||||
|
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 631: Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
|
||||||
|
Warning 3168 - ^ Legacy Processor() keyword detected. Use Device() keyword instead.
|
||||||
|
|
||||||
|
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 705: Device(PCI0)
|
||||||
|
Warning 3073 - Multiple types ^ (Device object requires either a _HID or _ADR, but not both)
|
||||||
|
|
||||||
|
grammar.asl 712: Name(PRT0, ResourceTemplate() {
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.PCI0._CRS)
|
||||||
|
|
||||||
|
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 1300: Name(BUFR, Buffer (Local0) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ1)
|
||||||
|
|
||||||
|
grammar.asl 1301: Name(BUF1, Buffer (4) {1,2,3,4})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ1)
|
||||||
|
|
||||||
|
grammar.asl 1302: Name(BUF2, Buffer (4) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ1)
|
||||||
|
|
||||||
|
grammar.asl 1307: Alias (MTX1, MTX2)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [MTX2] is within a method [OBJ1])
|
||||||
|
|
||||||
|
grammar.asl 1321: Name (BUF2, Buffer (128) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\FLDS)
|
||||||
|
|
||||||
|
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 1445: Name (BUFO, Buffer (32) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||||
|
|
||||||
|
grammar.asl 1448: OperationRegion (OPR2, SystemMemory, Arg0, 256)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||||
|
|
||||||
|
grammar.asl 1462: BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||||
|
|
||||||
|
grammar.asl 1469: IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||||
|
|
||||||
|
grammar.asl 1476: SizeOf (BUFO)
|
||||||
|
Error 6114 - ^ Result is not used, operator has no effect
|
||||||
|
|
||||||
|
grammar.asl 1490: Event (EVT2)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\OBJ2)
|
||||||
|
|
||||||
|
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 1916: Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\REFS)
|
||||||
|
|
||||||
|
grammar.asl 1918: Name (NEST, Package ()
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\REFS)
|
||||||
|
|
||||||
|
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 2168: Name (WRD, 0x1234)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\NOSV.TEST)
|
||||||
|
|
||||||
|
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 2667: Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RTBF.RBUF)
|
||||||
|
|
||||||
|
grammar.asl 2695: Name (BUFR, Buffer(Local1) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RTBF.RBUF)
|
||||||
|
|
||||||
|
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 2989: Device (PCI1)
|
||||||
|
Warning 3073 - Multiple types ^ (Device object requires either a _HID or _ADR, but not both)
|
||||||
|
|
||||||
|
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 3343: Name(RSLT,1)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\ANDO.TEST)
|
||||||
|
|
||||||
|
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 3435: Name (DWRD, 0x12345678)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\ADSU.TEST)
|
||||||
|
|
||||||
|
grammar.asl 3436: Name (WRD, 0x1234)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\ADSU.TEST)
|
||||||
|
|
||||||
|
grammar.asl 3437: Name (BYT, 0x12)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\ADSU.TEST)
|
||||||
|
|
||||||
|
grammar.asl 3513: Device (INDC)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar.asl 3528: Name (DWRD, 0x12345678)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\INDC.TEST)
|
||||||
|
|
||||||
|
grammar.asl 3529: Name (WRD, 0x1234)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\INDC.TEST)
|
||||||
|
|
||||||
|
grammar.asl 3530: Name (BYT, 0x12)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\INDC.TEST)
|
||||||
|
|
||||||
|
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 4135: Name (RMDR, 0)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MLDV.TEST)
|
||||||
|
|
||||||
|
grammar.asl 4136: Name (DWRD, 0x12345678)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MLDV.TEST)
|
||||||
|
|
||||||
|
grammar.asl 4137: Name (WRD, 0x1234)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MLDV.TEST)
|
||||||
|
|
||||||
|
grammar.asl 4138: Name (BYT, 0x12)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MLDV.TEST)
|
||||||
|
|
||||||
|
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 4693: OperationRegion (RAM, SystemMemory, 0x800000, 256)
|
||||||
|
Warning 3175 - ^ Static OperationRegion should be declared outside control method
|
||||||
|
|
||||||
|
grammar.asl 4693: OperationRegion (RAM, SystemMemory, 0x800000, 256)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\XORD.TEST)
|
||||||
|
|
||||||
|
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 5117: OperationRegion (RAM, SystemMemory, Arg0, 0x100)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX4.MADM)
|
||||||
|
|
||||||
|
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 6416: Name (BUF0, Buffer (Local0) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX5.MCTH)
|
||||||
|
|
||||||
|
grammar.asl 6417: Name (BUF1, Buffer (Local0) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX5.MCTH)
|
||||||
|
|
||||||
|
grammar.asl 6474: Device (PCI2)
|
||||||
|
Warning 3073 - Multiple types ^ (Device object requires either a _HID or _ADR, but not both)
|
||||||
|
|
||||||
|
grammar.asl 6478: Name (_CRS, Buffer(26) {"\_SB_.PCI2._CRS..........."})
|
||||||
|
Warning 3046 - Invalid or unknown escape sequence ^
|
||||||
|
|
||||||
|
grammar.asl 6554: Name (BUFR, Package(13) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX0._BIF)
|
||||||
|
|
||||||
|
grammar.asl 6578: Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX0._BST)
|
||||||
|
|
||||||
|
grammar.asl 6593: Name (PBUF, Package(4) {}) // leave uninitialized
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX0.TEST)
|
||||||
|
|
||||||
|
grammar.asl 6625: Name (BUFR, Buffer(16)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX0.TEST)
|
||||||
|
|
||||||
|
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 6846: Name (C17C, Package (13)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.C17B)
|
||||||
|
|
||||||
|
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 6922: Name (BUFR, Buffer () {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX3.LCLB)
|
||||||
|
|
||||||
|
grammar.asl 6974: Name (PKG, Package () {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX3.LCLP)
|
||||||
|
|
||||||
|
grammar.asl 7057: Device(IDX7)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar.asl 7074: Name (DEST, Buffer () // 62 characters plus NULL
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TST1)
|
||||||
|
|
||||||
|
grammar.asl 7093: Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TST2)
|
||||||
|
|
||||||
|
grammar.asl 7110: Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TST3)
|
||||||
|
|
||||||
|
grammar.asl 7301: Name (SRCB, Buffer (12) {}) // 12 characters
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTF)
|
||||||
|
|
||||||
|
grammar.asl 7304: Name (DEST, Buffer () // 62 characters plus NULL
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTF)
|
||||||
|
|
||||||
|
grammar.asl 7327: Name (SRCB, Buffer (12) {}) // 12 characters
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTG)
|
||||||
|
|
||||||
|
grammar.asl 7330: Name (DEST, Buffer () // 62 characters plus NULL
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTG)
|
||||||
|
|
||||||
|
grammar.asl 7412: Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTH)
|
||||||
|
|
||||||
|
grammar.asl 7448: Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTI)
|
||||||
|
|
||||||
|
grammar.asl 7484: Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTJ)
|
||||||
|
|
||||||
|
grammar.asl 7520: Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTK)
|
||||||
|
|
||||||
|
grammar.asl 7556: Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX7.TSTL)
|
||||||
|
|
||||||
|
grammar.asl 7736: Device (MTCH)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar.asl 7743: Name (TIM0, Package ()
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MTCH.TEST)
|
||||||
|
|
||||||
|
grammar.asl 7755: Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\MTCH.TEST)
|
||||||
|
|
||||||
|
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 8275: Name (BUFR, Package (13) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.BAT1._BIF)
|
||||||
|
|
||||||
|
grammar.asl 8295: Device (IDX2)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar.asl 8300: Name (SRCB, Buffer () {"Short Buffer"}) // 12 characters plus NULL
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX2.B2IB)
|
||||||
|
|
||||||
|
grammar.asl 8302: Name (DEST, Buffer () // 62 characters plus NULL
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX2.B2IB)
|
||||||
|
|
||||||
|
grammar.asl 8493: Name (DEST, Package (2) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\_SB.IDX2.FB2P)
|
||||||
|
|
||||||
|
grammar.asl 8678: Device (SIZO)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar.asl 8708: Name (BUFR, Buffer (12) {}) // uninitialized Buffer
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SARG)
|
||||||
|
|
||||||
|
grammar.asl 8709: Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SARG)
|
||||||
|
|
||||||
|
grammar.asl 8710: Name (PKG0, Package (4) {}) // uninitialized Package
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SARG)
|
||||||
|
|
||||||
|
grammar.asl 8712: Name (PKG1, Package (4)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SARG)
|
||||||
|
|
||||||
|
grammar.asl 8720: Name (PKG2, Package (4)
|
||||||
|
Remark 2063 - ^ Initializer list shorter than declared package length
|
||||||
|
|
||||||
|
grammar.asl 8720: Name (PKG2, Package (4)
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SARG)
|
||||||
|
|
||||||
|
grammar.asl 8973: Name (BUFR, Buffer (12) {})
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SBUF)
|
||||||
|
|
||||||
|
grammar.asl 9034: Name (BUFR, Buffer (12) {}) // uninitialized Buffer
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SLOC)
|
||||||
|
|
||||||
|
grammar.asl 9036: Name (PKG0, Package (4) {}) // uninitialized Package
|
||||||
|
Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\SIZO.SLOC)
|
||||||
|
|
||||||
|
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 - 2020 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, 93 Warnings, 92 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-unix2-20200528/source/compiler/aslerror.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/compiler/aslerror.c
|
||||||
|
+++ acpica-unix2-20200528/source/compiler/aslerror.c
|
||||||
|
@@ -917,7 +917,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-unix2-20200528/source/compiler/aslopt.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/compiler/aslopt.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/compiler/aslprepkg.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/compiler/aslprepkg.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/debugger/dbexec.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/debugger/dbexec.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/dispatcher/dsmthdat.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/dispatcher/dsmthdat.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/dispatcher/dsutils.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/dispatcher/dsutils.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/dispatcher/dswscope.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/dispatcher/dswscope.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/events/evgpe.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/events/evgpe.c
|
||||||
|
+++ acpica-unix2-20200528/source/components/events/evgpe.c
|
||||||
|
@@ -488,7 +488,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-unix2-20200528/source/components/executer/exdump.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/executer/exdump.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/executer/exfldio.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/executer/exfldio.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/executer/exnames.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/executer/exnames.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/hardware/hwregs.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/hardware/hwregs.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/tables/tbfadt.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/tables/tbfadt.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/tables/tbxfroot.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/tables/tbxfroot.c
|
||||||
|
+++ acpica-unix2-20200528/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-unix2-20200528/source/components/utilities/utownerid.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix2-20200528.orig/source/components/utilities/utownerid.c
|
||||||
|
+++ acpica-unix2-20200528/source/components/utilities/utownerid.c
|
||||||
|
@@ -237,7 +237,7 @@ AcpiUtReleaseOwnerId (
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ACPI_ERROR ((AE_INFO,
|
||||||
|
- "Attempted release of non-allocated OwnerId: 0x%3.3X", 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-20191018/source/compiler/aslparseop.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/compiler/aslparseop.c
|
||||||
|
+++ acpica-unix-20191018/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-20191018/source/include/platform/aclinux.h
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/include/platform/aclinux.h
|
||||||
|
+++ acpica-unix-20191018/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-20191018/source/include/platform/aclinux.h
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/include/platform/aclinux.h
|
||||||
|
+++ acpica-unix-20191018/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__ */
|
||||||
|
|
50
ptr-cast.patch
Normal file
50
ptr-cast.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
Index: acpica-unix-20191018/source/components/tables/tbutils.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/components/tables/tbutils.c
|
||||||
|
+++ acpica-unix-20191018/source/components/tables/tbutils.c
|
||||||
|
@@ -238,9 +238,11 @@ AcpiTbGetRootTableEntry (
|
||||||
|
* 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 @@ AcpiTbGetRootTableEntry (
|
||||||
|
" 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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: acpica-unix-20191018/source/compiler/aslparseop.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/compiler/aslparseop.c
|
||||||
|
+++ acpica-unix-20191018/source/compiler/aslparseop.c
|
||||||
|
@@ -287,7 +287,11 @@ TrCreateValuedLeafOp (
|
||||||
|
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
|
||||||
|
{
|
48
run-misc-tests.sh
Normal file
48
run-misc-tests.sh
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#!/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 -hZZ
|
||||||
|
|
||||||
|
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 failed as expected
|
||||||
|
# NB: the -f option is required so we can see all of the errors
|
||||||
|
$BINDIR/iasl -f -of converterSample.asl 2>&1 | tee converterSample.asl.actual
|
||||||
|
diff converterSample.asl.actual converterSample.asl.expected >/dev/null 2>&1
|
||||||
|
[ $? -eq 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-20191018/source/include/platform/aclinux.h
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/include/platform/aclinux.h
|
||||||
|
+++ acpica-unix-20191018/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
|
2
sources
Normal file
2
sources
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SHA512 (acpica-unix2-20200717.tar.gz) = d477911d9dded34e887f77f396d84b85334b66983d3104ba8ee0ade09186abacfceec9ecec96fa6fce886da5fe0d187c2cdeed62cca467cdae049e2fe011391a
|
||||||
|
SHA512 (acpitests-unix-20200717.tar.gz) = 02c6674cbb2d98f783f25c71b1f391713de6fb3b56e5b57de9a7ccba0927453be4db8aea513e6e7ad491fcf3a0b2c14fefe8a2b82877a2ae01ea1d7832d36844
|
112
str-trunc-warn.patch
Normal file
112
str-trunc-warn.patch
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
Index: acpica-unix-20200214/source/compiler/aslanalyze.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20200214.orig/source/compiler/aslanalyze.c
|
||||||
|
+++ acpica-unix-20200214/source/compiler/aslanalyze.c
|
||||||
|
@@ -358,11 +358,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-unix-20200214/source/compiler/aslpredef.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20200214.orig/source/compiler/aslpredef.c
|
||||||
|
+++ acpica-unix-20200214/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-unix-20200214/source/compiler/aslwalks.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20200214.orig/source/compiler/aslwalks.c
|
||||||
|
+++ acpica-unix-20200214/source/compiler/aslwalks.c
|
||||||
|
@@ -515,15 +515,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-unix-20191018/tests/templates/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/tests/templates/Makefile
|
||||||
|
+++ acpica-unix-20191018/tests/templates/Makefile
|
||||||
|
@@ -26,7 +26,7 @@ $(aml_obj): %.aml: %.asl
|
||||||
|
|
||||||
|
|
||||||
|
templates :
|
||||||
|
- sh templates.sh
|
||||||
|
+ sh templates.sh 1
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
2
tests/.gitignore
vendored
Normal file
2
tests/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
tests.retry
|
||||||
|
artifacts
|
56
tests/acpica-tools-tests/aslts/Makefile
Normal file
56
tests/acpica-tools-tests/aslts/Makefile
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/acpica-tools/acpica-tools-tests/aslts
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Author, maintainer and description of the test
|
||||||
|
AUTHOR=Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
DESCRIPTION=ACPICA ASL grammar validation Test Suite (ASLTS)
|
||||||
|
PACKAGE=acpica-tools
|
||||||
|
|
||||||
|
# The name of the test.
|
||||||
|
export TEST=/CoreOS/acpica-tools/acpica-tools-tests/aslts
|
||||||
|
|
||||||
|
# Version of the test. Used with make tag.
|
||||||
|
export TESTVERSION=1.0
|
||||||
|
|
||||||
|
|
||||||
|
# data files, .c files, scripts anything needed to either compile the test and/or run it.
|
||||||
|
FILES=$(METADATA) runtest.sh PURPOSE Makefile
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
./runtest.sh
|
||||||
|
|
||||||
|
build: $(BUILT_FILES) $(FILES)
|
||||||
|
chmod a+x ./runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ *.rpm
|
||||||
|
rm -f $(METADATA)
|
||||||
|
|
||||||
|
# Include Common Makefile
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
# Generate the testinfo.desc here:
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@touch $(METADATA)
|
||||||
|
@echo "Owner: $(AUTHOR)" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Description: $(DESCRIPTION)" >> $(METADATA)
|
||||||
|
@echo "TestTime: 30m" >> $(METADATA)
|
||||||
|
@echo "RunFor: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Architectures: aarch64 i386 x86_64 ppc64 ppc64le" >> $(METADATA)
|
||||||
|
@echo "Type: Regression" >> $(METADATA)
|
||||||
|
@echo "RhtsRequires: test(/CoreOS/acpica-tools/acpica-tools-tests/include)" >> $(METADATA)
|
||||||
|
@echo "Requires: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Requires: @developer-tools" >> $(METADATA)
|
||||||
|
@echo "Requires: gcc" >> $(METADATA)
|
||||||
|
@echo "Requires: rpm-build" >> $(METADATA)
|
||||||
|
@echo "Requires: wget" >> $(METADATA)
|
||||||
|
rhts-lint $(METADATA)
|
||||||
|
# The include package takes care of all the dependencies
|
||||||
|
# Add any other dependencies there (/kernel/filesystems/xfs/include)
|
36
tests/acpica-tools-tests/aslts/PURPOSE
Normal file
36
tests/acpica-tools-tests/aslts/PURPOSE
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
from tests/aslts/README:
|
||||||
|
|
||||||
|
ACPICA ASL grammar validation Test Suite (ASLTS)
|
||||||
|
|
||||||
|
|
||||||
|
ASLTS verifies, in "hardware-independent" mode, conformity of ACPICA
|
||||||
|
ASL compiler and interpreter to the ACPI ASL grammar specification. The
|
||||||
|
more common task of ASLTS is to check, in "hardware-independent" mode also,
|
||||||
|
all the functionality of ACPICA which can be initiated and then verified
|
||||||
|
from inside the test modules coded in ASL. The first local task is performed
|
||||||
|
by the test collection named 'functional', to achieve the second one the tests
|
||||||
|
of other collections are intended: complex, exceptions, etc. The conditional
|
||||||
|
difference between the tests of 'functional' and 'complex' collections is that
|
||||||
|
the tests of 'functional' collection checks specific functionality of the
|
||||||
|
particular ASL operator while the tests of 'complex' collection verify the
|
||||||
|
more common functionality.
|
||||||
|
|
||||||
|
The testing is performed in "hardware-independent" mode without any
|
||||||
|
access to ACPI subsystem hardware. In this purpose the AcpiExec utility
|
||||||
|
is used which includes the entire ACPICA subsystem and allows to execute
|
||||||
|
the AML code and thus verify functionality of ACPICA subsystem.
|
||||||
|
|
||||||
|
The ASL source code is compiled to AML code and then passed to
|
||||||
|
AcpiExec utility. In this relation one more type tests are provided,
|
||||||
|
so called ASL-compilation control test collection, which check ability
|
||||||
|
of ASL compiler to reveal and report incorrect ASL code.
|
||||||
|
|
||||||
|
The tests of the exceptional conditions test collection
|
||||||
|
initiate and verify exceptional conditions, check that the
|
||||||
|
exceptions occur (or not occur) in the expected specified way.
|
||||||
|
|
||||||
|
The testing is provided in both 32-bit and 64-bit modes
|
||||||
|
(option -r of ASL compiler) as well both normal and slack
|
||||||
|
modes (option -s of AcpiExec).
|
||||||
|
|
||||||
|
|
61
tests/acpica-tools-tests/aslts/runtest.sh
Executable file
61
tests/acpica-tools-tests/aslts/runtest.sh
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/acpica-tools/acpica-tools-tests/aslts
|
||||||
|
# Description: ACPICA ASL grammar validation Test Suite (ASLTS)
|
||||||
|
# Author: Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2015 Red Hat
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
#. /usr/bin/rhts-environment.sh
|
||||||
|
#. /usr/share/beakerlib/beakerlib.sh
|
||||||
|
TESTNAME=$(basename $TEST)
|
||||||
|
. ../include/include.sh
|
||||||
|
|
||||||
|
|
||||||
|
PACKAGE="acpica-tools"
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
rlAssertRpm $PACKAGE
|
||||||
|
rlRun mk_test_dirs
|
||||||
|
rlRun acpica-tools_prep
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest
|
||||||
|
rlShowRunningKernel
|
||||||
|
pushd ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests
|
||||||
|
rlRun "./aslts.sh -u > $log_dir/aslts.sh.out 2>&1" 0 "Running ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/aslts.sh... Logging to $log_dir/aslts.sh.out"
|
||||||
|
retval=$?
|
||||||
|
if [[ $retval -ne 0 || $DeBug -ne 0 ]] ; then
|
||||||
|
echo "Creating tarball: $log_dir/aslts_run_log.tar.xz of ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/aslts/tmp"
|
||||||
|
tar -Jcf $log_dir/aslts_run_log.tar.xz ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/aslts/tmp
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
submit_logs
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
64
tests/acpica-tools-tests/include/Makefile
Normal file
64
tests/acpica-tools-tests/include/Makefile
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/acpica-tools/acpica-tools-tests/include
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2014 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
AUTHOR=Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
DESCRIPTION=This virtual test case provides a common set of functions for numerous test cases.
|
||||||
|
PACKAGE=acpica-tools
|
||||||
|
|
||||||
|
export TEST=/CoreOS/acpica-tools/acpica-tools-tests/include
|
||||||
|
export TESTVERSION=1.0
|
||||||
|
|
||||||
|
FILES=$(METADATA) Makefile PURPOSE *.sh
|
||||||
|
|
||||||
|
.PHONY: all install download clean
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
|
||||||
|
build: $(BUILT_FILES)
|
||||||
|
chmod a+x runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ $(BUILT_FILES) *.rpm
|
||||||
|
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@echo "Owner: $(AUTHOR)" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "Description: $(DESCRIPTION)" >> $(METADATA)
|
||||||
|
@echo "Type: Library" >> $(METADATA)
|
||||||
|
@echo "TestTime: 5m" >> $(METADATA)
|
||||||
|
@echo "Priority: High" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "Confidential: no" >> $(METADATA)
|
||||||
|
@echo "Destructive: no" >> $(METADATA)
|
||||||
|
@echo "RunFor: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Requires: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Requires: @developer-tools" >> $(METADATA)
|
||||||
|
@echo "Requires: gcc" >> $(METADATA)
|
||||||
|
@echo "Requires: rpm-build" >> $(METADATA)
|
||||||
|
@echo "Requires: wget" >> $(METADATA)
|
||||||
|
rhts-lint $(METADATA)
|
8
tests/acpica-tools-tests/include/PURPOSE
Normal file
8
tests/acpica-tools-tests/include/PURPOSE
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Common library functions for acpica-tools-tests.
|
||||||
|
|
||||||
|
This task includes library functions for other acpica-tools-tests tasks, do not schedule this task directly.
|
||||||
|
|
||||||
|
includes:
|
||||||
|
- Download/install of binary acpica-tools package
|
||||||
|
- Download/install and build prep of acpica-tools .src.rpm
|
||||||
|
-
|
112
tests/acpica-tools-tests/include/include.sh
Normal file
112
tests/acpica-tools-tests/include/include.sh
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# /Coreos/acpica-tools/acpica-tools-tests/include/include.sh
|
||||||
|
# Constants
|
||||||
|
########################################
|
||||||
|
# - debug turn off SELinux
|
||||||
|
#setenforce 0
|
||||||
|
########################################
|
||||||
|
|
||||||
|
# Source the common test script helpers
|
||||||
|
. /usr/bin/rhts_environment.sh
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh
|
||||||
|
|
||||||
|
# Assume the test will fail.
|
||||||
|
DeBug=0 # Set to 1 to gather all logs from all tests.
|
||||||
|
packagename=acpica-tools
|
||||||
|
RPM_NAME=`rpm -q --queryformat '%{name}\n' $packagename`
|
||||||
|
RPM_VER=`rpm -q --queryformat '%{version}\n' $packagename`
|
||||||
|
RPM_REL=`rpm -q --queryformat '%{release}\n' $packagename`
|
||||||
|
#RPM_ARCH=`rpm -q --queryformat '%{arch}\n' $packagename`
|
||||||
|
OUTPUTDIR=/mnt/testarea/acpica-tools-tests
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
|
||||||
|
|
||||||
|
# Make log and output directories if needed
|
||||||
|
function mk_test_dirs()
|
||||||
|
{
|
||||||
|
if test ! -d $OUTPUTDIR ; then
|
||||||
|
echo "Creating $OUTPUTDIR" | tee -a $OUTPUTFILE
|
||||||
|
mkdir -p $OUTPUTDIR || rlDie "Can't create directory ${OUTPUTDIR}!"
|
||||||
|
fi
|
||||||
|
log_dir=${OUTPUTDIR}/logs/${TESTNAME}-${$}
|
||||||
|
if test ! -d $log_dir ; then
|
||||||
|
echo "Creating $log_dir" | tee -a $OUTPUTFILE
|
||||||
|
mkdir -p $log_dir || rlDie "Can't create directory ${log_dir}!"
|
||||||
|
fi
|
||||||
|
RPMBUILDDIR=${OUTPUTDIR}/rpmbuild
|
||||||
|
if test ! -d $RPMBUILDDIR ; then
|
||||||
|
echo "Creating RPM build directorires" | tee -a $OUTPUTFILE
|
||||||
|
mkdir -p $RPMBUILDDIR/{BUILD,BUILDROOT,RPMS,SPECS,SOURCES,SRPMS} || rlDie "Can't create RPM build directories"
|
||||||
|
fi
|
||||||
|
export OUTPUTDIR log_dir RPMBUILDDIR
|
||||||
|
}
|
||||||
|
|
||||||
|
# Grab src rpm from brew using wget requires package n v r
|
||||||
|
function get_srpm_from_koji()
|
||||||
|
{
|
||||||
|
local name=$1
|
||||||
|
local version=$2
|
||||||
|
local release=$3
|
||||||
|
local wget_opts="-Nnv"
|
||||||
|
local url2srcfile="http://kojipkgs.fedoraproject.org/packages/${name}/${version}/${release}/src/${name}-${version}-${release}.src.rpm"
|
||||||
|
wget $wget_opts $url2srcfile >> $OUTPUTFILE 2>&1
|
||||||
|
if [ "$?" -eq "0" ] ; then
|
||||||
|
echo "***** Successfully downloaded ${name}-${version}-${release}.src.rpm from brewroot *****" | tee -a $OUTPUTFILE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install a src.rpm to a given buildroot
|
||||||
|
# Requires path to src.rpm and an existing buildroot directory to install to.
|
||||||
|
function install_srpm()
|
||||||
|
{
|
||||||
|
local srpm=$1
|
||||||
|
local buildroot=$2
|
||||||
|
if [ -d "$buildroot" ] ; then
|
||||||
|
if [ -e $srpm ] ; then
|
||||||
|
rpm --define "_topdir $RPMBUILDDIR" -ivh $srpm
|
||||||
|
if [ "$?" -eq "0" ] ; then
|
||||||
|
echo "***** Successfully installed $srpm *****" | tee -a $OUTPUTFILE
|
||||||
|
else
|
||||||
|
echo "***** Unable to install $srpm *****" | tee -a $OUTPUTFILE
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "***** $srpm file not found *****" | tee -a $OUTPUTFILE
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "***** $buildroot does not exist *****" | tee -a $OUTPUTFILE
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# run rpm -bp on extracted acpi-tools src.rpm if needed
|
||||||
|
function rpmbp_acpica-tools()
|
||||||
|
{
|
||||||
|
rpmbuild --define "_topdir $RPMBUILDDIR" -bp $RPMBUILDDIR/SPECS/acpica-tools.spec > ${log_dir}/rpm-bp-acpica-tools-${$}.log 2>&1
|
||||||
|
[ $? -eq 0 ] && return 0 || return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function acpica-tools_prep()
|
||||||
|
{
|
||||||
|
if [ ! -d ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER} ] ; then
|
||||||
|
rlRun "get_srpm_from_koji $RPM_NAME $RPM_VER $RPM_REL"
|
||||||
|
rlRun "install_srpm ${RPM_NAME}-${RPM_VER}-${RPM_REL}.src.rpm $RPMBUILDDIR"
|
||||||
|
rlRun rpmbp_acpica-tools
|
||||||
|
else
|
||||||
|
rlLog "acpica-tools source tree is already prepared for testing, skipping acpica-tools_prep()"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# wrapper around rlFileSubmit to preserve path names of the log files and submit all files in the log directory
|
||||||
|
function submit_logs()
|
||||||
|
{
|
||||||
|
for f in $log_dir/*; do
|
||||||
|
if [ -f $f ] ; then
|
||||||
|
rlFileSubmit $f
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
6
tests/acpica-tools-tests/include/runtest.sh
Normal file
6
tests/acpica-tools-tests/include/runtest.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# /Coreos/acpica-tools/acpica-tools-tests/include/runtest.sh
|
||||||
|
echo "This task contains library functions for acpica-tools-tests."
|
||||||
|
echo "Please do not attempt to run this task directly. "
|
||||||
|
exit 1
|
||||||
|
|
56
tests/acpica-tools-tests/misc/Makefile
Normal file
56
tests/acpica-tools-tests/misc/Makefile
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/acpica-tools/acpica-tools-tests/misc
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Author, maintainer and description of the test
|
||||||
|
AUTHOR=Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
DESCRIPTION=sanity tests for iasl(1) to confirm it fails gracefully when given bad AML code to compile.
|
||||||
|
PACKAGE=acpica-tools
|
||||||
|
|
||||||
|
# The name of the test.
|
||||||
|
export TEST=/CoreOS/acpica-tools/acpica-tools-tests/misc
|
||||||
|
|
||||||
|
# Version of the test. Used with make tag.
|
||||||
|
export TESTVERSION=1.0
|
||||||
|
|
||||||
|
|
||||||
|
# data files, .c files, scripts anything needed to either compile the test and/or run it.
|
||||||
|
FILES=$(METADATA) runtest.sh PURPOSE Makefile
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
./runtest.sh
|
||||||
|
|
||||||
|
build: $(BUILT_FILES) $(FILES)
|
||||||
|
chmod a+x ./runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ *.rpm
|
||||||
|
rm -f $(METADATA)
|
||||||
|
|
||||||
|
# Include Common Makefile
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
# Generate the testinfo.desc here:
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@touch $(METADATA)
|
||||||
|
@echo "Owner: $(AUTHOR)" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Description: $(DESCRIPTION)" >> $(METADATA)
|
||||||
|
@echo "TestTime: 12m" >> $(METADATA)
|
||||||
|
@echo "RunFor: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Architectures: aarch64 i386 x86_64 ppc64 ppc64le" >> $(METADATA)
|
||||||
|
@echo "Type: Regression" >> $(METADATA)
|
||||||
|
@echo "RhtsRequires: test(/CoreOS/acpica-tools/acpica-tools-tests/include)" >> $(METADATA)
|
||||||
|
@echo "Requires: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Requires: @developer-tools" >> $(METADATA)
|
||||||
|
@echo "Requires: gcc" >> $(METADATA)
|
||||||
|
@echo "Requires: rpm-build" >> $(METADATA)
|
||||||
|
@echo "Requires: wget" >> $(METADATA)
|
||||||
|
rhts-lint $(METADATA)
|
||||||
|
# The include package takes care of all the dependencies
|
||||||
|
# Add any other dependencies there (/kernel/filesystems/xfs/include)
|
4
tests/acpica-tools-tests/misc/PURPOSE
Normal file
4
tests/acpica-tools-tests/misc/PURPOSE
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
A set of sanity tests for iasl(1) to confirm it fails gracefully when given bad AML code to compile.
|
||||||
|
Included with the source distribution of acpica-tools
|
||||||
|
|
||||||
|
|
62
tests/acpica-tools-tests/misc/runtest.sh
Executable file
62
tests/acpica-tools-tests/misc/runtest.sh
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/acpica-tools/acpica-tools-tests/misc
|
||||||
|
# Description: sanity tests for iasl(1) to confirm it fails gracefully when given bad AML code to compile
|
||||||
|
# Author: Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2015 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
#. /usr/bin/rhts-environment.sh
|
||||||
|
#. /usr/share/beakerlib/beakerlib.sh
|
||||||
|
TESTNAME=$(basename $TEST)
|
||||||
|
. ../include/include.sh
|
||||||
|
|
||||||
|
|
||||||
|
PACKAGE="acpica-tools"
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
rlAssertRpm $PACKAGE
|
||||||
|
rlRun mk_test_dirs
|
||||||
|
rlRun acpica-tools_prep
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest
|
||||||
|
rlShowRunningKernel
|
||||||
|
pushd ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests
|
||||||
|
rlRun "./run-misc-tests.sh /usr/bin $RPM_VER > $log_dir/run-misc-tests.sh.out 2>&1" 0 "Running ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/run-misc-tests.sh...."
|
||||||
|
retval=$?
|
||||||
|
if [[ $retval -ne 0 || $DeBug -ne 0 ]] ; then
|
||||||
|
cp misc/badcode misc/badcode.asl.result misc/grammar misc/grammar.asl.result $log_dir
|
||||||
|
diff $log_dir/badcode $log_dir/badcode.asl.result > $log_dir/badcode.diff
|
||||||
|
diff $log_dir/grammar $log_dir/grammar.asl.result > $log_dir/grammar.diff
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
submit_logs
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
56
tests/acpica-tools-tests/templates/Makefile
Normal file
56
tests/acpica-tools-tests/templates/Makefile
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/acpica-tools/acpica-tools-tests/templates
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Author, maintainer and description of the test
|
||||||
|
AUTHOR=Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
DESCRIPTION=Create, comple, then disassemble various ASL templates to confirm proper operation of iasl(1)
|
||||||
|
PACKAGE=acpica-tools
|
||||||
|
|
||||||
|
# The name of the test.
|
||||||
|
export TEST=/CoreOS/acpica-tools/acpica-tools-tests/templates
|
||||||
|
|
||||||
|
# Version of the test. Used with make tag.
|
||||||
|
export TESTVERSION=1.0
|
||||||
|
|
||||||
|
|
||||||
|
# data files, .c files, scripts anything needed to either compile the test and/or run it.
|
||||||
|
FILES=$(METADATA) runtest.sh PURPOSE Makefile
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
./runtest.sh
|
||||||
|
|
||||||
|
build: $(BUILT_FILES) $(FILES)
|
||||||
|
chmod a+x ./runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ *.rpm
|
||||||
|
rm -f $(METADATA)
|
||||||
|
|
||||||
|
# Include Common Makefile
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
# Generate the testinfo.desc here:
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@touch $(METADATA)
|
||||||
|
@echo "Owner: $(AUTHOR)" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Description: $(DESCRIPTION)" >> $(METADATA)
|
||||||
|
@echo "TestTime: 12m" >> $(METADATA)
|
||||||
|
@echo "RunFor: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Architectures: aarch64 i386 x86_64 ppc64 ppc64le" >> $(METADATA)
|
||||||
|
@echo "Type: Regression" >> $(METADATA)
|
||||||
|
@echo "RhtsRequires: test(/CoreOS/acpica-tools/acpica-tools-tests/include)" >> $(METADATA)
|
||||||
|
@echo "Requires: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Requires: @developer-tools" >> $(METADATA)
|
||||||
|
@echo "Requires: gcc" >> $(METADATA)
|
||||||
|
@echo "Requires: rpm-build" >> $(METADATA)
|
||||||
|
@echo "Requires: wget" >> $(METADATA)
|
||||||
|
rhts-lint $(METADATA)
|
||||||
|
# The include package takes care of all the dependencies
|
||||||
|
# Add any other dependencies there (/kernel/filesystems/xfs/include)
|
2
tests/acpica-tools-tests/templates/PURPOSE
Normal file
2
tests/acpica-tools-tests/templates/PURPOSE
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Create, comple, then disassemble various ASL templates to confirm proper operation of iasl(1)
|
||||||
|
|
59
tests/acpica-tools-tests/templates/runtest.sh
Executable file
59
tests/acpica-tools-tests/templates/runtest.sh
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/acpica-tools/acpica-tools-tests/templates
|
||||||
|
# Description: Create, comple, then disassemble various ASL templates to confirm proper operation of iasl(1)
|
||||||
|
# Author: Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2015 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
#. /usr/bin/rhts-environment.sh
|
||||||
|
#. /usr/share/beakerlib/beakerlib.sh
|
||||||
|
TESTNAME=$(basename $TEST)
|
||||||
|
. ../include/include.sh
|
||||||
|
|
||||||
|
|
||||||
|
PACKAGE="acpica-tools"
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
rlAssertRpm $PACKAGE
|
||||||
|
rlRun mk_test_dirs
|
||||||
|
rlRun acpica-tools_prep
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest
|
||||||
|
rlShowRunningKernel
|
||||||
|
rlRun "make -C ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/templates > $log_dir/templates.out 2>&1" 0 "Running ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/templates/ test case....logging to $log_dir/templates.out"
|
||||||
|
retval=$?
|
||||||
|
if [[ $retval -ne 0 || $DeBug -ne 0 ]] ; then
|
||||||
|
echo "Creating tarball: ${log_dir}/templates_run_log.tar.xz of ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/templates"
|
||||||
|
tar -Jcf ${log_dir}/templates_run_log.tar.xz ${RPMBUILDDIR}/BUILD/acpica-unix2-${RPM_VER}/tests/templates
|
||||||
|
fi
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
submit_logs
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
3
tests/acpidump/PURPOSE
Normal file
3
tests/acpidump/PURPOSE
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PURPOSE of tests/acpidump
|
||||||
|
Description: sanity check that system ACPI tables can be read
|
||||||
|
Author: Al Stone <ahs3@redhat.com>
|
30
tests/acpidump/runtest.sh
Executable file
30
tests/acpidump/runtest.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# simple script to run acpidump and verify we got
|
||||||
|
# some output.
|
||||||
|
#
|
||||||
|
|
||||||
|
PWD=$(pwd)
|
||||||
|
BINDIR="/usr/bin"
|
||||||
|
|
||||||
|
# see if acpidump runs
|
||||||
|
rm -f /tmp/acpi.tables
|
||||||
|
$BINDIR/acpidump -o /tmp/acpi.tables 2>&1
|
||||||
|
RET=$?
|
||||||
|
if [ $RET -ne 0 ]
|
||||||
|
then
|
||||||
|
echo FAIL acpidump
|
||||||
|
exit $RET
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=2
|
||||||
|
sz=$(ls -s /tmp/acpi.tables | cut -d' ' -f1)
|
||||||
|
[[ $sz -gt 0 ]] && RET=0
|
||||||
|
if [ $RET -ne 0 ]
|
||||||
|
then
|
||||||
|
echo FAIL acpidump
|
||||||
|
exit $RET
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo PASS acpidump
|
||||||
|
exit $RET
|
3
tests/acpixtract/PURPOSE
Normal file
3
tests/acpixtract/PURPOSE
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PURPOSE of tests/acpixtract
|
||||||
|
Description: sanity check that ACPI tables created by acpidump can be read
|
||||||
|
Author: Al Stone <ahs3@redhat.com>
|
39
tests/acpixtract/runtest.sh
Executable file
39
tests/acpixtract/runtest.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# simple script to run acpixtract and verify we got
|
||||||
|
# some output.
|
||||||
|
#
|
||||||
|
|
||||||
|
PWD=$(pwd)
|
||||||
|
BINDIR="/usr/bin"
|
||||||
|
|
||||||
|
# see if acpidump runs
|
||||||
|
rm -f /tmp/acpi.tables
|
||||||
|
$BINDIR/acpidump -o /tmp/acpi.tables 2>&1
|
||||||
|
RET=$?
|
||||||
|
if [ $RET -ne 0 ]
|
||||||
|
then
|
||||||
|
echo FAIL acpixtract-dump
|
||||||
|
exit $RET
|
||||||
|
fi
|
||||||
|
|
||||||
|
RET=2
|
||||||
|
sz=$(ls -s /tmp/acpi.tables | cut -d' ' -f1)
|
||||||
|
[[ $sz -gt 0 ]] && RET=0
|
||||||
|
if [ $RET -ne 0 ]
|
||||||
|
then
|
||||||
|
echo FAIL acpixtract-size
|
||||||
|
exit $RET
|
||||||
|
fi
|
||||||
|
|
||||||
|
# see if acpixtract runs
|
||||||
|
$BINDIR/acpixtract -a /tmp/acpi.tables 2>&1
|
||||||
|
RET=$?
|
||||||
|
if [ $RET -ne 0 ]
|
||||||
|
then
|
||||||
|
echo FAIL acpixtract-read
|
||||||
|
exit $RET
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo PASS acpixtract
|
||||||
|
exit $RET
|
3
tests/badcode/.gitignore
vendored
Normal file
3
tests/badcode/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
badcode.aml
|
||||||
|
badcode.asl.actual
|
||||||
|
badcode.asl.expected
|
3
tests/badcode/PURPOSE
Normal file
3
tests/badcode/PURPOSE
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PURPOSE of tests/badcode
|
||||||
|
Description: sanity check that iasl is handling bad ASL properly
|
||||||
|
Author: Al Stone <ahs3@redhat.com>
|
406
tests/badcode/badcode.asl
Normal file
406
tests/badcode/badcode.asl
Normal file
@ -0,0 +1,406 @@
|
|||||||
|
/*
|
||||||
|
* badcode.asl
|
||||||
|
*
|
||||||
|
* This file contains examples of the extended error checking and
|
||||||
|
* typechecking capabilities of the iASL compiler. Other ASL compilers
|
||||||
|
* may ignore these errors completely. Note - this is not an exhaustive
|
||||||
|
* list of errors detected by iASL, it shows many of the errors that
|
||||||
|
* are not detected by other ASL compilers.
|
||||||
|
*
|
||||||
|
* To compile, use:
|
||||||
|
* iasl badcode.asl
|
||||||
|
*
|
||||||
|
* Output:
|
||||||
|
* Compilation complete. 45 Errors, 22 Warnings, 3 Remarks, 16 Optimizations
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
DefinitionBlock ("badcode.aml", "DSDT", 1, "Intel", "Example", 0x00000001)
|
||||||
|
{
|
||||||
|
Name (INT1, 0)
|
||||||
|
Name (BUF1, Buffer() {0,1,2,3})
|
||||||
|
Event (EVT1)
|
||||||
|
|
||||||
|
// Invalid SyncLevel in Mutex declaration
|
||||||
|
|
||||||
|
Mutex (MTX1, 32)
|
||||||
|
|
||||||
|
// Integer beyond the table integer size (32 bits)
|
||||||
|
|
||||||
|
Name (BIG, 0x1234567887654321)
|
||||||
|
|
||||||
|
// CPackage length does not match initializer list length
|
||||||
|
|
||||||
|
Name (PKG1, Package(5) {0,1})
|
||||||
|
|
||||||
|
// Inadvertent use of single backslash in a string
|
||||||
|
|
||||||
|
Name (PATH, Buffer() {"\_SB_.PCI2._CRS"})
|
||||||
|
|
||||||
|
// Invalid hex escape sequence
|
||||||
|
|
||||||
|
Name (ESC1, "abcdefg\x00hijklmn")
|
||||||
|
|
||||||
|
// Field access beyond region bounds
|
||||||
|
|
||||||
|
OperationRegion (OPR1, SystemMemory, 0x2000, 6)
|
||||||
|
Field (OPR1, DWordAcc, NoLock, Preserve)
|
||||||
|
{
|
||||||
|
Offset (4),
|
||||||
|
FLD1, 8
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some address spaces support only ByteAcc or BufferAcc
|
||||||
|
|
||||||
|
OperationRegion (OPR2, EmbeddedControl, 0x4000, 8)
|
||||||
|
Field (OPR2, DWordAcc, NoLock, Preserve)
|
||||||
|
{
|
||||||
|
FLD2, 8
|
||||||
|
}
|
||||||
|
OperationRegion (OPR3, SMBus, 0x8000, 16)
|
||||||
|
Field (OPR3, WordAcc, NoLock, Preserve)
|
||||||
|
{
|
||||||
|
FLD3, 8
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invalid SyncLevel in method declaration
|
||||||
|
|
||||||
|
Method (MTH1, 0, NotSerialized, 32)
|
||||||
|
{
|
||||||
|
// Invalid arguments and uninitialized locals
|
||||||
|
|
||||||
|
Store (Arg3, Local0)
|
||||||
|
Store (Local1, Local2)
|
||||||
|
|
||||||
|
// Parameter typechecking (MTX1 is invalid type)
|
||||||
|
|
||||||
|
Subtract (MTX1, 4, Local3)
|
||||||
|
|
||||||
|
// Various invalid parameters
|
||||||
|
|
||||||
|
CreateField (BUF1, 0, Subtract (4, 4), FLD1)
|
||||||
|
|
||||||
|
// Unchecked mutex and event timeouts
|
||||||
|
|
||||||
|
Acquire (MTX1, 100)
|
||||||
|
Wait (EVT1, 1)
|
||||||
|
|
||||||
|
// Result from operation is not used - statement has no effect
|
||||||
|
|
||||||
|
Add (INT1, 8)
|
||||||
|
|
||||||
|
// Unreachable code
|
||||||
|
|
||||||
|
Return (0)
|
||||||
|
Store (5, INT1)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (MTH2)
|
||||||
|
{
|
||||||
|
// Switch with no Case statements
|
||||||
|
|
||||||
|
Switch (ToInteger (INT1))
|
||||||
|
{
|
||||||
|
Default
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (LEqual (INT1, 0))
|
||||||
|
{
|
||||||
|
Return (INT1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallthrough exit path does not return a value
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (MTH3)
|
||||||
|
{
|
||||||
|
// Method MTH2 above does not always return a value
|
||||||
|
|
||||||
|
Store (MTH2 (), Local0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method MTH4 does not explicitly return a value
|
||||||
|
|
||||||
|
Method (MTH4) {}
|
||||||
|
Method (MTH5) {Store (MTH4(), Local0)}
|
||||||
|
|
||||||
|
// Invalid _HID values
|
||||||
|
|
||||||
|
Device (H1)
|
||||||
|
{
|
||||||
|
Name (_HID, "*PNP0C0A") // Illegal leading asterisk
|
||||||
|
}
|
||||||
|
Device (H2)
|
||||||
|
{
|
||||||
|
Name (_HID, "PNP") // Too short, must be 7 or 8 chars
|
||||||
|
}
|
||||||
|
Device (H3)
|
||||||
|
{
|
||||||
|
Name (_HID, "MYDEVICE01") // Too long, must be 7 or 8 chars
|
||||||
|
}
|
||||||
|
Device (H4)
|
||||||
|
{
|
||||||
|
Name (_HID, "acpi0001") // non-hex chars must be uppercase
|
||||||
|
}
|
||||||
|
Device (H5)
|
||||||
|
{
|
||||||
|
Name (_HID, "PNP-123") // HID must be alphanumeric
|
||||||
|
}
|
||||||
|
Device (H6)
|
||||||
|
{
|
||||||
|
Name (_HID, "") // Illegal Null HID
|
||||||
|
Name (_CID, "") // Illegal Null CID
|
||||||
|
}
|
||||||
|
|
||||||
|
// Predefined Name typechecking
|
||||||
|
|
||||||
|
Name (_PRW, 4)
|
||||||
|
Name (_FDI, Buffer () {0})
|
||||||
|
|
||||||
|
// Predefined Name argument count validation
|
||||||
|
// and return value validation
|
||||||
|
|
||||||
|
Method (_OSC, 5)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// Predefined Names that must be implemented as control methods
|
||||||
|
|
||||||
|
Name (_L01, 1)
|
||||||
|
Name (_E02, 2)
|
||||||
|
Name (_Q03, 3)
|
||||||
|
Name (_ON, 0)
|
||||||
|
Name (_INI, 1)
|
||||||
|
Name (_PTP, 2)
|
||||||
|
|
||||||
|
// GPE methods that cause type collision (L vs. E)
|
||||||
|
|
||||||
|
Scope (\_GPE)
|
||||||
|
{
|
||||||
|
Method (_L1D)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
Method (_E1D)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Predefined names that should not have a return value
|
||||||
|
|
||||||
|
Method (_FDM, 1)
|
||||||
|
{
|
||||||
|
Return (Buffer(1){0x33})
|
||||||
|
}
|
||||||
|
Method (_Q22)
|
||||||
|
{
|
||||||
|
Return ("Unexpected Return Value")
|
||||||
|
}
|
||||||
|
|
||||||
|
// _REG must have a corresponding Operation Region declaration
|
||||||
|
// within the same scope
|
||||||
|
|
||||||
|
Device (EC)
|
||||||
|
{
|
||||||
|
Method (_REG, 2)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Resource Descriptor error checking
|
||||||
|
*/
|
||||||
|
Name (RSC1, ResourceTemplate ()
|
||||||
|
{
|
||||||
|
// Illegal nested StartDependent macros
|
||||||
|
|
||||||
|
StartDependentFn (0, 0)
|
||||||
|
{
|
||||||
|
StartDependentFn (0, 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Missing EndDependentFn macro
|
||||||
|
})
|
||||||
|
|
||||||
|
Name (RSC2, ResourceTemplate ()
|
||||||
|
{
|
||||||
|
// AddressMin is larger than AddressMax
|
||||||
|
IO (Decode16,
|
||||||
|
0x07D0, // Range Minimum
|
||||||
|
0x03E8, // Range Maximum
|
||||||
|
0x01, // Alignment
|
||||||
|
0x20, // Length
|
||||||
|
)
|
||||||
|
|
||||||
|
// Length larger than Min/Max window size
|
||||||
|
Memory32 (ReadOnly,
|
||||||
|
0x00001000, // Range Minimum
|
||||||
|
0x00002000, // Range Maximum
|
||||||
|
0x00000004, // Alignment
|
||||||
|
0x00002000, // Length
|
||||||
|
)
|
||||||
|
|
||||||
|
// Min and Max not multiples of alignment value
|
||||||
|
Memory32 (ReadOnly,
|
||||||
|
0x00001001, // Range Minimum
|
||||||
|
0x00002002, // Range Maximum
|
||||||
|
0x00000004, // Alignment
|
||||||
|
0x00000200, // Length
|
||||||
|
)
|
||||||
|
|
||||||
|
// 10-bit ISA I/O address has a max of 0x3FF
|
||||||
|
FixedIO (
|
||||||
|
0xFFFF, // Address
|
||||||
|
0x20, // Length
|
||||||
|
)
|
||||||
|
|
||||||
|
// Invalid AccessSize parameter
|
||||||
|
Register (SystemIO,
|
||||||
|
0x08, // Bit Width
|
||||||
|
0x00, // Bit Offset
|
||||||
|
0x0000000000000100, // Address
|
||||||
|
0x05 // Access Size
|
||||||
|
)
|
||||||
|
|
||||||
|
// Invalid ResourceType (0xB0)
|
||||||
|
QWordSpace (0xB0, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
|
||||||
|
0x0000, // Granularity
|
||||||
|
0xA000, // Range Minimum
|
||||||
|
0xBFFF, // Range Maximum
|
||||||
|
0x0000, // Translation Offset
|
||||||
|
0x2000, // Length
|
||||||
|
,, )
|
||||||
|
|
||||||
|
// AddressMin is larger than AddressMax
|
||||||
|
WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||||
|
0x0000, // Granularity
|
||||||
|
0x0200, // Range Minimum
|
||||||
|
0x0100, // Range Maximum
|
||||||
|
0x0000, // Translation Offset
|
||||||
|
0x0100, // Length
|
||||||
|
,, , TypeStatic)
|
||||||
|
|
||||||
|
// Length larger than Min/Max window size
|
||||||
|
DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
|
||||||
|
0x00000000, // Granularity
|
||||||
|
0x000C8000, // Range Minimum
|
||||||
|
0x000C9000, // Range Maximum
|
||||||
|
0x00000000, // Translation Offset
|
||||||
|
0x00001002, // Length
|
||||||
|
,, )
|
||||||
|
|
||||||
|
// Granularity must be (power-of-two -1)
|
||||||
|
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxNotFixed, NonCacheable, ReadWrite,
|
||||||
|
0x00000010,
|
||||||
|
0x40000000,
|
||||||
|
0xFED9FFFF,
|
||||||
|
0x00000000,
|
||||||
|
0xBECA0000)
|
||||||
|
|
||||||
|
// Address Min (with zero length) not on granularity boundary
|
||||||
|
QWordIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, EntireRange,
|
||||||
|
0x0000000000000003, // Granularity
|
||||||
|
0x0000000000000B02, // Range Minimum
|
||||||
|
0x0000000000000C00, // Range Maximum
|
||||||
|
0x0000000000000000, // Translation Offset
|
||||||
|
0x0000000000000000, // Length
|
||||||
|
,, , TypeStatic)
|
||||||
|
|
||||||
|
// Address Max (with zero length) not on (granularity boundary -1)
|
||||||
|
QWordMemory (ResourceProducer, PosDecode, MinNotFixed, MaxFixed, Cacheable, ReadWrite,
|
||||||
|
0x0000000000000001, // Granularity
|
||||||
|
0x0000000000100000, // Range Minimum
|
||||||
|
0x00000000002FFFFE, // Range Maximum
|
||||||
|
0x0000000000000000, // Translation Offset
|
||||||
|
0x0000000000000000, // Length
|
||||||
|
,, , AddressRangeMemory, TypeStatic)
|
||||||
|
|
||||||
|
// Invalid combination: zero length, both Min and Max are fixed
|
||||||
|
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||||
|
0x00000000, // Granularity
|
||||||
|
0x000C8000, // Range Minimum
|
||||||
|
0x000C8FFF, // Range Maximum
|
||||||
|
0x00000000, // Translation Offset
|
||||||
|
0x00000000, // Length
|
||||||
|
,, )
|
||||||
|
|
||||||
|
// Invalid combination: non-zero length, Min Fixed, Max not fixed
|
||||||
|
DWordIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, EntireRange,
|
||||||
|
0x00000001, // Granularity
|
||||||
|
0x000C8000, // Range Minimum
|
||||||
|
0x000C8FFF, // Range Maximum
|
||||||
|
0x00000000, // Translation Offset
|
||||||
|
0x00000100, // Length
|
||||||
|
,, )
|
||||||
|
|
||||||
|
// Invalid combination: non-zero length, Min not Fixed, Max fixed
|
||||||
|
DWordIO (ResourceProducer, MinNotFixed, MaxFixed, PosDecode, EntireRange,
|
||||||
|
0x00000001, // Granularity
|
||||||
|
0x000C8000, // Range Minimum
|
||||||
|
0x000C8FFF, // Range Maximum
|
||||||
|
0x00000000, // Translation Offset
|
||||||
|
0x00000200, // Length
|
||||||
|
,, )
|
||||||
|
|
||||||
|
// Granularity must be zero if non-zero length, min/max fixed
|
||||||
|
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||||
|
0x0000000F, // Granularity
|
||||||
|
0x000C8000, // Range Minimum
|
||||||
|
0x000C8FFF, // Range Maximum
|
||||||
|
0x00000000, // Translation Offset
|
||||||
|
0x00001000, // Length
|
||||||
|
,, )
|
||||||
|
|
||||||
|
// Null descriptor (intended to be modified at runtime) must
|
||||||
|
// have a resource tag (to allow it to be modified at runtime)
|
||||||
|
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||||
|
0x00000000, // Granularity
|
||||||
|
0x00000000, // Range Minimum
|
||||||
|
0x00000000, // Range Maximum
|
||||||
|
0x00000000, // Translation Offset
|
||||||
|
0x00000000, // Length
|
||||||
|
,, )
|
||||||
|
|
||||||
|
// Missing StartDependentFn macro
|
||||||
|
|
||||||
|
EndDependentFn ()
|
||||||
|
})
|
||||||
|
|
||||||
|
// Test descriptor for CreateXxxxField operators in REM1 below
|
||||||
|
|
||||||
|
Name (RSC3, ResourceTemplate ()
|
||||||
|
{
|
||||||
|
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
|
||||||
|
0x00000000, // Granularity
|
||||||
|
0x000C8000, // Range Minimum
|
||||||
|
0x000C8FFF, // Range Maximum
|
||||||
|
0x00000000, // Translation Offset
|
||||||
|
0x00001000, // Length
|
||||||
|
,, DWI1)
|
||||||
|
})
|
||||||
|
|
||||||
|
Method (REM1)
|
||||||
|
{
|
||||||
|
// Tagged resource field larger than field being created
|
||||||
|
|
||||||
|
CreateWordField (RSC3, \DWI1._LEN, LEN)
|
||||||
|
CreateByteField (RSC3, \DWI1._MIN, MIN)
|
||||||
|
CreateBitField (RSC3, \DWI1._RNG, RNG1)
|
||||||
|
|
||||||
|
// Tagged resource field smaller than field being created
|
||||||
|
|
||||||
|
CreateQWordField (RSC3, \DWI1._MAX, MAX)
|
||||||
|
CreateBitField (RSC3, \DWI1._GRA, GRA)
|
||||||
|
CreateField (RSC3, \DWI1._MIF, 5, MIF)
|
||||||
|
CreateField (RSC3, \DWI1._RNG, 3, RNG2)
|
||||||
|
}
|
||||||
|
|
||||||
|
Method (L100)
|
||||||
|
{
|
||||||
|
/* Method Local is set but never used */
|
||||||
|
|
||||||
|
Store (40, Local0)
|
||||||
|
}
|
||||||
|
}
|
266
tests/badcode/badcode.asl.result
Normal file
266
tests/badcode/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
|
35
tests/badcode/runtest.sh
Executable file
35
tests/badcode/runtest.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# run the misc tests: we need to do this in a script since
|
||||||
|
# these are expected to fail which would normally cause %check
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
PWD=$(pwd)
|
||||||
|
BINDIR="/usr/bin"
|
||||||
|
VERSION=$($BINDIR/iasl -v | grep Optimizing | cut -d" " -f5)
|
||||||
|
|
||||||
|
# create file to compare against
|
||||||
|
pushd ./badcode > /dev/null
|
||||||
|
sed -e "s/VVVVVVVV/$VERSION/" \
|
||||||
|
badcode.asl.result > badcode.asl.expected
|
||||||
|
|
||||||
|
# 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 > badcode.asl.actual 2>&1
|
||||||
|
diff badcode.asl.actual badcode.asl.expected >/dev/null 2>&1
|
||||||
|
RET=$?
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
if [ $RET -eq 0 ]
|
||||||
|
then
|
||||||
|
echo PASS badcode
|
||||||
|
else
|
||||||
|
echo FAIL badcode
|
||||||
|
fi
|
||||||
|
exit $RET
|
3
tests/converterSample/.gitignore
vendored
Normal file
3
tests/converterSample/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
converterSample.aml
|
||||||
|
converterSample.asl.actual
|
||||||
|
converterSample.asl.expected
|
3
tests/converterSample/PURPOSE
Normal file
3
tests/converterSample/PURPOSE
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PURPOSE of tests/converterSample
|
||||||
|
Description: sanity check that iasl is handling ASL converters properly
|
||||||
|
Author: Al Stone <ahs3@redhat.com>
|
83
tests/converterSample/converterSample.asl
Normal file
83
tests/converterSample/converterSample.asl
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
* top of the
|
||||||
|
* definition block
|
||||||
|
*/
|
||||||
|
DefinitionBlock(
|
||||||
|
"converterSample.aml", /* These comments */
|
||||||
|
"DSDT", /* within the */
|
||||||
|
0x02, /* definition block header */
|
||||||
|
"Intel", /* are not retained. */
|
||||||
|
"Many", /* They will be */
|
||||||
|
0x00000001 /* Discarded */)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* first comment of named object b */
|
||||||
|
Name (b, 5)
|
||||||
|
Name(p008, Package()
|
||||||
|
{
|
||||||
|
0, 0,
|
||||||
|
0, 0xffffffff,
|
||||||
|
0x00012345, 0x00007abc,
|
||||||
|
0x00000012, 0x00000034,
|
||||||
|
0x00000001, 0x000000ff,
|
||||||
|
0x00000001, 0x0000ffff,
|
||||||
|
0x00000001, 0xffffffff,
|
||||||
|
|
||||||
|
// bit-size of multiplicand
|
||||||
|
0x67812345, 2,
|
||||||
|
|
||||||
|
// bit-size of multiplier
|
||||||
|
3, 0x45678123,
|
||||||
|
|
||||||
|
0xffffffff, 0xffffffff,
|
||||||
|
|
||||||
|
// ACPI: Overflow conditions are ignored and results are undefined.
|
||||||
|
})
|
||||||
|
|
||||||
|
Method(MAIN) {
|
||||||
|
/**********************************************************************
|
||||||
|
* *
|
||||||
|
* This is a long *
|
||||||
|
* multi-line *
|
||||||
|
* comment *
|
||||||
|
* *
|
||||||
|
**********************************************************************/
|
||||||
|
//c12
|
||||||
|
if(1==1)//c13
|
||||||
|
{ //c14
|
||||||
|
Name(b,0);
|
||||||
|
} //c15
|
||||||
|
}
|
||||||
|
|
||||||
|
//c16
|
||||||
|
Name (a,
|
||||||
|
Package(3)
|
||||||
|
{/*c20*/
|
||||||
|
0x04, /*c21*/
|
||||||
|
/*c22*/
|
||||||
|
0x05, /*c23*/
|
||||||
|
0x06 /*c24*/
|
||||||
|
}/*c25*/
|
||||||
|
)/*c26*/
|
||||||
|
|
||||||
|
|
||||||
|
//c34
|
||||||
|
Method(SCOP)
|
||||||
|
{
|
||||||
|
//c35
|
||||||
|
Name (a1, 0x04)
|
||||||
|
}
|
||||||
|
|
||||||
|
OperationRegion(GNVS,SystemMemory,0xFFFF0000,0xAA55)
|
||||||
|
|
||||||
|
Field(GNVS,AnyAcc,Lock,Preserve)
|
||||||
|
{
|
||||||
|
//c36
|
||||||
|
Offset(0),//c37
|
||||||
|
OSYS, 8//c38
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} //c39
|
||||||
|
/*ending
|
||||||
|
comment*/
|
24
tests/converterSample/converterSample.asl.result
Normal file
24
tests/converterSample/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
|
34
tests/converterSample/runtest.sh
Executable file
34
tests/converterSample/runtest.sh
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# run the misc tests: we need to do this in a script since
|
||||||
|
# these are expected to fail which would normally cause %check
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
PWD=$(pwd)
|
||||||
|
BINDIR="/usr/bin"
|
||||||
|
VERSION=$($BINDIR/iasl -v | grep Optimizing | cut -d" " -f5)
|
||||||
|
|
||||||
|
# create file to compare against
|
||||||
|
pushd ./converterSample > /dev/null
|
||||||
|
sed -e "s/VVVVVVVV/$VERSION/" \
|
||||||
|
converterSample.asl.result > converterSample.asl.expected
|
||||||
|
|
||||||
|
# see if converterSample.asl compiles as expected
|
||||||
|
$BINDIR/iasl converterSample.asl > converterSample.asl.actual 2>&1
|
||||||
|
diff converterSample.asl.actual converterSample.asl.expected >/dev/null 2>&1
|
||||||
|
RET=$?
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
if [ $RET -eq 0 ]
|
||||||
|
then
|
||||||
|
echo PASS converterSample
|
||||||
|
else
|
||||||
|
echo FAIL converterSample
|
||||||
|
fi
|
||||||
|
exit $RET
|
52
tests/dump-tables/Makefile
Normal file
52
tests/dump-tables/Makefile
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Makefile of /CoreOS/acpica-tools/dump-tables
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Author, maintainer and description of the test
|
||||||
|
AUTHOR=Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
DESCRIPTION=Uses the utilities in acpica-tools to dump the ACPI tables on a system and upload to Beaker.
|
||||||
|
PACKAGE=acpica-tools
|
||||||
|
|
||||||
|
# The name of the test.
|
||||||
|
export TEST=/CoreOS/acpica-tools/dump-tables
|
||||||
|
|
||||||
|
# Version of the test. Used with make tag.
|
||||||
|
export TESTVERSION=2.0
|
||||||
|
|
||||||
|
|
||||||
|
# data files, .c files, scripts anything needed to either compile the test and/or run it.
|
||||||
|
FILES=$(METADATA) runtest.sh PURPOSE Makefile
|
||||||
|
|
||||||
|
run: $(FILES) build
|
||||||
|
./runtest.sh
|
||||||
|
|
||||||
|
build: $(BUILT_FILES) $(FILES)
|
||||||
|
chmod a+x ./runtest.sh
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ *.rpm
|
||||||
|
rm -f $(METADATA)
|
||||||
|
rm -rf /mnt/testarea/dump-tables
|
||||||
|
|
||||||
|
# Include Common Makefile
|
||||||
|
include /usr/share/rhts/lib/rhts-make.include
|
||||||
|
|
||||||
|
# Generate the testinfo.desc here:
|
||||||
|
$(METADATA): Makefile
|
||||||
|
@touch $(METADATA)
|
||||||
|
@echo "Owner: $(AUTHOR)" > $(METADATA)
|
||||||
|
@echo "Name: $(TEST)" >> $(METADATA)
|
||||||
|
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||||
|
@echo "License: GPLv2" >> $(METADATA)
|
||||||
|
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||||
|
@echo "Description: $(DESCRIPTION)" >> $(METADATA)
|
||||||
|
@echo "TestTime: 12m" >> $(METADATA)
|
||||||
|
@echo "RunFor: $(PACKAGE)" >> $(METADATA)
|
||||||
|
@echo "Architectures: aarch64 i386 x86_64 ppc64 ppc64le" >> $(METADATA)
|
||||||
|
@echo "Type: Functional" >> $(METADATA)
|
||||||
|
@echo "Requires: $(PACKAGE)" >> $(METADATA)
|
||||||
|
rhts-lint $(METADATA)
|
||||||
|
# The include package takes care of all the dependencies
|
||||||
|
# Add any other dependencies there (/kernel/filesystems/xfs/include)
|
13
tests/dump-tables/PURPOSE
Normal file
13
tests/dump-tables/PURPOSE
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Uses the utilities in acpica-tools to dump the ACPI tables on a system and upload to Beaker.
|
||||||
|
The task will do the following:
|
||||||
|
- Capture the acpi tables currently in use by the running kernel in binary format (acpidump-acpica -b)
|
||||||
|
- Capture namespace information from the DSDT (acpinames dsdt.dat)
|
||||||
|
- Capture the acpi tables currently in use by the running kernel hexidecmal encoded (acpidump-acpica -o somefile.hex)
|
||||||
|
- Decompile the table files from the binary tables and store the resulting source code (iasl -d on each .dat file)
|
||||||
|
- Archive all of the above and send to Beaker.
|
||||||
|
|
||||||
|
Paramaters:
|
||||||
|
ACPIDUMP_BIN - Set to path/to/alternate-acpidump-binary to use a different acpidump tool from what acpica-tools provides,
|
||||||
|
set to "_sys_firmware" to bypass use of acpidump completely and dump from /sys/firmware/acpi/tables/ instead
|
||||||
|
|
||||||
|
note: using the acpidump binary is not supported on all platforms
|
90
tests/dump-tables/runtest.sh
Executable file
90
tests/dump-tables/runtest.sh
Executable file
@ -0,0 +1,90 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# runtest.sh of /CoreOS/acpica-tools/dump-tables
|
||||||
|
# Description: Uses the utilities in acpica-tools to dump the ACPI tables on a system and upload to Beaker.
|
||||||
|
# Author: Mike Gahagan <mgahagan@redhat.com>
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
#
|
||||||
|
# Copyright (c) 2017 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing
|
||||||
|
# to use, modify, copy, or redistribute it subject to the terms
|
||||||
|
# and conditions of the GNU General Public License version 2.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
. /usr/bin/rhts-environment.sh
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh
|
||||||
|
TESTNAME=$(basename $TEST)
|
||||||
|
OUTPUTDIR=/mnt/testarea/$TESTNAME
|
||||||
|
log_dir=$OUTPUTDIR/logs
|
||||||
|
# RHEL uses /usr/bin/acpidump-acpica, Fedora uses /usr/bin/acpidump
|
||||||
|
#ACPIDUMP_BIN="${ACPIDUMP_BIN:-acpidump-acpica}"
|
||||||
|
ACPIDUMP_BIN="${ACPIDUMP_BIN:-acpidump}"
|
||||||
|
PACKAGE="acpica-tools"
|
||||||
|
|
||||||
|
rlJournalStart
|
||||||
|
rlPhaseStartSetup
|
||||||
|
rlAssertRpm $PACKAGE
|
||||||
|
[ $? -eq 0 ] || rlDie "$PACKAGE must be installed!... aborting.."
|
||||||
|
rlGetDistroRelease
|
||||||
|
rlGetDistroVariant
|
||||||
|
rlShowRunningKernel
|
||||||
|
rlGetPrimaryArch
|
||||||
|
rlGetSecondaryArch
|
||||||
|
rlRun "mkdir -p $OUTPUTDIR/{bin,logs,asl,hex}" 0 "Making output directories"
|
||||||
|
[ $? -eq 0 ] || rlDie "Cannot make output directories!... aborting.."
|
||||||
|
rlLog "Using acpidump binary: $ACPIDUMP_BIN"
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartTest
|
||||||
|
pushd $OUTPUTDIR/bin
|
||||||
|
if [[ $ACPIDUMP_BIN = "_sys_firmware" ]] ; then
|
||||||
|
rlLog "Dumping tables from /sys/firmware/acpi/tables..."
|
||||||
|
find /sys/firmware/acpi/tables/ -type f | while read f ; do
|
||||||
|
name="$(basename $f | tr '[[:upper:]]' '[[:lower:]]').dat"
|
||||||
|
cat $f > $name
|
||||||
|
done
|
||||||
|
else
|
||||||
|
rlRun "$ACPIDUMP_BIN -bz" 0 "Dumping binary ACPI info..."
|
||||||
|
fi
|
||||||
|
rlRun "acpinames dsdt.dat > ../logs/DSDT-ACPI-namespace.out 2>&1" 0 "Extracting namespace information from DSDT"
|
||||||
|
rlLog "Decompiling binary files"
|
||||||
|
for f in $(ls *.dat) ; do
|
||||||
|
rlRun "iasl -d $f" 0 "Decompiling $f"
|
||||||
|
done
|
||||||
|
rlRun "mv *.dsl ../asl" 0 "Moving source files to $OUTPUTDIR/asl"
|
||||||
|
popd
|
||||||
|
if [[ $ACPIDUMP_BIN != "_sys_firmware" ]]; then
|
||||||
|
rlRun "$ACPIDUMP_BIN -o $OUTPUTDIR/hex/$HOSTNAME-ACPI-TABLE.hex" 0 "Dumping hex-encoded ACPI info"
|
||||||
|
fi
|
||||||
|
rlPhaseEnd
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun "tar -Jcf $log_dir/$HOSTNAME-ACPI-TABLE-AML.tar.xz $OUTPUTDIR/bin" 0 "Archiving aml files..."
|
||||||
|
rlRun "tar -Jcf $log_dir/$HOSTNAME-ACPI-TABLE-ASL.tar.xz $OUTPUTDIR/asl" 0 "Archiving asl files..."
|
||||||
|
if [ -f $OUTPUTDIR/hex/$HOSTNAME-ACPI-TABLE.hex ]; then
|
||||||
|
rlRun "cp $OUTPUTDIR/hex/$HOSTNAME-ACPI-TABLE.hex $log_dir" 0 "Copying hex-encoded ACPI info to log directory"
|
||||||
|
fi
|
||||||
|
for f in $log_dir/*; do
|
||||||
|
if [ -f $f ] ; then
|
||||||
|
rlFileSubmit $f
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
3
tests/grammar/.gitignore
vendored
Normal file
3
tests/grammar/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
grammar.aml
|
||||||
|
grammar.asl.actual
|
||||||
|
grammar.asl.expected
|
3
tests/grammar/PURPOSE
Normal file
3
tests/grammar/PURPOSE
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PURPOSE of tests/grammar
|
||||||
|
Description: sanity check that iasl is handling ASL grammar properly
|
||||||
|
Author: Al Stone <ahs3@redhat.com>
|
10282
tests/grammar/grammar.asl
Normal file
10282
tests/grammar/grammar.asl
Normal file
File diff suppressed because it is too large
Load Diff
381
tests/grammar/grammar.asl.result
Normal file
381
tests/grammar/grammar.asl.result
Normal file
@ -0,0 +1,381 @@
|
|||||||
|
ACPI Warning: NsLookup: Type mismatch on GIDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on IDX2 (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on INDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on AIDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on C05D (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on INDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on IND2 (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
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 - 323650 bytes 4818 keywords 10284 source lines
|
||||||
|
AML Output: grammar.aml - 43469 bytes 4148 opcodes 670 named objects
|
||||||
|
|
||||||
|
Compilation successful. 6 Errors, 88 Warnings, 27 Remarks, 1232 Optimizations, 75 Constants Folded
|
35
tests/grammar/runtest.sh
Executable file
35
tests/grammar/runtest.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# run the misc tests: we need to do this in a script since
|
||||||
|
# these are expected to fail which would normally cause %check
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
PWD=$(pwd)
|
||||||
|
BINDIR="/usr/bin"
|
||||||
|
VERSION=$($BINDIR/iasl -v | grep Optimizing | cut -d" " -f5)
|
||||||
|
|
||||||
|
# create file to compare against
|
||||||
|
pushd ./grammar > /dev/null
|
||||||
|
sed -e "s/VVVVVVVV/$VERSION/" \
|
||||||
|
grammar.asl.result > grammar.asl.expected
|
||||||
|
|
||||||
|
# see if grammar.asl failed as expected
|
||||||
|
# NB: the -f option is required so we can see all of the errors
|
||||||
|
$BINDIR/iasl -f grammar.asl > grammar.asl.actual 2>&1
|
||||||
|
diff grammar.asl.actual grammar.asl.expected >/dev/null 2>&1
|
||||||
|
RET=$?
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
if [ $RET -eq 0 ]
|
||||||
|
then
|
||||||
|
echo PASS grammar
|
||||||
|
else
|
||||||
|
echo FAIL grammar
|
||||||
|
fi
|
||||||
|
exit $RET
|
3
tests/grammar2/.gitignore
vendored
Normal file
3
tests/grammar2/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
grammar2.aml
|
||||||
|
grammar2.asl.actual
|
||||||
|
grammar2.asl.expected
|
3
tests/grammar2/PURPOSE
Normal file
3
tests/grammar2/PURPOSE
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
PURPOSE of tests/grammar
|
||||||
|
Description: sanity check that iasl is handling ASL grammar properly
|
||||||
|
Author: Al Stone <ahs3@redhat.com>
|
11652
tests/grammar2/grammar2.asl
Executable file
11652
tests/grammar2/grammar2.asl
Executable file
File diff suppressed because it is too large
Load Diff
375
tests/grammar2/grammar2.asl.result
Normal file
375
tests/grammar2/grammar2.asl.result
Normal file
@ -0,0 +1,375 @@
|
|||||||
|
ACPI Warning: NsLookup: Type mismatch on GIDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on IDX2 (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on INDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on AIDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on C05D (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on INDX (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
ACPI Warning: NsLookup: Type mismatch on IND2 (RegionField), searching for (Region) (20190509/nsaccess-728)
|
||||||
|
grammar2.asl 106: Device (A1)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 121: Device (A2)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 131: Device (A3)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 141: Device (A4)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 156: Device (IRES)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 184: Name (_NPK, Package (0x04)
|
||||||
|
Warning 3133 - ^ Unknown reserved name (_NPK)
|
||||||
|
|
||||||
|
grammar2.asl 191: Device (RES)
|
||||||
|
Warning 3141 - ^ Missing dependency (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 437: CreateByteField (PRT0, \RES._CRS._Y01._ASZ, RSIZ) // _ASZ: Access Size
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [RSIZ] is within a method [_CRS])
|
||||||
|
|
||||||
|
grammar2.asl 579: Name (_STR, Unicode ("test")) // _STR: Description String
|
||||||
|
Remark 2089 - ^ Object is not referenced (Name [_STR] is within a method [TCOP])
|
||||||
|
|
||||||
|
grammar2.asl 581: Local0 = MFLD /* \MFLD */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 706: Method (RCIV, 1, NotSerialized)
|
||||||
|
Warning 3115 - ^ Not all control paths return a value (RCIV)
|
||||||
|
|
||||||
|
grammar2.asl 714: RCIV ((Arg0 - 0x01))
|
||||||
|
Remark 2098 - ^ Recursive method call (RCIV)
|
||||||
|
|
||||||
|
grammar2.asl 758: Method (SMWE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||||
|
|
||||||
|
grammar2.asl 758: Method (SMWE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||||
|
|
||||||
|
grammar2.asl 758: Method (SMWE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg2)
|
||||||
|
|
||||||
|
grammar2.asl 758: Method (SMWE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg3)
|
||||||
|
|
||||||
|
grammar2.asl 763: Method (SMRE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||||
|
|
||||||
|
grammar2.asl 763: Method (SMRE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||||
|
|
||||||
|
grammar2.asl 763: Method (SMRE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg2)
|
||||||
|
|
||||||
|
grammar2.asl 763: Method (SMRE, 4, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg3)
|
||||||
|
|
||||||
|
grammar2.asl 788: CreateField (\_SB.SBUF, 0x94, 0x60, FLDV)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [FLDV] is within a method [_INI])
|
||||||
|
|
||||||
|
grammar2.asl 812: Method (_SRS, 0, NotSerialized) // _SRS: Set Resource Settings
|
||||||
|
Warning 3102 - ^ Reserved method has too few arguments (_SRS requires 1)
|
||||||
|
|
||||||
|
grammar2.asl 817: Device (EIO)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 885: If (!SMRE (0x09, 0x17, Local2, RefOf (Local3)))
|
||||||
|
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||||
|
|
||||||
|
grammar2.asl 981: Device (DEV1)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 1029: Divide (Local0, Local1, Local3)
|
||||||
|
Warning 3144 - Method Local is set but never used ^ (Local3)
|
||||||
|
|
||||||
|
grammar2.asl 1055: Method (R226, 2, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||||
|
|
||||||
|
grammar2.asl 1055: Method (R226, 2, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||||
|
|
||||||
|
grammar2.asl 1083: Local1 = Local0
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local1)
|
||||||
|
|
||||||
|
grammar2.asl 1364: Method (OBJ1, 1, Serialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||||
|
|
||||||
|
grammar2.asl 1367: Name (BUFR, Buffer (Local0){})
|
||||||
|
Remark 2089 - ^ Object is not referenced (Name [BUFR] is within a method [OBJ1])
|
||||||
|
|
||||||
|
grammar2.asl 1375: Alias (MTX1, MTX2)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [MTX2] is within a method [OBJ1])
|
||||||
|
|
||||||
|
grammar2.asl 1393: CreateField (BUF2, 0x94, 0x60, FLD3)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [FLD3] is within a method [FLDS])
|
||||||
|
|
||||||
|
grammar2.asl 1457: QWD2 = 0x1234567887654321
|
||||||
|
Warning 3038 - ^ Truncating 64-bit constant found in 32-bit table
|
||||||
|
|
||||||
|
grammar2.asl 1459: If ((Local0 != 0x1234567887654321))
|
||||||
|
Warning 3038 - ^ Truncating 64-bit constant found in 32-bit table
|
||||||
|
|
||||||
|
grammar2.asl 1536: SizeOf (BUFO)
|
||||||
|
Error 6114 - ^ Result is not used, operator has no effect
|
||||||
|
|
||||||
|
grammar2.asl 1550: Alias (MTX2, MTXA)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [MTXA] is within a method [OBJ2])
|
||||||
|
|
||||||
|
grammar2.asl 1554: Acquire (MTX2, 0x0001)
|
||||||
|
Warning 3130 - ^ Result is not used, possible operator timeout will be missed
|
||||||
|
|
||||||
|
grammar2.asl 1669: (Local0 + Local1)
|
||||||
|
Error 6114 - ^ Result is not used, operator has no effect
|
||||||
|
|
||||||
|
grammar2.asl 1680: Local2 = (Local0 + Local1)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||||
|
|
||||||
|
grammar2.asl 1792: Local0 = (0xFFFFFFFF && 0x11111111)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 1794: Local1 = (0xFFFFFFFF == 0x11111111)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local1)
|
||||||
|
|
||||||
|
grammar2.asl 1796: Local2 = (0xFFFFFFFF > 0x11111111)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||||
|
|
||||||
|
grammar2.asl 1798: Local3 = (0xFFFFFFFF >= 0x11111111)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local3)
|
||||||
|
|
||||||
|
grammar2.asl 1800: Local4 = (0xFFFFFFFF < 0x11111111)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local4)
|
||||||
|
|
||||||
|
grammar2.asl 1802: Local5 = (0xFFFFFFFF <= 0x11111111)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local5)
|
||||||
|
|
||||||
|
grammar2.asl 1827: Method (COND, 0, NotSerialized)
|
||||||
|
Warning 3115 - ^ Not all control paths return a value (COND)
|
||||||
|
|
||||||
|
grammar2.asl 1937: Local5 = RefOf (MAIN)
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local5)
|
||||||
|
|
||||||
|
grammar2.asl 1999: Device (IFEL)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2165: Device (NOSV)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2604: Device (IDXF)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2633: Local0 = IFE0 /* \IDXF.IFE0 */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 2634: Local1 = IFE1 /* \IDXF.IFE1 */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local1)
|
||||||
|
|
||||||
|
grammar2.asl 2635: Local2 = IFE2 /* \IDXF.IFE2 */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||||
|
|
||||||
|
grammar2.asl 2651: Device (NSTL)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2681: Device (RTBF)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2786: Device (GPE2)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2801: Device (PRW2)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2855: Device (PRW1)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 2936: Local0 = Arg0
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 2939: Device (RTLV)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 3052: Name (_CRS, 0x00) // _CRS: Current Resource Settings
|
||||||
|
Error 6105 - ^ Invalid object type for reserved name (_CRS: found Integer, Buffer required)
|
||||||
|
|
||||||
|
grammar2.asl 3159: Device (RETP)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 3199: Device (WHLR)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 3255: Device (ANDO)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 3543: Device (BRKP)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 3581: Device (ADSU)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 3706: Device (INDC)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 3835: Device (LOPS)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 4269: Device (FDSO)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 4484: Device (MLDV)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 4664: Device (NBIT)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 4955: Device (SHFT)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 5194: Device (XORD)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 5571: Device (CRBF)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 5674: Device (IDX4)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 6604: Device (EVNT)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 6867: Device (SZLV)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 6952: Device (BYTF)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 6963: Device (C005)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 6967: Device (C013)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7039: Name (_HID, "*PNP0A06") // _HID: Hardware ID
|
||||||
|
Error 6061 - Invalid leading asterisk ^ (*PNP0A06)
|
||||||
|
|
||||||
|
grammar2.asl 7231: Name (C18C, Package (0x02)
|
||||||
|
Remark 2063 - ^ Initializer list shorter than declared package length
|
||||||
|
|
||||||
|
grammar2.asl 7264: Device (C19B)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7276: Divide (Local1, 0x0A, Local0, Local2) /* Local0 = Local1 / 10 */
|
||||||
|
Warning 3144 - Method Local is set but never used ^ (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 7321: Device (DWDF)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7345: Method (MKW, 2, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg0)
|
||||||
|
|
||||||
|
grammar2.asl 7345: Method (MKW, 2, NotSerialized)
|
||||||
|
Remark 2146 - ^ Method Argument is never used (Arg1)
|
||||||
|
|
||||||
|
grammar2.asl 7354: Device (DVAX)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7394: Device (IDX6)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7420: Device (TST)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7441: Local0 = IFE0 /* \IDX6.IFE0 */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 7442: Local1 = IFE1 /* \IDX6.IFE1 */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local1)
|
||||||
|
|
||||||
|
grammar2.asl 7443: Local2 = IFE2 /* \IDX6.IFE2 */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local2)
|
||||||
|
|
||||||
|
grammar2.asl 7446: Local3 = \IDX6.IFE0
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local3)
|
||||||
|
|
||||||
|
grammar2.asl 7447: Local4 = \IDX6.IFE1
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local4)
|
||||||
|
|
||||||
|
grammar2.asl 7450: Local5 = \IDX6.TST.IFE0
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local5)
|
||||||
|
|
||||||
|
grammar2.asl 7451: Local6 = \IDX6.TST.IFE1
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local6)
|
||||||
|
|
||||||
|
grammar2.asl 7463: Device (IDX5)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7852: Device (BITI)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 7960: Local0 &= 0x01 /* Local0 &= 1 */
|
||||||
|
Error 6066 - ^ Method local variable is not initialized (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 8123: Name (_HID, "*PNP0C0A") /* Control Method Battey ID */ // _HID: Hardware ID
|
||||||
|
Error 6061 - Invalid leading asterisk ^ (*PNP0C0A)
|
||||||
|
|
||||||
|
grammar2.asl 8133: Device (IDX3)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 8314: Device (IDX7)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 9020: Device (MTCH)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 9099: CreateDWordField (TMD0, 0x04, DMA0)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [DMA0] is within a method [TEST])
|
||||||
|
|
||||||
|
grammar2.asl 9100: CreateDWordField (TMD0, 0x08, PIO1)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [PIO1] is within a method [TEST])
|
||||||
|
|
||||||
|
grammar2.asl 9101: CreateDWordField (TMD0, 0x0C, DMA1)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [DMA1] is within a method [TEST])
|
||||||
|
|
||||||
|
grammar2.asl 9102: CreateDWordField (TMD0, 0x10, CHNF)
|
||||||
|
Remark 2089 - Object is not referenced ^ (Name [CHNF] is within a method [TEST])
|
||||||
|
|
||||||
|
grammar2.asl 9295: Device (WHLB)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 9673: Device (IDX2)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 10054: Device (SIZO)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 10103: Name (PKG2, Package (0x04)
|
||||||
|
Remark 2063 - ^ Initializer list shorter than declared package length
|
||||||
|
|
||||||
|
grammar2.asl 10489: Local0 = _OS /* \_OS_ */
|
||||||
|
Warning 3144 - ^ Method Local is set but never used (Local0)
|
||||||
|
|
||||||
|
grammar2.asl 10621: Device (MBIT)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 10632: Device (MWRD)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 10640: Device (MBYT)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 10714: Device (SMIS)
|
||||||
|
Warning 3141 - Missing dependency ^ (Device object requires a _HID or _ADR in same scope)
|
||||||
|
|
||||||
|
grammar2.asl 10780: 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: grammar2.asl - 378020 bytes 4899 keywords 11654 source lines
|
||||||
|
AML Output: grammar2.aml - 43758 bytes 4229 opcodes 670 named objects
|
||||||
|
|
||||||
|
Compilation successful. 6 Errors, 86 Warnings, 27 Remarks, 1109 Optimizations
|
35
tests/grammar2/runtest.sh
Executable file
35
tests/grammar2/runtest.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# run the misc tests: we need to do this in a script since
|
||||||
|
# these are expected to fail which would normally cause %check
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
PWD=$(pwd)
|
||||||
|
BINDIR="/usr/bin"
|
||||||
|
VERSION=$($BINDIR/iasl -v | grep Optimizing | cut -d" " -f5)
|
||||||
|
|
||||||
|
# create file to compare against
|
||||||
|
pushd ./grammar2 > /dev/null
|
||||||
|
sed -e "s/VVVVVVVV/$VERSION/" \
|
||||||
|
grammar2.asl.result > grammar2.asl.expected
|
||||||
|
|
||||||
|
# see if grammar2.asl failed as expected
|
||||||
|
# NB: the -f option is required so we can see all of the errors
|
||||||
|
$BINDIR/iasl -f -of grammar2.asl > grammar2.asl.actual 2>&1
|
||||||
|
diff grammar2.asl.actual grammar2.asl.expected >/dev/null 2>&1
|
||||||
|
RET=$?
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
if [ $RET -eq 0 ]
|
||||||
|
then
|
||||||
|
echo PASS grammar2
|
||||||
|
else
|
||||||
|
echo FAIL grammar2
|
||||||
|
fi
|
||||||
|
exit $RET
|
22
tests/test_acpica-tools-tests.yml
Normal file
22
tests/test_acpica-tools-tests.yml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
# Tests that run in classic, container and atomic context
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
- container
|
||||||
|
- atomic
|
||||||
|
tests:
|
||||||
|
- acpica-tools-tests/aslts
|
||||||
|
- acpica-tools-tests/misc
|
||||||
|
- acpica-tools-tests/templates
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
- rpm-build
|
||||||
|
- gcc
|
||||||
|
- wget
|
||||||
|
- bison
|
||||||
|
- flex
|
||||||
|
- patchutils
|
||||||
|
|
27
tests/test_acpidump.yml
Normal file
27
tests/test_acpidump.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
vars:
|
||||||
|
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tests:
|
||||||
|
- acpidump
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
remote_user: root
|
||||||
|
tasks:
|
||||||
|
- name: acpidump
|
||||||
|
block:
|
||||||
|
- name: run acpidump
|
||||||
|
shell: exec > /tmp/acpidump.test.log 2>&1 && ./acpidump/runtest.sh
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: pull out results
|
||||||
|
fetch:
|
||||||
|
dest: "{{ artifacts }}/"
|
||||||
|
src: "{{ item }}"
|
||||||
|
flat: yes
|
||||||
|
with_items:
|
||||||
|
- /tmp/acpidump.test.log
|
||||||
|
- /tmp/acpi.tables
|
26
tests/test_acpixtract.yml
Normal file
26
tests/test_acpixtract.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
vars:
|
||||||
|
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tests:
|
||||||
|
- acpixtract
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
remote_user: root
|
||||||
|
tasks:
|
||||||
|
- name: acpixtract
|
||||||
|
block:
|
||||||
|
- name: run acpixtract
|
||||||
|
shell: exec > /tmp/acpixtract.test.log 2>&1 && ./acpixtract/runtest.sh
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: pull out results
|
||||||
|
fetch:
|
||||||
|
dest: "{{ artifacts }}/"
|
||||||
|
src: "{{ item }}"
|
||||||
|
flat: yes
|
||||||
|
with_items:
|
||||||
|
- /tmp/acpixtract.test.log
|
28
tests/test_badcode.yml
Normal file
28
tests/test_badcode.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
vars:
|
||||||
|
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tests:
|
||||||
|
- badcode
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
remote_user: root
|
||||||
|
tasks:
|
||||||
|
- name: badcode
|
||||||
|
block:
|
||||||
|
- name: run the badcode test
|
||||||
|
shell: exec > /tmp/badcode.test.log 2>&1 && ./badcode/runtest.sh
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: pull out results
|
||||||
|
fetch:
|
||||||
|
dest: "{{ artifacts }}/"
|
||||||
|
src: "{{ item }}"
|
||||||
|
flat: yes
|
||||||
|
with_items:
|
||||||
|
- /tmp/badcode.test.log
|
||||||
|
- ./badcode/badcode.asl.expected
|
||||||
|
- ./badcode/badcode.asl.actual
|
28
tests/test_converterSample.yml
Normal file
28
tests/test_converterSample.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
vars:
|
||||||
|
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tests:
|
||||||
|
- converterSample
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
remote_user: root
|
||||||
|
tasks:
|
||||||
|
- name: converterSample
|
||||||
|
block:
|
||||||
|
- name: run the converterSample test
|
||||||
|
shell: exec > /tmp/converterSample.test.log 2>&1 && ./converterSample/runtest.sh
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: pull out results
|
||||||
|
fetch:
|
||||||
|
dest: "{{ artifacts }}/"
|
||||||
|
src: "{{ item }}"
|
||||||
|
flat: yes
|
||||||
|
with_items:
|
||||||
|
- /tmp/converterSample.test.log
|
||||||
|
- ./converterSample/converterSample.asl.expected
|
||||||
|
- ./converterSample/converterSample.asl.actual
|
12
tests/test_dump-tables.yml
Normal file
12
tests/test_dump-tables.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# Tests that run in classic and atomic
|
||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-beakerlib
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
- atomic
|
||||||
|
tests:
|
||||||
|
- dump-tables
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
|
28
tests/test_grammar.yml
Normal file
28
tests/test_grammar.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
vars:
|
||||||
|
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tests:
|
||||||
|
- grammar
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
remote_user: root
|
||||||
|
tasks:
|
||||||
|
- name: grammar
|
||||||
|
block:
|
||||||
|
- name: run the grammar test
|
||||||
|
shell: exec > /tmp/grammar.test.log 2>&1 && ./grammar/runtest.sh
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: pull out results
|
||||||
|
fetch:
|
||||||
|
dest: "{{ artifacts }}/"
|
||||||
|
src: "{{ item }}"
|
||||||
|
flat: yes
|
||||||
|
with_items:
|
||||||
|
- /tmp/grammar.test.log
|
||||||
|
- ./grammar/grammar.asl.expected
|
||||||
|
- ./grammar/grammar.asl.actual
|
28
tests/test_grammar2.yml
Normal file
28
tests/test_grammar2.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
vars:
|
||||||
|
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tests:
|
||||||
|
- grammar2
|
||||||
|
required_packages:
|
||||||
|
- acpica-tools
|
||||||
|
remote_user: root
|
||||||
|
tasks:
|
||||||
|
- name: grammar2
|
||||||
|
block:
|
||||||
|
- name: run the grammar2 test
|
||||||
|
shell: exec > /tmp/grammar2.test.log 2>&1 && ./grammar2/runtest.sh
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: pull out results
|
||||||
|
fetch:
|
||||||
|
dest: "{{ artifacts }}/"
|
||||||
|
src: "{{ item }}"
|
||||||
|
flat: yes
|
||||||
|
with_items:
|
||||||
|
- /tmp/grammar2.test.log
|
||||||
|
- ./grammar2/grammar2.asl.expected
|
||||||
|
- ./grammar2/grammar2.asl.actual
|
9
tests/tests.yml
Normal file
9
tests/tests.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
- import_playbook: test_acpidump.yml
|
||||||
|
- import_playbook: test_acpixtract.yml
|
||||||
|
- import_playbook: test_badcode.yml
|
||||||
|
- import_playbook: test_grammar.yml
|
||||||
|
- import_playbook: test_grammar2.yml
|
||||||
|
- import_playbook: test_converterSample.yml
|
||||||
|
- import_playbook: test_dump-tables.yml
|
||||||
|
- import_playbook: test_acpica-tools-tests.yml
|
||||||
|
|
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-unix-20191018/source/components/executer/exoparg2.c
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/components/executer/exoparg2.c
|
||||||
|
+++ acpica-unix-20191018/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-unix-20191018/source/include/actypes.h
|
||||||
|
===================================================================
|
||||||
|
--- acpica-unix-20191018.orig/source/include/actypes.h
|
||||||
|
+++ acpica-unix-20191018/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__) || defined(__arm__)
|
||||||
|
+#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…
Reference in New Issue
Block a user