Architecture specific change in rpms/fizz.git
by githook-noreply@fedoraproject.org
The package rpms/fizz.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/fizz.git/commit/?id=688dad0af01b5....
Change:
+%ifarch armv7hl
Thanks.
Full change:
============
commit 688dad0af01b5bd03f43dcba87d836d09ce53062
Author: Michel Alexandre Salim <salimma(a)fedoraproject.org>
Date: Thu Oct 29 18:28:12 2020 -0700
Add static subpackage
Signed-off-by: Michel Alexandre Salim <salimma(a)fedoraproject.org>
diff --git a/fizz.spec b/fizz.spec
index a7fb37e..b4b9fd1 100644
--- a/fizz.spec
+++ b/fizz.spec
@@ -1,3 +1,10 @@
+# shared build links against static folly if both are installed on armv7hl
+%ifarch armv7hl
+%bcond_with static
+%else
+%bcond_without static
+%endif
+
# Some tests fail on 32-bit arches
%ifarch armv7hl i686
%bcond_with tests
@@ -5,17 +12,19 @@
%bcond_without tests
%endif
+%global _static_builddir static_build
+
Name: fizz
Version: 2020.10.26.00
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A C++14 implementation of the TLS-1.3 standard
License: BSD
URL: https://github.com/facebookincubator/fizz
-Source0: https://github.com/facebookincubator/fizz/releases/download/v%{version}/f...
-Patch0: https://github.com/facebookincubator/fizz/commit/66de2b986f81ee8fc9a8a066...
-Patch1: https://github.com/facebookincubator/fizz/commit/22b5d4635f79e614693e55d8...
-Patch2: https://github.com/facebookincubator/fizz/commit/505cbc78dd98f04915220e3d...
+Source0: %{url}/releases/download/v%{version}/fizz-v%{version}.tar.gz
+Patch0: %{url}/commit/66de2b986f81ee8fc9a8a06661ee78d9f4088094.patch#/%{name}-%{version}-maybe_uninitialized.patch
+Patch1: %{url}/commit/22b5d4635f79e614693e55d81dce983da953589c.patch#/%{name}-%{version}-fix_fizz_test_support_dest.patch
+Patch2: %{url}/commit/505cbc78dd98f04915220e3d2796bc026f79c066.patch#/%{name}-%{version}-allow_overriding_version.patch
# Folly is known not to work on big-endian CPUs
# https://bugzilla.redhat.com/show_bug.cgi?id=1892152
@@ -24,6 +33,9 @@ ExcludeArch: s390x
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: folly-devel
+%if %{with static}
+BuildRequires: folly-static
+%endif
%description
Fizz is a TLS 1.3 implementation.
@@ -42,6 +54,17 @@ The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
+%if %{with static}
+%package static
+Summary: Static development libraries for %{name}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+
+%description static
+The %{name}-static package contains static libraries for
+developing applications that use %{name}.
+%endif
+
+
%prep
%autosetup -c -p1
@@ -49,13 +72,38 @@ developing applications that use %{name}.
%build
%cmake fizz \
-DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name} \
+ -DFOLLY_ROOT=%{_libdir}/cmake/folly \
-DPACKAGE_VERSION=%{version} \
-DSO_VERSION=%{version}
%cmake_build
+%if %{with static}
+# static build
+# apply patch to build against static folly
+#cat {SOURCE1} | patch -p1
+mkdir %{_static_builddir}
+cd %{_static_builddir}
+%cmake ../fizz \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_TESTS=OFF \
+ -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name}-static \
+ -DFOLLY_ROOT=%{_libdir}/cmake/folly-static \
+ -DPACKAGE_VERSION=%{version}
+%cmake_build
+%endif
+
+
%install
%cmake_install
+
+%if %{with static}
+# static build
+pushd %{_static_builddir}
+%cmake_install
+popd
+%endif
+
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
@@ -75,8 +123,17 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%{_libdir}/*.so
%{_libdir}/cmake/%{name}
+%if %{with static}
+%files static
+%{_libdir}/*.a
+%{_libdir}/cmake/%{name}-static
+%endif
+
%changelog
+* Thu Oct 29 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-2
+- Add static subpackage
+
* Mon Oct 26 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-1
- Update to 2020.10.26.00
3 years, 5 months
Architecture specific change in rpms/udisks2.git
by githook-noreply@fedoraproject.org
The package rpms/udisks2.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/udisks2.git/commit/?id=a4f75c79bc....
Change:
-%ifnarch x86_64 aarch64 ppc64le s390x
Thanks.
Full change:
============
commit a4f75c79bc516ae693067e140c2513fbbba0b3a2
Author: Tomas Bzatek <tbzatek(a)redhat.com>
Date: Fri Oct 30 15:39:49 2020 +0100
Remove the udisks2-vdo subpackage
The standalone VDO udisks2 module has been deprecated
in udisks-2.9.0 and will be removed upstream soon.
It has never been built for Fedora anyway so let's
remove it right away.
The preferred way of managing VDO devices through LVM2
is active, supported and unaffected by this change.
The actual burden is on libblockdev though.
diff --git a/udisks2.spec b/udisks2.spec
index 21b3c21..d2863e2 100644
--- a/udisks2.spec
+++ b/udisks2.spec
@@ -9,7 +9,6 @@
%define with_bcache 1
%define with_btrfs 1
-%define with_vdo 1
%define with_lsm 1
%define with_zram 1
%define with_lvmcache 1
@@ -33,16 +32,6 @@
%define with_btrfs 0
%endif
-# vdo is not available on Fedora
-%if (0%{?fedora}) || 0%{?rhel} >= 9 || %{with_vdo} == 0
-%define with_vdo 0
-%endif
-
-# vdo is not available on i686
-%ifnarch x86_64 aarch64 ppc64le s390x
-%define with_vdo 0
-%endif
-
# feature parity with existing RHEL 7 packages
%if (0%{?rhel}) && (0%{?rhel} <= 7)
%define with_lsm 0
@@ -249,19 +238,6 @@ Obsoletes: storaged-zram
This package contains module for ZRAM configuration.
%endif
-%if 0%{?with_vdo}
-%package -n %{name}-vdo
-Summary: Module for VDO
-Requires: %{name}%{?_isa} = %{version}-%{release}
-License: LGPLv2+
-Requires: vdo
-Requires: libblockdev-vdo >= %{libblockdev_version}
-BuildRequires: libblockdev-vdo-devel >= %{libblockdev_version}
-
-%description -n %{name}-vdo
-This package contains module for VDO management.
-%endif
-
%prep
%setup -q -n udisks-%{version}
sed -i udisks/udisks2.conf.in -e "s/encryption=luks1/encryption=%{default_luks_encryption}/"
@@ -281,9 +257,7 @@ autoreconf -ivf
%if 0%{?with_btrfs}
--enable-btrfs \
%endif
-%if 0%{?with_vdo}
- --enable-vdo \
-%endif
+ --disable-vdo \
%if 0%{?with_zram}
--enable-zram \
%endif
@@ -419,9 +393,6 @@ fi
%if 0%{?with_zram}
%{_libdir}/pkgconfig/udisks2-zram.pc
%endif
-%if 0%{?with_vdo}
-%{_libdir}/pkgconfig/udisks2-vdo.pc
-%endif
%if 0%{?with_bcache}
%files -n %{name}-bcache
@@ -453,12 +424,6 @@ fi
%{_udevrulesdir}/90-udisks2-zram.rules
%endif
-%if 0%{?with_vdo}
-%files -n %{name}-vdo
-%{_libdir}/udisks2/modules/libudisks2_vdo.so
-%{_datadir}/polkit-1/actions/org.freedesktop.UDisks2.vdo.policy
-%endif
-
%changelog
* Mon Sep 07 2020 Neal Gompa <ngompa13(a)gmail.com> - 2.9.1-2
- Fix conditional around polkit Recommends for building on EL7
3 years, 5 months
Architecture specific change in rpms/boinc-client.git
by githook-noreply@fedoraproject.org
The package rpms/boinc-client.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/boinc-client.git/commit/?id=874a2....
Change:
-ExcludeArch: ppc64
Thanks.
Full change:
============
commit 0effcec63862f4807dcb01c34a0cd7fc49b25023
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Fri Oct 30 12:56:34 2020 +0100
7.16.11 release, added 4071.patch, updated disable_idle_time_detection.patch
diff --git a/.gitignore b/.gitignore
index 70e189a..e264e35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@ boinc-6.10.45.tar.xz
/boinc-client-7.14.2.tar.gz
/boinc-client-7.16.1.tar.gz
/boinc-client-7.16.6.tar.gz
+/boinc-client-7.16.11.tar.gz
diff --git a/4071.patch b/4071.patch
new file mode 100644
index 0000000..166b8dd
--- /dev/null
+++ b/4071.patch
@@ -0,0 +1,111 @@
+From 86d0e9fbd1589dc1849829b3fac1cd6cc45abfa8 Mon Sep 17 00:00:00 2001
+From: David Anderson <davea(a)ssl.berkeley.edu>
+Date: Tue, 27 Oct 2020 19:21:49 -0700
+Subject: [PATCH] client: allow an empty GUI RPC password, but generate alert
+ message
+
+boinccmd: show alert messages after attach RPCs
+
+PR #3709 disallowed empty GUI RPC password files.
+This increased security on shared machines.
+But it meant that on Linux, after installing BOINC as a package,
+the user had to locate and change the protection
+and/or the ownership of the password file, which is undesirable.
+
+This change allows empty password files but tells the user
+that they should think about the security implications.
+With the Manager this is delivered as a notice.
+With boinccmd the message is written to stderr after an attach operation.
+---
+ client/boinc_cmd.cpp | 26 ++++++++++++++++++++++++++
+ client/gui_rpc_server.cpp | 17 ++++++++---------
+ 2 files changed, 34 insertions(+), 9 deletions(-)
+
+diff --git a/client/boinc_cmd.cpp b/client/boinc_cmd.cpp
+index 38b8170a4c..fd05474f76 100644
+--- a/client/boinc_cmd.cpp
++++ b/client/boinc_cmd.cpp
+@@ -163,6 +163,30 @@ void acct_mgr_do_rpc(
+ }
+ }
+
++// Get messages from client, and show any that are USER_ALERT priority.
++// Intended use: show user that GUI RPCs are not password-protected.
++// For now, do this after attach to project or AM
++//
++void show_alerts(RPC_CLIENT &rpc) {
++ MESSAGES messages;
++ int retval = rpc.get_messages(0, messages);
++ if (retval) {
++ fprintf(stderr, "Can't get alerts from client: %s\n",
++ boincerror(retval)
++ );
++ return;
++ }
++ for (unsigned int j=0; j<messages.messages.size(); j++) {
++ MESSAGE& md = *messages.messages[j];
++ if (md.priority != MSG_USER_ALERT) continue;
++ if (!md.project.empty()) continue;
++ strip_whitespace(md.body);
++ fprintf(stderr, "\nAlert from client: %s\n",
++ md.body.c_str()
++ );
++ }
++}
++
+ int main(int argc, char** argv) {
+ RPC_CLIENT rpc;
+ int i, retval, port=0;
+@@ -382,6 +406,7 @@ int main(int argc, char** argv) {
+ canonicalize_master_url(url, sizeof(url));
+ char* auth = next_arg(argc, argv, i);
+ retval = rpc.project_attach(url, auth, "");
++ show_alerts(rpc);
+ } else if (!strcmp(cmd, "--file_transfer")) {
+ FILE_TRANSFER ft;
+
+@@ -529,6 +554,7 @@ int main(int argc, char** argv) {
+ char* am_name = next_arg(argc, argv, i);
+ char* am_passwd = next_arg(argc, argv, i);
+ acct_mgr_do_rpc(rpc, am_url, am_name, am_passwd);
++ show_alerts(rpc);
+ } else if (!strcmp(op, "info")) {
+ ACCT_MGR_INFO ami;
+ retval = rpc.acct_mgr_info(ami);
+diff --git a/client/gui_rpc_server.cpp b/client/gui_rpc_server.cpp
+index 3b14a255f9..c0593d682d 100644
+--- a/client/gui_rpc_server.cpp
++++ b/client/gui_rpc_server.cpp
+@@ -120,7 +120,7 @@ bool GUI_RPC_CONN_SET::recent_rpc_needs_network(double interval) {
+ }
+
+ // read the GUI RPC password from gui_rpc_auth.cfg;
+-// create one if missing or empty.
++// create one if missing
+ //
+ void GUI_RPC_CONN_SET::get_password() {
+ int retval;
+@@ -132,16 +132,15 @@ void GUI_RPC_CONN_SET::get_password() {
+ strip_whitespace(password);
+ }
+ fclose(f);
+- if (strlen(password)) {
+- return;
+- }
+
+- // File is empty; don't allow this.
+- // Fall through and create a password.
++ // if password is empty, allow it but issue a warning
+ //
+- msg_printf(NULL, MSG_INFO,
+- "%s is empty - assigning new GUI RPC password", GUI_RPC_PASSWD_FILE
+- );
++ if (!strlen(password)) {
++ msg_printf(NULL, MSG_USER_ALERT,
++ "Warning: GUI RPC password is empty. BOINC can be controlled by any user on this computer. See https://boinc.berkeley.edu/gui_rpc_passwd.php for more information."
++ );
++ }
++ return;
+ }
+
+ // make a random password
diff --git a/boinc-client.spec b/boinc-client.spec
index 4b68fd3..e542e20 100644
--- a/boinc-client.spec
+++ b/boinc-client.spec
@@ -17,13 +17,13 @@
Summary: The BOINC client
Name: boinc-client
-Version: 7.16.6
-Release: 7%{?dist}
+Version: 7.16.11
+Release: 1%{?dist}
License: LGPLv2+
URL: http://boinc.berkeley.edu/
%global major_version %(v=%{version}; echo ${v:0:4})
-%global commit 72b77e88d757baf19469b4f7da54bc91b921eb88
+%global commit 5222682feca5506f6168ed5883581a0320c13f8b
%global gittag client_release/%{major_version}/%{version}
# gittag_custom is needed in %%setup process because tar.gz unpacks a folder
# named for example boinc-client_release-7.14-7.14.2
@@ -64,6 +64,8 @@ Patch3: manager_shut_down_connected_client.patch
Patch4: prevent_manager_from_starting_client.patch
# Fedora / EPEL, the folder /etc/boinc-client does not exist, so it should be removed
Patch5: remove_etc_boinc-client_from_systemd_unit_file.patch
+# Concerning 4071.patch read https://github.com/BOINC/boinc/pull/4071
+Patch6: 4071.patch
Requires: logrotate
Requires(post): systemd
@@ -315,6 +317,11 @@ fi
%{_includedir}/boinc
%changelog
+* Fri Oct 30 00:09:07 CET 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.11-1
+- 7.16.11 release
+- Added 4071.patch Read https://github.com/BOINC/boinc/pull/4071
+-
+
* Tue Oct 06 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-7
- Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
diff --git a/disable_idle_time_detection.patch b/disable_idle_time_detection.patch
index bc438cb..847e470 100644
--- a/disable_idle_time_detection.patch
+++ b/disable_idle_time_detection.patch
@@ -1,7 +1,7 @@
-diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-client_release-7.16-7.16.6/client/client_state.cpp
---- boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp 2020-03-23 06:13:30.000000000 +0100
-+++ boinc-client_release-7.16-7.16.6/client/client_state.cpp 2020-04-23 18:03:31.981600455 +0200
-@@ -988,7 +988,8 @@
+diff -urNr boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp boinc-client_release-7.16-7.16.11/client/client_state.cpp
+--- boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp 2020-08-30 10:04:59.000000000 +0200
++++ boinc-client_release-7.16-7.16.11/client/client_state.cpp 2020-10-30 12:39:28.363185257 +0100
+@@ -1003,7 +1003,8 @@
user_active = device_status.user_active;
#else
long idle_time = host_info.user_idle_time(check_all_logins);
@@ -11,9 +11,9 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-c
#endif
if (user_active != old_user_active) {
-diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp
---- boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp 2020-03-23 06:13:30.000000000 +0100
-+++ boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp 2020-04-23 17:36:05.311975291 +0200
+diff -urNr boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp
+--- boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp 2020-08-30 10:04:59.000000000 +0200
++++ boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp 2020-10-30 12:50:06.251852694 +0100
@@ -41,16 +41,6 @@
#include <cstring>
#endif
@@ -31,7 +31,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
#include <cstdio>
#include <cstdlib>
#include <cstring>
-@@ -1559,11 +1549,7 @@
+@@ -1555,11 +1545,7 @@
}
inline long device_idle_time(const char *device) {
@@ -44,7 +44,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
}
// list of directories and prefixes of TTY devices
-@@ -1622,19 +1608,7 @@
+@@ -1618,19 +1604,7 @@
}
inline long all_tty_idle_time() {
@@ -65,7 +65,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
return idle_time;
}
-@@ -1692,43 +1666,7 @@
+@@ -1688,43 +1662,7 @@
// faster than the previous method, which called IOHIDGetParameter().
//
long HOST_INFO::user_idle_time(bool /*check_all_logins*/) {
@@ -109,7 +109,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
return (long)idleTime;
}
-@@ -1736,18 +1674,8 @@
+@@ -1732,18 +1670,8 @@
#if HAVE_UTMP_H
inline long user_idle_time(struct utmp* u) {
@@ -130,7 +130,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
}
#if !HAVE_SETUTENT || !HAVE_GETUTENT
-@@ -1791,227 +1719,29 @@
+@@ -1787,202 +1715,28 @@
inline long all_logins_idle() {
struct utmp* u;
setutent();
@@ -195,33 +195,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- }
- }
-
-- // if the display_values vector is empty, assume something went wrong
-- // (couldn't open directory, no apparent Xn files). Test a static list of
-- // DISPLAY values instead that is likely to catch most common use cases.
-- // (I don't know of many environments where there will simultaneously be
-- // more than seven active, local Xservers. I'm sure they exist... somewhere.
-- // But seven was the magic number for me).
-- //
-- if ( display_values.size() == 0 ) {
-- if ( log_flags.idle_detection_debug ) {
-- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] No DISPLAY values found in /tmp/.X11-unix/."
-- );
-- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] Using static DISPLAY list, :{0..6}."
-- );
-- }
-- display_values.push_back(":0");
-- display_values.push_back(":1");
-- display_values.push_back(":2");
-- display_values.push_back(":3");
-- display_values.push_back(":4");
-- display_values.push_back(":5");
-- display_values.push_back(":6");
-- return display_values;
-- } else {
-- return display_values;
-- }
+- return display_values;
-}
-
-// Ask the X server for user idle time (using XScreenSaver API)
@@ -295,7 +269,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- //
- no_available_x_display = false;
- XScreenSaverQueryInfo(disp, DefaultRootWindow(disp), xssInfo);
-- idle_time = xssInfo->idle;
+- display_idle_time = xssInfo->idle;
-
- // Close the connection to the XServer
- //
@@ -307,10 +281,11 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
-
- if (log_flags.idle_detection_debug) {
- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] XSS idle detection succeeded on DISPLAY '%s'.", it->c_str()
+- "[idle_detection] XSS idle detection succeeded on display '%s'.",
+- it->c_str()
- );
- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] idle_time: %ld", idle_time
+- "[idle_detection] display idle time: %ld sec", display_idle_time
- );
- }
-
@@ -330,7 +305,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
-#endif // HAVE_XSS
-
-#endif // LINUX_LIKE_SYSTEM
-
+-
long HOST_INFO::user_idle_time(bool check_all_logins) {
- long idle_time = USER_IDLE_TIME_INF;
+ long idle_time = 0;
@@ -355,10 +330,10 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- // We should find out which of the following are actually relevant
- // on which systems (if any)
- //
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/mouse"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/mouse"));
- // solaris, linux
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/input/mice"));
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/kbd"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/input/mice"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/kbd"));
- // solaris
+ idle_time = 0;
#endif // LINUX_LIKE_SYSTEM
diff --git a/sources b/sources
index 3b921f2..729dd2a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (boinc-client-7.16.6.tar.gz) = a99208704fdacb9810703df289b391d085a7180c2b50c9d11601eb6f484178ce2e33fe77948f0edeb96463a495fd6ed68e33eb293931d778099c52961cb46d69
+SHA512 (boinc-client-7.16.11.tar.gz) = 316fe315372beea8448cb101bb1b73871aed5d95b0d1961a008e2ba31e562f21d5081cbd9885f90e9247eb39daf5ae368eb0b6a9bcfd47220a633296cadd297d
commit 874a27aee2e06c00e58ae9bff4119ffb7b9e8beb
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Tue Oct 6 11:50:55 2020 +0200
Re-enabled ppc64 architecture on EPEL7
diff --git a/boinc-client.spec b/boinc-client.spec
index aecc3bf..4b68fd3 100644
--- a/boinc-client.spec
+++ b/boinc-client.spec
@@ -18,7 +18,7 @@
Summary: The BOINC client
Name: boinc-client
Version: 7.16.6
-Release: 6%{?dist}
+Release: 7%{?dist}
License: LGPLv2+
URL: http://boinc.berkeley.edu/
@@ -89,10 +89,6 @@ BuildRequires: openssl-devel
BuildRequires: sqlite-devel
BuildRequires: xcb-util-devel
-# Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
-%if 0%{?el7}
-ExcludeArch: ppc64
-%endif
# EPEL8 webkit2gtk3 is missing for s390x, aarch64
%if 0%{?el8}
ExcludeArch: s390x aarch64
@@ -319,6 +315,9 @@ fi
%{_includedir}/boinc
%changelog
+* Tue Oct 06 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-7
+- Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
+
* Fri Sep 18 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-6
- Renamed boinc-manager.desktop to boincmgr.desktop This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1880553
3 years, 5 months
Architecture specific change in rpms/boinc-client.git
by githook-noreply@fedoraproject.org
The package rpms/boinc-client.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/boinc-client.git/commit/?id=874a2....
Change:
-ExcludeArch: ppc64
Thanks.
Full change:
============
commit 0effcec63862f4807dcb01c34a0cd7fc49b25023
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Fri Oct 30 12:56:34 2020 +0100
7.16.11 release, added 4071.patch, updated disable_idle_time_detection.patch
diff --git a/.gitignore b/.gitignore
index 70e189a..e264e35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@ boinc-6.10.45.tar.xz
/boinc-client-7.14.2.tar.gz
/boinc-client-7.16.1.tar.gz
/boinc-client-7.16.6.tar.gz
+/boinc-client-7.16.11.tar.gz
diff --git a/4071.patch b/4071.patch
new file mode 100644
index 0000000..166b8dd
--- /dev/null
+++ b/4071.patch
@@ -0,0 +1,111 @@
+From 86d0e9fbd1589dc1849829b3fac1cd6cc45abfa8 Mon Sep 17 00:00:00 2001
+From: David Anderson <davea(a)ssl.berkeley.edu>
+Date: Tue, 27 Oct 2020 19:21:49 -0700
+Subject: [PATCH] client: allow an empty GUI RPC password, but generate alert
+ message
+
+boinccmd: show alert messages after attach RPCs
+
+PR #3709 disallowed empty GUI RPC password files.
+This increased security on shared machines.
+But it meant that on Linux, after installing BOINC as a package,
+the user had to locate and change the protection
+and/or the ownership of the password file, which is undesirable.
+
+This change allows empty password files but tells the user
+that they should think about the security implications.
+With the Manager this is delivered as a notice.
+With boinccmd the message is written to stderr after an attach operation.
+---
+ client/boinc_cmd.cpp | 26 ++++++++++++++++++++++++++
+ client/gui_rpc_server.cpp | 17 ++++++++---------
+ 2 files changed, 34 insertions(+), 9 deletions(-)
+
+diff --git a/client/boinc_cmd.cpp b/client/boinc_cmd.cpp
+index 38b8170a4c..fd05474f76 100644
+--- a/client/boinc_cmd.cpp
++++ b/client/boinc_cmd.cpp
+@@ -163,6 +163,30 @@ void acct_mgr_do_rpc(
+ }
+ }
+
++// Get messages from client, and show any that are USER_ALERT priority.
++// Intended use: show user that GUI RPCs are not password-protected.
++// For now, do this after attach to project or AM
++//
++void show_alerts(RPC_CLIENT &rpc) {
++ MESSAGES messages;
++ int retval = rpc.get_messages(0, messages);
++ if (retval) {
++ fprintf(stderr, "Can't get alerts from client: %s\n",
++ boincerror(retval)
++ );
++ return;
++ }
++ for (unsigned int j=0; j<messages.messages.size(); j++) {
++ MESSAGE& md = *messages.messages[j];
++ if (md.priority != MSG_USER_ALERT) continue;
++ if (!md.project.empty()) continue;
++ strip_whitespace(md.body);
++ fprintf(stderr, "\nAlert from client: %s\n",
++ md.body.c_str()
++ );
++ }
++}
++
+ int main(int argc, char** argv) {
+ RPC_CLIENT rpc;
+ int i, retval, port=0;
+@@ -382,6 +406,7 @@ int main(int argc, char** argv) {
+ canonicalize_master_url(url, sizeof(url));
+ char* auth = next_arg(argc, argv, i);
+ retval = rpc.project_attach(url, auth, "");
++ show_alerts(rpc);
+ } else if (!strcmp(cmd, "--file_transfer")) {
+ FILE_TRANSFER ft;
+
+@@ -529,6 +554,7 @@ int main(int argc, char** argv) {
+ char* am_name = next_arg(argc, argv, i);
+ char* am_passwd = next_arg(argc, argv, i);
+ acct_mgr_do_rpc(rpc, am_url, am_name, am_passwd);
++ show_alerts(rpc);
+ } else if (!strcmp(op, "info")) {
+ ACCT_MGR_INFO ami;
+ retval = rpc.acct_mgr_info(ami);
+diff --git a/client/gui_rpc_server.cpp b/client/gui_rpc_server.cpp
+index 3b14a255f9..c0593d682d 100644
+--- a/client/gui_rpc_server.cpp
++++ b/client/gui_rpc_server.cpp
+@@ -120,7 +120,7 @@ bool GUI_RPC_CONN_SET::recent_rpc_needs_network(double interval) {
+ }
+
+ // read the GUI RPC password from gui_rpc_auth.cfg;
+-// create one if missing or empty.
++// create one if missing
+ //
+ void GUI_RPC_CONN_SET::get_password() {
+ int retval;
+@@ -132,16 +132,15 @@ void GUI_RPC_CONN_SET::get_password() {
+ strip_whitespace(password);
+ }
+ fclose(f);
+- if (strlen(password)) {
+- return;
+- }
+
+- // File is empty; don't allow this.
+- // Fall through and create a password.
++ // if password is empty, allow it but issue a warning
+ //
+- msg_printf(NULL, MSG_INFO,
+- "%s is empty - assigning new GUI RPC password", GUI_RPC_PASSWD_FILE
+- );
++ if (!strlen(password)) {
++ msg_printf(NULL, MSG_USER_ALERT,
++ "Warning: GUI RPC password is empty. BOINC can be controlled by any user on this computer. See https://boinc.berkeley.edu/gui_rpc_passwd.php for more information."
++ );
++ }
++ return;
+ }
+
+ // make a random password
diff --git a/boinc-client.spec b/boinc-client.spec
index 4b68fd3..e542e20 100644
--- a/boinc-client.spec
+++ b/boinc-client.spec
@@ -17,13 +17,13 @@
Summary: The BOINC client
Name: boinc-client
-Version: 7.16.6
-Release: 7%{?dist}
+Version: 7.16.11
+Release: 1%{?dist}
License: LGPLv2+
URL: http://boinc.berkeley.edu/
%global major_version %(v=%{version}; echo ${v:0:4})
-%global commit 72b77e88d757baf19469b4f7da54bc91b921eb88
+%global commit 5222682feca5506f6168ed5883581a0320c13f8b
%global gittag client_release/%{major_version}/%{version}
# gittag_custom is needed in %%setup process because tar.gz unpacks a folder
# named for example boinc-client_release-7.14-7.14.2
@@ -64,6 +64,8 @@ Patch3: manager_shut_down_connected_client.patch
Patch4: prevent_manager_from_starting_client.patch
# Fedora / EPEL, the folder /etc/boinc-client does not exist, so it should be removed
Patch5: remove_etc_boinc-client_from_systemd_unit_file.patch
+# Concerning 4071.patch read https://github.com/BOINC/boinc/pull/4071
+Patch6: 4071.patch
Requires: logrotate
Requires(post): systemd
@@ -315,6 +317,11 @@ fi
%{_includedir}/boinc
%changelog
+* Fri Oct 30 00:09:07 CET 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.11-1
+- 7.16.11 release
+- Added 4071.patch Read https://github.com/BOINC/boinc/pull/4071
+-
+
* Tue Oct 06 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-7
- Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
diff --git a/disable_idle_time_detection.patch b/disable_idle_time_detection.patch
index bc438cb..847e470 100644
--- a/disable_idle_time_detection.patch
+++ b/disable_idle_time_detection.patch
@@ -1,7 +1,7 @@
-diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-client_release-7.16-7.16.6/client/client_state.cpp
---- boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp 2020-03-23 06:13:30.000000000 +0100
-+++ boinc-client_release-7.16-7.16.6/client/client_state.cpp 2020-04-23 18:03:31.981600455 +0200
-@@ -988,7 +988,8 @@
+diff -urNr boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp boinc-client_release-7.16-7.16.11/client/client_state.cpp
+--- boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp 2020-08-30 10:04:59.000000000 +0200
++++ boinc-client_release-7.16-7.16.11/client/client_state.cpp 2020-10-30 12:39:28.363185257 +0100
+@@ -1003,7 +1003,8 @@
user_active = device_status.user_active;
#else
long idle_time = host_info.user_idle_time(check_all_logins);
@@ -11,9 +11,9 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-c
#endif
if (user_active != old_user_active) {
-diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp
---- boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp 2020-03-23 06:13:30.000000000 +0100
-+++ boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp 2020-04-23 17:36:05.311975291 +0200
+diff -urNr boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp
+--- boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp 2020-08-30 10:04:59.000000000 +0200
++++ boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp 2020-10-30 12:50:06.251852694 +0100
@@ -41,16 +41,6 @@
#include <cstring>
#endif
@@ -31,7 +31,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
#include <cstdio>
#include <cstdlib>
#include <cstring>
-@@ -1559,11 +1549,7 @@
+@@ -1555,11 +1545,7 @@
}
inline long device_idle_time(const char *device) {
@@ -44,7 +44,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
}
// list of directories and prefixes of TTY devices
-@@ -1622,19 +1608,7 @@
+@@ -1618,19 +1604,7 @@
}
inline long all_tty_idle_time() {
@@ -65,7 +65,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
return idle_time;
}
-@@ -1692,43 +1666,7 @@
+@@ -1688,43 +1662,7 @@
// faster than the previous method, which called IOHIDGetParameter().
//
long HOST_INFO::user_idle_time(bool /*check_all_logins*/) {
@@ -109,7 +109,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
return (long)idleTime;
}
-@@ -1736,18 +1674,8 @@
+@@ -1732,18 +1670,8 @@
#if HAVE_UTMP_H
inline long user_idle_time(struct utmp* u) {
@@ -130,7 +130,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
}
#if !HAVE_SETUTENT || !HAVE_GETUTENT
-@@ -1791,227 +1719,29 @@
+@@ -1787,202 +1715,28 @@
inline long all_logins_idle() {
struct utmp* u;
setutent();
@@ -195,33 +195,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- }
- }
-
-- // if the display_values vector is empty, assume something went wrong
-- // (couldn't open directory, no apparent Xn files). Test a static list of
-- // DISPLAY values instead that is likely to catch most common use cases.
-- // (I don't know of many environments where there will simultaneously be
-- // more than seven active, local Xservers. I'm sure they exist... somewhere.
-- // But seven was the magic number for me).
-- //
-- if ( display_values.size() == 0 ) {
-- if ( log_flags.idle_detection_debug ) {
-- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] No DISPLAY values found in /tmp/.X11-unix/."
-- );
-- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] Using static DISPLAY list, :{0..6}."
-- );
-- }
-- display_values.push_back(":0");
-- display_values.push_back(":1");
-- display_values.push_back(":2");
-- display_values.push_back(":3");
-- display_values.push_back(":4");
-- display_values.push_back(":5");
-- display_values.push_back(":6");
-- return display_values;
-- } else {
-- return display_values;
-- }
+- return display_values;
-}
-
-// Ask the X server for user idle time (using XScreenSaver API)
@@ -295,7 +269,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- //
- no_available_x_display = false;
- XScreenSaverQueryInfo(disp, DefaultRootWindow(disp), xssInfo);
-- idle_time = xssInfo->idle;
+- display_idle_time = xssInfo->idle;
-
- // Close the connection to the XServer
- //
@@ -307,10 +281,11 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
-
- if (log_flags.idle_detection_debug) {
- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] XSS idle detection succeeded on DISPLAY '%s'.", it->c_str()
+- "[idle_detection] XSS idle detection succeeded on display '%s'.",
+- it->c_str()
- );
- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] idle_time: %ld", idle_time
+- "[idle_detection] display idle time: %ld sec", display_idle_time
- );
- }
-
@@ -330,7 +305,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
-#endif // HAVE_XSS
-
-#endif // LINUX_LIKE_SYSTEM
-
+-
long HOST_INFO::user_idle_time(bool check_all_logins) {
- long idle_time = USER_IDLE_TIME_INF;
+ long idle_time = 0;
@@ -355,10 +330,10 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- // We should find out which of the following are actually relevant
- // on which systems (if any)
- //
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/mouse"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/mouse"));
- // solaris, linux
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/input/mice"));
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/kbd"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/input/mice"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/kbd"));
- // solaris
+ idle_time = 0;
#endif // LINUX_LIKE_SYSTEM
diff --git a/sources b/sources
index 3b921f2..729dd2a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (boinc-client-7.16.6.tar.gz) = a99208704fdacb9810703df289b391d085a7180c2b50c9d11601eb6f484178ce2e33fe77948f0edeb96463a495fd6ed68e33eb293931d778099c52961cb46d69
+SHA512 (boinc-client-7.16.11.tar.gz) = 316fe315372beea8448cb101bb1b73871aed5d95b0d1961a008e2ba31e562f21d5081cbd9885f90e9247eb39daf5ae368eb0b6a9bcfd47220a633296cadd297d
commit 874a27aee2e06c00e58ae9bff4119ffb7b9e8beb
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Tue Oct 6 11:50:55 2020 +0200
Re-enabled ppc64 architecture on EPEL7
diff --git a/boinc-client.spec b/boinc-client.spec
index aecc3bf..4b68fd3 100644
--- a/boinc-client.spec
+++ b/boinc-client.spec
@@ -18,7 +18,7 @@
Summary: The BOINC client
Name: boinc-client
Version: 7.16.6
-Release: 6%{?dist}
+Release: 7%{?dist}
License: LGPLv2+
URL: http://boinc.berkeley.edu/
@@ -89,10 +89,6 @@ BuildRequires: openssl-devel
BuildRequires: sqlite-devel
BuildRequires: xcb-util-devel
-# Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
-%if 0%{?el7}
-ExcludeArch: ppc64
-%endif
# EPEL8 webkit2gtk3 is missing for s390x, aarch64
%if 0%{?el8}
ExcludeArch: s390x aarch64
@@ -319,6 +315,9 @@ fi
%{_includedir}/boinc
%changelog
+* Tue Oct 06 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-7
+- Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
+
* Fri Sep 18 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-6
- Renamed boinc-manager.desktop to boincmgr.desktop This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1880553
3 years, 5 months
Architecture specific change in rpms/boinc-client.git
by githook-noreply@fedoraproject.org
The package rpms/boinc-client.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/boinc-client.git/commit/?id=874a2....
Change:
-ExcludeArch: ppc64
Thanks.
Full change:
============
commit 0effcec63862f4807dcb01c34a0cd7fc49b25023
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Fri Oct 30 12:56:34 2020 +0100
7.16.11 release, added 4071.patch, updated disable_idle_time_detection.patch
diff --git a/.gitignore b/.gitignore
index 70e189a..e264e35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@ boinc-6.10.45.tar.xz
/boinc-client-7.14.2.tar.gz
/boinc-client-7.16.1.tar.gz
/boinc-client-7.16.6.tar.gz
+/boinc-client-7.16.11.tar.gz
diff --git a/4071.patch b/4071.patch
new file mode 100644
index 0000000..166b8dd
--- /dev/null
+++ b/4071.patch
@@ -0,0 +1,111 @@
+From 86d0e9fbd1589dc1849829b3fac1cd6cc45abfa8 Mon Sep 17 00:00:00 2001
+From: David Anderson <davea(a)ssl.berkeley.edu>
+Date: Tue, 27 Oct 2020 19:21:49 -0700
+Subject: [PATCH] client: allow an empty GUI RPC password, but generate alert
+ message
+
+boinccmd: show alert messages after attach RPCs
+
+PR #3709 disallowed empty GUI RPC password files.
+This increased security on shared machines.
+But it meant that on Linux, after installing BOINC as a package,
+the user had to locate and change the protection
+and/or the ownership of the password file, which is undesirable.
+
+This change allows empty password files but tells the user
+that they should think about the security implications.
+With the Manager this is delivered as a notice.
+With boinccmd the message is written to stderr after an attach operation.
+---
+ client/boinc_cmd.cpp | 26 ++++++++++++++++++++++++++
+ client/gui_rpc_server.cpp | 17 ++++++++---------
+ 2 files changed, 34 insertions(+), 9 deletions(-)
+
+diff --git a/client/boinc_cmd.cpp b/client/boinc_cmd.cpp
+index 38b8170a4c..fd05474f76 100644
+--- a/client/boinc_cmd.cpp
++++ b/client/boinc_cmd.cpp
+@@ -163,6 +163,30 @@ void acct_mgr_do_rpc(
+ }
+ }
+
++// Get messages from client, and show any that are USER_ALERT priority.
++// Intended use: show user that GUI RPCs are not password-protected.
++// For now, do this after attach to project or AM
++//
++void show_alerts(RPC_CLIENT &rpc) {
++ MESSAGES messages;
++ int retval = rpc.get_messages(0, messages);
++ if (retval) {
++ fprintf(stderr, "Can't get alerts from client: %s\n",
++ boincerror(retval)
++ );
++ return;
++ }
++ for (unsigned int j=0; j<messages.messages.size(); j++) {
++ MESSAGE& md = *messages.messages[j];
++ if (md.priority != MSG_USER_ALERT) continue;
++ if (!md.project.empty()) continue;
++ strip_whitespace(md.body);
++ fprintf(stderr, "\nAlert from client: %s\n",
++ md.body.c_str()
++ );
++ }
++}
++
+ int main(int argc, char** argv) {
+ RPC_CLIENT rpc;
+ int i, retval, port=0;
+@@ -382,6 +406,7 @@ int main(int argc, char** argv) {
+ canonicalize_master_url(url, sizeof(url));
+ char* auth = next_arg(argc, argv, i);
+ retval = rpc.project_attach(url, auth, "");
++ show_alerts(rpc);
+ } else if (!strcmp(cmd, "--file_transfer")) {
+ FILE_TRANSFER ft;
+
+@@ -529,6 +554,7 @@ int main(int argc, char** argv) {
+ char* am_name = next_arg(argc, argv, i);
+ char* am_passwd = next_arg(argc, argv, i);
+ acct_mgr_do_rpc(rpc, am_url, am_name, am_passwd);
++ show_alerts(rpc);
+ } else if (!strcmp(op, "info")) {
+ ACCT_MGR_INFO ami;
+ retval = rpc.acct_mgr_info(ami);
+diff --git a/client/gui_rpc_server.cpp b/client/gui_rpc_server.cpp
+index 3b14a255f9..c0593d682d 100644
+--- a/client/gui_rpc_server.cpp
++++ b/client/gui_rpc_server.cpp
+@@ -120,7 +120,7 @@ bool GUI_RPC_CONN_SET::recent_rpc_needs_network(double interval) {
+ }
+
+ // read the GUI RPC password from gui_rpc_auth.cfg;
+-// create one if missing or empty.
++// create one if missing
+ //
+ void GUI_RPC_CONN_SET::get_password() {
+ int retval;
+@@ -132,16 +132,15 @@ void GUI_RPC_CONN_SET::get_password() {
+ strip_whitespace(password);
+ }
+ fclose(f);
+- if (strlen(password)) {
+- return;
+- }
+
+- // File is empty; don't allow this.
+- // Fall through and create a password.
++ // if password is empty, allow it but issue a warning
+ //
+- msg_printf(NULL, MSG_INFO,
+- "%s is empty - assigning new GUI RPC password", GUI_RPC_PASSWD_FILE
+- );
++ if (!strlen(password)) {
++ msg_printf(NULL, MSG_USER_ALERT,
++ "Warning: GUI RPC password is empty. BOINC can be controlled by any user on this computer. See https://boinc.berkeley.edu/gui_rpc_passwd.php for more information."
++ );
++ }
++ return;
+ }
+
+ // make a random password
diff --git a/boinc-client.spec b/boinc-client.spec
index 4b68fd3..e542e20 100644
--- a/boinc-client.spec
+++ b/boinc-client.spec
@@ -17,13 +17,13 @@
Summary: The BOINC client
Name: boinc-client
-Version: 7.16.6
-Release: 7%{?dist}
+Version: 7.16.11
+Release: 1%{?dist}
License: LGPLv2+
URL: http://boinc.berkeley.edu/
%global major_version %(v=%{version}; echo ${v:0:4})
-%global commit 72b77e88d757baf19469b4f7da54bc91b921eb88
+%global commit 5222682feca5506f6168ed5883581a0320c13f8b
%global gittag client_release/%{major_version}/%{version}
# gittag_custom is needed in %%setup process because tar.gz unpacks a folder
# named for example boinc-client_release-7.14-7.14.2
@@ -64,6 +64,8 @@ Patch3: manager_shut_down_connected_client.patch
Patch4: prevent_manager_from_starting_client.patch
# Fedora / EPEL, the folder /etc/boinc-client does not exist, so it should be removed
Patch5: remove_etc_boinc-client_from_systemd_unit_file.patch
+# Concerning 4071.patch read https://github.com/BOINC/boinc/pull/4071
+Patch6: 4071.patch
Requires: logrotate
Requires(post): systemd
@@ -315,6 +317,11 @@ fi
%{_includedir}/boinc
%changelog
+* Fri Oct 30 00:09:07 CET 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.11-1
+- 7.16.11 release
+- Added 4071.patch Read https://github.com/BOINC/boinc/pull/4071
+-
+
* Tue Oct 06 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-7
- Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
diff --git a/disable_idle_time_detection.patch b/disable_idle_time_detection.patch
index bc438cb..847e470 100644
--- a/disable_idle_time_detection.patch
+++ b/disable_idle_time_detection.patch
@@ -1,7 +1,7 @@
-diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-client_release-7.16-7.16.6/client/client_state.cpp
---- boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp 2020-03-23 06:13:30.000000000 +0100
-+++ boinc-client_release-7.16-7.16.6/client/client_state.cpp 2020-04-23 18:03:31.981600455 +0200
-@@ -988,7 +988,8 @@
+diff -urNr boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp boinc-client_release-7.16-7.16.11/client/client_state.cpp
+--- boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp 2020-08-30 10:04:59.000000000 +0200
++++ boinc-client_release-7.16-7.16.11/client/client_state.cpp 2020-10-30 12:39:28.363185257 +0100
+@@ -1003,7 +1003,8 @@
user_active = device_status.user_active;
#else
long idle_time = host_info.user_idle_time(check_all_logins);
@@ -11,9 +11,9 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-c
#endif
if (user_active != old_user_active) {
-diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp
---- boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp 2020-03-23 06:13:30.000000000 +0100
-+++ boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp 2020-04-23 17:36:05.311975291 +0200
+diff -urNr boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp
+--- boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp 2020-08-30 10:04:59.000000000 +0200
++++ boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp 2020-10-30 12:50:06.251852694 +0100
@@ -41,16 +41,6 @@
#include <cstring>
#endif
@@ -31,7 +31,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
#include <cstdio>
#include <cstdlib>
#include <cstring>
-@@ -1559,11 +1549,7 @@
+@@ -1555,11 +1545,7 @@
}
inline long device_idle_time(const char *device) {
@@ -44,7 +44,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
}
// list of directories and prefixes of TTY devices
-@@ -1622,19 +1608,7 @@
+@@ -1618,19 +1604,7 @@
}
inline long all_tty_idle_time() {
@@ -65,7 +65,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
return idle_time;
}
-@@ -1692,43 +1666,7 @@
+@@ -1688,43 +1662,7 @@
// faster than the previous method, which called IOHIDGetParameter().
//
long HOST_INFO::user_idle_time(bool /*check_all_logins*/) {
@@ -109,7 +109,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
return (long)idleTime;
}
-@@ -1736,18 +1674,8 @@
+@@ -1732,18 +1670,8 @@
#if HAVE_UTMP_H
inline long user_idle_time(struct utmp* u) {
@@ -130,7 +130,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
}
#if !HAVE_SETUTENT || !HAVE_GETUTENT
-@@ -1791,227 +1719,29 @@
+@@ -1787,202 +1715,28 @@
inline long all_logins_idle() {
struct utmp* u;
setutent();
@@ -195,33 +195,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- }
- }
-
-- // if the display_values vector is empty, assume something went wrong
-- // (couldn't open directory, no apparent Xn files). Test a static list of
-- // DISPLAY values instead that is likely to catch most common use cases.
-- // (I don't know of many environments where there will simultaneously be
-- // more than seven active, local Xservers. I'm sure they exist... somewhere.
-- // But seven was the magic number for me).
-- //
-- if ( display_values.size() == 0 ) {
-- if ( log_flags.idle_detection_debug ) {
-- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] No DISPLAY values found in /tmp/.X11-unix/."
-- );
-- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] Using static DISPLAY list, :{0..6}."
-- );
-- }
-- display_values.push_back(":0");
-- display_values.push_back(":1");
-- display_values.push_back(":2");
-- display_values.push_back(":3");
-- display_values.push_back(":4");
-- display_values.push_back(":5");
-- display_values.push_back(":6");
-- return display_values;
-- } else {
-- return display_values;
-- }
+- return display_values;
-}
-
-// Ask the X server for user idle time (using XScreenSaver API)
@@ -295,7 +269,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- //
- no_available_x_display = false;
- XScreenSaverQueryInfo(disp, DefaultRootWindow(disp), xssInfo);
-- idle_time = xssInfo->idle;
+- display_idle_time = xssInfo->idle;
-
- // Close the connection to the XServer
- //
@@ -307,10 +281,11 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
-
- if (log_flags.idle_detection_debug) {
- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] XSS idle detection succeeded on DISPLAY '%s'.", it->c_str()
+- "[idle_detection] XSS idle detection succeeded on display '%s'.",
+- it->c_str()
- );
- msg_printf(NULL, MSG_INFO,
-- "[idle_detection] idle_time: %ld", idle_time
+- "[idle_detection] display idle time: %ld sec", display_idle_time
- );
- }
-
@@ -330,7 +305,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
-#endif // HAVE_XSS
-
-#endif // LINUX_LIKE_SYSTEM
-
+-
long HOST_INFO::user_idle_time(bool check_all_logins) {
- long idle_time = USER_IDLE_TIME_INF;
+ long idle_time = 0;
@@ -355,10 +330,10 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-
- // We should find out which of the following are actually relevant
- // on which systems (if any)
- //
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/mouse"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/mouse"));
- // solaris, linux
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/input/mice"));
-- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/kbd"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/input/mice"));
+- idle_time = min(idle_time, (long)device_idle_time("/dev/kbd"));
- // solaris
+ idle_time = 0;
#endif // LINUX_LIKE_SYSTEM
diff --git a/sources b/sources
index 3b921f2..729dd2a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (boinc-client-7.16.6.tar.gz) = a99208704fdacb9810703df289b391d085a7180c2b50c9d11601eb6f484178ce2e33fe77948f0edeb96463a495fd6ed68e33eb293931d778099c52961cb46d69
+SHA512 (boinc-client-7.16.11.tar.gz) = 316fe315372beea8448cb101bb1b73871aed5d95b0d1961a008e2ba31e562f21d5081cbd9885f90e9247eb39daf5ae368eb0b6a9bcfd47220a633296cadd297d
commit 874a27aee2e06c00e58ae9bff4119ffb7b9e8beb
Author: Germano Massullo <germano.massullo(a)gmail.com>
Date: Tue Oct 6 11:50:55 2020 +0200
Re-enabled ppc64 architecture on EPEL7
diff --git a/boinc-client.spec b/boinc-client.spec
index aecc3bf..4b68fd3 100644
--- a/boinc-client.spec
+++ b/boinc-client.spec
@@ -18,7 +18,7 @@
Summary: The BOINC client
Name: boinc-client
Version: 7.16.6
-Release: 6%{?dist}
+Release: 7%{?dist}
License: LGPLv2+
URL: http://boinc.berkeley.edu/
@@ -89,10 +89,6 @@ BuildRequires: openssl-devel
BuildRequires: sqlite-devel
BuildRequires: xcb-util-devel
-# Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
-%if 0%{?el7}
-ExcludeArch: ppc64
-%endif
# EPEL8 webkit2gtk3 is missing for s390x, aarch64
%if 0%{?el8}
ExcludeArch: s390x aarch64
@@ -319,6 +315,9 @@ fi
%{_includedir}/boinc
%changelog
+* Tue Oct 06 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-7
+- Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
+
* Fri Sep 18 2020 Germano Massullo <germano.massullo(a)gmail.com> - 7.16.6-6
- Renamed boinc-manager.desktop to boincmgr.desktop This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1880553
3 years, 5 months
Architecture specific change in rpms/fizz.git
by githook-noreply@fedoraproject.org
The package rpms/fizz.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/fizz.git/commit/?id=688dad0af01b5....
Change:
+%ifarch armv7hl
Thanks.
Full change:
============
commit 688dad0af01b5bd03f43dcba87d836d09ce53062
Author: Michel Alexandre Salim <salimma(a)fedoraproject.org>
Date: Thu Oct 29 18:28:12 2020 -0700
Add static subpackage
Signed-off-by: Michel Alexandre Salim <salimma(a)fedoraproject.org>
diff --git a/fizz.spec b/fizz.spec
index a7fb37e..b4b9fd1 100644
--- a/fizz.spec
+++ b/fizz.spec
@@ -1,3 +1,10 @@
+# shared build links against static folly if both are installed on armv7hl
+%ifarch armv7hl
+%bcond_with static
+%else
+%bcond_without static
+%endif
+
# Some tests fail on 32-bit arches
%ifarch armv7hl i686
%bcond_with tests
@@ -5,17 +12,19 @@
%bcond_without tests
%endif
+%global _static_builddir static_build
+
Name: fizz
Version: 2020.10.26.00
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A C++14 implementation of the TLS-1.3 standard
License: BSD
URL: https://github.com/facebookincubator/fizz
-Source0: https://github.com/facebookincubator/fizz/releases/download/v%{version}/f...
-Patch0: https://github.com/facebookincubator/fizz/commit/66de2b986f81ee8fc9a8a066...
-Patch1: https://github.com/facebookincubator/fizz/commit/22b5d4635f79e614693e55d8...
-Patch2: https://github.com/facebookincubator/fizz/commit/505cbc78dd98f04915220e3d...
+Source0: %{url}/releases/download/v%{version}/fizz-v%{version}.tar.gz
+Patch0: %{url}/commit/66de2b986f81ee8fc9a8a06661ee78d9f4088094.patch#/%{name}-%{version}-maybe_uninitialized.patch
+Patch1: %{url}/commit/22b5d4635f79e614693e55d81dce983da953589c.patch#/%{name}-%{version}-fix_fizz_test_support_dest.patch
+Patch2: %{url}/commit/505cbc78dd98f04915220e3d2796bc026f79c066.patch#/%{name}-%{version}-allow_overriding_version.patch
# Folly is known not to work on big-endian CPUs
# https://bugzilla.redhat.com/show_bug.cgi?id=1892152
@@ -24,6 +33,9 @@ ExcludeArch: s390x
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: folly-devel
+%if %{with static}
+BuildRequires: folly-static
+%endif
%description
Fizz is a TLS 1.3 implementation.
@@ -42,6 +54,17 @@ The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
+%if %{with static}
+%package static
+Summary: Static development libraries for %{name}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+
+%description static
+The %{name}-static package contains static libraries for
+developing applications that use %{name}.
+%endif
+
+
%prep
%autosetup -c -p1
@@ -49,13 +72,38 @@ developing applications that use %{name}.
%build
%cmake fizz \
-DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name} \
+ -DFOLLY_ROOT=%{_libdir}/cmake/folly \
-DPACKAGE_VERSION=%{version} \
-DSO_VERSION=%{version}
%cmake_build
+%if %{with static}
+# static build
+# apply patch to build against static folly
+#cat {SOURCE1} | patch -p1
+mkdir %{_static_builddir}
+cd %{_static_builddir}
+%cmake ../fizz \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_TESTS=OFF \
+ -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name}-static \
+ -DFOLLY_ROOT=%{_libdir}/cmake/folly-static \
+ -DPACKAGE_VERSION=%{version}
+%cmake_build
+%endif
+
+
%install
%cmake_install
+
+%if %{with static}
+# static build
+pushd %{_static_builddir}
+%cmake_install
+popd
+%endif
+
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
@@ -75,8 +123,17 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%{_libdir}/*.so
%{_libdir}/cmake/%{name}
+%if %{with static}
+%files static
+%{_libdir}/*.a
+%{_libdir}/cmake/%{name}-static
+%endif
+
%changelog
+* Thu Oct 29 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-2
+- Add static subpackage
+
* Mon Oct 26 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-1
- Update to 2020.10.26.00
3 years, 5 months
Architecture specific change in rpms/fizz.git
by githook-noreply@fedoraproject.org
The package rpms/fizz.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/fizz.git/commit/?id=688dad0af01b5....
Change:
+%ifarch armv7hl
Thanks.
Full change:
============
commit 688dad0af01b5bd03f43dcba87d836d09ce53062
Author: Michel Alexandre Salim <salimma(a)fedoraproject.org>
Date: Thu Oct 29 18:28:12 2020 -0700
Add static subpackage
Signed-off-by: Michel Alexandre Salim <salimma(a)fedoraproject.org>
diff --git a/fizz.spec b/fizz.spec
index a7fb37e..b4b9fd1 100644
--- a/fizz.spec
+++ b/fizz.spec
@@ -1,3 +1,10 @@
+# shared build links against static folly if both are installed on armv7hl
+%ifarch armv7hl
+%bcond_with static
+%else
+%bcond_without static
+%endif
+
# Some tests fail on 32-bit arches
%ifarch armv7hl i686
%bcond_with tests
@@ -5,17 +12,19 @@
%bcond_without tests
%endif
+%global _static_builddir static_build
+
Name: fizz
Version: 2020.10.26.00
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: A C++14 implementation of the TLS-1.3 standard
License: BSD
URL: https://github.com/facebookincubator/fizz
-Source0: https://github.com/facebookincubator/fizz/releases/download/v%{version}/f...
-Patch0: https://github.com/facebookincubator/fizz/commit/66de2b986f81ee8fc9a8a066...
-Patch1: https://github.com/facebookincubator/fizz/commit/22b5d4635f79e614693e55d8...
-Patch2: https://github.com/facebookincubator/fizz/commit/505cbc78dd98f04915220e3d...
+Source0: %{url}/releases/download/v%{version}/fizz-v%{version}.tar.gz
+Patch0: %{url}/commit/66de2b986f81ee8fc9a8a06661ee78d9f4088094.patch#/%{name}-%{version}-maybe_uninitialized.patch
+Patch1: %{url}/commit/22b5d4635f79e614693e55d81dce983da953589c.patch#/%{name}-%{version}-fix_fizz_test_support_dest.patch
+Patch2: %{url}/commit/505cbc78dd98f04915220e3d2796bc026f79c066.patch#/%{name}-%{version}-allow_overriding_version.patch
# Folly is known not to work on big-endian CPUs
# https://bugzilla.redhat.com/show_bug.cgi?id=1892152
@@ -24,6 +33,9 @@ ExcludeArch: s390x
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: folly-devel
+%if %{with static}
+BuildRequires: folly-static
+%endif
%description
Fizz is a TLS 1.3 implementation.
@@ -42,6 +54,17 @@ The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
+%if %{with static}
+%package static
+Summary: Static development libraries for %{name}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+
+%description static
+The %{name}-static package contains static libraries for
+developing applications that use %{name}.
+%endif
+
+
%prep
%autosetup -c -p1
@@ -49,13 +72,38 @@ developing applications that use %{name}.
%build
%cmake fizz \
-DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name} \
+ -DFOLLY_ROOT=%{_libdir}/cmake/folly \
-DPACKAGE_VERSION=%{version} \
-DSO_VERSION=%{version}
%cmake_build
+%if %{with static}
+# static build
+# apply patch to build against static folly
+#cat {SOURCE1} | patch -p1
+mkdir %{_static_builddir}
+cd %{_static_builddir}
+%cmake ../fizz \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DBUILD_TESTS=OFF \
+ -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name}-static \
+ -DFOLLY_ROOT=%{_libdir}/cmake/folly-static \
+ -DPACKAGE_VERSION=%{version}
+%cmake_build
+%endif
+
+
%install
%cmake_install
+
+%if %{with static}
+# static build
+pushd %{_static_builddir}
+%cmake_install
+popd
+%endif
+
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
@@ -75,8 +123,17 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%{_libdir}/*.so
%{_libdir}/cmake/%{name}
+%if %{with static}
+%files static
+%{_libdir}/*.a
+%{_libdir}/cmake/%{name}-static
+%endif
+
%changelog
+* Thu Oct 29 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-2
+- Add static subpackage
+
* Mon Oct 26 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-1
- Update to 2020.10.26.00
3 years, 5 months
[Report] Packages Restricting Arches
by root
List of packages currently excluding arches (2548)
===========================================
- 0ad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- 90-Second-Portraits
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- GoldenCheetah
ExclusiveArch: %{qt5_qtwebengine_arches}
- GtkAda
ExclusiveArch: %{GPRbuild_arches}
- GtkAda3
ExclusiveArch: %{GPRbuild_arches}
- OpenImageIO
ExclusiveArch: x86_64 ppc64le
- PragmARC
ExclusiveArch: %{GPRbuild_arches}
- R-V8
ExclusiveArch: %{nodejs_arches}
- RdRand
ExclusiveArch: %{ix86} x86_64
- RediSearch
ExclusiveArch: x86_64
- SLOF
ExclusiveArch: ppc64le
- YafaRay
ExclusiveArch: %{ix86} x86_64
- aboot
ExclusiveArch: alpha
- acpid
ExclusiveArch: ia64 x86_64 %{ix86} %{arm} aarch64
- ahven
ExclusiveArch: %{GPRbuild_arches}
- algobox
ExclusiveArch: %{qt5_qtwebengine_arches}
- alleyoop
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x %{arm} aarch64
- american-fuzzy-lop
ExclusiveArch: %{ix86} x86_64
- anet
ExclusiveArch: %{GPRbuild_arches}
- anki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- apmd
ExclusiveArch: %{ix86}
- appstream-generator
ExclusiveArch: x86_64 %{ix86} %{arm}
- arduino
ExclusiveArch: %{go_arches}
- arduino-builder
ExclusiveArch: %{go_arches}
- arm-trusted-firmware
ExclusiveArch: aarch64
- aunit
ExclusiveArch: %GPRbuild_arches
- avgtime
ExclusiveArch: %{ldc_arches}
- aws
ExclusiveArch: %GPRbuild_arches
- banshee
ExclusiveArch: %{mono_arches}
- banshee-community-extensions
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64 %{arm} sparcv9 alpha s390x
- bareftp
ExclusiveArch: %{mono_arches}
- bcal
ExclusiveArch: x86_64 aarch64 ia64 ppc64 ppc64le s390x
- bcc
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- bcm283x-firmware
ExclusiveArch: %{arm} aarch64
- berusky2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{mips}
- biosdevname
ExclusiveArch: %{ix86} x86_64
- blender
ExclusiveArch: x86_64 aarch64 ppc64le
- bless
ExclusiveArch: %mono_arches
- boo
ExclusiveArch: %{mono_arches}
- bpftrace
ExclusiveArch: x86_64 %{power64} aarch64 s390x
- calamares
ExclusiveArch: %{ix86} x86_64
- calibre
ExclusiveArch: %{qt5_qtwebengine_arches}
- ccdciel
ExclusiveArch: %{fpc_arches}
- cdcollect
ExclusiveArch: %{mono_arches}
- ceph
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- chromium
ExclusiveArch: x86_64 i686
ExclusiveArch: x86_64 i686 aarch64
- cjdns
ExclusiveArch: %{nodejs_arches}
- clevis-pin-tpm2
ExclusiveArch: %{rust_arches}
- cmospwd
ExclusiveArch: %{ix86} x86_64
- cmrt
ExclusiveArch: %{ix86} x86_64 ia64
- coffee-script
ExclusiveArch: %{nodejs_arches} noarch
- colorful
ExclusiveArch: %{fpc_arches}
- cpu-x
ExclusiveArch: i686 x86_64
- cpuid
ExclusiveArch: %{ix86} x86_64
- cqrlog
ExclusiveArch: %{fpc_arches}
- crash
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- cri-tools
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- criu
ExclusiveArch: x86_64 %{arm} ppc64le aarch64 s390x
- cryptlib
ExclusiveArch: x86_64 %{ix86} aarch64 ppc64 ppc64le
- cryptobone
ExclusiveArch: x86_64 %{ix86} ppc64 ppc64le aarch64
- daq
ExclusiveArch: x86_64 aarch64
- darktable
ExclusiveArch: x86_64 aarch64 ppc64le
ExclusiveArch: x86_64 ppc64le
- dbus-parsec
ExclusiveArch: %{rust_arches}
- dbus-sharp
ExclusiveArch: %mono_arches
- dbus-sharp-glib
ExclusiveArch: %mono_arches
- dbxtool
ExclusiveArch: i386 x86_64 aarch64
- deepin-daemon
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- deepin-desktop-schemas
ExclusiveArch: %{go_arches}
- discord-irc
ExclusiveArch: %{nodejs_arches} noarch
- dlm
ExclusiveArch: i686 x86_64
- dmidecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- docker-distribution
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- dolphin-emu
ExclusiveArch: x86_64 aarch64
- dotnet-build-reference-packages
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- dotnet3.1
ExclusiveArch: aarch64 x86_64
ExclusiveArch: x86_64
- doublecmd
ExclusiveArch: %{ix86} x86_64
- dpdk
ExclusiveArch: x86_64 i686 aarch64 ppc64le
- dssi-vst
ExclusiveArch: %{ix86} x86_64
- dyninst
ExclusiveArch: %{ix86} x86_64 ppc64le aarch64
- e3
ExclusiveArch: %{ix86} x86_64
- edac-utils
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64}
- edb
ExclusiveArch: %{ix86} x86_64
- edk2
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: x86_64 aarch64
- efibootmgr
ExclusiveArch: %{efi}
- efivar
ExclusiveArch: %{efi}
- elasticdump
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{nodejs_arches} noarch
- elk
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86} aarch64 %{arm} %{power64}
- emacs-slime
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- embree
ExclusiveArch: x86_64 aarch64
- enki
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- envytools
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- eric
ExclusiveArch: %{qt5_qtwebengine_arches} noarch
- extlinux-bootloader
ExclusiveArch: %{arm} aarch64
- fcitx-libpinyin
ExclusiveArch: %{qt5_qtwebengine_arches}
- fedora-dockerfiles
ExclusiveArch: %{go_arches}
- fes
ExclusiveArch: %{ix86} x86_64
- flannel
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- florist
ExclusiveArch: %{GPRbuild_arches}
- fpc
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc64le
- frescobaldi
ExclusiveArch: %{qt5_qtwebengine_arches}
- frysk
ExclusiveArch: %{ix86} x86_64 ppc64
- fwts
ExclusiveArch: x86_64 %{arm} aarch64 s390x %{power64}
- ga
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- gbrainy
ExclusiveArch: %mono_arches
- gdata-sharp
ExclusiveArch: %mono_arches
- gdb-exploitable
ExclusiveArch: x86_64 i386
ExclusiveArch: x86_64 noarch
- gearhead1
ExclusiveArch: %{fpc_arches}
- gela-asis
ExclusiveArch: %GPRbuild_arches
- ghdl
ExclusiveArch: %{GNAT_arches}
- ghostwriter
ExclusiveArch: %{qt5_qtwebengine_arches}
- gio-sharp
ExclusiveArch: %mono_arches
- gir-to-d
ExclusiveArch: %{ldc_arches}
- git-octopus
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- giver
ExclusiveArch: %{mono_arches}
- gkeyfile-sharp
ExclusiveArch: %mono_arches
- glibc32
ExclusiveArch: x86_64
- glibd
ExclusiveArch: %{ldc_arches}
- gmqcc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- gnatcoll
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-bindings
ExclusiveArch: %{GPRbuild_arches}
- gnatcoll-db
ExclusiveArch: %{GPRbuild_arches}
- gnome-boxes
ExclusiveArch: x86_64
- gnome-desktop-sharp
ExclusiveArch: %mono_arches
- gnome-do
ExclusiveArch: %mono_arches
- gnome-guitar
ExclusiveArch: %{mono_arches}
- gnome-keyring-sharp
ExclusiveArch: %mono_arches
- gnome-rdp
ExclusiveArch: %{mono_arches}
- gnome-sharp
ExclusiveArch: %mono_arches
- gnome-subtitles
ExclusiveArch: %mono_arches
- gnu-efi
ExclusiveArch: %{efi}
- go-bindata
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- go-compilers
ExclusiveArch: %{go_arches}
- go-rpm-macros
ExclusiveArch: %{golang_arches} %{gccgo_arches}
- godep
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- golang
ExclusiveArch: %{golang_arches}
- gomtree
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- gotun
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: x86_64
- goverlay
ExclusiveArch: %{fpc_arches}
- gprbuild
ExclusiveArch: %{GPRbuild_arches} %{bootstrap_arch}
- gprolog
ExclusiveArch: x86_64 %{ix86} ppc alpha
- grafana
ExclusiveArch: %{grafana_arches}
- grafana-pcp
ExclusiveArch: %{nodejs_arches}
- gtk-sharp-beans
ExclusiveArch: %mono_arches
- gtk-sharp2
ExclusiveArch: %mono_arches
- gtk-sharp3
ExclusiveArch: %{mono_arches}
- gtkd
ExclusiveArch: %{ldc_arches}
- gudev-sharp
ExclusiveArch: %mono_arches
- hedgewars
ExclusiveArch: %{fpc_arches}
- hsakmt
ExclusiveArch: x86_64 aarch64
- hyena
ExclusiveArch: %{mono_arches}
- hyperscan
ExclusiveArch: x86_64
- hyperv-daemons
ExclusiveArch: i686 x86_64
- i3status-rs
ExclusiveArch: %{rust_arches}
- icaro
ExclusiveArch: %{ix86} x86_64 noarch
- imvirt
ExclusiveArch: %{ix86} x86_64 ia64
- indistarter
ExclusiveArch: %{fpc_arches}
- infinipath-psm
ExclusiveArch: x86_64
- intel-cmt-cat
ExclusiveArch: x86_64 i686 i586
ExclusiveArch: x86_64 i686 i586
- intel-gmmlib
ExclusiveArch: x86_64 i686
- intel-ipsec-mb
ExclusiveArch: x86_64
ExclusiveArch: x86_64
- intel-mediasdk
ExclusiveArch: x86_64
- intel-undervolt
ExclusiveArch: i386 x86_64
- ioport
ExclusiveArch: %{ix86} x86_64
- ipmctl
ExclusiveArch: x86_64
- ipw2100-firmware
ExclusiveArch: noarch i386 x86_64
- ipw2200-firmware
ExclusiveArch: noarch i386 x86_64
- ispc
ExclusiveArch: x86_64 aarch64
- iucode-tool
ExclusiveArch: %{ix86} x86_64
- iyfct
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- java-1.8.0-openjdk-aarch32
ExclusiveArch: %{arm}
- keepass
ExclusiveArch: %{mono_arches}
- kernel
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
- kf5-akonadi-search
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-audiocd-kio
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kalarmcal
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kblog
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarcore
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kcalendarutils
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kitinerary
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-kmailtransport
ExclusiveArch: x86_64 %{arm}
- kf5-ktnef
ExclusiveArch: x86_64 ppc64le aarch64 %{arm}
- kf5-libkdcraw
ExclusiveArch: x86_64 ppc64le %{arm}
- kicad
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- kiwix-desktop
ExclusiveArch: %{qt5_qtwebengine_arches}
- knot-resolver
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- knotes
ExclusiveArch: x86_64 %{arm}
- kompose
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 s390x
- kubernetes
ExclusiveArch: x86_64 aarch64 ppc64le s390x %{arm}
- lazarus
ExclusiveArch: %{fpc_arches}
- lazpaint
ExclusiveArch: %{fpc_arches}
- ldc
ExclusiveArch: %{ldc_arches}
- libbsr
ExclusiveArch: %{power64}
- libclc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 %{power64} s390x
- libcxl
ExclusiveArch: %{power64}
- libdfp
ExclusiveArch: ppc ppc64 ppc64le s390 s390x x86_64
- libguestfs
ExclusiveArch: %{kernel_arches}
- libica
ExclusiveArch: s390 s390x
- libipt
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- libocxl
ExclusiveArch: ppc64le
- libpmemobj-cpp
ExclusiveArch: x86_64
- libpsm2
ExclusiveArch: x86_64
- libquentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- libretro-desmume2015
ExclusiveArch: i686 x86_64
- librtas
ExclusiveArch: %{power64}
- libservicelog
ExclusiveArch: ppc %{power64}
- libsmbios
ExclusiveArch: x86_64 %{ix86}
- libtaskotron
ExclusiveArch: %{kernel_arches} noarch
- libunwind
ExclusiveArch: %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64
- libva-intel-hybrid-driver
ExclusiveArch: %{ix86} x86_64 ia64
- libvma
ExclusiveArch: x86_64 ppc64le ppc64 aarch64
- libvmi
ExclusiveArch: x86_64
- libvpd
ExclusiveArch: %{power64}
- libxsmm
ExclusiveArch: x86_64
- libzfcphbaapi
ExclusiveArch: s390 s390x
- lightdm
ExclusiveArch: x86_64 ppc64le
- log4net
ExclusiveArch: %mono_arches
- lrmi
ExclusiveArch: %{ix86}
- lsvpd
ExclusiveArch: %{power64}
- luajit
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64 s390x ppc64le
- luxcorerender
ExclusiveArch: x86_64
- mactel-boot
ExclusiveArch: x86_64
- manifest-tool
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- mantle
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- marked
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- matreshka
ExclusiveArch: %GPRbuild_arches
- maxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- mbpfan
ExclusiveArch: x86_64
- mcelog
ExclusiveArch: i686 x86_64
- mediaconch
ExclusiveArch: %{qt5_qtwebengine_arches}
- mellowplayer
ExclusiveArch: %{qt5_qtwebengine_arches}
- memkind
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- memtest86+
ExclusiveArch: %{ix86} x86_64
- mesos
ExclusiveArch: x86_64
- microcode_ctl
ExclusiveArch: %{ix86} x86_64
- micropython
ExclusiveArch: %{arm} %{ix86} x86_64
- mine_detector
ExclusiveArch: %{GPRbuild_arches}
- minetest
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- mingw-wine-gecko
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- mirrorlist-server
ExclusiveArch: %{rust_arches}
- mkbootdisk
ExclusiveArch: %{ix86} sparc sparc64 x86_64
- mocha
ExclusiveArch: %{nodejs_arches} noarch
- mod_mono
ExclusiveArch: %mono_arches
- module-build-service
ExclusiveArch: %{ix86} x86_64 noarch
- mokutil
ExclusiveArch: %{ix86} x86_64 aarch64
- mono
ExclusiveArch: %mono_arches
- mono-addins
ExclusiveArch: %mono_arches
- mono-basic
ExclusiveArch: %{mono_arches}
- mono-bouncycastle
ExclusiveArch: %mono_arches
- mono-cecil
ExclusiveArch: %mono_arches
- mono-cecil-flowanalysis
ExclusiveArch: %mono_arches
- mono-reflection
ExclusiveArch: %mono_arches
- mono-tools
ExclusiveArch: %mono_arches
- mono-zeroconf
ExclusiveArch: %mono_arches
- monobristol
ExclusiveArch: %{mono_arches}
- monodevelop
ExclusiveArch: %mono_arches
- monodevelop-debugger-gdb
ExclusiveArch: %{mono_arches}
- monosim
ExclusiveArch: %mono_arches
- mrrescue
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- msr-tools
ExclusiveArch: %{ix86} x86_64
- mustache-d
ExclusiveArch: %{ldc_arches}
- mysql-connector-net
ExclusiveArch: %{mono_arches}
- nant
ExclusiveArch: %mono_arches
- nbc
ExclusiveArch: %{fpc_arches}
- nbdkit
ExclusiveArch: x86_64
- ndesk-dbus
ExclusiveArch: %{mono_arches}
- ndesk-dbus-glib
ExclusiveArch: %{mono_arches}
- newsflash
ExclusiveArch: %{rust_arches}
- newtonsoft-json
ExclusiveArch: %{mono_arches}
- nim
ExclusiveArch: %{nim_arches}
- nispor
ExclusiveArch: %{rust_arches}
- nodejs
ExclusiveArch: %{nodejs_arches}
- nodejs-Base64
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-dynamic-import
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-acorn-jsx
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-acorn-object-spread
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-align-text
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblack
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgblue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgcyan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bggreen
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgmagenta
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgwhite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bgyellow
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-black
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-blue
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-bold
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-cyan
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-dim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-escapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-gray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-green
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-grey
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-hidden
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-inverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-italic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-magenta
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-red
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-reset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-strikethrough
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-styles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-underline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-white
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ansi-wrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansi-yellow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansicolors
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ansistyles
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-any-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-append-field
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-append-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-are-we-there-yet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-argparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-argsparser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-exclude
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arr-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arr-union
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-buffer-from-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-find
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-find-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-flatten
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-foreach
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-ify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-array-index
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-array-unique
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-arraybuffer-dot-slice
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-arraybuffer-equal
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ascli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-asn1
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assert-plus
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-assume
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-array-reduce
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-async-arrays
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-limiter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-async-some
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-asynckit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-atob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-auto-bind
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-autoresolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-aws4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-functions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babel-plugin-syntax-async-generators
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-babylon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backbone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-backoff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-balanced-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base-plugins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base32-encode
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-base64-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-base64id
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bash-match
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-basic-auth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-beeper
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-better-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-better-than-before
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bignumber-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bind-obj-methods
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bit-mask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-blob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-block-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boolbase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-boom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-brace-expansion
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-braces
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-browser-stdout
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-buble
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buf-compare
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-buffer-equal
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-builtin-modules
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-builtins
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-bundle-dependencies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-bunker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-burrito
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-busboy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-byline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caching-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-call-me-maybe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-call-signature
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-callback-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caller-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-callsites
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-camelcase-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-carrier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-caseless
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-center-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-as-promised
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-json-schema
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-oauth2orize-grant
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chai-spies-next
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chainer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-chalk
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-char-spinner
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-character-parser
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-chardet
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-charenc
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-charm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-check-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-check-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ci-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-circular-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-class-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clean-yaml-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-clear-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cli
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-spinner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cli-table
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cliui
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-clone-stats
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-co-with-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-code-point-at
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-codemirror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-coffee-coverage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-collection-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-color-support
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-colour
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-columnify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-combined-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commander
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-common-path-prefix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-commondir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-compare-func
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-compare-versions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-component-inherit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-concat-map
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-connect-livereload
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-console-group
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-consolemd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-content-disposition
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-content-type
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-changelog-preset-loader
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-conventional-commits-filter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-convert-hex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-cookies
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-copy-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-core-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crc
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-crypt
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cryptiles
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csrf
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-css-what
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-csso
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-generate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-parse
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-spectrum
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-csv-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ctype
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-currently-unhandled
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cycle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-cyclist
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-d
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dargs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-data-uri-to-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dateformat
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-death
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-debug-fabulous
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-debug-log
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decamelize-keys
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-decimal-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dedent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deep-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-deeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-default-require-extensions
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-defaults
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-define-property
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delayed-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-delegates
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-depd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-deprecated
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-indent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-detect-newline
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-detect-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dezalgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dicer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-diff
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-difflib
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dirty-chai
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-discord-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-docopt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-dot-prop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-dotfile-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duplexer2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-duration
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-each
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-echomd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ee-first
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ejs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-emojione
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-empty-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-error-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es5-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es5-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-iterator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-promisify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-es6-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-es6-weak-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-html
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-escape-regexp-component
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-escape-string-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-espurify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estraverse-fb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-estree-walker
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-event-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-events
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-events-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-everything-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-brackets
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-expand-tilde
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extend-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-extended-emitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fancy-log
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fast-levenshtein
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fastfall
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-figures
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-file-sync-cmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-filename-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fill-range
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-first-chunk-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flagged-respawn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-flush-write-stream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fmix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fn-dot-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-for-in
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-for-own
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-foreground-child
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forever-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-form-data
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-formatio
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-forwarded
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fragment-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-cached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-exists-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-fs-temp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-fs-write-stream-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-function-loop
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-gaze
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-generic-pool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-port
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-get-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-github-url-from-username-repo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-glob-base
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-expand
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-parent
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glob-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-global-modules
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-globals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-glogg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gonzales-pe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-graceful-readlink
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-growl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-banner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-grunt-contrib-nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-sed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-grunt-simple-mocha
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-binary2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-color
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-cors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-flag
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-gulplog
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-has-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-has-yarn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hawk
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-heap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-hex-to-array-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hoek
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-homedir-polyfill
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hook-std
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-hosted-git-info
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-http-deceiver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-iferr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ignore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-immutable
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imul
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-imurmurhash
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-indent-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-indexof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-inflight
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-info-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-int64-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-intercept-require
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-interpret
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-invert-kv
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ipaddr-dot-js
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-irc-colors
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-formatting
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irc-upd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-irregular-plurals
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-accessor-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-boolean-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-buffer
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-builtin-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-data-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-descriptor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-dotfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-equal-shallow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extendable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-extglob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-finite
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-fullwidth-code-point
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-function
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-generator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-generator-function
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-module
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-negated-glob
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-number
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-number-object
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-odd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-path-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-in-cwd
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-path-inside
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-plain-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-plain-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-primitive
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-promise
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-regexp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-registered
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-relative
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-subset
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-text-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-unc-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-url
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-valid-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-is-valid-instance
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-is-windows
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isarray
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-isexe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isobject
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-isodate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-istanbul-lib-coverage
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-hook
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-lib-report
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-istanbul-reports
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jade
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jest-mock
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-js-base64
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-js-tokens
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jschardet
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stable-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-json-stringify-safe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-json3
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonfile
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-jsonparse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonpointer-dot-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-jsonselect
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-keep-alive-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-keygrip
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-kind-of
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lazy-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lcid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-leche
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-left-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-levn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-numbers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-line-reader
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linefix
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-linkify-it
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-locate-character
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-driver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-ok
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-log-utils
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lolex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-long
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-longest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-loud-rejection
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-lru-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-lru-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-magic-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-make-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-makeerror
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-cache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-obj
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-map-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-markdown
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-matched
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-max-timeout
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-hex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-md5-o-matic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mdn-data
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mdurl
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-media-typer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-memoizee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-metascript
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-mime-db
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mime-types
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimalistic-assert
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-minimist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-minipass
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-deep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mixin-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mkdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-modify-values
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mongodb-core
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-multipipe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-murmur-32
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mustache
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mutate-fs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mysql
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-mz
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nanomsg
ExclusiveArch: %{nodejs_arches}
- nodejs-nanoseconds
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-needle
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-negative-zero
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-net-browserify-alt
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-next-tick
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-node-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-node-uuid
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-nodemon
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nomnom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-noncharacters
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nopt-usage
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-normalize-git-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-normalize-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-cache-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-install-checks
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-package-arg
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-npm-run-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-nth-check
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-number-is-nan
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth-sign
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-oauth2orize
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-copy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-object-dot-omit
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-object-visit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-observable-to-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-obuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-finished
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-on-headers
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-once
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-option-chain
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optionator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-options
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-optjs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-orchestrator
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ordered-read-streams
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-os-homedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-locale
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-os-shim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-output-file-sync
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-own-or
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-own-or-env
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-finally
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-limit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-p-try
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-package-license
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-packaging
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pad
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pad-left
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parallel-transform
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-github-repo-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-glob
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-parse-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parse-passwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parsejson
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseqs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-parseuri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pascalcase
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-passport-http-bearer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-array
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path-dirname
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-absolute
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-is-inside
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-key
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-parse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-path-to-regexp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-path2
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pathval
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pbkdf2-password
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pkginfo
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-platform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-plur
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-posix-character-classes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-precond
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prelude-ls
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-preserve
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-hrtime
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pretty-ms
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pretty-time
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-prism-media
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proclaim
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-progress
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-promise
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-promises-aplus-tests
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-propagate
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-propget
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-proxy-addr
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pruddy-error
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pseudomap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-pump
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-pumpify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-qtdatastream
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-quick-lru
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rainbowsocks
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-random-bytes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-random-path
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-randomatic
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-re-emitter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-cmd-shim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-read-file
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-readdir-enhanced
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-readdirp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-realize-package-specifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-regex-cache
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-regex-not
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-remove-trailing-separator
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-repeat-element
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeat-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-repeating
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-replace-require-self
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-require-inject
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-main-filename
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-relative
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-require-uncached
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-cwd
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-dir
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-from
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-resolve-pkg
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-resolve-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-reusify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rhea
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-right-align
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rimraf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rndm
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-rollup-plugin-buble
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-json
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-plugin-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-rollup-pluginutils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-runforcover
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safe-buffer
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-safe-json-stringify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-safecb
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-samsam
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-seedrandom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-semver
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sentiment
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sequencify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-serialize-error
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-server-destroy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-blocking
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-set-getter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-set-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-setprototypeof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sha
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shallow-clone
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-command
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shebang-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-shelljs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sift
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-signal-exit
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-asyncify
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-simple-fmt
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-is
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-simple-markdown
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sinon-chai
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-sinon-restore
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-slash
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-slide
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-snapdragon-capture
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-capture-set
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-node
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snapdragon-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-snekfetch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sntp
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sorted-object
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-fixtures
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-source-map-resolve
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-source-map-url
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sparkles
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-spawn-sync
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-exceptions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spdx-license-ids
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-spec-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-split2
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-sprintf-js
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ssri
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-trace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stack-utils
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-static-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-consume
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-each
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-pair
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-stream-replace
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stream-transform
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-streamsearch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-streamtest
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-dot-prototype-dot-repeat
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-string-width
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-string_decoder
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringmap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringscanner
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-stringset
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-ansi
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-bom-stream
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-strip-bom-string
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-color
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-eof
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-json-comments
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-strip-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-success-symbol
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-supervisor
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-suspend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-svgo
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-symbol-observable
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tap-out
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tape
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tapes
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tar
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tempfile
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tern-liferay
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-terst
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-testdata-w3c-json-form
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-testutil
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-text-extensions
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-thenify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thenify-all
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-through2-filter
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-thunkify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tildify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-time-diff
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-time-stamp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-timekeeper
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-timers-ext
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tippex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tlds
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tmatch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tmpl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-array
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-object-path
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-to-regex
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-to-regex-range
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-toidentifier
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-touch
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tracejs
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-transformers
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-traverse
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-treeify
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tressa
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-trim-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trim-off-newlines
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-trivial-deferred
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-try-open
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-try-thread-sleep
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tryor
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tsame
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tslib
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tsscmp
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-tunnel-agent
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tv4
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-tweetnacl-util
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-check
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-type-is
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-type-name
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-typescript
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uc-dot-micro
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-uid-safe
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-ultron
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-umask
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unc-path-regex
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-underscore
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unicode-length
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-union-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unique-filename
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-slug
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-unique-temp-dir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unpipe
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-unset-value
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-urix
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-use
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-user-home
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-utf8
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-util-inspect
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-uuid
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vali-date
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-validate-npm-package-name
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-vlq
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-vow-queue
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-walker
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ware
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-warning-symbol
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-watershed
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wbuf
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wcwidth
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-when
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-whet-dot-extend
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-win-spawn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-window-size
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wolfy87-eventemitter
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-woothee
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wordwrap
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrap-ansi
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-wrap-fn
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-wrappy
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-write-file-atomic
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-ws
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xdg-basedir
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-xmlhttprequest
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-y18n
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yallist
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yapool
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yargs
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- nodejs-yargs-parser
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yeast
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-yn
ExclusiveArch: %{nodejs_arches} noarch
- nodejs-zeropad
ExclusiveArch: %{nodejs_arches} noarch
- nodeunit
ExclusiveArch: %{nodejs_arches} noarch
- notify-sharp
ExclusiveArch: %{mono_arches}
- notify-sharp3
ExclusiveArch: %{mono_arches}
- nuget
ExclusiveArch: %{mono_arches}
- numatop
ExclusiveArch: x86_64 ppc64le
- nunit
ExclusiveArch: %{mono_arches}
- nunit2
ExclusiveArch: %{mono_arches}
- nvml
ExclusiveArch: x86_64 ppc64le
- nwchem
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
- obs-service-rust2rpm
ExclusiveArch: %{rust_arches} noarch
- oci-kvm-hook
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
- oci-seccomp-bpf-hook
ExclusiveArch: x86_64 %{power64} aarch64 s390x armv7hl
- oci-umount
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x %{mips}
- oidn
ExclusiveArch: x86_64
- olpc-kbdshim
ExclusiveArch: %{ix86} %{arm}
- olpc-netutils
ExclusiveArch: %{ix86} %{arm}
- olpc-utils
ExclusiveArch: %{ix86} %{arm}
- onednn
ExclusiveArch: x86_64 aarch64 ppc64le
- onedrive
ExclusiveArch: %{ldc_arches}
- opae
ExclusiveArch: x86_64
- opal-prd
ExclusiveArch: ppc64le
- open-vm-tools
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64
- openblas
ExclusiveArch: %{openblas_arches}
- openjfx
ExclusiveArch: x86_64
- openjfx8
ExclusiveArch: x86_64
- openlibm
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 %{power64}
- openni
ExclusiveArch: %{ix86} x86_64 %{arm}
- openni-primesense
ExclusiveArch: %{ix86} x86_64 %{arm}
- openshadinglanguage
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- openssl-ibmca
ExclusiveArch: s390 s390x
- origin
ExclusiveArch: %{go_arches}
ExclusiveArch: x86_64 aarch64 ppc64le s390x
- orion
ExclusiveArch: %{qt5_qtwebengine_arches}
- orthorobot
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- paflib
ExclusiveArch: ppc %{power64}
- parsec
ExclusiveArch: %{rust_arches}
- parsec-tool
ExclusiveArch: %{rust_arches}
- pcc
ExclusiveArch: %{ix86} x86_64
- pcmciautils
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64 %{arm}
- pdfmod
ExclusiveArch: %mono_arches
- peripety
ExclusiveArch: %{rust_arches}
- perl-Dumbbench
ExclusiveArch: %{ix86} x86_64 noarch
- perl-Parse-DMIDecode
ExclusiveArch: %{ix86} x86_64 ia64 aarch64
- pesign
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 %{arm}
- pesign-test-app
ExclusiveArch: x86_64
- pinta
ExclusiveArch: %mono_arches
- pioneer
ExclusiveArch: %{ix86} x86_64
- pmdk-convert
ExclusiveArch: x86_64
- pmemkv
ExclusiveArch: x86_64
- poppler-sharp
ExclusiveArch: %mono_arches
- popub
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- powerpc-utils
ExclusiveArch: ppc %{power64}
- ppc64-diag
ExclusiveArch: ppc %{power64}
- psi-plus
ExclusiveArch: %{qt5_qtwebengine_arches}
- pveclib
ExclusiveArch: ppc %{power64}
- pvs-sbcl
ExclusiveArch: %{ix86} x86_64 ppc sparcv9
- pyqtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- python-etcd
ExclusiveArch: noarch %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- python-healpy
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-javabridge
ExclusiveArch: i686 x86_64
- python-openoffice
ExclusiveArch: noarch x86_64
- python-pymoc
ExclusiveArch: aarch64 ppc64 ppc64le x86_64 s390x
- python-rpi-gpio
ExclusiveArch: %{arm} aarch64
- q4wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- qcint
ExclusiveArch: x86_64
- qclib
ExclusiveArch: s390 s390x
- qemu-sanity-check
ExclusiveArch: %{kernel_arches}
- qevercloud
ExclusiveArch: %{qt5_qtwebengine_arches}
- qmapshack
ExclusiveArch: %{qt5_qtwebengine_arches}
- qt4pas
ExclusiveArch: %{fpc_arches}
- qt5-qtwebengine
ExclusiveArch: %{qt5_qtwebengine_arches}
- quantum-espresso
ExclusiveArch: x86_64 %{ix86}
ExclusiveArch: x86_64 %{ix86}
- quentier
ExclusiveArch: %{qt5_qtwebengine_arches}
- rear
ExclusiveArch: %ix86 x86_64 ppc ppc64 ppc64le ia64
- redhat-lsb
ExclusiveArch: %{ix86} ia64 x86_64 ppc ppc64 s390 s390x %{arm} aarch64 ppc64le
- reg
ExclusiveArch: x86_64
- renderdoc
ExclusiveArch: %{ix86} x86_64
- reptyr
ExclusiveArch: %{ix86} x86_64 %{arm}
- rescene
ExclusiveArch: %{mono_arches}
- restsharp
ExclusiveArch: %{mono_arches}
- rhythmbox-alternative-toolbar
ExclusiveArch: %{ix86} %{arm} x86_64 ppc64 ppc64le
- rmd
ExclusiveArch: %{ix86} x86_64
- rocm-runtime
ExclusiveArch: x86_64 aarch64
- rocminfo
ExclusiveArch: x86_64 aarch64
- rpm-ostree
ExclusiveArch: %{rust_arches}
- rr
ExclusiveArch: %{ix86} x86_64
- rssguard
ExclusiveArch: %{qt5_qtwebengine_arches}
- rubygem-childprocess
ExclusiveArch: %{ix86} x86_64 noarch
- runc
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le %{mips} s390x
- rust
ExclusiveArch: %{rust_arches}
- rust-ab_glyph_rasterizer
ExclusiveArch: %{rust_arches}
- rust-abomonation
ExclusiveArch: %{rust_arches}
- rust-actix
ExclusiveArch: %{rust_arches}
- rust-actix-codec
ExclusiveArch: %{rust_arches}
- rust-actix-connect
ExclusiveArch: %{rust_arches}
- rust-actix-files
ExclusiveArch: %{rust_arches}
- rust-actix-http
ExclusiveArch: %{rust_arches}
- rust-actix-macros
ExclusiveArch: %{rust_arches}
- rust-actix-router
ExclusiveArch: %{rust_arches}
- rust-actix-rt
ExclusiveArch: %{rust_arches}
- rust-actix-server
ExclusiveArch: %{rust_arches}
- rust-actix-server-config
ExclusiveArch: %{rust_arches}
- rust-actix-service
ExclusiveArch: %{rust_arches}
- rust-actix-testing
ExclusiveArch: %{rust_arches}
- rust-actix-threadpool
ExclusiveArch: %{rust_arches}
- rust-actix-tls
ExclusiveArch: %{rust_arches}
- rust-actix-utils
ExclusiveArch: %{rust_arches}
- rust-actix-web
ExclusiveArch: %{rust_arches}
- rust-actix-web-codegen
ExclusiveArch: %{rust_arches}
- rust-actix_derive
ExclusiveArch: %{rust_arches}
- rust-addr2line
ExclusiveArch: %{rust_arches}
- rust-adler
ExclusiveArch: %{rust_arches}
- rust-adler32
ExclusiveArch: %{rust_arches}
- rust-aead
ExclusiveArch: %{rust_arches}
- rust-aes
ExclusiveArch: %{rust_arches}
- rust-aes-soft
ExclusiveArch: %{rust_arches}
- rust-afterburn
ExclusiveArch: %{rust_arches}
- rust-ahash
ExclusiveArch: %{rust_arches}
- rust-aho-corasick
ExclusiveArch: %{rust_arches}
- rust-alacritty
ExclusiveArch: %{rust_arches}
- rust-alacritty_terminal
ExclusiveArch: %{rust_arches}
- rust-alga
ExclusiveArch: %{rust_arches}
- rust-alga_derive
ExclusiveArch: %{rust_arches}
- rust-alloc-no-stdlib
ExclusiveArch: %{rust_arches}
- rust-alloc-stdlib
ExclusiveArch: %{rust_arches}
- rust-alphanumeric-sort
ExclusiveArch: %{rust_arches}
- rust-ammonia
ExclusiveArch: %{rust_arches}
- rust-andrew
ExclusiveArch: %{rust_arches}
- rust-ansi_colours
ExclusiveArch: %{rust_arches}
- rust-ansi_term
ExclusiveArch: %{rust_arches}
- rust-ansi_term0.11
ExclusiveArch: %{rust_arches}
- rust-antidote
ExclusiveArch: %{rust_arches}
- rust-anyhow
ExclusiveArch: %{rust_arches}
- rust-anymap
ExclusiveArch: %{rust_arches}
- rust-aom-sys
ExclusiveArch: %{rust_arches}
- rust-app_dirs
ExclusiveArch: %{rust_arches}
- rust-approx
ExclusiveArch: %{rust_arches}
- rust-arbitrary
ExclusiveArch: %{rust_arches}
- rust-arc-swap
ExclusiveArch: %{rust_arches}
- rust-arg_enum_proc_macro
ExclusiveArch: %{rust_arches}
- rust-argparse
ExclusiveArch: %{rust_arches}
- rust-array-init
ExclusiveArch: %{rust_arches}
- rust-arraydeque
ExclusiveArch: %{rust_arches}
- rust-arrayref
ExclusiveArch: %{rust_arches}
- rust-arrayvec
ExclusiveArch: %{rust_arches}
- rust-article_scraper
ExclusiveArch: %{rust_arches}
- rust-ascii
ExclusiveArch: %{rust_arches}
- rust-askalono
ExclusiveArch: %{rust_arches}
- rust-askalono-cli
ExclusiveArch: %{rust_arches}
- rust-askama
ExclusiveArch: %{rust_arches}
- rust-askama_derive
ExclusiveArch: %{rust_arches}
- rust-askama_escape
ExclusiveArch: %{rust_arches}
- rust-askama_shared
ExclusiveArch: %{rust_arches}
- rust-assert-json-diff
ExclusiveArch: %{rust_arches}
- rust-assert_cli
ExclusiveArch: %{rust_arches}
- rust-assert_cmd
ExclusiveArch: %{rust_arches}
- rust-assert_fs
ExclusiveArch: %{rust_arches}
- rust-assert_matches
ExclusiveArch: %{rust_arches}
- rust-async-attributes
ExclusiveArch: %{rust_arches}
- rust-async-compression
ExclusiveArch: %{rust_arches}
- rust-async-task
ExclusiveArch: %{rust_arches}
- rust-async-trait
ExclusiveArch: %{rust_arches}
- rust-asyncgit
ExclusiveArch: %{rust_arches}
- rust-atk
ExclusiveArch: %{rust_arches}
- rust-atk-sys
ExclusiveArch: %{rust_arches}
- rust-atom
ExclusiveArch: %{rust_arches}
- rust-atomicwrites
ExclusiveArch: %{rust_arches}
- rust-attohttpc
ExclusiveArch: %{rust_arches}
- rust-atty
ExclusiveArch: %{rust_arches}
- rust-autocfg
ExclusiveArch: %{rust_arches}
- rust-average
ExclusiveArch: %{rust_arches}
- rust-awc
ExclusiveArch: %{rust_arches}
- rust-backtrace
ExclusiveArch: %{rust_arches}
- rust-backtrace-sys
ExclusiveArch: %{rust_arches}
- rust-base100
ExclusiveArch: %{rust_arches}
- rust-base64
ExclusiveArch: %{rust_arches}
- rust-base64-0.10
ExclusiveArch: %{rust_arches}
- rust-base64-0.11
ExclusiveArch: %{rust_arches}
- rust-bat
ExclusiveArch: %{rust_arches}
- rust-battery
ExclusiveArch: %{rust_arches}
- rust-bencher
ExclusiveArch: %{rust_arches}
- rust-better-panic
ExclusiveArch: %{rust_arches}
- rust-bincode
ExclusiveArch: %{rust_arches}
- rust-bincode0.8
ExclusiveArch: %{rust_arches}
- rust-bindgen
ExclusiveArch: %{rust_arches}
- rust-binfarce
ExclusiveArch: %{rust_arches}
- rust-biscuit
ExclusiveArch: %{rust_arches}
- rust-bit-set
ExclusiveArch: %{rust_arches}
- rust-bit-vec
ExclusiveArch: %{rust_arches}
- rust-bitfield
ExclusiveArch: %{rust_arches}
- rust-bitflags
ExclusiveArch: %{rust_arches}
- rust-bitmaps
ExclusiveArch: %{rust_arches}
- rust-bitstream-io
ExclusiveArch: %{rust_arches}
- rust-blake2
ExclusiveArch: %{rust_arches}
- rust-blobby
ExclusiveArch: %{rust_arches}
- rust-blobby0.1
ExclusiveArch: %{rust_arches}
- rust-block-buffer
ExclusiveArch: %{rust_arches}
- rust-block-buffer0.7
ExclusiveArch: %{rust_arches}
- rust-block-cipher
ExclusiveArch: %{rust_arches}
- rust-block-cipher-trait
ExclusiveArch: %{rust_arches}
- rust-block-modes
ExclusiveArch: %{rust_arches}
- rust-block-padding
ExclusiveArch: %{rust_arches}
- rust-bodhi
ExclusiveArch: %{rust_arches}
- rust-bodhi-cli
ExclusiveArch: %{rust_arches}
- rust-bootupd
ExclusiveArch: x86_64 aarch64
- rust-box_drawing
ExclusiveArch: %{rust_arches}
- rust-brev
ExclusiveArch: %{rust_arches}
- rust-brotli
ExclusiveArch: %{rust_arches}
- rust-brotli-decompressor
ExclusiveArch: %{rust_arches}
- rust-brotli-sys
ExclusiveArch: %{rust_arches}
- rust-brotli2
ExclusiveArch: %{rust_arches}
- rust-bstr
ExclusiveArch: %{rust_arches}
- rust-buf-min
ExclusiveArch: %{rust_arches}
- rust-buf_redux
ExclusiveArch: %{rust_arches}
- rust-bufstream
ExclusiveArch: %{rust_arches}
- rust-build_const
ExclusiveArch: %{rust_arches}
- rust-bumpalo
ExclusiveArch: %{rust_arches}
- rust-byte-tools
ExclusiveArch: %{rust_arches}
- rust-byte-unit
ExclusiveArch: %{rust_arches}
- rust-bytecount
ExclusiveArch: %{rust_arches}
- rust-bytelines
ExclusiveArch: %{rust_arches}
- rust-bytemuck
ExclusiveArch: %{rust_arches}
- rust-byteorder
ExclusiveArch: %{rust_arches}
- rust-bytes
ExclusiveArch: %{rust_arches}
- rust-bytes0.3
ExclusiveArch: %{rust_arches}
- rust-bytes0.4
ExclusiveArch: %{rust_arches}
- rust-bytesize
ExclusiveArch: %{rust_arches}
- rust-bytestring
ExclusiveArch: %{rust_arches}
- rust-bzip2
ExclusiveArch: %{rust_arches}
- rust-bzip2-sys
ExclusiveArch: %{rust_arches}
- rust-c2-chacha
ExclusiveArch: %{rust_arches}
- rust-c_vec
ExclusiveArch: %{rust_arches}
- rust-cairo-rs
ExclusiveArch: %{rust_arches}
- rust-cairo-sys-rs
ExclusiveArch: %{rust_arches}
- rust-calloop
ExclusiveArch: %{rust_arches}
- rust-caps
ExclusiveArch: %{rust_arches}
- rust-cargo
ExclusiveArch: %{rust_arches}
- rust-cargo-bloat
ExclusiveArch: %{rust_arches}
- rust-cargo-c
ExclusiveArch: %{rust_arches}
- rust-cargo-husky
ExclusiveArch: %{rust_arches}
- rust-cargo-insta
ExclusiveArch: %{rust_arches}
- rust-cargo-platform
ExclusiveArch: %{rust_arches}
- rust-cargo-readme
ExclusiveArch: %{rust_arches}
- rust-cargo_metadata
ExclusiveArch: %{rust_arches}
- rust-cassowary
ExclusiveArch: %{rust_arches}
- rust-cast
ExclusiveArch: %{rust_arches}
- rust-cbindgen
ExclusiveArch: %{rust_arches}
- rust-cc
ExclusiveArch: %{rust_arches}
- rust-cedarwood
ExclusiveArch: %{rust_arches}
- rust-cexpr
ExclusiveArch: %{rust_arches}
- rust-cfg-if
ExclusiveArch: %{rust_arches}
- rust-cfg-if0.1
ExclusiveArch: %{rust_arches}
- rust-chainerror
ExclusiveArch: %{rust_arches}
- rust-charset
ExclusiveArch: %{rust_arches}
- rust-chbs
ExclusiveArch: %{rust_arches}
- rust-checked_int_cast
ExclusiveArch: %{rust_arches}
- rust-choosier
ExclusiveArch: %{rust_arches}
- rust-chrono
ExclusiveArch: %{rust_arches}
- rust-chrono-humanize
ExclusiveArch: %{rust_arches}
- rust-chrono-tz
ExclusiveArch: %{rust_arches}
- rust-chunked_transfer
ExclusiveArch: %{rust_arches}
- rust-clang-sys
ExclusiveArch: %{rust_arches}
- rust-clap
ExclusiveArch: %{rust_arches}
- rust-clicolors-control
ExclusiveArch: %{rust_arches}
- rust-cmake
ExclusiveArch: %{rust_arches}
- rust-color-backtrace
ExclusiveArch: %{rust_arches}
- rust-color_quant
ExclusiveArch: %{rust_arches}
- rust-colored
ExclusiveArch: %{rust_arches}
- rust-colored_json
ExclusiveArch: %{rust_arches}
- rust-compiletest_rs
ExclusiveArch: %{rust_arches}
- rust-comrak
ExclusiveArch: %{rust_arches}
- rust-config
ExclusiveArch: %{rust_arches}
- rust-console
ExclusiveArch: %{rust_arches}
- rust-console0.11
ExclusiveArch: %{rust_arches}
- rust-console0.12
ExclusiveArch: %{rust_arches}
- rust-console0.9
ExclusiveArch: %{rust_arches}
- rust-const-random
ExclusiveArch: %{rust_arches}
- rust-const-random-macro
ExclusiveArch: %{rust_arches}
- rust-const_fn
ExclusiveArch: %{rust_arches}
- rust-content_inspector
ExclusiveArch: %{rust_arches}
- rust-conv
ExclusiveArch: %{rust_arches}
- rust-cookie
ExclusiveArch: %{rust_arches}
- rust-cookie_store
ExclusiveArch: %{rust_arches}
- rust-copydeps
ExclusiveArch: %{rust_arches}
- rust-copyless
ExclusiveArch: %{rust_arches}
- rust-copypasta
ExclusiveArch: %{rust_arches}
- rust-coreos-installer
ExclusiveArch: %{rust_arches}
- rust-cpio
ExclusiveArch: %{rust_arches}
- rust-cpp_demangle
ExclusiveArch: %{rust_arches}
- rust-cpuid-bool
ExclusiveArch: %{rust_arches}
- rust-crates-io
ExclusiveArch: %{rust_arches}
- rust-crc
ExclusiveArch: %{rust_arches}
- rust-crc-any
ExclusiveArch: %{rust_arches}
- rust-crc-core
ExclusiveArch: %{rust_arches}
- rust-crc32fast
ExclusiveArch: %{rust_arches}
- rust-criterion
ExclusiveArch: %{rust_arches}
- rust-criterion-plot
ExclusiveArch: %{rust_arches}
- rust-crossbeam
ExclusiveArch: %{rust_arches}
- rust-crossbeam-channel
ExclusiveArch: %{rust_arches}
- rust-crossbeam-deque
ExclusiveArch: %{rust_arches}
- rust-crossbeam-epoch
ExclusiveArch: %{rust_arches}
- rust-crossbeam-queue
ExclusiveArch: %{rust_arches}
- rust-crossbeam-utils
ExclusiveArch: %{rust_arches}
- rust-crossfont
ExclusiveArch: %{rust_arches}
- rust-crossterm
ExclusiveArch: %{rust_arches}
- rust-crypto-hash
ExclusiveArch: %{rust_arches}
- rust-crypto-mac
ExclusiveArch: %{rust_arches}
- rust-cryptovec
ExclusiveArch: %{rust_arches}
- rust-cssparser
ExclusiveArch: %{rust_arches}
- rust-cssparser-macros
ExclusiveArch: %{rust_arches}
- rust-csv
ExclusiveArch: %{rust_arches}
- rust-csv-core
ExclusiveArch: %{rust_arches}
- rust-ctrlc
ExclusiveArch: %{rust_arches}
- rust-curl
ExclusiveArch: %{rust_arches}
- rust-curl-sys
ExclusiveArch: %{rust_arches}
- rust-custom_derive
ExclusiveArch: %{rust_arches}
- rust-darling
ExclusiveArch: %{rust_arches}
- rust-darling_core
ExclusiveArch: %{rust_arches}
- rust-darling_macro
ExclusiveArch: %{rust_arches}
- rust-dashmap
ExclusiveArch: %{rust_arches}
- rust-data-encoding
ExclusiveArch: %{rust_arches}
- rust-data-url
ExclusiveArch: %{rust_arches}
- rust-datetime
ExclusiveArch: %{rust_arches}
- rust-dav1d-sys
ExclusiveArch: %{rust_arches}
- rust-dbus
ExclusiveArch: %{rust_arches}
- rust-dbus-codegen
ExclusiveArch: %{rust_arches}
- rust-dbus-crossroads
ExclusiveArch: %{rust_arches}
- rust-dbus0.2
ExclusiveArch: %{rust_arches}
- rust-dbus0.6
ExclusiveArch: %{rust_arches}
- rust-dbus0.8
ExclusiveArch: %{rust_arches}
- rust-debug-helper
ExclusiveArch: %{rust_arches}
- rust-decimal
ExclusiveArch: %{rust_arches}
- rust-deflate
ExclusiveArch: %{rust_arches}
- rust-defmac
ExclusiveArch: %{rust_arches}
- rust-delta_e
ExclusiveArch: %{rust_arches}
- rust-derivative
ExclusiveArch: %{rust_arches}
- rust-derive_arbitrary
ExclusiveArch: %{rust_arches}
- rust-derive_builder
ExclusiveArch: %{rust_arches}
- rust-derive_builder_core
ExclusiveArch: %{rust_arches}
- rust-derive_more
ExclusiveArch: %{rust_arches}
- rust-des
ExclusiveArch: %{rust_arches}
- rust-desed
ExclusiveArch: %{rust_arches}
- rust-deunicode
ExclusiveArch: %{rust_arches}
- rust-devicemapper
ExclusiveArch: %{rust_arches}
- rust-dialoguer
ExclusiveArch: %{rust_arches}
- rust-diesel
ExclusiveArch: %{rust_arches}
- rust-diesel_derives
ExclusiveArch: %{rust_arches}
- rust-diesel_migrations
ExclusiveArch: %{rust_arches}
- rust-diff
ExclusiveArch: %{rust_arches}
- rust-difference
ExclusiveArch: %{rust_arches}
- rust-digest
ExclusiveArch: %{rust_arches}
- rust-digest0.8
ExclusiveArch: %{rust_arches}
- rust-directories
ExclusiveArch: %{rust_arches}
- rust-dirs
ExclusiveArch: %{rust_arches}
- rust-dirs-sys
ExclusiveArch: %{rust_arches}
- rust-dirs2
ExclusiveArch: %{rust_arches}
- rust-diskonaut
ExclusiveArch: %{rust_arches}
- rust-dissimilar
ExclusiveArch: %{rust_arches}
- rust-dlib
ExclusiveArch: %{rust_arches}
- rust-dlv-list
ExclusiveArch: %{rust_arches}
- rust-dns-lookup
ExclusiveArch: %{rust_arches}
- rust-dns-parser
ExclusiveArch: %{rust_arches}
- rust-doc-comment
ExclusiveArch: %{rust_arches}
- rust-docmatic
ExclusiveArch: %{rust_arches}
- rust-docopt
ExclusiveArch: %{rust_arches}
- rust-dotenv
ExclusiveArch: %{rust_arches}
- rust-downcast-rs
ExclusiveArch: %{rust_arches}
- rust-dtoa
ExclusiveArch: %{rust_arches}
- rust-dtoa-short
ExclusiveArch: %{rust_arches}
- rust-dua-cli
ExclusiveArch: %{rust_arches}
- rust-duct
ExclusiveArch: %{rust_arches}
- rust-dunce
ExclusiveArch: %{rust_arches}
- rust-dutree
ExclusiveArch: %{rust_arches}
- rust-edit-distance
ExclusiveArch: %{rust_arches}
- rust-either
ExclusiveArch: %{rust_arches}
- rust-elasticlunr-rs
ExclusiveArch: %{rust_arches}
- rust-encode_unicode
ExclusiveArch: %{rust_arches}
- rust-encoding
ExclusiveArch: %{rust_arches}
- rust-encoding-index-japanese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-korean
ExclusiveArch: %{rust_arches}
- rust-encoding-index-simpchinese
ExclusiveArch: %{rust_arches}
- rust-encoding-index-singlebyte
ExclusiveArch: %{rust_arches}
- rust-encoding-index-tradchinese
ExclusiveArch: %{rust_arches}
- rust-encoding_index_tests
ExclusiveArch: %{rust_arches}
- rust-encoding_rs
ExclusiveArch: %{rust_arches}
- rust-encoding_rs_io
ExclusiveArch: %{rust_arches}
- rust-entities
ExclusiveArch: %{rust_arches}
- rust-enum-as-inner
ExclusiveArch: %{rust_arches}
- rust-enum_primitive
ExclusiveArch: %{rust_arches}
- rust-enumflags2
ExclusiveArch: %{rust_arches}
- rust-enumflags2_derive
ExclusiveArch: %{rust_arches}
- rust-env_logger
ExclusiveArch: %{rust_arches}
- rust-env_logger0.4
ExclusiveArch: %{rust_arches}
- rust-env_logger0.5
ExclusiveArch: %{rust_arches}
- rust-env_logger0.6
ExclusiveArch: %{rust_arches}
- rust-environment
ExclusiveArch: %{rust_arches}
- rust-envsubst
ExclusiveArch: %{rust_arches}
- rust-erased-serde
ExclusiveArch: %{rust_arches}
- rust-err-derive
ExclusiveArch: %{rust_arches}
- rust-errln
ExclusiveArch: %{rust_arches}
- rust-errno
ExclusiveArch: %{rust_arches}
- rust-error-chain
ExclusiveArch: %{rust_arches}
- rust-escaper
ExclusiveArch: %{rust_arches}
- rust-escargot
ExclusiveArch: %{rust_arches}
- rust-euclid
ExclusiveArch: %{rust_arches}
- rust-exa
ExclusiveArch: %{rust_arches}
- rust-expat-sys
ExclusiveArch: %{rust_arches}
- rust-extend
ExclusiveArch: %{rust_arches}
- rust-extprim
ExclusiveArch: %{rust_arches}
- rust-extprim_literals_macros
ExclusiveArch: %{rust_arches}
- rust-fail
ExclusiveArch: %{rust_arches}
- rust-failure
ExclusiveArch: %{rust_arches}
- rust-failure-tools
ExclusiveArch: %{rust_arches}
- rust-failure_derive
ExclusiveArch: %{rust_arches}
- rust-fake
ExclusiveArch: %{rust_arches}
- rust-fake-simd
ExclusiveArch: %{rust_arches}
- rust-fake_clock
ExclusiveArch: %{rust_arches}
- rust-fallible-iterator
ExclusiveArch: %{rust_arches}
- rust-fastrand
ExclusiveArch: %{rust_arches}
- rust-fd-find
ExclusiveArch: %{rust_arches}
- rust-fdlimit
ExclusiveArch: %{rust_arches}
- rust-fedora
ExclusiveArch: %{rust_arches}
- rust-fedora-coreos-pinger
ExclusiveArch: %{rust_arches}
- rust-fedora-update-feedback
ExclusiveArch: %{rust_arches}
- rust-feed-rs
ExclusiveArch: %{rust_arches}
- rust-feedbin_api
ExclusiveArch: %{rust_arches}
- rust-feedly_api
ExclusiveArch: %{rust_arches}
- rust-fern
ExclusiveArch: %{rust_arches}
- rust-fever_api
ExclusiveArch: %{rust_arches}
- rust-ffsend
ExclusiveArch: %{rust_arches}
- rust-ffsend-api
ExclusiveArch: %{rust_arches}
- rust-filesize
ExclusiveArch: %{rust_arches}
- rust-filetime
ExclusiveArch: %{rust_arches}
- rust-findshlibs
ExclusiveArch: %{rust_arches}
- rust-fixedbitset
ExclusiveArch: %{rust_arches}
- rust-flame
ExclusiveArch: %{rust_arches}
- rust-flate2
ExclusiveArch: %{rust_arches}
- rust-float-cmp
ExclusiveArch: %{rust_arches}
- rust-float-cmp0.6
ExclusiveArch: %{rust_arches}
- rust-float-ord
ExclusiveArch: %{rust_arches}
- rust-flume
ExclusiveArch: %{rust_arches}
- rust-fnv
ExclusiveArch: %{rust_arches}
- rust-font-kit
ExclusiveArch: %{rust_arches}
- rust-foreign-types
ExclusiveArch: %{rust_arches}
- rust-foreign-types-macros
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared
ExclusiveArch: %{rust_arches}
- rust-foreign-types-shared0.1
ExclusiveArch: %{rust_arches}
- rust-foreign-types0.3
ExclusiveArch: %{rust_arches}
- rust-fragile
ExclusiveArch: %{rust_arches}
- rust-freetype
ExclusiveArch: %{rust_arches}
- rust-freetype-rs
ExclusiveArch: %{rust_arches}
- rust-freetype-sys
ExclusiveArch: %{rust_arches}
- rust-fs2
ExclusiveArch: %{rust_arches}
- rust-fs_extra
ExclusiveArch: %{rust_arches}
- rust-fuse
ExclusiveArch: %{rust_arches}
- rust-futf
ExclusiveArch: %{rust_arches}
- rust-futures
ExclusiveArch: %{rust_arches}
- rust-futures-channel
ExclusiveArch: %{rust_arches}
- rust-futures-core
ExclusiveArch: %{rust_arches}
- rust-futures-cpupool
ExclusiveArch: %{rust_arches}
- rust-futures-executor
ExclusiveArch: %{rust_arches}
- rust-futures-io
ExclusiveArch: %{rust_arches}
- rust-futures-macro
ExclusiveArch: %{rust_arches}
- rust-futures-sink
ExclusiveArch: %{rust_arches}
- rust-futures-task
ExclusiveArch: %{rust_arches}
- rust-futures-timer
ExclusiveArch: %{rust_arches}
- rust-futures-util
ExclusiveArch: %{rust_arches}
- rust-futures0.1
ExclusiveArch: %{rust_arches}
- rust-fuzzy-matcher
ExclusiveArch: %{rust_arches}
- rust-fxhash
ExclusiveArch: %{rust_arches}
- rust-gcsf
ExclusiveArch: %{rust_arches}
- rust-gdk
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf
ExclusiveArch: %{rust_arches}
- rust-gdk-pixbuf-sys
ExclusiveArch: %{rust_arches}
- rust-gdk-sys
ExclusiveArch: %{rust_arches}
- rust-generic-array
ExclusiveArch: %{rust_arches}
- rust-generic-array0.12
ExclusiveArch: %{rust_arches}
- rust-getch
ExclusiveArch: %{rust_arches}
- rust-gethostname
ExclusiveArch: %{rust_arches}
- rust-getopts
ExclusiveArch: %{rust_arches}
- rust-getrandom
ExclusiveArch: %{rust_arches}
- rust-getrandom0.1
ExclusiveArch: %{rust_arches}
- rust-gettext-rs
ExclusiveArch: %{rust_arches}
- rust-gettext-sys
ExclusiveArch: %{rust_arches}
- rust-ghash
ExclusiveArch: %{rust_arches}
- rust-gif
ExclusiveArch: %{rust_arches}
- rust-gif0.10
ExclusiveArch: %{rust_arches}
- rust-gimli
ExclusiveArch: %{rust_arches}
- rust-gio
ExclusiveArch: %{rust_arches}
- rust-gio-sys
ExclusiveArch: %{rust_arches}
- rust-gir-format-check
ExclusiveArch: %{rust_arches}
- rust-git-delta
ExclusiveArch: %{rust_arches}
- rust-git2
ExclusiveArch: %{rust_arches}
- rust-git2-curl
ExclusiveArch: %{rust_arches}
- rust-gitui
ExclusiveArch: %{rust_arches}
- rust-gl_generator
ExclusiveArch: %{rust_arches}
- rust-glib
ExclusiveArch: %{rust_arches}
- rust-glib-macros
ExclusiveArch: %{rust_arches}
- rust-glib-sys
ExclusiveArch: %{rust_arches}
- rust-glob
ExclusiveArch: %{rust_arches}
- rust-globset
ExclusiveArch: %{rust_arches}
- rust-globwalk
ExclusiveArch: %{rust_arches}
- rust-glutin
ExclusiveArch: %{rust_arches}
- rust-glutin_egl_sys
ExclusiveArch: %{rust_arches}
- rust-glutin_glx_sys
ExclusiveArch: %{rust_arches}
- rust-gobject-sys
ExclusiveArch: %{rust_arches}
- rust-goblin
ExclusiveArch: %{rust_arches}
- rust-google-drive3-fork
ExclusiveArch: %{rust_arches}
- rust-gptman
ExclusiveArch: %{rust_arches}
- rust-grep
ExclusiveArch: %{rust_arches}
- rust-grep-cli
ExclusiveArch: %{rust_arches}
- rust-grep-matcher
ExclusiveArch: %{rust_arches}
- rust-grep-pcre2
ExclusiveArch: %{rust_arches}
- rust-grep-printer
ExclusiveArch: %{rust_arches}
- rust-grep-regex
ExclusiveArch: %{rust_arches}
- rust-grep-searcher
ExclusiveArch: %{rust_arches}
- rust-groupable
ExclusiveArch: %{rust_arches}
- rust-gspell
ExclusiveArch: %{rust_arches}
- rust-gspell-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio
ExclusiveArch: %{rust_arches}
- rust-gstreamer-audio-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base
ExclusiveArch: %{rust_arches}
- rust-gstreamer-base-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services
ExclusiveArch: %{rust_arches}
- rust-gstreamer-editing-services-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils
ExclusiveArch: %{rust_arches}
- rust-gstreamer-pbutils-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player
ExclusiveArch: %{rust_arches}
- rust-gstreamer-player-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-sys
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video
ExclusiveArch: %{rust_arches}
- rust-gstreamer-video-sys
ExclusiveArch: %{rust_arches}
- rust-gtk
ExclusiveArch: %{rust_arches}
- rust-gtk-macros
ExclusiveArch: %{rust_arches}
- rust-gtk-rs-lgpl-docs
ExclusiveArch: %{rust_arches}
- rust-gtk-source-sys
ExclusiveArch: %{rust_arches}
- rust-gtk-sys
ExclusiveArch: %{rust_arches}
- rust-gzip-header
ExclusiveArch: %{rust_arches}
- rust-h2
ExclusiveArch: %{rust_arches}
- rust-half
ExclusiveArch: %{rust_arches}
- rust-hamcrest
ExclusiveArch: %{rust_arches}
- rust-handlebars
ExclusiveArch: %{rust_arches}
- rust-hashbrown
ExclusiveArch: %{rust_arches}
- rust-headers
ExclusiveArch: %{rust_arches}
- rust-headers-core
ExclusiveArch: %{rust_arches}
- rust-headers-derive
ExclusiveArch: %{rust_arches}
- rust-heapsize
ExclusiveArch: %{rust_arches}
- rust-heck
ExclusiveArch: %{rust_arches}
- rust-hex
ExclusiveArch: %{rust_arches}
- rust-hex-literal
ExclusiveArch: %{rust_arches}
- rust-hex-literal-impl
ExclusiveArch: %{rust_arches}
- rust-hex-literal0.2
ExclusiveArch: %{rust_arches}
- rust-hexyl
ExclusiveArch: %{rust_arches}
- rust-hkdf
ExclusiveArch: %{rust_arches}
- rust-hmac
ExclusiveArch: %{rust_arches}
- rust-home
ExclusiveArch: %{rust_arches}
- rust-horrorshow
ExclusiveArch: %{rust_arches}
- rust-hostname
ExclusiveArch: %{rust_arches}
- rust-hostname-validator
ExclusiveArch: %{rust_arches}
- rust-html2pango
ExclusiveArch: %{rust_arches}
- rust-html5ever
ExclusiveArch: %{rust_arches}
- rust-http
ExclusiveArch: %{rust_arches}
- rust-http-body
ExclusiveArch: %{rust_arches}
- rust-http0.1
ExclusiveArch: %{rust_arches}
- rust-httparse
ExclusiveArch: %{rust_arches}
- rust-httpdate
ExclusiveArch: %{rust_arches}
- rust-humansize
ExclusiveArch: %{rust_arches}
- rust-humantime
ExclusiveArch: %{rust_arches}
- rust-humantime1
ExclusiveArch: %{rust_arches}
- rust-hyper
ExclusiveArch: %{rust_arches}
- rust-hyper-native-tls
ExclusiveArch: %{rust_arches}
- rust-hyper-staticfile
ExclusiveArch: %{rust_arches}
- rust-hyper-tls
ExclusiveArch: %{rust_arches}
- rust-hyper0.10
ExclusiveArch: %{rust_arches}
- rust-hyperfine
ExclusiveArch: %{rust_arches}
- rust-i3ipc
ExclusiveArch: %{rust_arches}
- rust-id_tree
ExclusiveArch: %{rust_arches}
- rust-ident_case
ExclusiveArch: %{rust_arches}
- rust-idna
ExclusiveArch: %{rust_arches}
- rust-idna0.1
ExclusiveArch: %{rust_arches}
- rust-ignore
ExclusiveArch: %{rust_arches}
- rust-im-rc
ExclusiveArch: %{rust_arches}
- rust-image
ExclusiveArch: %{rust_arches}
- rust-imgref
ExclusiveArch: %{rust_arches}
- rust-indexmap
ExclusiveArch: %{rust_arches}
- rust-indicatif
ExclusiveArch: %{rust_arches}
- rust-inflate
ExclusiveArch: %{rust_arches}
- rust-inotify
ExclusiveArch: %{rust_arches}
- rust-inotify-sys
ExclusiveArch: %{rust_arches}
- rust-input_buffer
ExclusiveArch: %{rust_arches}
- rust-insta
ExclusiveArch: %{rust_arches}
- rust-instant
ExclusiveArch: %{rust_arches}
- rust-interpolate_name
ExclusiveArch: %{rust_arches}
- rust-intervaltree
ExclusiveArch: %{rust_arches}
- rust-invalidstring
ExclusiveArch: %{rust_arches}
- rust-iovec
ExclusiveArch: %{rust_arches}
- rust-ipnet
ExclusiveArch: %{rust_arches}
- rust-ipnetwork
ExclusiveArch: %{rust_arches}
- rust-iron
ExclusiveArch: %{rust_arches}
- rust-isahc
ExclusiveArch: %{rust_arches}
- rust-iso8601
ExclusiveArch: %{rust_arches}
- rust-iter-read
ExclusiveArch: %{rust_arches}
- rust-itertools
ExclusiveArch: %{rust_arches}
- rust-itertools-num
ExclusiveArch: %{rust_arches}
- rust-itertools0.8
ExclusiveArch: %{rust_arches}
- rust-itoa
ExclusiveArch: %{rust_arches}
- rust-ivf
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs
ExclusiveArch: %{rust_arches}
- rust-javascriptcore-rs-sys
ExclusiveArch: %{rust_arches}
- rust-jetscii
ExclusiveArch: %{rust_arches}
- rust-jieba-rs
ExclusiveArch: %{rust_arches}
- rust-jobserver
ExclusiveArch: %{rust_arches}
- rust-jpeg-decoder
ExclusiveArch: %{rust_arches}
- rust-jql
ExclusiveArch: %{rust_arches}
- rust-js-sys
ExclusiveArch: %{rust_arches}
- rust-json
ExclusiveArch: %{rust_arches}
- rust-jwalk
ExclusiveArch: %{rust_arches}
- rust-keccak
ExclusiveArch: %{rust_arches}
- rust-khronos_api
ExclusiveArch: %{rust_arches}
- rust-kstring
ExclusiveArch: %{rust_arches}
- rust-kv-log-macro
ExclusiveArch: %{rust_arches}
- rust-lab
ExclusiveArch: %{rust_arches}
- rust-language-tags
ExclusiveArch: %{rust_arches}
- rust-lazy-init
ExclusiveArch: %{rust_arches}
- rust-lazy_static
ExclusiveArch: %{rust_arches}
- rust-lazycell
ExclusiveArch: %{rust_arches}
- rust-letter-avatar
ExclusiveArch: %{rust_arches}
- rust-lexical-core
ExclusiveArch: %{rust_arches}
- rust-libc
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs
ExclusiveArch: %{rust_arches}
- rust-libcryptsetup-rs-sys
ExclusiveArch: %{rust_arches}
- rust-libdbus-sys
ExclusiveArch: %{rust_arches}
- rust-libflate
ExclusiveArch: %{rust_arches}
- rust-libflate_lz77
ExclusiveArch: %{rust_arches}
- rust-libgit2-sys
ExclusiveArch: %{rust_arches}
- rust-libhandy
ExclusiveArch: %{rust_arches}
- rust-libhandy-sys
ExclusiveArch: %{rust_arches}
- rust-libloading
ExclusiveArch: %{rust_arches}
- rust-libm
ExclusiveArch: %{rust_arches}
- rust-libmount
ExclusiveArch: %{rust_arches}
- rust-liboverdrop
ExclusiveArch: %{rust_arches}
- rust-libpulse-binding
ExclusiveArch: %{rust_arches}
- rust-libpulse-sys
ExclusiveArch: %{rust_arches}
- rust-libslirp
ExclusiveArch: %{rust_arches}
- rust-libslirp-sys
ExclusiveArch: %{rust_arches}
- rust-libsqlite3-sys
ExclusiveArch: %{rust_arches}
- rust-libssh2-sys
ExclusiveArch: %{rust_arches}
- rust-libsystemd
ExclusiveArch: %{rust_arches}
- rust-libudev
ExclusiveArch: %{rust_arches}
- rust-libudev-sys
ExclusiveArch: %{rust_arches}
- rust-libxml
ExclusiveArch: %{rust_arches}
- rust-libz-sys
ExclusiveArch: %{rust_arches}
- rust-line-wrap
ExclusiveArch: %{rust_arches}
- rust-line_drawing
ExclusiveArch: %{rust_arches}
- rust-linked-hash-map
ExclusiveArch: %{rust_arches}
- rust-linkify
ExclusiveArch: %{rust_arches}
- rust-lipsum
ExclusiveArch: %{rust_arches}
- rust-liquid
ExclusiveArch: %{rust_arches}
- rust-liquid-core
ExclusiveArch: %{rust_arches}
- rust-liquid-derive
ExclusiveArch: %{rust_arches}
- rust-liquid-lib
ExclusiveArch: %{rust_arches}
- rust-listenfd
ExclusiveArch: %{rust_arches}
- rust-lmdb
ExclusiveArch: %{rust_arches}
- rust-lmdb-sys
ExclusiveArch: %{rust_arches}
- rust-locale
ExclusiveArch: %{rust_arches}
- rust-locale_config
ExclusiveArch: %{rust_arches}
- rust-lock_api
ExclusiveArch: %{rust_arches}
- rust-lockfree
ExclusiveArch: %{rust_arches}
- rust-log
ExclusiveArch: %{rust_arches}
- rust-log-mdc
ExclusiveArch: %{rust_arches}
- rust-log-panics
ExclusiveArch: %{rust_arches}
- rust-log0.3
ExclusiveArch: %{rust_arches}
- rust-log4rs
ExclusiveArch: %{rust_arches}
- rust-loggerv
ExclusiveArch: %{rust_arches}
- rust-loopdev
ExclusiveArch: %{rust_arches}
- rust-lru-cache
ExclusiveArch: %{rust_arches}
- rust-lru_time_cache
ExclusiveArch: %{rust_arches}
- rust-lscolors
ExclusiveArch: %{rust_arches}
- rust-lsd
ExclusiveArch: %{rust_arches}
- rust-lzma-sys
ExclusiveArch: %{rust_arches}
- rust-lzw
ExclusiveArch: %{rust_arches}
- rust-mac
ExclusiveArch: %{rust_arches}
- rust-macro-attr
ExclusiveArch: %{rust_arches}
- rust-magic-crypt
ExclusiveArch: %{rust_arches}
- rust-maildir
ExclusiveArch: %{rust_arches}
- rust-mailparse
ExclusiveArch: %{rust_arches}
- rust-man
ExclusiveArch: %{rust_arches}
- rust-maplit
ExclusiveArch: %{rust_arches}
- rust-markup5ever
ExclusiveArch: %{rust_arches}
- rust-markup5ever_rcdom
ExclusiveArch: %{rust_arches}
- rust-match_cfg
ExclusiveArch: %{rust_arches}
- rust-matches
ExclusiveArch: %{rust_arches}
- rust-matrixmultiply
ExclusiveArch: %{rust_arches}
- rust-maxminddb
ExclusiveArch: %{rust_arches}
- rust-maybe-uninit
ExclusiveArch: %{rust_arches}
- rust-mbox
ExclusiveArch: %{rust_arches}
- rust-md-5
ExclusiveArch: %{rust_arches}
- rust-md5
ExclusiveArch: %{rust_arches}
- rust-mdl
ExclusiveArch: %{rust_arches}
- rust-memchr
ExclusiveArch: %{rust_arches}
- rust-memmap
ExclusiveArch: %{rust_arches}
- rust-memmap2
ExclusiveArch: %{rust_arches}
- rust-memoffset
ExclusiveArch: %{rust_arches}
- rust-metadeps
ExclusiveArch: %{rust_arches}
- rust-migrations_internals
ExclusiveArch: %{rust_arches}
- rust-migrations_macros
ExclusiveArch: %{rust_arches}
- rust-mime
ExclusiveArch: %{rust_arches}
- rust-mime-sniffer
ExclusiveArch: %{rust_arches}
- rust-mime0.2
ExclusiveArch: %{rust_arches}
- rust-mime_guess
ExclusiveArch: %{rust_arches}
- rust-mime_guess1
ExclusiveArch: %{rust_arches}
- rust-miniflux_api
ExclusiveArch: %{rust_arches}
- rust-miniz-sys
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide0.3
ExclusiveArch: %{rust_arches}
- rust-miniz_oxide_c_api
ExclusiveArch: %{rust_arches}
- rust-mint
ExclusiveArch: %{rust_arches}
- rust-mio
ExclusiveArch: %{rust_arches}
- rust-mio-extras
ExclusiveArch: %{rust_arches}
- rust-mio-uds
ExclusiveArch: %{rust_arches}
- rust-mio0.6
ExclusiveArch: %{rust_arches}
- rust-mktemp
ExclusiveArch: %{rust_arches}
- rust-mnt
ExclusiveArch: %{rust_arches}
- rust-mockito
ExclusiveArch: %{rust_arches}
- rust-modifier
ExclusiveArch: %{rust_arches}
- rust-muldiv
ExclusiveArch: %{rust_arches}
- rust-multimap
ExclusiveArch: %{rust_arches}
- rust-multipart
ExclusiveArch: %{rust_arches}
- rust-mustache
ExclusiveArch: %{rust_arches}
- rust-nalgebra
ExclusiveArch: %{rust_arches}
- rust-nasm-rs
ExclusiveArch: %{rust_arches}
- rust-native-tls
ExclusiveArch: %{rust_arches}
- rust-natord
ExclusiveArch: %{rust_arches}
- rust-net2
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-core
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-route
ExclusiveArch: %{rust_arches}
- rust-netlink-packet-utils
ExclusiveArch: %{rust_arches}
- rust-netlink-proto
ExclusiveArch: %{rust_arches}
- rust-netlink-sys
ExclusiveArch: %{rust_arches}
- rust-netmap_sys
ExclusiveArch: %{rust_arches}
- rust-new_debug_unreachable
ExclusiveArch: %{rust_arches}
- rust-news-flash
ExclusiveArch: %{rust_arches}
- rust-newtype_derive
ExclusiveArch: %{rust_arches}
- rust-nickel
ExclusiveArch: %{rust_arches}
- rust-nix
ExclusiveArch: %{rust_arches}
- rust-nix0.14
ExclusiveArch: %{rust_arches}
- rust-nix0.17
ExclusiveArch: %{rust_arches}
- rust-no-panic
ExclusiveArch: %{rust_arches}
- rust-nodrop
ExclusiveArch: %{rust_arches}
- rust-nom
ExclusiveArch: %{rust_arches}
- rust-nom4
ExclusiveArch: %{rust_arches}
- rust-noop_proc_macro
ExclusiveArch: %{rust_arches}
- rust-normalize-line-endings
ExclusiveArch: %{rust_arches}
- rust-notify
ExclusiveArch: %{rust_arches}
- rust-num
ExclusiveArch: %{rust_arches}
- rust-num-bigint
ExclusiveArch: %{rust_arches}
- rust-num-bigint-dig
ExclusiveArch: %{rust_arches}
- rust-num-complex
ExclusiveArch: %{rust_arches}
- rust-num-derive
ExclusiveArch: %{rust_arches}
- rust-num-integer
ExclusiveArch: %{rust_arches}
- rust-num-iter
ExclusiveArch: %{rust_arches}
- rust-num-rational
ExclusiveArch: %{rust_arches}
- rust-num-traits
ExclusiveArch: %{rust_arches}
- rust-num-traits0.1
ExclusiveArch: %{rust_arches}
- rust-num_cpus
ExclusiveArch: %{rust_arches}
- rust-number_prefix
ExclusiveArch: %{rust_arches}
- rust-numtoa
ExclusiveArch: %{rust_arches}
- rust-obfstr
ExclusiveArch: %{rust_arches}
- rust-obfstr-impl
ExclusiveArch: %{rust_arches}
- rust-object
ExclusiveArch: %{rust_arches}
- rust-odds
ExclusiveArch: %{rust_arches}
- rust-oid
ExclusiveArch: %{rust_arches}
- rust-once_cell
ExclusiveArch: %{rust_arches}
- rust-onig
ExclusiveArch: %{rust_arches}
- rust-onig_sys
ExclusiveArch: %{rust_arches}
- rust-oorandom
ExclusiveArch: %{rust_arches}
- rust-opaque-debug
ExclusiveArch: %{rust_arches}
- rust-open
ExclusiveArch: %{rust_arches}
- rust-openat
ExclusiveArch: %{rust_arches}
- rust-openat-ext
ExclusiveArch: %{rust_arches}
- rust-opener
ExclusiveArch: %{rust_arches}
- rust-openssh-keys
ExclusiveArch: %{rust_arches}
- rust-openssl
ExclusiveArch: %{rust_arches}
- rust-openssl-probe
ExclusiveArch: %{rust_arches}
- rust-openssl-sys
ExclusiveArch: %{rust_arches}
- rust-ord_subset
ExclusiveArch: %{rust_arches}
- rust-ordered-float
ExclusiveArch: %{rust_arches}
- rust-ordered-multimap
ExclusiveArch: %{rust_arches}
- rust-os_info
ExclusiveArch: %{rust_arches}
- rust-os_pipe
ExclusiveArch: %{rust_arches}
- rust-osmesa-sys
ExclusiveArch: %{rust_arches}
- rust-osstrtools
ExclusiveArch: %{rust_arches}
- rust-ostree
ExclusiveArch: %{rust_arches}
- rust-ostree-sys
ExclusiveArch: %{rust_arches}
- rust-owned-alloc
ExclusiveArch: %{rust_arches}
- rust-owned_ttf_parser
ExclusiveArch: %{rust_arches}
- rust-owning_ref
ExclusiveArch: %{rust_arches}
- rust-packaging
ExclusiveArch: %{rust_arches}
- rust-pad
ExclusiveArch: %{rust_arches}
- rust-pager
ExclusiveArch: %{rust_arches}
- rust-palette
ExclusiveArch: %{rust_arches}
- rust-palette_derive
ExclusiveArch: %{rust_arches}
- rust-pango
ExclusiveArch: %{rust_arches}
- rust-pango-sys
ExclusiveArch: %{rust_arches}
- rust-pangocairo
ExclusiveArch: %{rust_arches}
- rust-pangocairo-sys
ExclusiveArch: %{rust_arches}
- rust-parity-wasm
ExclusiveArch: %{rust_arches}
- rust-parking_lot
ExclusiveArch: %{rust_arches}
- rust-parking_lot_core
ExclusiveArch: %{rust_arches}
- rust-parse-zoneinfo
ExclusiveArch: %{rust_arches}
- rust-parsec-client
ExclusiveArch: %{rust_arches}
- rust-parsec-interface
ExclusiveArch: %{rust_arches}
- rust-partial-io
ExclusiveArch: %{rust_arches}
- rust-paste
ExclusiveArch: %{rust_arches}
- rust-paste-impl
ExclusiveArch: %{rust_arches}
- rust-path-absolutize
ExclusiveArch: %{rust_arches}
- rust-path-dedot
ExclusiveArch: %{rust_arches}
- rust-path-slash
ExclusiveArch: %{rust_arches}
- rust-pathdiff
ExclusiveArch: %{rust_arches}
- rust-pathfinder_geometry
ExclusiveArch: %{rust_arches}
- rust-pathfinder_simd
ExclusiveArch: %{rust_arches}
- rust-pbr
ExclusiveArch: %{rust_arches}
- rust-pcap
ExclusiveArch: %{rust_arches}
- rust-pcre2
ExclusiveArch: %{rust_arches}
- rust-pcre2-sys
ExclusiveArch: %{rust_arches}
- rust-peeking_take_while
ExclusiveArch: %{rust_arches}
- rust-peg
ExclusiveArch: %{rust_arches}
- rust-peg-macros
ExclusiveArch: %{rust_arches}
- rust-peg-runtime
ExclusiveArch: %{rust_arches}
- rust-peg0.5
ExclusiveArch: %{rust_arches}
- rust-pem
ExclusiveArch: %{rust_arches}
- rust-percent-encoding
ExclusiveArch: %{rust_arches}
- rust-percent-encoding1
ExclusiveArch: %{rust_arches}
- rust-peresil
ExclusiveArch: %{rust_arches}
- rust-permutate
ExclusiveArch: %{rust_arches}
- rust-permutohedron
ExclusiveArch: %{rust_arches}
- rust-pest
ExclusiveArch: %{rust_arches}
- rust-pest_derive
ExclusiveArch: %{rust_arches}
- rust-pest_generator
ExclusiveArch: %{rust_arches}
- rust-pest_meta
ExclusiveArch: %{rust_arches}
- rust-petgraph
ExclusiveArch: %{rust_arches}
- rust-phf
ExclusiveArch: %{rust_arches}
- rust-phf0.7
ExclusiveArch: %{rust_arches}
- rust-phf_codegen
ExclusiveArch: %{rust_arches}
- rust-phf_codegen0.7
ExclusiveArch: %{rust_arches}
- rust-phf_generator
ExclusiveArch: %{rust_arches}
- rust-phf_generator0.7
ExclusiveArch: %{rust_arches}
- rust-phf_macros
ExclusiveArch: %{rust_arches}
- rust-phf_macros0.7
ExclusiveArch: %{rust_arches}
- rust-phf_shared
ExclusiveArch: %{rust_arches}
- rust-phf_shared0.7
ExclusiveArch: %{rust_arches}
- rust-picky-asn1
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-der
ExclusiveArch: %{rust_arches}
- rust-picky-asn1-x509
ExclusiveArch: %{rust_arches}
- rust-pico-args
ExclusiveArch: %{rust_arches}
- rust-pin-project
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal
ExclusiveArch: %{rust_arches}
- rust-pin-project-internal0.4
ExclusiveArch: %{rust_arches}
- rust-pin-project-lite
ExclusiveArch: %{rust_arches}
- rust-pin-project0.4
ExclusiveArch: %{rust_arches}
- rust-pin-utils
ExclusiveArch: %{rust_arches}
- rust-pipe
ExclusiveArch: %{rust_arches}
- rust-piper
ExclusiveArch: %{rust_arches}
- rust-pkcs11
ExclusiveArch: %{rust_arches}
- rust-pkg-config
ExclusiveArch: %{rust_arches}
- rust-plain
ExclusiveArch: %{rust_arches}
- rust-platform-dirs
ExclusiveArch: %{rust_arches}
- rust-platforms
ExclusiveArch: %{rust_arches}
- rust-plist
ExclusiveArch: %{rust_arches}
- rust-plotters
ExclusiveArch: %{rust_arches}
- rust-plugin
ExclusiveArch: %{rust_arches}
- rust-pnet_base
ExclusiveArch: %{rust_arches}
- rust-pnet_datalink
ExclusiveArch: %{rust_arches}
- rust-pnet_sys
ExclusiveArch: %{rust_arches}
- rust-png
ExclusiveArch: %{rust_arches}
- rust-podio
ExclusiveArch: %{rust_arches}
- rust-polyval
ExclusiveArch: %{rust_arches}
- rust-pommes
ExclusiveArch: %{rust_arches}
- rust-ppv-lite86
ExclusiveArch: %{rust_arches}
- rust-pq-sys
ExclusiveArch: %{rust_arches}
- rust-precomputed-hash
ExclusiveArch: %{rust_arches}
- rust-predicates
ExclusiveArch: %{rust_arches}
- rust-predicates-core
ExclusiveArch: %{rust_arches}
- rust-predicates-tree
ExclusiveArch: %{rust_arches}
- rust-pretty-git-prompt
ExclusiveArch: %{rust_arches}
- rust-pretty-hex
ExclusiveArch: %{rust_arches}
- rust-pretty_assertions
ExclusiveArch: %{rust_arches}
- rust-pretty_env_logger
ExclusiveArch: %{rust_arches}
- rust-prettytable-rs
ExclusiveArch: %{rust_arches}
- rust-proc-macro-crate
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error
ExclusiveArch: %{rust_arches}
- rust-proc-macro-error-attr
ExclusiveArch: %{rust_arches}
- rust-proc-macro-hack
ExclusiveArch: %{rust_arches}
- rust-proc-macro-nested
ExclusiveArch: %{rust_arches}
- rust-proc-macro2
ExclusiveArch: %{rust_arches}
- rust-proc-macro2-0.4
ExclusiveArch: %{rust_arches}
- rust-proc-quote
ExclusiveArch: %{rust_arches}
- rust-proc-quote-impl
ExclusiveArch: %{rust_arches}
- rust-procedural-masquerade
ExclusiveArch: %{rust_arches}
- rust-process_path
ExclusiveArch: %{rust_arches}
- rust-procfs
ExclusiveArch: %{rust_arches}
- rust-procs
ExclusiveArch: %{rust_arches}
- rust-progress-streams
ExclusiveArch: %{rust_arches}
- rust-prometheus
ExclusiveArch: %{rust_arches}
- rust-proptest
ExclusiveArch: %{rust_arches}
- rust-proptest-derive
ExclusiveArch: %{rust_arches}
- rust-prost
ExclusiveArch: %{rust_arches}
- rust-prost-build
ExclusiveArch: %{rust_arches}
- rust-prost-derive
ExclusiveArch: %{rust_arches}
- rust-prost-types
ExclusiveArch: %{rust_arches}
- rust-protobuf
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen
ExclusiveArch: %{rust_arches}
- rust-protobuf-codegen-pure
ExclusiveArch: %{rust_arches}
- rust-protoc
ExclusiveArch: %{rust_arches}
- rust-protoc-rust
ExclusiveArch: %{rust_arches}
- rust-psa-crypto
ExclusiveArch: %{rust_arches}
- rust-psa-crypto-sys
ExclusiveArch: %{rust_arches}
- rust-psm
ExclusiveArch: %{rust_arches}
- rust-psutil
ExclusiveArch: %{rust_arches}
- rust-publicsuffix
ExclusiveArch: %{rust_arches}
- rust-pulldown-cmark
ExclusiveArch: %{rust_arches}
- rust-pulse
ExclusiveArch: %{rust_arches}
- rust-pure-rust-locales
ExclusiveArch: %{rust_arches}
- rust-qr2term
ExclusiveArch: %{rust_arches}
- rust-qrcode
ExclusiveArch: %{rust_arches}
- rust-quick-error
ExclusiveArch: %{rust_arches}
- rust-quick-error1
ExclusiveArch: %{rust_arches}
- rust-quick-xml
ExclusiveArch: %{rust_arches}
- rust-quickcheck
ExclusiveArch: %{rust_arches}
- rust-quickcheck0.6
ExclusiveArch: %{rust_arches}
- rust-quickcheck_macros
ExclusiveArch: %{rust_arches}
- rust-quickersort
ExclusiveArch: %{rust_arches}
- rust-quote
ExclusiveArch: %{rust_arches}
- rust-quote0.3
ExclusiveArch: %{rust_arches}
- rust-quote0.6
ExclusiveArch: %{rust_arches}
- rust-quoted_printable
ExclusiveArch: %{rust_arches}
- rust-r2d2
ExclusiveArch: %{rust_arches}
- rust-rand
ExclusiveArch: %{rust_arches}
- rust-rand0.4
ExclusiveArch: %{rust_arches}
- rust-rand0.5
ExclusiveArch: %{rust_arches}
- rust-rand0.6
ExclusiveArch: %{rust_arches}
- rust-rand_chacha
ExclusiveArch: %{rust_arches}
- rust-rand_chacha0.1
ExclusiveArch: %{rust_arches}
- rust-rand_core
ExclusiveArch: %{rust_arches}
- rust-rand_core0.3
ExclusiveArch: %{rust_arches}
- rust-rand_core0.4
ExclusiveArch: %{rust_arches}
- rust-rand_distr
ExclusiveArch: %{rust_arches}
- rust-rand_distr0.2
ExclusiveArch: %{rust_arches}
- rust-rand_hc
ExclusiveArch: %{rust_arches}
- rust-rand_hc0.1
ExclusiveArch: %{rust_arches}
- rust-rand_isaac
ExclusiveArch: %{rust_arches}
- rust-rand_isaac0.1
ExclusiveArch: %{rust_arches}
- rust-rand_jitter
ExclusiveArch: %{rust_arches}
- rust-rand_jitter0.1
ExclusiveArch: %{rust_arches}
- rust-rand_os
ExclusiveArch: %{rust_arches}
- rust-rand_os0.1
ExclusiveArch: %{rust_arches}
- rust-rand_pcg
ExclusiveArch: %{rust_arches}
- rust-rand_pcg0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift
ExclusiveArch: %{rust_arches}
- rust-rand_xorshift0.1
ExclusiveArch: %{rust_arches}
- rust-rand_xoshiro
ExclusiveArch: %{rust_arches}
- rust-random-fast-rng
ExclusiveArch: %{rust_arches}
- rust-random-trait
ExclusiveArch: %{rust_arches}
- rust-randomize
ExclusiveArch: %{rust_arches}
- rust-rav1e
ExclusiveArch: %{rust_arches}
- rust-raw-window-handle
ExclusiveArch: %{rust_arches}
- rust-rawpointer
ExclusiveArch: %{rust_arches}
- rust-rawslice
ExclusiveArch: %{rust_arches}
- rust-rayon
ExclusiveArch: %{rust_arches}
- rust-rayon-core
ExclusiveArch: %{rust_arches}
- rust-readwrite
ExclusiveArch: %{rust_arches}
- rust-recycler
ExclusiveArch: %{rust_arches}
- rust-ref-cast
ExclusiveArch: %{rust_arches}
- rust-ref-cast-impl
ExclusiveArch: %{rust_arches}
- rust-regex
ExclusiveArch: %{rust_arches}
- rust-regex-automata
ExclusiveArch: %{rust_arches}
- rust-regex-syntax
ExclusiveArch: %{rust_arches}
- rust-region
ExclusiveArch: %{rust_arches}
- rust-relay
ExclusiveArch: %{rust_arches}
- rust-remove_dir_all
ExclusiveArch: %{rust_arches}
- rust-reqwest
ExclusiveArch: %{rust_arches}
- rust-resize
ExclusiveArch: %{rust_arches}
- rust-resolv-conf
ExclusiveArch: %{rust_arches}
- rust-restson
ExclusiveArch: %{rust_arches}
- rust-retry
ExclusiveArch: %{rust_arches}
- rust-rgb
ExclusiveArch: %{rust_arches}
- rust-ring
ExclusiveArch: %{rust_arches}
- rust-ripgrep
ExclusiveArch: %{rust_arches}
- rust-rle-decode-fast
ExclusiveArch: %{rust_arches}
- rust-rmp
ExclusiveArch: %{rust_arches}
- rust-rmp-serde
ExclusiveArch: %{rust_arches}
- rust-roff
ExclusiveArch: %{rust_arches}
- rust-ron
ExclusiveArch: %{rust_arches}
- rust-rpassword
ExclusiveArch: %{rust_arches}
- rust-rpick
ExclusiveArch: %{rust_arches}
- rust-rsa
ExclusiveArch: %{rust_arches}
- rust-rtnetlink
ExclusiveArch: %{rust_arches}
- rust-ruma-identifiers
ExclusiveArch: %{rust_arches}
- rust-rust-embed
ExclusiveArch: %{rust_arches}
- rust-rust-embed-impl
ExclusiveArch: %{rust_arches}
- rust-rust-embed-utils
ExclusiveArch: %{rust_arches}
- rust-rust-ini
ExclusiveArch: %{rust_arches}
- rust-rust-stemmers
ExclusiveArch: %{rust_arches}
- rust-rust_decimal
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_normal_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_proc_macro
ExclusiveArch: %{rust_arches}
- rust-rust_hawktracer_sys
ExclusiveArch: %{rust_arches}
- rust-rustc-demangle
ExclusiveArch: %{rust_arches}
- rust-rustc-hash
ExclusiveArch: %{rust_arches}
- rust-rustc-serialize
ExclusiveArch: %{rust_arches}
- rust-rustc-test
ExclusiveArch: %{rust_arches}
- rust-rustc_tools_util
ExclusiveArch: %{rust_arches}
- rust-rustc_version
ExclusiveArch: %{rust_arches}
- rust-rustdoc-stripper
ExclusiveArch: %{rust_arches}
- rust-rustfilt
ExclusiveArch: %{rust_arches}
- rust-rustfix
ExclusiveArch: %{rust_arches}
- rust-rustio
ExclusiveArch: %{rust_arches}
- rust-rusttype
ExclusiveArch: %{rust_arches}
- rust-rustversion
ExclusiveArch: %{rust_arches}
- rust-rusty-fork
ExclusiveArch: %{rust_arches}
- rust-rustyline
ExclusiveArch: %{rust_arches}
- rust-rustyline-derive
ExclusiveArch: %{rust_arches}
- rust-ryu
ExclusiveArch: %{rust_arches}
- rust-safe-transmute
ExclusiveArch: %{rust_arches}
- rust-safemem
ExclusiveArch: %{rust_arches}
- rust-same-file
ExclusiveArch: %{rust_arches}
- rust-sass-rs
ExclusiveArch: %{rust_arches}
- rust-sass-sys
ExclusiveArch: %{rust_arches}
- rust-scan_fmt
ExclusiveArch: %{rust_arches}
- rust-scheduled-thread-pool
ExclusiveArch: %{rust_arches}
- rust-scoped-tls
ExclusiveArch: %{rust_arches}
- rust-scoped-tls-hkt
ExclusiveArch: %{rust_arches}
- rust-scoped_threadpool
ExclusiveArch: %{rust_arches}
- rust-scopeguard
ExclusiveArch: %{rust_arches}
- rust-scopetime
ExclusiveArch: %{rust_arches}
- rust-scroll
ExclusiveArch: %{rust_arches}
- rust-scroll_derive
ExclusiveArch: %{rust_arches}
- rust-sd
ExclusiveArch: %{rust_arches}
- rust-sd-notify
ExclusiveArch: %{rust_arches}
- rust-seahash
ExclusiveArch: %{rust_arches}
- rust-secrecy
ExclusiveArch: %{rust_arches}
- rust-secret-service
ExclusiveArch: %{rust_arches}
- rust-semver
ExclusiveArch: %{rust_arches}
- rust-semver-parser
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.7
ExclusiveArch: %{rust_arches}
- rust-semver-parser0.9
ExclusiveArch: %{rust_arches}
- rust-semver0.10
ExclusiveArch: %{rust_arches}
- rust-semver0.9
ExclusiveArch: %{rust_arches}
- rust-serde
ExclusiveArch: %{rust_arches}
- rust-serde-big-array
ExclusiveArch: %{rust_arches}
- rust-serde-pickle
ExclusiveArch: %{rust_arches}
- rust-serde-value
ExclusiveArch: %{rust_arches}
- rust-serde-xml-rs
ExclusiveArch: %{rust_arches}
- rust-serde_bytes
ExclusiveArch: %{rust_arches}
- rust-serde_cbor
ExclusiveArch: %{rust_arches}
- rust-serde_derive
ExclusiveArch: %{rust_arches}
- rust-serde_ignored
ExclusiveArch: %{rust_arches}
- rust-serde_json
ExclusiveArch: %{rust_arches}
- rust-serde_repr
ExclusiveArch: %{rust_arches}
- rust-serde_stacker
ExclusiveArch: %{rust_arches}
- rust-serde_test
ExclusiveArch: %{rust_arches}
- rust-serde_url_params
ExclusiveArch: %{rust_arches}
- rust-serde_urlencoded
ExclusiveArch: %{rust_arches}
- rust-serde_with_macros
ExclusiveArch: %{rust_arches}
- rust-serde_yaml
ExclusiveArch: %{rust_arches}
- rust-serial_test
ExclusiveArch: %{rust_arches}
- rust-serial_test_derive
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig
ExclusiveArch: %{rust_arches}
- rust-servo-fontconfig-sys
ExclusiveArch: %{rust_arches}
- rust-sha-1
ExclusiveArch: %{rust_arches}
- rust-sha1
ExclusiveArch: %{rust_arches}
- rust-sha2
ExclusiveArch: %{rust_arches}
- rust-sha3
ExclusiveArch: %{rust_arches}
- rust-shared_child
ExclusiveArch: %{rust_arches}
- rust-shared_library
ExclusiveArch: %{rust_arches}
- rust-shell-escape
ExclusiveArch: %{rust_arches}
- rust-shell-words
ExclusiveArch: %{rust_arches}
- rust-shellexpand
ExclusiveArch: %{rust_arches}
- rust-shlex
ExclusiveArch: %{rust_arches}
- rust-signal-hook
ExclusiveArch: %{rust_arches}
- rust-signal-hook-registry
ExclusiveArch: %{rust_arches}
- rust-silver
ExclusiveArch: %{rust_arches}
- rust-simd_helpers
ExclusiveArch: %{rust_arches}
- rust-simple_asn1
ExclusiveArch: %{rust_arches}
- rust-simple_logger
ExclusiveArch: %{rust_arches}
- rust-simplelog
ExclusiveArch: %{rust_arches}
- rust-siphasher
ExclusiveArch: %{rust_arches}
- rust-size
ExclusiveArch: %{rust_arches}
- rust-sized-chunks
ExclusiveArch: %{rust_arches}
- rust-skeptic
ExclusiveArch: %{rust_arches}
- rust-skim
ExclusiveArch: %{rust_arches}
- rust-slab
ExclusiveArch: %{rust_arches}
- rust-slash-formatter
ExclusiveArch: %{rust_arches}
- rust-slice-deque
ExclusiveArch: %{rust_arches}
- rust-slog
ExclusiveArch: %{rust_arches}
- rust-slog-async
ExclusiveArch: %{rust_arches}
- rust-slog-scope
ExclusiveArch: %{rust_arches}
- rust-slog-term
ExclusiveArch: %{rust_arches}
- rust-slotmap
ExclusiveArch: %{rust_arches}
- rust-slug
ExclusiveArch: %{rust_arches}
- rust-sluice
ExclusiveArch: %{rust_arches}
- rust-smallvec
ExclusiveArch: %{rust_arches}
- rust-smart-default
ExclusiveArch: %{rust_arches}
- rust-smithay-client-toolkit
ExclusiveArch: %{rust_arches}
- rust-smithay-clipboard
ExclusiveArch: %{rust_arches}
- rust-snafu
ExclusiveArch: %{rust_arches}
- rust-snafu-derive
ExclusiveArch: %{rust_arches}
- rust-snowflake
ExclusiveArch: %{rust_arches}
- rust-socket2
ExclusiveArch: %{rust_arches}
- rust-soup-sys
ExclusiveArch: %{rust_arches}
- rust-sourceview
ExclusiveArch: %{rust_arches}
- rust-spin
ExclusiveArch: %{rust_arches}
- rust-spinning_top
ExclusiveArch: %{rust_arches}
- rust-spmc
ExclusiveArch: %{rust_arches}
- rust-ssh-key-dir
ExclusiveArch: %{rust_arches}
- rust-stable_deref_trait
ExclusiveArch: %{rust_arches}
- rust-stacker
ExclusiveArch: %{rust_arches}
- rust-standback
ExclusiveArch: %{rust_arches}
- rust-starship
ExclusiveArch: %{rust_arches}
- rust-starship_module_config_derive
ExclusiveArch: %{rust_arches}
- rust-static_assertions
ExclusiveArch: %{rust_arches}
- rust-statistical
ExclusiveArch: %{rust_arches}
- rust-stb_truetype
ExclusiveArch: %{rust_arches}
- rust-stream-cipher
ExclusiveArch: %{rust_arches}
- rust-streaming-stats
ExclusiveArch: %{rust_arches}
- rust-string
ExclusiveArch: %{rust_arches}
- rust-string_cache
ExclusiveArch: %{rust_arches}
- rust-string_cache_codegen
ExclusiveArch: %{rust_arches}
- rust-string_cache_shared
ExclusiveArch: %{rust_arches}
- rust-strings
ExclusiveArch: %{rust_arches}
- rust-strip-ansi-escapes
ExclusiveArch: %{rust_arches}
- rust-strsim
ExclusiveArch: %{rust_arches}
- rust-structopt
ExclusiveArch: %{rust_arches}
- rust-structopt-derive
ExclusiveArch: %{rust_arches}
- rust-structopt-derive0.2
ExclusiveArch: %{rust_arches}
- rust-structopt0.2
ExclusiveArch: %{rust_arches}
- rust-strum
ExclusiveArch: %{rust_arches}
- rust-strum_macros
ExclusiveArch: %{rust_arches}
- rust-subtle
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin
ExclusiveArch: %{rust_arches}
- rust-sudo_plugin-sys
ExclusiveArch: %{rust_arches}
- rust-sval
ExclusiveArch: %{rust_arches}
- rust-sval_derive
ExclusiveArch: %{rust_arches}
- rust-sxd-document
ExclusiveArch: %{rust_arches}
- rust-syn
ExclusiveArch: %{rust_arches}
- rust-syn-mid
ExclusiveArch: %{rust_arches}
- rust-syn0.15
ExclusiveArch: %{rust_arches}
- rust-synom
ExclusiveArch: %{rust_arches}
- rust-synstructure
ExclusiveArch: %{rust_arches}
- rust-syntect
ExclusiveArch: %{rust_arches}
- rust-sys-info
ExclusiveArch: %{rust_arches}
- rust-sysinfo
ExclusiveArch: %{rust_arches}
- rust-system-deps
ExclusiveArch: %{rust_arches}
- rust-tabwriter
ExclusiveArch: %{rust_arches}
- rust-take
ExclusiveArch: %{rust_arches}
- rust-take_mut
ExclusiveArch: %{rust_arches}
- rust-tar
ExclusiveArch: %{rust_arches}
- rust-target-lexicon
ExclusiveArch: %{rust_arches}
- rust-tealdeer
ExclusiveArch: %{rust_arches}
- rust-teloxide
ExclusiveArch: %{rust_arches}
- rust-teloxide-macros
ExclusiveArch: %{rust_arches}
- rust-tempdir
ExclusiveArch: %{rust_arches}
- rust-tempfile
ExclusiveArch: %{rust_arches}
- rust-tendril
ExclusiveArch: %{rust_arches}
- rust-tera
ExclusiveArch: %{rust_arches}
- rust-term
ExclusiveArch: %{rust_arches}
- rust-term_grid
ExclusiveArch: %{rust_arches}
- rust-term_size
ExclusiveArch: %{rust_arches}
- rust-termcolor
ExclusiveArch: %{rust_arches}
- rust-terminal_size
ExclusiveArch: %{rust_arches}
- rust-terminfo
ExclusiveArch: %{rust_arches}
- rust-termion
ExclusiveArch: %{rust_arches}
- rust-termios
ExclusiveArch: %{rust_arches}
- rust-test-assembler
ExclusiveArch: %{rust_arches}
- rust-tester
ExclusiveArch: %{rust_arches}
- rust-testing_logger
ExclusiveArch: %{rust_arches}
- rust-textwrap
ExclusiveArch: %{rust_arches}
- rust-textwrap0.11
ExclusiveArch: %{rust_arches}
- rust-thiserror
ExclusiveArch: %{rust_arches}
- rust-thiserror-impl
ExclusiveArch: %{rust_arches}
- rust-thread-id
ExclusiveArch: %{rust_arches}
- rust-thread-scoped
ExclusiveArch: %{rust_arches}
- rust-thread_local
ExclusiveArch: %{rust_arches}
- rust-threadpool
ExclusiveArch: %{rust_arches}
- rust-tiff
ExclusiveArch: %{rust_arches}
- rust-tiger-digest
ExclusiveArch: %{rust_arches}
- rust-time
ExclusiveArch: %{rust_arches}
- rust-time-macros
ExclusiveArch: %{rust_arches}
- rust-time-macros-impl
ExclusiveArch: %{rust_arches}
- rust-time0.1
ExclusiveArch: %{rust_arches}
- rust-timebomb
ExclusiveArch: %{rust_arches}
- rust-timer
ExclusiveArch: %{rust_arches}
- rust-timerfd
ExclusiveArch: %{rust_arches}
- rust-tiny_http
ExclusiveArch: %{rust_arches}
- rust-tinytemplate
ExclusiveArch: %{rust_arches}
- rust-tinyvec
ExclusiveArch: %{rust_arches}
- rust-tinyvec0.3
ExclusiveArch: %{rust_arches}
- rust-tinyvec_macros
ExclusiveArch: %{rust_arches}
- rust-tokei
ExclusiveArch: %{rust_arches}
- rust-tokio
ExclusiveArch: %{rust_arches}
- rust-tokio-codec
ExclusiveArch: %{rust_arches}
- rust-tokio-core
ExclusiveArch: %{rust_arches}
- rust-tokio-current-thread
ExclusiveArch: %{rust_arches}
- rust-tokio-executor
ExclusiveArch: %{rust_arches}
- rust-tokio-fs
ExclusiveArch: %{rust_arches}
- rust-tokio-io
ExclusiveArch: %{rust_arches}
- rust-tokio-io-pool
ExclusiveArch: %{rust_arches}
- rust-tokio-macros
ExclusiveArch: %{rust_arches}
- rust-tokio-mock-task
ExclusiveArch: %{rust_arches}
- rust-tokio-openssl
ExclusiveArch: %{rust_arches}
- rust-tokio-reactor
ExclusiveArch: %{rust_arches}
- rust-tokio-socks
ExclusiveArch: %{rust_arches}
- rust-tokio-sync
ExclusiveArch: %{rust_arches}
- rust-tokio-tcp
ExclusiveArch: %{rust_arches}
- rust-tokio-test
ExclusiveArch: %{rust_arches}
- rust-tokio-threadpool
ExclusiveArch: %{rust_arches}
- rust-tokio-timer
ExclusiveArch: %{rust_arches}
- rust-tokio-tls
ExclusiveArch: %{rust_arches}
- rust-tokio-tls0.2
ExclusiveArch: %{rust_arches}
- rust-tokio-tungstenite
ExclusiveArch: %{rust_arches}
- rust-tokio-udp
ExclusiveArch: %{rust_arches}
- rust-tokio-uds
ExclusiveArch: %{rust_arches}
- rust-tokio-util
ExclusiveArch: %{rust_arches}
- rust-tokio-util0.2
ExclusiveArch: %{rust_arches}
- rust-tokio0.1
ExclusiveArch: %{rust_arches}
- rust-toml
ExclusiveArch: %{rust_arches}
- rust-toml0.4
ExclusiveArch: %{rust_arches}
- rust-tower-layer
ExclusiveArch: %{rust_arches}
- rust-tower-service
ExclusiveArch: %{rust_arches}
- rust-tower-test
ExclusiveArch: %{rust_arches}
- rust-tower-util
ExclusiveArch: %{rust_arches}
- rust-tpm2-policy
ExclusiveArch: %{rust_arches}
- rust-tracing
ExclusiveArch: %{rust_arches}
- rust-tracing-attributes
ExclusiveArch: %{rust_arches}
- rust-tracing-core
ExclusiveArch: %{rust_arches}
- rust-tracing-futures
ExclusiveArch: %{rust_arches}
- rust-traitobject
ExclusiveArch: %{rust_arches}
- rust-treebitmap
ExclusiveArch: %{rust_arches}
- rust-treeline
ExclusiveArch: %{rust_arches}
- rust-trust-dns-native-tls
ExclusiveArch: %{rust_arches}
- rust-trust-dns-openssl
ExclusiveArch: %{rust_arches}
- rust-trust-dns-proto
ExclusiveArch: %{rust_arches}
- rust-trust-dns-resolver
ExclusiveArch: %{rust_arches}
- rust-try-lock
ExclusiveArch: %{rust_arches}
- rust-try_from
ExclusiveArch: %{rust_arches}
- rust-try_or
ExclusiveArch: %{rust_arches}
- rust-trybuild
ExclusiveArch: %{rust_arches}
- rust-tss-esapi
ExclusiveArch: %{rust_arches}
- rust-ttf-parser
ExclusiveArch: %{rust_arches}
- rust-tui
ExclusiveArch: %{rust_arches}
- rust-tui-react
ExclusiveArch: %{rust_arches}
- rust-tui0.11
ExclusiveArch: %{rust_arches}
- rust-tui0.9
ExclusiveArch: %{rust_arches}
- rust-tuikit
ExclusiveArch: %{rust_arches}
- rust-tungstenite
ExclusiveArch: %{rust_arches}
- rust-twoway
ExclusiveArch: %{rust_arches}
- rust-typeable
ExclusiveArch: %{rust_arches}
- rust-typed-arena
ExclusiveArch: %{rust_arches}
- rust-typemap
ExclusiveArch: %{rust_arches}
- rust-typenum
ExclusiveArch: %{rust_arches}
- rust-ucd-parse
ExclusiveArch: %{rust_arches}
- rust-ucd-trie
ExclusiveArch: %{rust_arches}
- rust-ucd-util
ExclusiveArch: %{rust_arches}
- rust-unchecked-index
ExclusiveArch: %{rust_arches}
- rust-unescape
ExclusiveArch: %{rust_arches}
- rust-unic-char-property
ExclusiveArch: %{rust_arches}
- rust-unic-char-range
ExclusiveArch: %{rust_arches}
- rust-unic-common
ExclusiveArch: %{rust_arches}
- rust-unic-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-category
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-common
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-segment
ExclusiveArch: %{rust_arches}
- rust-unic-ucd-version
ExclusiveArch: %{rust_arches}
- rust-unicase
ExclusiveArch: %{rust_arches}
- rust-unicase1
ExclusiveArch: %{rust_arches}
- rust-unicode-bidi
ExclusiveArch: %{rust_arches}
- rust-unicode-normalization
ExclusiveArch: %{rust_arches}
- rust-unicode-segmentation
ExclusiveArch: %{rust_arches}
- rust-unicode-width
ExclusiveArch: %{rust_arches}
- rust-unicode-xid
ExclusiveArch: %{rust_arches}
- rust-unicode-xid0.1
ExclusiveArch: %{rust_arches}
- rust-unicode_categories
ExclusiveArch: %{rust_arches}
- rust-unindent
ExclusiveArch: %{rust_arches}
- rust-universal-hash
ExclusiveArch: %{rust_arches}
- rust-unix_socket
ExclusiveArch: %{rust_arches}
- rust-unreachable
ExclusiveArch: %{rust_arches}
- rust-unsafe-any
ExclusiveArch: %{rust_arches}
- rust-untrusted
ExclusiveArch: %{rust_arches}
- rust-uom
ExclusiveArch: %{rust_arches}
- rust-url
ExclusiveArch: %{rust_arches}
- rust-url1
ExclusiveArch: %{rust_arches}
- rust-url_serde
ExclusiveArch: %{rust_arches}
- rust-urlencoding
ExclusiveArch: %{rust_arches}
- rust-urlocator
ExclusiveArch: %{rust_arches}
- rust-urlshortener
ExclusiveArch: %{rust_arches}
- rust-users
ExclusiveArch: %{rust_arches}
- rust-utf-8
ExclusiveArch: %{rust_arches}
- rust-utf8-ranges
ExclusiveArch: %{rust_arches}
- rust-utf8parse
ExclusiveArch: %{rust_arches}
- rust-uuid
ExclusiveArch: %{rust_arches}
- rust-uuid0.7
ExclusiveArch: %{rust_arches}
- rust-v_escape
ExclusiveArch: %{rust_arches}
- rust-v_escape_derive
ExclusiveArch: %{rust_arches}
- rust-v_htmlescape
ExclusiveArch: %{rust_arches}
- rust-varlink
ExclusiveArch: %{rust_arches}
- rust-varlink-cli
ExclusiveArch: %{rust_arches}
- rust-varlink_generator
ExclusiveArch: %{rust_arches}
- rust-varlink_parser
ExclusiveArch: %{rust_arches}
- rust-varlink_stdinterfaces
ExclusiveArch: %{rust_arches}
- rust-vec_map
ExclusiveArch: %{rust_arches}
- rust-vergen
ExclusiveArch: %{rust_arches}
- rust-version
ExclusiveArch: %{rust_arches}
- rust-version-compare
ExclusiveArch: %{rust_arches}
- rust-version-sync
ExclusiveArch: %{rust_arches}
- rust-version-sync0.8
ExclusiveArch: %{rust_arches}
- rust-version_check
ExclusiveArch: %{rust_arches}
- rust-vmw_backdoor
ExclusiveArch: %{rust_arches}
- rust-void
ExclusiveArch: %{rust_arches}
- rust-vte
ExclusiveArch: %{rust_arches}
- rust-vte0.3
ExclusiveArch: %{rust_arches}
- rust-vte_generate_state_changes
ExclusiveArch: %{rust_arches}
- rust-wait-timeout
ExclusiveArch: %{rust_arches}
- rust-walkdir
ExclusiveArch: %{rust_arches}
- rust-want
ExclusiveArch: %{rust_arches}
- rust-warp
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-backend
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-macro-support
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-shared
ExclusiveArch: %{rust_arches}
- rust-wasm-bindgen-test-macro
ExclusiveArch: %{rust_arches}
- rust-wayland-client
ExclusiveArch: %{rust_arches}
- rust-wayland-commons
ExclusiveArch: %{rust_arches}
- rust-wayland-cursor
ExclusiveArch: %{rust_arches}
- rust-wayland-egl
ExclusiveArch: %{rust_arches}
- rust-wayland-protocols
ExclusiveArch: %{rust_arches}
- rust-wayland-scanner
ExclusiveArch: %{rust_arches}
- rust-wayland-server
ExclusiveArch: %{rust_arches}
- rust-wayland-sys
ExclusiveArch: %{rust_arches}
- rust-web-sys
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk
ExclusiveArch: %{rust_arches}
- rust-webkit2gtk-sys
ExclusiveArch: %{rust_arches}
- rust-websocket
ExclusiveArch: %{rust_arches}
- rust-websocket-base
ExclusiveArch: %{rust_arches}
- rust-weezl
ExclusiveArch: %{rust_arches}
- rust-which
ExclusiveArch: %{rust_arches}
- rust-wild
ExclusiveArch: %{rust_arches}
- rust-winit
ExclusiveArch: %{rust_arches}
- rust-ws
ExclusiveArch: %{rust_arches}
- rust-x11
ExclusiveArch: %{rust_arches}
- rust-x11-clipboard
ExclusiveArch: %{rust_arches}
- rust-x11-dl
ExclusiveArch: %{rust_arches}
- rust-xattr
ExclusiveArch: %{rust_arches}
- rust-xcb
ExclusiveArch: %{rust_arches}
- rust-xcursor
ExclusiveArch: %{rust_arches}
- rust-xdg
ExclusiveArch: %{rust_arches}
- rust-xkbcommon
ExclusiveArch: %{rust_arches}
- rust-xml-rs
ExclusiveArch: %{rust_arches}
- rust-xml5ever
ExclusiveArch: %{rust_arches}
- rust-xz2
ExclusiveArch: %{rust_arches}
- rust-y4m
ExclusiveArch: %{rust_arches}
- rust-yaml-rust
ExclusiveArch: %{rust_arches}
- rust-yaml-rust0.3
ExclusiveArch: %{rust_arches}
- rust-ybaas
ExclusiveArch: %{rust_arches}
- rust-ytop
ExclusiveArch: %{rust_arches}
- rust-yubibomb
ExclusiveArch: %{rust_arches}
- rust-yup-oauth2
ExclusiveArch: %{rust_arches}
- rust-zbus_macros
ExclusiveArch: %{rust_arches}
- rust-zeroize
ExclusiveArch: %{rust_arches}
- rust-zeroize_derive
ExclusiveArch: %{rust_arches}
- rust-zincati
ExclusiveArch: %{rust_arches}
- rust-zip
ExclusiveArch: %{rust_arches}
- rust-zoneinfo_compiled
ExclusiveArch: %{rust_arches}
- rust-zoxide
ExclusiveArch: %{rust_arches}
- rust-zram-generator
ExclusiveArch: %{rust_arches}
- rust-zstd
ExclusiveArch: %{rust_arches}
- rust-zstd-safe
ExclusiveArch: %{rust_arches}
- rust-zstd-sys
ExclusiveArch: %{rust_arches}
- rust-zvariant
ExclusiveArch: %{rust_arches}
- rust-zvariant_derive
ExclusiveArch: %{rust_arches}
- s390utils
ExclusiveArch: s390 s390x
- safetyblanket
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc64le
- sagemath
ExclusiveArch: aarch64 %{ix86} x86_64 ppc sparcv9
- sbcl
ExclusiveArch: %{arm} %{ix86} x86_64 ppc sparcv9 aarch64
- sbd
ExclusiveArch: i686 x86_64 s390x aarch64 ppc64le
- sbsigntools
ExclusiveArch: x86_64 aarch64 %{arm} %{ix86}
- seabios
ExclusiveArch: x86_64
- seamonkey
ExclusiveArch: x86_64
- servicelog
ExclusiveArch: ppc %{power64}
- sgabios
ExclusiveArch: %{ix86} x86_64
- sharpfont
ExclusiveArch: %mono_arches
- sharpziplib
ExclusiveArch: %{mono_arches}
- shim
ExclusiveArch: %{efi}
- shim-unsigned-aarch64
ExclusiveArch: aarch64
- shim-unsigned-x64
ExclusiveArch: x86_64
- sigul
ExclusiveArch: x86_64
- skychart
ExclusiveArch: %{fpc_arches}
- snapd
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le s390x
- soup-sharp
ExclusiveArch: %{mono_arches}
- source-to-image
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- sparkleshare
ExclusiveArch: %{mono_arches}
- spicctrl
ExclusiveArch: %{ix86} x86_64
- spice
ExclusiveArch: x86_64
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- springlobby
ExclusiveArch: %{ix86} x86_64
- squeekboard
ExclusiveArch: %{rust_arches}
- startdde
ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
- statsd
ExclusiveArch: %{nodejs_arches} noarch
- stratis-cli
ExclusiveArch: %{rust_arches} noarch
- stratisd
ExclusiveArch: %{rust_arches}
- stripesnoop
ExclusiveArch: %{ix86} x86_64
- supercollider
ExclusiveArch: %{qt5_qtwebengine_arches}
- supermin
ExclusiveArch: %{kernel_arches}
- svt-av1
ExclusiveArch: x86_64
- svt-vp9
ExclusiveArch: x86_64
- swift-lang
ExclusiveArch: x86_64 aarch64
- sysbench
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips} aarch64
- syslinux
ExclusiveArch: %{ix86} x86_64
ExclusiveArch: %{ix86} x86_64
- taglib-sharp
ExclusiveArch: %{mono_arches}
- tarantool
ExclusiveArch: %{ix86} x86_64
- tboot
ExclusiveArch: %{ix86} x86_64
- tdlib
ExclusiveArch: x86_64
- templates_parser
ExclusiveArch: %GPRbuild_arches
- ternimal
ExclusiveArch: %{rust_arches}
- themonospot-base
ExclusiveArch: %mono_arches
- themonospot-console
ExclusiveArch: %mono_arches
- themonospot-gui-gtk
ExclusiveArch: %mono_arches
- themonospot-plugin-avi
ExclusiveArch: %mono_arches
- themonospot-plugin-mkv
ExclusiveArch: %mono_arches
- thermald
ExclusiveArch: %{ix86} x86_64
- tilix
ExclusiveArch: %{ldc_arches}
- tmux-top
ExclusiveArch: %{go_arches}
- tomboy
ExclusiveArch: %{mono_arches}
- torbrowser-launcher
ExclusiveArch: %{ix86} x86_64
- tuned-profiles-nfv-host-bin
ExclusiveArch: %{ix86} x86_64
- uClibc
ExclusiveArch: %{arm} %{ix86} x86_64 %{mips}
- ucx
ExclusiveArch: aarch64 ppc64le x86_64
- ugene
ExclusiveArch: %{ix86} x86_64
- uglify-js
ExclusiveArch: %{nodejs_arches} noarch
- uglify-js1
ExclusiveArch: %{nodejs_arches} noarch
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
- unetbootin
ExclusiveArch: %{ix86} x86_64
- ursa-major
ExclusiveArch: noarch aarch64 ppc64le s390x x86_64
- v8-314
ExclusiveArch: %{ix86} x86_64 %{arm} mips mipsel ppc ppc64
- valgrind
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x armv7hl aarch64
- vapoursynth
ExclusiveArch: %{ix86} x86_64
- vboot-utils
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64
- vim-go
ExclusiveArch: %{?golang_arches}%{!?golang_arches:%{ix86} x86_64 %{arm}}
- virt-p2v
ExclusiveArch: x86_64
- virtualbox-guest-additions
ExclusiveArch: i686 x86_64
- virtualplanet
ExclusiveArch: %{fpc_arches}
- vkd3d
ExclusiveArch: %{ix86} x86_64 %{arm}
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- vmaf
ExclusiveArch: x86_64
- vmem
ExclusiveArch: x86_64
- vmemcache
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64
- vrq
ExclusiveArch: %{ix86} x86_64
- warsow
ExclusiveArch: %{ix86} x86_64 %{arm}
- warsow-data
ExclusiveArch: %{ix86} x86_64 %{arm} noarch
ExclusiveArch: %{ix86} x86_64 %{arm}
- webkit2-sharp
ExclusiveArch: %mono_arches
- wine
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
ExclusiveArch: %{ix86} %{arm}
- wine-dxvk
ExclusiveArch: %{ix86} x86_64
- winetricks
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64
- wxMaxima
ExclusiveArch: %{arm} %{ix86} x86_64 aarch64 ppc sparcv9
- x2goclient
ExclusiveArch: x86_64
- xe-guest-utilities-latest
ExclusiveArch: %{ix86} x86_64
- xen
ExclusiveArch: %{ix86} x86_64 armv7hl aarch64
- xmlada
ExclusiveArch: %{GPRbuild_arches}
- xorg-x11-drv-armsoc
ExclusiveArch: %{arm} aarch64
- xorg-x11-drv-intel
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-openchrome
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vesa
ExclusiveArch: %{ix86} x86_64
- xorg-x11-drv-vmware
ExclusiveArch: %{ix86} x86_64 ia64
- xsp
ExclusiveArch: %mono_arches
- yarnpkg
ExclusiveArch: %{nodejs_arches} noarch
- zeromq-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ada
ExclusiveArch: %{GPRbuild_arches}
- zlib-ng
ExclusiveArch: aarch64 i686 ppc64le s390x x86_64
- zola
ExclusiveArch: %{rust_arches}
3 years, 5 months
Architecture specific change in rpms/acpica-tools.git
by githook-noreply@fedoraproject.org
The package rpms/acpica-tools.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/acpica-tools.git/commit/?id=7ae04...
https://src.fedoraproject.org/cgit/rpms/acpica-tools.git/commit/?id=17d82...
https://src.fedoraproject.org/cgit/rpms/acpica-tools.git/commit/?id=edb6c....
Change:
-%ifarch i686 armv7hl
-%ifarch i686 armv7hl
+%ifarch i686 armv7hl
Thanks.
Full change:
============
commit defe2b64332fc44bf9915c8f57d2614c529cdb43
Author: Al Stone <ahs3(a)redhat.com>
Date: Thu Oct 29 14:13:33 2020 -0600
Missed a couple of minor endianness corrections
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/0045-Correct-a-couple-of-endianness-issues-previously-uns.patch b/0045-Correct-a-couple-of-endianness-issues-previously-uns.patch
index 76d5fa5..471ab55 100644
--- a/0045-Correct-a-couple-of-endianness-issues-previously-uns.patch
+++ b/0045-Correct-a-couple-of-endianness-issues-previously-uns.patch
@@ -1,19 +1,22 @@
-From 71357f9d65334b1667a87a940a3ac06049c9aedb Mon Sep 17 00:00:00 2001
+From e942e785b3ec47693029e3841075becba31f2635 Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3(a)redhat.com>
Date: Wed, 28 Oct 2020 12:53:34 -0600
Subject: [PATCH] Correct a couple of endianness issues previously unseen
+Just odds and ends of some resource types and ASL analysis
+
Signed-off-by: Al Stone <ahs3(a)redhat.com>
---
- source/compiler/aslanalyze.c | 4 ++--
- source/compiler/aslrestype1.c | 16 ++++++++--------
- 2 files changed, 10 insertions(+), 10 deletions(-)
+ source/compiler/aslanalyze.c | 4 ++--
+ source/compiler/aslrestype1.c | 16 ++++++++--------
+ source/compiler/aslrestype1i.c | 2 +-
+ 3 files changed, 11 insertions(+), 11 deletions(-)
-Index: acpica-unix2-20200925/source/compiler/aslanalyze.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslanalyze.c
-+++ acpica-unix2-20200925/source/compiler/aslanalyze.c
-@@ -469,7 +469,7 @@ ApCheckForGpeNameConflict (
+diff --git a/source/compiler/aslanalyze.c b/source/compiler/aslanalyze.c
+index 63feba2b1..f76a8c3cd 100644
+--- a/source/compiler/aslanalyze.c
++++ b/source/compiler/aslanalyze.c
+@@ -577,7 +577,7 @@ ApCheckForGpeNameConflict (
/* Need a null-terminated string version of NameSeg */
@@ -22,7 +25,7 @@ Index: acpica-unix2-20200925/source/compiler/aslanalyze.c
Name[ACPI_NAMESEG_SIZE] = 0;
/*
-@@ -496,7 +496,7 @@ ApCheckForGpeNameConflict (
+@@ -604,7 +604,7 @@ ApCheckForGpeNameConflict (
* We are now sure we have an _Lxx or _Exx.
* Create the target name that would cause collision (Flip E/L)
*/
@@ -31,11 +34,11 @@ Index: acpica-unix2-20200925/source/compiler/aslanalyze.c
/* Inject opposite letter ("L" versus "E") */
-Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype1.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype1.c
-@@ -220,10 +220,10 @@ RsDoMemory24Descriptor (
+diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c
+index e7639c0bb..fd4428aab 100644
+--- a/source/compiler/aslrestype1.c
++++ b/source/compiler/aslrestype1.c
+@@ -328,10 +328,10 @@ RsDoMemory24Descriptor (
/* Validate the Min/Max/Len/Align values (Alignment==0 means 64K) */
RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY24,
@@ -43,14 +46,14 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
- Descriptor->Memory24.Maximum,
- Descriptor->Memory24.AddressLength,
- Descriptor->Memory24.Alignment,
-+ AcpiUtReadUint32(&Descriptor->Memory24.Minimum),
-+ AcpiUtReadUint32(&Descriptor->Memory24.Maximum),
-+ AcpiUtReadUint32(&Descriptor->Memory24.AddressLength),
-+ AcpiUtReadUint32(&Descriptor->Memory24.Alignment),
++ (UINT32) AcpiUtReadUint16(&Descriptor->Memory24.Minimum),
++ (UINT32) AcpiUtReadUint16(&Descriptor->Memory24.Maximum),
++ (UINT32) AcpiUtReadUint16(&Descriptor->Memory24.AddressLength),
++ (UINT32) AcpiUtReadUint16(&Descriptor->Memory24.Alignment),
MinOp, MaxOp, LengthOp, NULL, Info->DescriptorTypeOp);
return (Rnode);
-@@ -334,10 +334,10 @@ RsDoMemory32Descriptor (
+@@ -442,10 +442,10 @@ RsDoMemory32Descriptor (
/* Validate the Min/Max/Len/Align values */
RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY32,
@@ -65,3 +68,19 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
return (Rnode);
+diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c
+index 532553c4b..d41e3a1e8 100644
+--- a/source/compiler/aslrestype1i.c
++++ b/source/compiler/aslrestype1i.c
+@@ -436,7 +436,7 @@ RsDoFixedIoDescriptor (
+
+ /* Error checks */
+
+- if (Descriptor->FixedIo.Address > 0x03FF)
++ if (AcpiUtReadUint16(&Descriptor->FixedIo.Address) > 0x03FF)
+ {
+ AslError (ASL_WARNING, ASL_MSG_ISA_ADDRESS, AddressOp, NULL);
+ }
+--
+2.26.2
+
commit 7ae04aaa722084b5b75aeeaa45d50b5dc4356c89
Author: Al Stone <ahs3(a)redhat.com>
Date: Thu Oct 29 10:46:20 2020 -0600
Use %autopatch in the spec file
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/acpica-tools.spec b/acpica-tools.spec
index e492c77..265b3b8 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -136,73 +136,7 @@ This version of the tools is being released under GPLv2 license.
%setup -q -n acpica-unix2-%{version}
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
-# apply the big-endian patches
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-%patch10 -p1
-%patch11 -p1
-%patch12 -p1
-%patch13 -p1
-%patch14 -p1
-%patch15 -p1
-%patch16 -p1
-%patch17 -p1
-%patch18 -p1
-%patch19 -p1
-%patch20 -p1
-%patch21 -p1
-%patch22 -p1
-%patch23 -p1
-%patch24 -p1
-%patch25 -p1
-%patch26 -p1
-%patch27 -p1
-%patch28 -p1
-%patch29 -p1
-%patch30 -p1
-%patch31 -p1
-%patch32 -p1
-%patch33 -p1
-%patch34 -p1
-%patch35 -p1
-%patch36 -p1
-%patch37 -p1
-%patch38 -p1
-%patch39 -p1
-%patch40 -p1
-%patch41 -p1
-%patch42 -p1
-%patch43 -p1
-%patch44 -p1
-
-# apply the remaining patches
-%patch100 -p1
-%patch101 -p1
-%patch102 -p1
-%patch103 -p1
-%patch104 -p1
-%patch105 -p1
-%patch106 -p1
-%patch107 -p1
-%patch108 -p1
-%patch109 -p1
-%patch110 -p1
-%patch111 -p1
-%patch112 -p1
-%patch113 -p1
-%patch114 -p1
-%patch115 -p1
-%ifarch i686 armv7hl
-%patch116 -p1
-%endif
+%autopatch -p1
cp -p %{SOURCE2} README.Fedora
cp -p %{SOURCE3} iasl.1
diff --git a/ull-32bit.patch b/ull-32bit.patch
index 0568e11..3d8fe39 100644
--- a/ull-32bit.patch
+++ b/ull-32bit.patch
@@ -1,12 +1,15 @@
diff -Naur acpica-unix2-20200925.orig/source/common/dmtbdump.c acpica-unix2-20200925/source/common/dmtbdump.c
---- acpica-unix2-20200925.orig/source/common/dmtbdump.c 2020-10-16 18:33:41.108600489 -0600
-+++ acpica-unix2-20200925/source/common/dmtbdump.c 2020-10-16 18:35:01.970316862 -0600
-@@ -333,7 +333,7 @@
+--- acpica-unix2-20200925.orig/source/common/dmtbdump.c 2020-10-27 08:50:34.949398104 -0500
++++ acpica-unix2-20200925/source/common/dmtbdump.c 2020-10-27 08:54:27.609955141 -0500
+@@ -333,7 +333,11 @@
for (i = 0; i < Entries; i++)
{
AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
-- AcpiOsPrintf ("%16.16lX\n", AcpiUtReadUint64(&Array[i]));
++#if ACPI_MACHINE_WIDTH == 32
+ AcpiOsPrintf ("%16.16llX\n", AcpiUtReadUint64(&Array[i]));
++#else
+ AcpiOsPrintf ("%16.16lX\n", AcpiUtReadUint64(&Array[i]));
++#endif
Offset += sizeof (UINT64);
}
}
commit 41d9121d77c38828eef8dddb190394fd36ef02b1
Author: Al Stone <ahs3(a)redhat.com>
Date: Wed Oct 28 15:27:56 2020 -0600
Fixed two more obscure endian problems
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/0045-Correct-a-couple-of-endianness-issues-previously-uns.patch b/0045-Correct-a-couple-of-endianness-issues-previously-uns.patch
new file mode 100644
index 0000000..76d5fa5
--- /dev/null
+++ b/0045-Correct-a-couple-of-endianness-issues-previously-uns.patch
@@ -0,0 +1,67 @@
+From 71357f9d65334b1667a87a940a3ac06049c9aedb Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 28 Oct 2020 12:53:34 -0600
+Subject: [PATCH] Correct a couple of endianness issues previously unseen
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/compiler/aslanalyze.c | 4 ++--
+ source/compiler/aslrestype1.c | 16 ++++++++--------
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+Index: acpica-unix2-20200925/source/compiler/aslanalyze.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslanalyze.c
++++ acpica-unix2-20200925/source/compiler/aslanalyze.c
+@@ -469,7 +469,7 @@ ApCheckForGpeNameConflict (
+
+ /* Need a null-terminated string version of NameSeg */
+
+- ACPI_MOVE_32_TO_32 (Name, Op->Asl.NameSeg);
++ ACPI_COPY_NAMESEG (Name, Op->Asl.NameSeg);
+ Name[ACPI_NAMESEG_SIZE] = 0;
+
+ /*
+@@ -496,7 +496,7 @@ ApCheckForGpeNameConflict (
+ * We are now sure we have an _Lxx or _Exx.
+ * Create the target name that would cause collision (Flip E/L)
+ */
+- ACPI_MOVE_32_TO_32 (Target, Name);
++ ACPI_COPY_NAMESEG (Target, Name);
+
+ /* Inject opposite letter ("L" versus "E") */
+
+Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype1.c
++++ acpica-unix2-20200925/source/compiler/aslrestype1.c
+@@ -220,10 +220,10 @@ RsDoMemory24Descriptor (
+ /* Validate the Min/Max/Len/Align values (Alignment==0 means 64K) */
+
+ RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY24,
+- Descriptor->Memory24.Minimum,
+- Descriptor->Memory24.Maximum,
+- Descriptor->Memory24.AddressLength,
+- Descriptor->Memory24.Alignment,
++ AcpiUtReadUint32(&Descriptor->Memory24.Minimum),
++ AcpiUtReadUint32(&Descriptor->Memory24.Maximum),
++ AcpiUtReadUint32(&Descriptor->Memory24.AddressLength),
++ AcpiUtReadUint32(&Descriptor->Memory24.Alignment),
+ MinOp, MaxOp, LengthOp, NULL, Info->DescriptorTypeOp);
+
+ return (Rnode);
+@@ -334,10 +334,10 @@ RsDoMemory32Descriptor (
+ /* Validate the Min/Max/Len/Align values */
+
+ RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY32,
+- Descriptor->Memory32.Minimum,
+- Descriptor->Memory32.Maximum,
+- Descriptor->Memory32.AddressLength,
+- Descriptor->Memory32.Alignment,
++ AcpiUtReadUint32(&Descriptor->Memory32.Minimum),
++ AcpiUtReadUint32(&Descriptor->Memory32.Maximum),
++ AcpiUtReadUint32(&Descriptor->Memory32.AddressLength),
++ AcpiUtReadUint32(&Descriptor->Memory32.Alignment),
+ MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
+
+ return (Rnode);
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 0dcf7e8..e492c77 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -68,6 +68,7 @@ Patch40: 0041-Support-MTMR-in-a-big-endian-world.patch
Patch41: 0042-Support-VRTC-in-a-big-endian-world.patch
Patch42: 0043-Support-S3PT-in-a-big-endian-world.patch
Patch43: 0044-Correct-an-endian-ness-problem-when-converting-ASL-t.patch
+Patch44: 0045-Correct-a-couple-of-endianness-issues-previously-uns.patch
# other miscellaneous patches
Patch100: unaligned.patch
@@ -180,6 +181,7 @@ gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
%patch41 -p1
%patch42 -p1
%patch43 -p1
+%patch44 -p1
# apply the remaining patches
%patch100 -p1
commit c6ecf612fe865089147297d1ad62345030147601
Author: Al Stone <ahs3(a)redhat.com>
Date: Tue Oct 27 17:54:15 2020 -0600
Add a patch to correct for endianness when converting ASL to ASL+
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/0044-Correct-an-endian-ness-problem-when-converting-ASL-t.patch b/0044-Correct-an-endian-ness-problem-when-converting-ASL-t.patch
new file mode 100644
index 0000000..5d7da5b
--- /dev/null
+++ b/0044-Correct-an-endian-ness-problem-when-converting-ASL-t.patch
@@ -0,0 +1,43 @@
+From 9dc82e99776b18fe19314695d7d83e79c7fea934 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Tue, 27 Oct 2020 17:50:52 -0600
+Subject: [PATCH] Correct an endian-ness problem when converting ASL to ASL+
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/compiler/cvparser.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/source/compiler/cvparser.c b/source/compiler/cvparser.c
+index 370b80361..7311e031a 100644
+--- a/source/compiler/cvparser.c
++++ b/source/compiler/cvparser.c
+@@ -144,6 +144,7 @@ CvInitFileTree (
+ char *ChildFilename = NULL;
+ UINT8 *AmlStart;
+ UINT32 AmlLength;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ if (!AcpiGbl_CaptureComments)
+@@ -152,7 +153,7 @@ CvInitFileTree (
+ }
+
+
+- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
++ AmlLength = TableLength - sizeof (ACPI_TABLE_HEADER);
+ AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
+
+ CvDbgPrint ("AmlLength: %x\n", AmlLength);
+@@ -162,7 +163,7 @@ CvInitFileTree (
+ AcpiGbl_FileTreeRoot = AcpiOsAcquireObject (AcpiGbl_FileCache);
+
+ AcpiGbl_FileTreeRoot->FileStart = (char *)(AmlStart);
+- AcpiGbl_FileTreeRoot->FileEnd = (char *)(AmlStart + Table->Length);
++ AcpiGbl_FileTreeRoot->FileEnd = (char *)(AmlStart + TableLength);
+ AcpiGbl_FileTreeRoot->Next = NULL;
+ AcpiGbl_FileTreeRoot->Parent = NULL;
+ AcpiGbl_FileTreeRoot->Filename = (char *)(AmlStart+2);
+--
+2.26.2
+
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 5409cda..0dcf7e8 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -67,6 +67,7 @@ Patch39: 0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
Patch40: 0041-Support-MTMR-in-a-big-endian-world.patch
Patch41: 0042-Support-VRTC-in-a-big-endian-world.patch
Patch42: 0043-Support-S3PT-in-a-big-endian-world.patch
+Patch43: 0044-Correct-an-endian-ness-problem-when-converting-ASL-t.patch
# other miscellaneous patches
Patch100: unaligned.patch
@@ -178,6 +179,7 @@ gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
%patch40 -p1
%patch41 -p1
%patch42 -p1
+%patch43 -p1
# apply the remaining patches
%patch100 -p1
commit 38a008cb324d2830fa0e3fcbf5f85c35a0a34410
Author: Al Stone <ahs3(a)redhat.com>
Date: Sun Oct 25 11:36:21 2020 -0600
Fix up patches to account for displacements due to SPDX info
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/0039-Add-partial-big-endian-support-for-WPBT-tables.patch b/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
index 071d600..3207b7d 100644
--- a/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
+++ b/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
@@ -12,11 +12,11 @@ Signed-off-by: Al Stone <ahs3(a)redhat.com>
source/compiler/dttable2.c | 3 ++-
2 files changed, 6 insertions(+), 5 deletions(-)
-diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c
-index d2f2bf7b7..da9b81c92 100644
---- a/source/common/dmtbdump3.c
-+++ b/source/common/dmtbdump3.c
-@@ -736,13 +736,13 @@ AcpiDmDumpWpbt (
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -628,13 +628,13 @@ AcpiDmDumpWpbt (
{
ACPI_STATUS Status;
ACPI_TABLE_WPBT *Subtable;
@@ -32,7 +32,7 @@ index d2f2bf7b7..da9b81c92 100644
if (ACPI_FAILURE (Status))
{
return;
-@@ -751,10 +751,10 @@ AcpiDmDumpWpbt (
+@@ -643,10 +643,10 @@ AcpiDmDumpWpbt (
/* Extract the arguments buffer length from the main table */
Subtable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table);
@@ -45,11 +45,11 @@ index d2f2bf7b7..da9b81c92 100644
+ (void) AcpiDmDumpTable (TableLength, 0, Table, ArgumentsLength,
AcpiDmTableInfoWpbt0);
}
-diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c
-index 584c09ee8..48729b48f 100644
---- a/source/compiler/dttable2.c
-+++ b/source/compiler/dttable2.c
-@@ -2298,7 +2298,8 @@ DtCompileWpbt (
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -2190,7 +2190,8 @@ DtCompileWpbt (
/* Extract the length of the Arguments buffer, insert into main table */
@@ -59,6 +59,3 @@ index 584c09ee8..48729b48f 100644
Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer);
Table->ArgumentsLength = Length;
---
-2.26.2
-
diff --git a/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch b/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
index 43b4114..bfa106b 100644
--- a/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
+++ b/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
@@ -39,11 +39,11 @@ Signed-off-by: Al Stone <ahs3(a)redhat.com>
source/components/namespace/nsutils.c | 7 +-
25 files changed, 682 insertions(+), 323 deletions(-)
-diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c
-index fe6e74146..eed863037 100644
---- a/source/common/dmrestag.c
-+++ b/source/common/dmrestag.c
-@@ -1146,7 +1146,7 @@ AcpiDmAddResourcesToNamespace (
+Index: acpica-unix2-20200925/source/common/dmrestag.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmrestag.c
++++ acpica-unix2-20200925/source/common/dmrestag.c
+@@ -1038,7 +1038,7 @@ AcpiDmAddResourcesToNamespace (
* NextOp contains the Aml pointer and the Aml length
*/
AcpiUtWalkAmlResources (NULL, (UINT8 *) NextOp->Named.Data,
@@ -52,11 +52,11 @@ index fe6e74146..eed863037 100644
AcpiDmAddResourceToNamespace, (void **) BufferNode);
}
-diff --git a/source/common/dmtables.c b/source/common/dmtables.c
-index ee18d26c9..2a5551ece 100644
---- a/source/common/dmtables.c
-+++ b/source/common/dmtables.c
-@@ -250,6 +250,10 @@ AdCreateTableHeader (
+Index: acpica-unix2-20200925/source/common/dmtables.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtables.c
++++ acpica-unix2-20200925/source/common/dmtables.c
+@@ -142,6 +142,10 @@ AdCreateTableHeader (
ACPI_TABLE_HEADER *Table)
{
UINT8 Checksum;
@@ -67,7 +67,7 @@ index ee18d26c9..2a5551ece 100644
/* Reset globals for External statements */
-@@ -264,7 +268,7 @@ AdCreateTableHeader (
+@@ -156,7 +160,7 @@ AdCreateTableHeader (
AcpiOsPrintf (" * Original Table Header:\n");
AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature);
@@ -76,7 +76,7 @@ index ee18d26c9..2a5551ece 100644
/* Print and validate the revision */
-@@ -296,7 +300,7 @@ AdCreateTableHeader (
+@@ -188,7 +192,7 @@ AdCreateTableHeader (
AcpiOsPrintf ("\n * Checksum 0x%2.2X", Table->Checksum);
@@ -85,7 +85,7 @@ index ee18d26c9..2a5551ece 100644
if (Checksum)
{
AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X",
-@@ -306,9 +310,9 @@ AdCreateTableHeader (
+@@ -198,9 +202,9 @@ AdCreateTableHeader (
AcpiOsPrintf ("\n");
AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId);
AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId);
@@ -97,7 +97,7 @@ index ee18d26c9..2a5551ece 100644
AcpiOsPrintf (" */\n");
/*
-@@ -329,7 +333,7 @@ AdCreateTableHeader (
+@@ -221,7 +225,7 @@ AdCreateTableHeader (
AcpiOsPrintf (
"DefinitionBlock (\"\", \"%4.4s\", %u, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
Table->Signature, Table->Revision,
@@ -106,7 +106,7 @@ index ee18d26c9..2a5551ece 100644
}
-@@ -504,7 +508,8 @@ AdParseTable (
+@@ -396,7 +400,8 @@ AdParseTable (
fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature);
@@ -116,11 +116,11 @@ index ee18d26c9..2a5551ece 100644
AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
AcpiUtSetIntegerWidth (Table->Revision);
-diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c
-index 92d86930b..5ad20ff62 100644
---- a/source/common/dmtbdump.c
-+++ b/source/common/dmtbdump.c
-@@ -441,8 +441,7 @@ AcpiDmDumpXsdt (
+Index: acpica-unix2-20200925/source/common/dmtbdump.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump.c
++++ acpica-unix2-20200925/source/common/dmtbdump.c
+@@ -333,8 +333,7 @@ AcpiDmDumpXsdt (
for (i = 0; i < Entries; i++)
{
AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
@@ -130,11 +130,11 @@ index 92d86930b..5ad20ff62 100644
Offset += sizeof (UINT64);
}
}
-diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c
-index ba0384e84..14be9dcc2 100644
---- a/source/compiler/aslcodegen.c
-+++ b/source/compiler/aslcodegen.c
-@@ -346,6 +346,10 @@ CgWriteAmlOpcode (
+Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslcodegen.c
++++ acpica-unix2-20200925/source/compiler/aslcodegen.c
+@@ -238,6 +238,10 @@ CgWriteAmlOpcode (
{
UINT8 PkgLenFirstByte;
UINT32 i;
@@ -145,7 +145,7 @@ index ba0384e84..14be9dcc2 100644
union {
UINT16 Opcode;
UINT8 OpcodeBytes[2];
-@@ -413,25 +417,26 @@ CgWriteAmlOpcode (
+@@ -305,25 +309,26 @@ CgWriteAmlOpcode (
/* Value is the length to be encoded (Used in field definitions) */
@@ -176,7 +176,7 @@ index ba0384e84..14be9dcc2 100644
break;
}
-@@ -443,7 +448,8 @@ CgWriteAmlOpcode (
+@@ -335,7 +340,8 @@ CgWriteAmlOpcode (
{
/* Simplest case -- no bytes to follow, just write the count */
@@ -186,7 +186,7 @@ index ba0384e84..14be9dcc2 100644
}
else if (Op->Asl.AmlPkgLenBytes != 0)
{
-@@ -451,9 +457,10 @@ CgWriteAmlOpcode (
+@@ -343,9 +349,10 @@ CgWriteAmlOpcode (
* Encode the "bytes to follow" in the first byte, top two bits.
* The low-order nybble of the length is in the bottom 4 bits
*/
@@ -198,7 +198,7 @@ index ba0384e84..14be9dcc2 100644
CgLocalWriteAmlData (Op, &PkgLenFirstByte, 1);
-@@ -467,6 +474,9 @@ CgWriteAmlOpcode (
+@@ -359,6 +366,9 @@ CgWriteAmlOpcode (
* Now we can write the remaining bytes -
* either 1, 2, or 3 bytes
*/
@@ -208,7 +208,7 @@ index ba0384e84..14be9dcc2 100644
for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++)
{
CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1);
-@@ -478,22 +488,30 @@ CgWriteAmlOpcode (
+@@ -370,22 +380,30 @@ CgWriteAmlOpcode (
{
case AML_BYTE_OP:
@@ -243,7 +243,7 @@ index ba0384e84..14be9dcc2 100644
break;
case AML_STRING_OP:
-@@ -531,6 +549,7 @@ CgWriteTableHeader (
+@@ -423,6 +441,7 @@ CgWriteTableHeader (
ACPI_PARSE_OBJECT *Child;
UINT32 CommentLength;
ACPI_COMMENT_NODE *Current;
@@ -251,7 +251,7 @@ index ba0384e84..14be9dcc2 100644
memset (&AslGbl_TableHeader, 0, sizeof (ACPI_TABLE_HEADER));
-@@ -586,7 +605,9 @@ CgWriteTableHeader (
+@@ -478,7 +497,9 @@ CgWriteTableHeader (
/* OEM Revision */
Child = Child->Asl.Next;
@@ -262,7 +262,7 @@ index ba0384e84..14be9dcc2 100644
/* Compiler ID */
-@@ -594,7 +615,8 @@ CgWriteTableHeader (
+@@ -486,7 +507,8 @@ CgWriteTableHeader (
/* Compiler version */
@@ -272,7 +272,7 @@ index ba0384e84..14be9dcc2 100644
/* Table length. Checksum zero for now, will rewrite later */
-@@ -649,6 +671,15 @@ CgWriteTableHeader (
+@@ -541,6 +563,15 @@ CgWriteTableHeader (
AslGbl_TableHeader.Checksum = 0;
Op->Asl.FinalAmlOffset = ftell (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
@@ -288,7 +288,7 @@ index ba0384e84..14be9dcc2 100644
/* Write entire header and clear the table header global */
CgLocalWriteAmlData (Op, &AslGbl_TableHeader, sizeof (ACPI_TABLE_HEADER));
-@@ -733,6 +764,7 @@ CgWriteNode (
+@@ -625,6 +656,7 @@ CgWriteNode (
ACPI_PARSE_OBJECT *Op)
{
ASL_RESOURCE_NODE *Rnode;
@@ -296,7 +296,7 @@ index ba0384e84..14be9dcc2 100644
/* Write all comments here. */
-@@ -761,7 +793,10 @@ CgWriteNode (
+@@ -653,7 +685,10 @@ CgWriteNode (
case AML_RAW_DATA_DWORD:
case AML_RAW_DATA_QWORD:
@@ -308,11 +308,11 @@ index ba0384e84..14be9dcc2 100644
return;
-diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c
-index b2a023650..afc9004af 100644
---- a/source/compiler/aslopcodes.c
-+++ b/source/compiler/aslopcodes.c
-@@ -619,7 +619,8 @@ OpcDoUnicode (
+Index: acpica-unix2-20200925/source/compiler/aslopcodes.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslopcodes.c
++++ acpica-unix2-20200925/source/compiler/aslopcodes.c
+@@ -511,7 +511,8 @@ OpcDoUnicode (
for (i = 0; i < Count; i++)
{
@@ -322,11 +322,11 @@ index b2a023650..afc9004af 100644
}
/*
-diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c
-index 4dff4607d..e7639c0bb 100644
---- a/source/compiler/aslrestype1.c
-+++ b/source/compiler/aslrestype1.c
-@@ -251,6 +251,7 @@ RsDoMemory24Descriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype1.c
++++ acpica-unix2-20200925/source/compiler/aslrestype1.c
+@@ -143,6 +143,7 @@ RsDoMemory24Descriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -334,7 +334,7 @@ index 4dff4607d..e7639c0bb 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -259,7 +260,8 @@ RsDoMemory24Descriptor (
+@@ -151,7 +152,8 @@ RsDoMemory24Descriptor (
Descriptor = Rnode->Buffer;
Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24;
@@ -344,7 +344,7 @@ index 4dff4607d..e7639c0bb 100644
/* Process all child initialization nodes */
-@@ -276,7 +278,8 @@ RsDoMemory24Descriptor (
+@@ -168,7 +170,8 @@ RsDoMemory24Descriptor (
case 1: /* Min Address */
@@ -354,7 +354,7 @@ index 4dff4607d..e7639c0bb 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
MinOp = InitializerOp;
-@@ -284,7 +287,8 @@ RsDoMemory24Descriptor (
+@@ -176,7 +179,8 @@ RsDoMemory24Descriptor (
case 2: /* Max Address */
@@ -364,7 +364,7 @@ index 4dff4607d..e7639c0bb 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
MaxOp = InitializerOp;
-@@ -292,14 +296,16 @@ RsDoMemory24Descriptor (
+@@ -184,14 +188,16 @@ RsDoMemory24Descriptor (
case 3: /* Alignment */
@@ -383,7 +383,7 @@ index 4dff4607d..e7639c0bb 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
LengthOp = InitializerOp;
-@@ -357,6 +363,8 @@ RsDoMemory32Descriptor (
+@@ -249,6 +255,8 @@ RsDoMemory32Descriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -392,7 +392,7 @@ index 4dff4607d..e7639c0bb 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -365,7 +373,8 @@ RsDoMemory32Descriptor (
+@@ -257,7 +265,8 @@ RsDoMemory32Descriptor (
Descriptor = Rnode->Buffer;
Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32;
@@ -402,7 +402,7 @@ index 4dff4607d..e7639c0bb 100644
/* Process all child initialization nodes */
-@@ -382,7 +391,8 @@ RsDoMemory32Descriptor (
+@@ -274,7 +283,8 @@ RsDoMemory32Descriptor (
case 1: /* Min Address */
@@ -412,7 +412,7 @@ index 4dff4607d..e7639c0bb 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
MinOp = InitializerOp;
-@@ -390,7 +400,8 @@ RsDoMemory32Descriptor (
+@@ -282,7 +292,8 @@ RsDoMemory32Descriptor (
case 2: /* Max Address */
@@ -422,7 +422,7 @@ index 4dff4607d..e7639c0bb 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
MaxOp = InitializerOp;
-@@ -398,7 +409,8 @@ RsDoMemory32Descriptor (
+@@ -290,7 +301,8 @@ RsDoMemory32Descriptor (
case 3: /* Alignment */
@@ -432,7 +432,7 @@ index 4dff4607d..e7639c0bb 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
AlignOp = InitializerOp;
-@@ -406,7 +418,8 @@ RsDoMemory32Descriptor (
+@@ -298,7 +310,8 @@ RsDoMemory32Descriptor (
case 4: /* Length */
@@ -442,7 +442,7 @@ index 4dff4607d..e7639c0bb 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
LengthOp = InitializerOp;
-@@ -460,6 +473,8 @@ RsDoMemory32FixedDescriptor (
+@@ -352,6 +365,8 @@ RsDoMemory32FixedDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -451,7 +451,7 @@ index 4dff4607d..e7639c0bb 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -468,7 +483,8 @@ RsDoMemory32FixedDescriptor (
+@@ -360,7 +375,8 @@ RsDoMemory32FixedDescriptor (
Descriptor = Rnode->Buffer;
Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32;
@@ -461,7 +461,7 @@ index 4dff4607d..e7639c0bb 100644
/* Process all child initialization nodes */
-@@ -485,14 +501,16 @@ RsDoMemory32FixedDescriptor (
+@@ -377,14 +393,16 @@ RsDoMemory32FixedDescriptor (
case 1: /* Address */
@@ -480,11 +480,11 @@ index 4dff4607d..e7639c0bb 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
break;
-diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c
-index 9e9bc2096..532553c4b 100644
---- a/source/compiler/aslrestype1i.c
-+++ b/source/compiler/aslrestype1i.c
-@@ -307,6 +307,7 @@ RsDoFixedDmaDescriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype1i.c
++++ acpica-unix2-20200925/source/compiler/aslrestype1i.c
+@@ -199,6 +199,7 @@ RsDoFixedDmaDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -492,7 +492,7 @@ index 9e9bc2096..532553c4b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -325,14 +326,16 @@ RsDoFixedDmaDescriptor (
+@@ -217,14 +218,16 @@ RsDoFixedDmaDescriptor (
{
case 0: /* DMA Request Lines [WORD] (_DMA) */
@@ -511,7 +511,7 @@ index 9e9bc2096..532553c4b 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_DMATYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.Channels));
break;
-@@ -383,6 +386,7 @@ RsDoFixedIoDescriptor (
+@@ -275,6 +278,7 @@ RsDoFixedIoDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -519,7 +519,7 @@ index 9e9bc2096..532553c4b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -401,8 +405,8 @@ RsDoFixedIoDescriptor (
+@@ -293,8 +297,8 @@ RsDoFixedIoDescriptor (
{
case 0: /* Base Address */
@@ -530,7 +530,7 @@ index 9e9bc2096..532553c4b 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
AddressOp = InitializerOp;
-@@ -466,6 +470,7 @@ RsDoIoDescriptor (
+@@ -358,6 +362,7 @@ RsDoIoDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -538,7 +538,7 @@ index 9e9bc2096..532553c4b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -491,8 +496,8 @@ RsDoIoDescriptor (
+@@ -383,8 +388,8 @@ RsDoIoDescriptor (
case 1: /* Min Address */
@@ -549,7 +549,7 @@ index 9e9bc2096..532553c4b 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
MinOp = InitializerOp;
-@@ -500,8 +505,8 @@ RsDoIoDescriptor (
+@@ -392,8 +397,8 @@ RsDoIoDescriptor (
case 2: /* Max Address */
@@ -560,7 +560,7 @@ index 9e9bc2096..532553c4b 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
MaxOp = InitializerOp;
-@@ -542,10 +547,10 @@ RsDoIoDescriptor (
+@@ -434,10 +439,10 @@ RsDoIoDescriptor (
/* Validate the Min/Max/Len/Align values */
RsSmallAddressCheck (ACPI_RESOURCE_NAME_IO,
@@ -575,7 +575,7 @@ index 9e9bc2096..532553c4b 100644
MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
return (Rnode);
-@@ -669,7 +674,7 @@ RsDoIrqDescriptor (
+@@ -561,7 +566,7 @@ RsDoIrqDescriptor (
/* Now we can set the channel mask */
@@ -584,7 +584,7 @@ index 9e9bc2096..532553c4b 100644
return (Rnode);
}
-@@ -768,6 +773,6 @@ RsDoIrqNoFlagsDescriptor (
+@@ -660,6 +665,6 @@ RsDoIrqNoFlagsDescriptor (
/* Now we can set the interrupt mask */
@@ -592,11 +592,11 @@ index 9e9bc2096..532553c4b 100644
+ Descriptor->Irq.IrqMask = AcpiUtReadUint16(&IrqMask);
return (Rnode);
}
-diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c
-index 93236853a..13d0476e7 100644
---- a/source/compiler/aslrestype2.c
-+++ b/source/compiler/aslrestype2.c
-@@ -185,6 +185,8 @@ RsDoGeneralRegisterDescriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2.c
+@@ -77,6 +77,8 @@ RsDoGeneralRegisterDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -605,7 +605,7 @@ index 93236853a..13d0476e7 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -193,7 +195,8 @@ RsDoGeneralRegisterDescriptor (
+@@ -85,7 +87,8 @@ RsDoGeneralRegisterDescriptor (
Descriptor = Rnode->Buffer;
Descriptor->GenericReg.DescriptorType = ACPI_RESOURCE_NAME_GENERIC_REGISTER;
@@ -615,7 +615,7 @@ index 93236853a..13d0476e7 100644
/* Process all child initialization nodes */
-@@ -224,7 +227,8 @@ RsDoGeneralRegisterDescriptor (
+@@ -116,7 +119,8 @@ RsDoGeneralRegisterDescriptor (
case 3: /* Register Address */
@@ -625,7 +625,7 @@ index 93236853a..13d0476e7 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_ADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
break;
-@@ -292,6 +296,8 @@ RsDoInterruptDescriptor (
+@@ -184,6 +188,8 @@ RsDoInterruptDescriptor (
BOOLEAN HasResSourceIndex = FALSE;
UINT8 ResSourceIndex = 0;
UINT8 *ResSourceString = NULL;
@@ -634,7 +634,7 @@ index 93236853a..13d0476e7 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -333,7 +339,7 @@ RsDoInterruptDescriptor (
+@@ -225,7 +231,7 @@ RsDoInterruptDescriptor (
* Initial descriptor length -- may be enlarged if there are
* optional fields present
*/
@@ -643,7 +643,7 @@ index 93236853a..13d0476e7 100644
Descriptor->ExtendedIrq.InterruptCount = 0;
Rover = ACPI_CAST_PTR (AML_RESOURCE,
-@@ -441,7 +447,8 @@ RsDoInterruptDescriptor (
+@@ -333,7 +339,8 @@ RsDoInterruptDescriptor (
/* Save the integer and move pointer to the next one */
@@ -653,7 +653,7 @@ index 93236853a..13d0476e7 100644
Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->DwordItem), 4);
Descriptor->ExtendedIrq.InterruptCount++;
Descriptor->ExtendedIrq.ResourceLength += 4;
-@@ -492,6 +499,8 @@ RsDoInterruptDescriptor (
+@@ -384,6 +391,8 @@ RsDoInterruptDescriptor (
Descriptor->ExtendedIrq.ResourceLength = (UINT16)
(Descriptor->ExtendedIrq.ResourceLength + StringLength);
}
@@ -662,7 +662,7 @@ index 93236853a..13d0476e7 100644
Rnode->BufferLength =
(ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) -
-@@ -544,7 +553,8 @@ RsDoVendorLargeDescriptor (
+@@ -436,7 +445,8 @@ RsDoVendorLargeDescriptor (
Descriptor = Rnode->Buffer;
Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE;
@@ -672,11 +672,11 @@ index 93236853a..13d0476e7 100644
/* Point to end-of-descriptor for vendor data */
-diff --git a/source/compiler/aslrestype2d.c b/source/compiler/aslrestype2d.c
-index 394530ae3..fd9dc91de 100644
---- a/source/compiler/aslrestype2d.c
-+++ b/source/compiler/aslrestype2d.c
-@@ -192,6 +192,8 @@ RsDoDwordIoDescriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2d.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2d.c
+@@ -84,6 +84,8 @@ RsDoDwordIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -685,7 +685,7 @@ index 394530ae3..fd9dc91de 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -255,8 +257,8 @@ RsDoDwordIoDescriptor (
+@@ -147,8 +149,8 @@ RsDoDwordIoDescriptor (
case 5: /* Address Granularity */
@@ -696,7 +696,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp;
-@@ -264,8 +266,8 @@ RsDoDwordIoDescriptor (
+@@ -156,8 +158,8 @@ RsDoDwordIoDescriptor (
case 6: /* Address Min */
@@ -707,7 +707,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp;
-@@ -273,8 +275,8 @@ RsDoDwordIoDescriptor (
+@@ -165,8 +167,8 @@ RsDoDwordIoDescriptor (
case 7: /* Address Max */
@@ -718,7 +718,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp;
-@@ -282,16 +284,16 @@ RsDoDwordIoDescriptor (
+@@ -174,16 +176,16 @@ RsDoDwordIoDescriptor (
case 8: /* Translation Offset */
@@ -739,7 +739,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp;
-@@ -379,11 +381,14 @@ RsDoDwordIoDescriptor (
+@@ -271,11 +273,14 @@ RsDoDwordIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -758,7 +758,7 @@ index 394530ae3..fd9dc91de 100644
Descriptor->Address32.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -422,6 +427,8 @@ RsDoDwordMemoryDescriptor (
+@@ -314,6 +319,8 @@ RsDoDwordMemoryDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -767,7 +767,7 @@ index 394530ae3..fd9dc91de 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -493,8 +500,8 @@ RsDoDwordMemoryDescriptor (
+@@ -385,8 +392,8 @@ RsDoDwordMemoryDescriptor (
case 6: /* Address Granularity */
@@ -778,7 +778,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp;
-@@ -502,8 +509,8 @@ RsDoDwordMemoryDescriptor (
+@@ -394,8 +401,8 @@ RsDoDwordMemoryDescriptor (
case 7: /* Min Address */
@@ -789,7 +789,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp;
-@@ -511,8 +518,8 @@ RsDoDwordMemoryDescriptor (
+@@ -403,8 +410,8 @@ RsDoDwordMemoryDescriptor (
case 8: /* Max Address */
@@ -800,7 +800,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp;
-@@ -520,16 +527,16 @@ RsDoDwordMemoryDescriptor (
+@@ -412,16 +419,16 @@ RsDoDwordMemoryDescriptor (
case 9: /* Translation Offset */
@@ -821,7 +821,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp;
-@@ -614,11 +621,14 @@ RsDoDwordMemoryDescriptor (
+@@ -506,11 +513,14 @@ RsDoDwordMemoryDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -840,7 +840,7 @@ index 394530ae3..fd9dc91de 100644
Descriptor->Address32.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -657,6 +667,8 @@ RsDoDwordSpaceDescriptor (
+@@ -549,6 +559,8 @@ RsDoDwordSpaceDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -849,7 +849,7 @@ index 394530ae3..fd9dc91de 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -724,8 +736,8 @@ RsDoDwordSpaceDescriptor (
+@@ -616,8 +628,8 @@ RsDoDwordSpaceDescriptor (
case 6: /* Address Granularity */
@@ -860,7 +860,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp;
-@@ -733,8 +745,8 @@ RsDoDwordSpaceDescriptor (
+@@ -625,8 +637,8 @@ RsDoDwordSpaceDescriptor (
case 7: /* Min Address */
@@ -871,7 +871,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp;
-@@ -742,8 +754,8 @@ RsDoDwordSpaceDescriptor (
+@@ -634,8 +646,8 @@ RsDoDwordSpaceDescriptor (
case 8: /* Max Address */
@@ -882,7 +882,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp;
-@@ -751,16 +763,16 @@ RsDoDwordSpaceDescriptor (
+@@ -643,16 +655,16 @@ RsDoDwordSpaceDescriptor (
case 9: /* Translation Offset */
@@ -903,7 +903,7 @@ index 394530ae3..fd9dc91de 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp;
-@@ -831,11 +843,14 @@ RsDoDwordSpaceDescriptor (
+@@ -723,11 +735,14 @@ RsDoDwordSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -922,11 +922,11 @@ index 394530ae3..fd9dc91de 100644
Descriptor->Address32.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-diff --git a/source/compiler/aslrestype2e.c b/source/compiler/aslrestype2e.c
-index b188994d3..ad61efc77 100644
---- a/source/compiler/aslrestype2e.c
-+++ b/source/compiler/aslrestype2e.c
-@@ -188,6 +188,7 @@ RsDoExtendedIoDescriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2e.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2e.c
+@@ -80,6 +80,7 @@ RsDoExtendedIoDescriptor (
UINT16 StringLength = 0;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -934,7 +934,7 @@ index b188994d3..ad61efc77 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -247,7 +248,8 @@ RsDoExtendedIoDescriptor (
+@@ -139,7 +140,8 @@ RsDoExtendedIoDescriptor (
case 5: /* Address Granularity */
@@ -944,7 +944,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp;
-@@ -255,7 +257,8 @@ RsDoExtendedIoDescriptor (
+@@ -147,7 +149,8 @@ RsDoExtendedIoDescriptor (
case 6: /* Address Min */
@@ -954,7 +954,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp;
-@@ -263,7 +266,8 @@ RsDoExtendedIoDescriptor (
+@@ -155,7 +158,8 @@ RsDoExtendedIoDescriptor (
case 7: /* Address Max */
@@ -964,7 +964,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp;
-@@ -271,14 +275,16 @@ RsDoExtendedIoDescriptor (
+@@ -163,14 +167,16 @@ RsDoExtendedIoDescriptor (
case 8: /* Translation Offset */
@@ -983,7 +983,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp;
-@@ -286,7 +292,8 @@ RsDoExtendedIoDescriptor (
+@@ -178,7 +184,8 @@ RsDoExtendedIoDescriptor (
case 10: /* Type-Specific Attributes */
@@ -993,7 +993,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break;
-@@ -321,11 +328,14 @@ RsDoExtendedIoDescriptor (
+@@ -213,11 +220,14 @@ RsDoExtendedIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1012,7 +1012,7 @@ index b188994d3..ad61efc77 100644
Descriptor->ExtAddress64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -361,6 +371,7 @@ RsDoExtendedMemoryDescriptor (
+@@ -253,6 +263,7 @@ RsDoExtendedMemoryDescriptor (
UINT16 StringLength = 0;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1020,7 +1020,7 @@ index b188994d3..ad61efc77 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -427,7 +438,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -319,7 +330,8 @@ RsDoExtendedMemoryDescriptor (
case 6: /* Address Granularity */
@@ -1030,7 +1030,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp;
-@@ -435,7 +447,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -327,7 +339,8 @@ RsDoExtendedMemoryDescriptor (
case 7: /* Min Address */
@@ -1040,7 +1040,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp;
-@@ -443,7 +456,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -335,7 +348,8 @@ RsDoExtendedMemoryDescriptor (
case 8: /* Max Address */
@@ -1050,7 +1050,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp;
-@@ -451,14 +465,16 @@ RsDoExtendedMemoryDescriptor (
+@@ -343,14 +357,16 @@ RsDoExtendedMemoryDescriptor (
case 9: /* Translation Offset */
@@ -1069,7 +1069,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp;
-@@ -466,7 +482,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -358,7 +374,8 @@ RsDoExtendedMemoryDescriptor (
case 11: /* Type-Specific Attributes */
@@ -1079,7 +1079,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break;
-@@ -502,11 +519,14 @@ RsDoExtendedMemoryDescriptor (
+@@ -394,11 +411,14 @@ RsDoExtendedMemoryDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1098,7 +1098,7 @@ index b188994d3..ad61efc77 100644
Descriptor->ExtAddress64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -542,6 +562,7 @@ RsDoExtendedSpaceDescriptor (
+@@ -434,6 +454,7 @@ RsDoExtendedSpaceDescriptor (
UINT16 StringLength = 0;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1106,7 +1106,7 @@ index b188994d3..ad61efc77 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -605,7 +626,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -497,7 +518,8 @@ RsDoExtendedSpaceDescriptor (
case 6: /* Address Granularity */
@@ -1116,7 +1116,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp;
-@@ -613,7 +635,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -505,7 +527,8 @@ RsDoExtendedSpaceDescriptor (
case 7: /* Min Address */
@@ -1126,7 +1126,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp;
-@@ -621,7 +644,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -513,7 +536,8 @@ RsDoExtendedSpaceDescriptor (
case 8: /* Max Address */
@@ -1136,7 +1136,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp;
-@@ -629,14 +653,16 @@ RsDoExtendedSpaceDescriptor (
+@@ -521,14 +545,16 @@ RsDoExtendedSpaceDescriptor (
case 9: /* Translation Offset */
@@ -1155,7 +1155,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp;
-@@ -644,7 +670,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -536,7 +562,8 @@ RsDoExtendedSpaceDescriptor (
case 11: /* Type-Specific Attributes */
@@ -1165,7 +1165,7 @@ index b188994d3..ad61efc77 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break;
-@@ -665,11 +692,14 @@ RsDoExtendedSpaceDescriptor (
+@@ -557,11 +584,14 @@ RsDoExtendedSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1184,11 +1184,11 @@ index b188994d3..ad61efc77 100644
Descriptor->ExtAddress64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-diff --git a/source/compiler/aslrestype2q.c b/source/compiler/aslrestype2q.c
-index 02db0ab34..7706b07ac 100644
---- a/source/compiler/aslrestype2q.c
-+++ b/source/compiler/aslrestype2q.c
-@@ -192,6 +192,7 @@ RsDoQwordIoDescriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2q.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2q.c
+@@ -84,6 +84,7 @@ RsDoQwordIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1196,7 +1196,7 @@ index 02db0ab34..7706b07ac 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -255,7 +256,8 @@ RsDoQwordIoDescriptor (
+@@ -147,7 +148,8 @@ RsDoQwordIoDescriptor (
case 5: /* Address Granularity */
@@ -1206,7 +1206,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp;
-@@ -263,7 +265,8 @@ RsDoQwordIoDescriptor (
+@@ -155,7 +157,8 @@ RsDoQwordIoDescriptor (
case 6: /* Address Min */
@@ -1216,7 +1216,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp;
-@@ -271,7 +274,8 @@ RsDoQwordIoDescriptor (
+@@ -163,7 +166,8 @@ RsDoQwordIoDescriptor (
case 7: /* Address Max */
@@ -1226,7 +1226,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp;
-@@ -279,14 +283,16 @@ RsDoQwordIoDescriptor (
+@@ -171,14 +175,16 @@ RsDoQwordIoDescriptor (
case 8: /* Translation Offset */
@@ -1245,7 +1245,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp;
-@@ -370,11 +376,14 @@ RsDoQwordIoDescriptor (
+@@ -262,11 +268,14 @@ RsDoQwordIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1264,7 +1264,7 @@ index 02db0ab34..7706b07ac 100644
Descriptor->Address64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -413,6 +422,7 @@ RsDoQwordMemoryDescriptor (
+@@ -305,6 +314,7 @@ RsDoQwordMemoryDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1272,7 +1272,7 @@ index 02db0ab34..7706b07ac 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -483,7 +493,8 @@ RsDoQwordMemoryDescriptor (
+@@ -375,7 +385,8 @@ RsDoQwordMemoryDescriptor (
case 6: /* Address Granularity */
@@ -1282,7 +1282,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp;
-@@ -491,7 +502,8 @@ RsDoQwordMemoryDescriptor (
+@@ -383,7 +394,8 @@ RsDoQwordMemoryDescriptor (
case 7: /* Min Address */
@@ -1292,7 +1292,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp;
-@@ -499,7 +511,8 @@ RsDoQwordMemoryDescriptor (
+@@ -391,7 +403,8 @@ RsDoQwordMemoryDescriptor (
case 8: /* Max Address */
@@ -1302,7 +1302,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp;
-@@ -507,14 +520,16 @@ RsDoQwordMemoryDescriptor (
+@@ -399,14 +412,16 @@ RsDoQwordMemoryDescriptor (
case 9: /* Translation Offset */
@@ -1321,7 +1321,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp;
-@@ -599,11 +614,14 @@ RsDoQwordMemoryDescriptor (
+@@ -491,11 +506,14 @@ RsDoQwordMemoryDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1340,7 +1340,7 @@ index 02db0ab34..7706b07ac 100644
Descriptor->Address64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -642,6 +660,7 @@ RsDoQwordSpaceDescriptor (
+@@ -534,6 +552,7 @@ RsDoQwordSpaceDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1348,7 +1348,7 @@ index 02db0ab34..7706b07ac 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -709,7 +728,8 @@ RsDoQwordSpaceDescriptor (
+@@ -601,7 +620,8 @@ RsDoQwordSpaceDescriptor (
case 6: /* Address Granularity */
@@ -1358,7 +1358,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp;
-@@ -717,7 +737,8 @@ RsDoQwordSpaceDescriptor (
+@@ -609,7 +629,8 @@ RsDoQwordSpaceDescriptor (
case 7: /* Min Address */
@@ -1368,7 +1368,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp;
-@@ -725,7 +746,8 @@ RsDoQwordSpaceDescriptor (
+@@ -617,7 +638,8 @@ RsDoQwordSpaceDescriptor (
case 8: /* Max Address */
@@ -1378,7 +1378,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp;
-@@ -733,14 +755,16 @@ RsDoQwordSpaceDescriptor (
+@@ -625,14 +647,16 @@ RsDoQwordSpaceDescriptor (
case 9: /* Translation Offset */
@@ -1397,7 +1397,7 @@ index 02db0ab34..7706b07ac 100644
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp;
-@@ -810,11 +834,14 @@ RsDoQwordSpaceDescriptor (
+@@ -702,11 +726,14 @@ RsDoQwordSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1416,11 +1416,11 @@ index 02db0ab34..7706b07ac 100644
Descriptor->Address64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c
-index c075c89c9..7aa23a35b 100644
---- a/source/compiler/aslrestype2s.c
-+++ b/source/compiler/aslrestype2s.c
-@@ -451,6 +451,7 @@ RsDoGpioIntDescriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2s.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2s.c
+@@ -343,6 +343,7 @@ RsDoGpioIntDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1428,7 +1428,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -593,7 +594,8 @@ RsDoGpioIntDescriptor (
+@@ -485,7 +486,8 @@ RsDoGpioIntDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1438,7 +1438,7 @@ index c075c89c9..7aa23a35b 100644
InterruptList++;
PinCount++;
-@@ -626,6 +628,27 @@ RsDoGpioIntDescriptor (
+@@ -518,6 +520,27 @@ RsDoGpioIntDescriptor (
MpSaveGpioInfo (Info->MappingOp, Descriptor,
PinCount, PinList, ResourceSource);
@@ -1466,7 +1466,7 @@ index c075c89c9..7aa23a35b 100644
return (Rnode);
}
-@@ -660,6 +683,7 @@ RsDoGpioIoDescriptor (
+@@ -552,6 +575,7 @@ RsDoGpioIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1474,7 +1474,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -799,7 +823,8 @@ RsDoGpioIoDescriptor (
+@@ -691,7 +715,8 @@ RsDoGpioIoDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1484,7 +1484,7 @@ index c075c89c9..7aa23a35b 100644
InterruptList++;
PinCount++;
-@@ -832,6 +857,27 @@ RsDoGpioIoDescriptor (
+@@ -724,6 +749,27 @@ RsDoGpioIoDescriptor (
MpSaveGpioInfo (Info->MappingOp, Descriptor,
PinCount, PinList, ResourceSource);
@@ -1512,7 +1512,7 @@ index c075c89c9..7aa23a35b 100644
return (Rnode);
}
-@@ -862,6 +908,8 @@ RsDoI2cSerialBusDescriptor (
+@@ -754,6 +800,8 @@ RsDoI2cSerialBusDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1521,7 +1521,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -889,7 +937,8 @@ RsDoI2cSerialBusDescriptor (
+@@ -781,7 +829,8 @@ RsDoI2cSerialBusDescriptor (
Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION;
Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION;
Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE;
@@ -1531,7 +1531,7 @@ index c075c89c9..7aa23a35b 100644
if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_I2C_SERIALBUS_V2)
{
-@@ -903,13 +952,15 @@ RsDoI2cSerialBusDescriptor (
+@@ -795,13 +844,15 @@ RsDoI2cSerialBusDescriptor (
/* Process all child initialization nodes */
@@ -1548,7 +1548,7 @@ index c075c89c9..7aa23a35b 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.SlaveAddress));
break;
-@@ -923,16 +974,19 @@ RsDoI2cSerialBusDescriptor (
+@@ -815,16 +866,19 @@ RsDoI2cSerialBusDescriptor (
case 2: /* Connection Speed [DWORD] (_SPE) */
@@ -1570,7 +1570,7 @@ index c075c89c9..7aa23a35b 100644
break;
case 4: /* ResSource [Optional Field - STRING] */
-@@ -990,6 +1044,8 @@ RsDoI2cSerialBusDescriptor (
+@@ -882,6 +936,8 @@ RsDoI2cSerialBusDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1579,7 +1579,7 @@ index c075c89c9..7aa23a35b 100644
MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
return (Rnode);
}
-@@ -1021,6 +1077,8 @@ RsDoSpiSerialBusDescriptor (
+@@ -913,6 +969,8 @@ RsDoSpiSerialBusDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1588,7 +1588,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -1043,12 +1101,13 @@ RsDoSpiSerialBusDescriptor (
+@@ -935,12 +993,13 @@ RsDoSpiSerialBusDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1604,7 +1604,7 @@ index c075c89c9..7aa23a35b 100644
if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_SPI_SERIALBUS_V2)
{
-@@ -1063,29 +1122,35 @@ RsDoSpiSerialBusDescriptor (
+@@ -955,29 +1014,35 @@ RsDoSpiSerialBusDescriptor (
/* Process all child initialization nodes */
@@ -1643,7 +1643,7 @@ index c075c89c9..7aa23a35b 100644
break;
case 3: /* Device Bit Length [BYTE] (_LEN) */
-@@ -1104,7 +1169,8 @@ RsDoSpiSerialBusDescriptor (
+@@ -996,7 +1061,8 @@ RsDoSpiSerialBusDescriptor (
case 5: /* Connection Speed [DWORD] (_SPE) */
@@ -1653,7 +1653,7 @@ index c075c89c9..7aa23a35b 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.ConnectionSpeed));
break;
-@@ -1209,6 +1275,8 @@ RsDoUartSerialBusDescriptor (
+@@ -1101,6 +1167,8 @@ RsDoUartSerialBusDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1662,7 +1662,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -1231,12 +1299,13 @@ RsDoUartSerialBusDescriptor (
+@@ -1123,12 +1191,13 @@ RsDoUartSerialBusDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1678,7 +1678,7 @@ index c075c89c9..7aa23a35b 100644
if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_UART_SERIALBUS_V2)
{
-@@ -1250,29 +1319,35 @@ RsDoUartSerialBusDescriptor (
+@@ -1142,29 +1211,35 @@ RsDoUartSerialBusDescriptor (
/* Process all child initialization nodes */
@@ -1717,7 +1717,7 @@ index c075c89c9..7aa23a35b 100644
break;
case 3: /* Lines In Use [BYTE] (_LIN) */
-@@ -1284,9 +1359,11 @@ RsDoUartSerialBusDescriptor (
+@@ -1176,9 +1251,11 @@ RsDoUartSerialBusDescriptor (
case 4: /* Endianness [Flag] (_END) */
@@ -1730,7 +1730,7 @@ index c075c89c9..7aa23a35b 100644
break;
case 5: /* Parity [BYTE] (_PAR) */
-@@ -1298,21 +1375,25 @@ RsDoUartSerialBusDescriptor (
+@@ -1190,21 +1267,25 @@ RsDoUartSerialBusDescriptor (
case 6: /* Flow Control [Flags] (_FLC) */
@@ -1759,7 +1759,7 @@ index c075c89c9..7aa23a35b 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_TX,
CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TxFifoSize));
break;
-@@ -1416,6 +1497,7 @@ RsDoPinFunctionDescriptor (
+@@ -1308,6 +1389,7 @@ RsDoPinFunctionDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1767,7 +1767,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1439,7 +1521,7 @@ RsDoPinFunctionDescriptor (
+@@ -1331,7 +1413,7 @@ RsDoPinFunctionDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1776,7 +1776,7 @@ index c075c89c9..7aa23a35b 100644
Descriptor->PinFunction.DescriptorType = ACPI_RESOURCE_NAME_PIN_FUNCTION;
Descriptor->PinFunction.RevisionId = AML_RESOURCE_PIN_FUNCTION_REVISION;
-@@ -1479,7 +1561,8 @@ RsDoPinFunctionDescriptor (
+@@ -1371,7 +1453,8 @@ RsDoPinFunctionDescriptor (
case 2: /* Function Number [WORD] (_FUN) */
@@ -1786,7 +1786,7 @@ index c075c89c9..7aa23a35b 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_FUNCTION,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinFunction.FunctionNumber));
break;
-@@ -1527,6 +1610,12 @@ RsDoPinFunctionDescriptor (
+@@ -1419,6 +1502,12 @@ RsDoPinFunctionDescriptor (
{
Descriptor->PinFunction.VendorLength = VendorLength;
}
@@ -1799,7 +1799,7 @@ index c075c89c9..7aa23a35b 100644
break;
default:
-@@ -1538,7 +1627,8 @@ RsDoPinFunctionDescriptor (
+@@ -1430,7 +1519,8 @@ RsDoPinFunctionDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1809,7 +1809,7 @@ index c075c89c9..7aa23a35b 100644
PinList++;
PinCount++;
-@@ -1569,6 +1659,13 @@ RsDoPinFunctionDescriptor (
+@@ -1461,6 +1551,13 @@ RsDoPinFunctionDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1823,7 +1823,7 @@ index c075c89c9..7aa23a35b 100644
return (Rnode);
}
-@@ -1602,6 +1699,8 @@ RsDoPinConfigDescriptor (
+@@ -1494,6 +1591,8 @@ RsDoPinConfigDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1832,7 +1832,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1625,7 +1724,7 @@ RsDoPinConfigDescriptor (
+@@ -1517,7 +1616,7 @@ RsDoPinConfigDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1841,7 +1841,7 @@ index c075c89c9..7aa23a35b 100644
Descriptor->PinConfig.DescriptorType = ACPI_RESOURCE_NAME_PIN_CONFIG;
Descriptor->PinConfig.RevisionId = AML_RESOURCE_PIN_CONFIG_REVISION;
-@@ -1679,7 +1778,8 @@ RsDoPinConfigDescriptor (
+@@ -1571,7 +1670,8 @@ RsDoPinConfigDescriptor (
case 2: /* Pin Config Value [DWORD] (_VAL) */
@@ -1851,7 +1851,7 @@ index c075c89c9..7aa23a35b 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_PINCONFIG_VALUE,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinConfig.PinConfigValue));
break;
-@@ -1738,7 +1838,8 @@ RsDoPinConfigDescriptor (
+@@ -1630,7 +1730,8 @@ RsDoPinConfigDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1861,7 +1861,7 @@ index c075c89c9..7aa23a35b 100644
PinList++;
PinCount++;
-@@ -1769,6 +1870,16 @@ RsDoPinConfigDescriptor (
+@@ -1661,6 +1762,16 @@ RsDoPinConfigDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1878,7 +1878,7 @@ index c075c89c9..7aa23a35b 100644
return (Rnode);
}
-@@ -1802,6 +1913,7 @@ RsDoPinGroupDescriptor (
+@@ -1694,6 +1805,7 @@ RsDoPinGroupDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1886,7 +1886,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1825,7 +1937,7 @@ RsDoPinGroupDescriptor (
+@@ -1717,7 +1829,7 @@ RsDoPinGroupDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1895,7 +1895,7 @@ index c075c89c9..7aa23a35b 100644
Descriptor->PinGroup.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP;
Descriptor->PinGroup.RevisionId = AML_RESOURCE_PIN_GROUP_REVISION;
-@@ -1892,7 +2004,8 @@ RsDoPinGroupDescriptor (
+@@ -1784,7 +1896,8 @@ RsDoPinGroupDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1905,7 +1905,7 @@ index c075c89c9..7aa23a35b 100644
PinList++;
PinCount++;
-@@ -1923,6 +2036,16 @@ RsDoPinGroupDescriptor (
+@@ -1815,6 +1928,16 @@ RsDoPinGroupDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1922,7 +1922,7 @@ index c075c89c9..7aa23a35b 100644
return (Rnode);
}
-@@ -1955,6 +2078,7 @@ RsDoPinGroupFunctionDescriptor (
+@@ -1847,6 +1970,7 @@ RsDoPinGroupFunctionDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1930,7 +1930,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1978,7 +2102,7 @@ RsDoPinGroupFunctionDescriptor (
+@@ -1870,7 +1994,7 @@ RsDoPinGroupFunctionDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1939,7 +1939,7 @@ index c075c89c9..7aa23a35b 100644
Descriptor->PinGroupFunction.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION;
Descriptor->PinGroupFunction.RevisionId = AML_RESOURCE_PIN_GROUP_FUNCTION_REVISION;
-@@ -2010,7 +2134,8 @@ RsDoPinGroupFunctionDescriptor (
+@@ -1902,7 +2026,8 @@ RsDoPinGroupFunctionDescriptor (
case 1: /* Function Number [WORD] */
@@ -1949,7 +1949,7 @@ index c075c89c9..7aa23a35b 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_FUNCTION,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinGroupFunction.FunctionNumber));
break;
-@@ -2069,6 +2194,16 @@ RsDoPinGroupFunctionDescriptor (
+@@ -1961,6 +2086,16 @@ RsDoPinGroupFunctionDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1966,7 +1966,7 @@ index c075c89c9..7aa23a35b 100644
return (Rnode);
}
-@@ -2101,6 +2236,8 @@ RsDoPinGroupConfigDescriptor (
+@@ -1993,6 +2128,8 @@ RsDoPinGroupConfigDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1975,7 +1975,7 @@ index c075c89c9..7aa23a35b 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -2124,7 +2261,7 @@ RsDoPinGroupConfigDescriptor (
+@@ -2016,7 +2153,7 @@ RsDoPinGroupConfigDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1984,7 +1984,7 @@ index c075c89c9..7aa23a35b 100644
Descriptor->PinGroupConfig.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG;
Descriptor->PinGroupConfig.RevisionId = AML_RESOURCE_PIN_GROUP_CONFIG_REVISION;
-@@ -2177,7 +2314,8 @@ RsDoPinGroupConfigDescriptor (
+@@ -2069,7 +2206,8 @@ RsDoPinGroupConfigDescriptor (
case 2: /* Pin Config Value [DWORD] (_VAL) */
@@ -1994,7 +1994,7 @@ index c075c89c9..7aa23a35b 100644
RsCreateDwordField (InitializerOp, ACPI_RESTAG_PINCONFIG_VALUE,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinGroupConfig.PinConfigValue));
break;
-@@ -2238,5 +2376,15 @@ RsDoPinGroupConfigDescriptor (
+@@ -2130,5 +2268,15 @@ RsDoPinGroupConfigDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -2010,11 +2010,11 @@ index c075c89c9..7aa23a35b 100644
+
return (Rnode);
}
-diff --git a/source/compiler/aslrestype2w.c b/source/compiler/aslrestype2w.c
-index b2113f4c9..6077f5f1a 100644
---- a/source/compiler/aslrestype2w.c
-+++ b/source/compiler/aslrestype2w.c
-@@ -192,6 +192,7 @@ RsDoWordIoDescriptor (
+Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2w.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2w.c
+@@ -84,6 +84,7 @@ RsDoWordIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -2022,7 +2022,7 @@ index b2113f4c9..6077f5f1a 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -255,7 +256,8 @@ RsDoWordIoDescriptor (
+@@ -147,7 +148,8 @@ RsDoWordIoDescriptor (
case 5: /* Address Granularity */
@@ -2032,7 +2032,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp;
-@@ -263,7 +265,8 @@ RsDoWordIoDescriptor (
+@@ -155,7 +157,8 @@ RsDoWordIoDescriptor (
case 6: /* Address Min */
@@ -2042,7 +2042,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp;
-@@ -271,7 +274,8 @@ RsDoWordIoDescriptor (
+@@ -163,7 +166,8 @@ RsDoWordIoDescriptor (
case 7: /* Address Max */
@@ -2052,7 +2052,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp;
-@@ -279,14 +283,16 @@ RsDoWordIoDescriptor (
+@@ -171,14 +175,16 @@ RsDoWordIoDescriptor (
case 8: /* Translation Offset */
@@ -2071,7 +2071,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp;
-@@ -371,13 +377,17 @@ RsDoWordIoDescriptor (
+@@ -263,13 +269,17 @@ RsDoWordIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
RsLargeAddressCheck (
@@ -2093,7 +2093,7 @@ index b2113f4c9..6077f5f1a 100644
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
return (Rnode);
-@@ -413,6 +423,7 @@ RsDoWordBusNumberDescriptor (
+@@ -305,6 +315,7 @@ RsDoWordBusNumberDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -2101,7 +2101,7 @@ index b2113f4c9..6077f5f1a 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -469,8 +480,8 @@ RsDoWordBusNumberDescriptor (
+@@ -361,8 +372,8 @@ RsDoWordBusNumberDescriptor (
case 4: /* Address Granularity */
@@ -2112,7 +2112,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp;
-@@ -478,8 +489,8 @@ RsDoWordBusNumberDescriptor (
+@@ -370,8 +381,8 @@ RsDoWordBusNumberDescriptor (
case 5: /* Min Address */
@@ -2123,7 +2123,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp;
-@@ -487,8 +498,8 @@ RsDoWordBusNumberDescriptor (
+@@ -379,8 +390,8 @@ RsDoWordBusNumberDescriptor (
case 6: /* Max Address */
@@ -2134,7 +2134,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp;
-@@ -496,16 +507,16 @@ RsDoWordBusNumberDescriptor (
+@@ -388,16 +399,16 @@ RsDoWordBusNumberDescriptor (
case 7: /* Translation Offset */
@@ -2155,7 +2155,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp;
-@@ -576,13 +587,17 @@ RsDoWordBusNumberDescriptor (
+@@ -468,13 +479,17 @@ RsDoWordBusNumberDescriptor (
/* Validate the Min/Max/Len/Gran values */
RsLargeAddressCheck (
@@ -2177,7 +2177,7 @@ index b2113f4c9..6077f5f1a 100644
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
return (Rnode);
-@@ -618,6 +633,7 @@ RsDoWordSpaceDescriptor (
+@@ -510,6 +525,7 @@ RsDoWordSpaceDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -2185,7 +2185,7 @@ index b2113f4c9..6077f5f1a 100644
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -685,8 +701,8 @@ RsDoWordSpaceDescriptor (
+@@ -577,8 +593,8 @@ RsDoWordSpaceDescriptor (
case 6: /* Address Granularity */
@@ -2196,7 +2196,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp;
-@@ -694,8 +710,8 @@ RsDoWordSpaceDescriptor (
+@@ -586,8 +602,8 @@ RsDoWordSpaceDescriptor (
case 7: /* Min Address */
@@ -2207,7 +2207,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp;
-@@ -703,8 +719,8 @@ RsDoWordSpaceDescriptor (
+@@ -595,8 +611,8 @@ RsDoWordSpaceDescriptor (
case 8: /* Max Address */
@@ -2218,7 +2218,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp;
-@@ -712,16 +728,16 @@ RsDoWordSpaceDescriptor (
+@@ -604,16 +620,16 @@ RsDoWordSpaceDescriptor (
case 9: /* Translation Offset */
@@ -2239,7 +2239,7 @@ index b2113f4c9..6077f5f1a 100644
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp;
-@@ -792,13 +808,17 @@ RsDoWordSpaceDescriptor (
+@@ -684,13 +700,17 @@ RsDoWordSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
RsLargeAddressCheck (
@@ -2261,11 +2261,11 @@ index b2113f4c9..6077f5f1a 100644
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
return (Rnode);
-diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c
-index 810f727fa..6960e9913 100644
---- a/source/components/disassembler/dmbuffer.c
-+++ b/source/components/disassembler/dmbuffer.c
-@@ -312,7 +312,7 @@ AcpiDmByteList (
+Index: acpica-unix2-20200925/source/components/disassembler/dmbuffer.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmbuffer.c
++++ acpica-unix2-20200925/source/components/disassembler/dmbuffer.c
+@@ -204,7 +204,7 @@ AcpiDmByteList (
ByteData = Op->Named.Data;
@@ -2274,7 +2274,7 @@ index 810f727fa..6960e9913 100644
/*
* The byte list belongs to a buffer, and can be produced by either
-@@ -416,7 +416,7 @@ AcpiDmIsUuidBuffer (
+@@ -308,7 +308,7 @@ AcpiDmIsUuidBuffer (
/* Extract the byte list info */
ByteData = NextOp->Named.Data;
@@ -2283,7 +2283,7 @@ index 810f727fa..6960e9913 100644
/* Byte count must be exactly 16 */
-@@ -544,7 +544,7 @@ AcpiDmIsUnicodeBuffer (
+@@ -436,7 +436,7 @@ AcpiDmIsUnicodeBuffer (
/* Extract the byte list info */
ByteData = NextOp->Named.Data;
@@ -2292,7 +2292,7 @@ index 810f727fa..6960e9913 100644
WordCount = ACPI_DIV_2 (ByteCount);
/*
-@@ -986,14 +986,14 @@ AcpiDmUnicode (
+@@ -878,14 +878,14 @@ AcpiDmUnicode (
/* Extract the buffer info as a WORD buffer */
WordData = ACPI_CAST_PTR (UINT16, Op->Named.Data);
@@ -2309,11 +2309,11 @@ index 810f727fa..6960e9913 100644
/* Handle values that must be escaped */
-diff --git a/source/components/disassembler/dmopcode.c b/source/components/disassembler/dmopcode.c
-index 1372a0f25..bb7abab2c 100644
---- a/source/components/disassembler/dmopcode.c
-+++ b/source/components/disassembler/dmopcode.c
-@@ -990,23 +990,23 @@ AcpiDmDisassembleOneOp (
+Index: acpica-unix2-20200925/source/components/disassembler/dmopcode.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmopcode.c
++++ acpica-unix2-20200925/source/components/disassembler/dmopcode.c
+@@ -882,23 +882,23 @@ AcpiDmDisassembleOneOp (
case AML_INT_NAMEDFIELD_OP:
@@ -2341,11 +2341,11 @@ index 1372a0f25..bb7abab2c 100644
Info->BitOffset += Offset;
if (Info->BitOffset % 8 == 0)
-diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c
-index a3403322b..af75a7833 100644
---- a/source/components/disassembler/dmresrc.c
-+++ b/source/components/disassembler/dmresrc.c
-@@ -525,7 +525,7 @@ AcpiDmIsResourceTemplate (
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrc.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrc.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrc.c
+@@ -417,7 +417,7 @@ AcpiDmIsResourceTemplate (
return (AE_TYPE);
}
@@ -2354,11 +2354,11 @@ index a3403322b..af75a7833 100644
/* Get the length of the raw initialization byte list */
-diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c
-index e9d391df3..eed859928 100644
---- a/source/components/disassembler/dmresrcl.c
-+++ b/source/components/disassembler/dmresrcl.c
-@@ -249,6 +249,8 @@ AcpiDmMemoryFields (
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcl.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
+@@ -141,6 +141,8 @@ AcpiDmMemoryFields (
UINT32 Level)
{
UINT32 i;
@@ -2367,7 +2367,7 @@ index e9d391df3..eed859928 100644
for (i = 0; i < 4; i++)
-@@ -259,14 +261,16 @@ AcpiDmMemoryFields (
+@@ -151,14 +153,16 @@ AcpiDmMemoryFields (
{
case 16:
@@ -2388,7 +2388,7 @@ index e9d391df3..eed859928 100644
break;
default:
-@@ -298,6 +302,9 @@ AcpiDmAddressFields (
+@@ -190,6 +194,9 @@ AcpiDmAddressFields (
UINT32 Level)
{
UINT32 i;
@@ -2398,7 +2398,7 @@ index e9d391df3..eed859928 100644
AcpiOsPrintf ("\n");
-@@ -310,20 +317,23 @@ AcpiDmAddressFields (
+@@ -202,20 +209,23 @@ AcpiDmAddressFields (
{
case 16:
@@ -2428,7 +2428,7 @@ index e9d391df3..eed859928 100644
break;
default:
-@@ -857,7 +867,7 @@ AcpiDmExtendedDescriptor (
+@@ -749,7 +759,7 @@ AcpiDmExtendedDescriptor (
/* Extra field for this descriptor only */
AcpiDmIndent (Level + 1);
@@ -2437,7 +2437,7 @@ index e9d391df3..eed859928 100644
"Type-Specific Attributes");
/* Insert a descriptor name */
-@@ -984,11 +994,11 @@ AcpiDmFixedMemory32Descriptor (
+@@ -876,11 +886,11 @@ AcpiDmFixedMemory32Descriptor (
AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]);
AcpiDmIndent (Level + 1);
@@ -2451,7 +2451,7 @@ index e9d391df3..eed859928 100644
"Address Length");
/* Insert a descriptor name */
-@@ -1034,7 +1044,8 @@ AcpiDmGenericRegisterDescriptor (
+@@ -926,7 +936,8 @@ AcpiDmGenericRegisterDescriptor (
AcpiDmDumpInteger8 (Resource->GenericReg.BitOffset, "Bit Offset");
AcpiDmIndent (Level + 1);
@@ -2461,7 +2461,7 @@ index e9d391df3..eed859928 100644
/* Optional field for ACPI 3.0 */
-@@ -1097,7 +1108,7 @@ AcpiDmInterruptDescriptor (
+@@ -989,7 +1000,7 @@ AcpiDmInterruptDescriptor (
AcpiDmResourceSource (Resource,
sizeof (AML_RESOURCE_EXTENDED_IRQ) +
((UINT32) Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32),
@@ -2470,7 +2470,7 @@ index e9d391df3..eed859928 100644
/* Insert a descriptor name */
-@@ -1112,7 +1123,7 @@ AcpiDmInterruptDescriptor (
+@@ -1004,7 +1015,7 @@ AcpiDmInterruptDescriptor (
{
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("0x%8.8X,\n",
@@ -2479,11 +2479,11 @@ index e9d391df3..eed859928 100644
}
AcpiDmIndent (Level);
-diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c
-index a2a85dfdc..11c3af1af 100644
---- a/source/components/disassembler/dmresrcl2.c
-+++ b/source/components/disassembler/dmresrcl2.c
-@@ -299,22 +299,27 @@ AcpiDmGpioCommon (
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcl2.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
+@@ -191,22 +191,27 @@ AcpiDmGpioCommon (
char *DeviceName = NULL;
UINT32 PinCount;
UINT32 i;
@@ -2515,7 +2515,7 @@ index a2a85dfdc..11c3af1af 100644
/* Insert a descriptor name */
-@@ -323,15 +328,15 @@ AcpiDmGpioCommon (
+@@ -215,15 +220,15 @@ AcpiDmGpioCommon (
/* Dump the vendor data */
@@ -2536,7 +2536,7 @@ index a2a85dfdc..11c3af1af 100644
}
AcpiOsPrintf (")\n");
-@@ -341,17 +346,17 @@ AcpiDmGpioCommon (
+@@ -233,17 +238,17 @@ AcpiDmGpioCommon (
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("{ // Pin list\n");
@@ -2559,7 +2559,7 @@ index a2a85dfdc..11c3af1af 100644
((i + 1) < PinCount) ? "," : "");
}
-@@ -385,16 +390,18 @@ AcpiDmGpioIntDescriptor (
+@@ -277,16 +282,18 @@ AcpiDmGpioIntDescriptor (
UINT32 Length,
UINT32 Level)
{
@@ -2581,7 +2581,7 @@ index a2a85dfdc..11c3af1af 100644
/* PinConfig, DebounceTimeout */
-@@ -407,7 +414,8 @@ AcpiDmGpioIntDescriptor (
+@@ -299,7 +306,8 @@ AcpiDmGpioIntDescriptor (
{
AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.PinConfig);
}
@@ -2591,7 +2591,7 @@ index a2a85dfdc..11c3af1af 100644
/* Dump the GpioInt/GpioIo common portion of the descriptor */
-@@ -437,14 +445,16 @@ AcpiDmGpioIoDescriptor (
+@@ -329,14 +337,16 @@ AcpiDmGpioIoDescriptor (
UINT32 Length,
UINT32 Level)
{
@@ -2609,7 +2609,7 @@ index a2a85dfdc..11c3af1af 100644
if (Resource->Gpio.PinConfig <= 3)
{
-@@ -458,10 +468,10 @@ AcpiDmGpioIoDescriptor (
+@@ -350,10 +360,10 @@ AcpiDmGpioIoDescriptor (
/* DebounceTimeout, DriveStrength, IoRestriction */
@@ -2624,7 +2624,7 @@ index a2a85dfdc..11c3af1af 100644
/* Dump the GpioInt/GpioIo common portion of the descriptor */
-@@ -542,6 +552,9 @@ AcpiDmPinFunctionDescriptor (
+@@ -434,6 +444,9 @@ AcpiDmPinFunctionDescriptor (
char *DeviceName = NULL;
UINT32 PinCount;
UINT32 i;
@@ -2634,7 +2634,7 @@ index a2a85dfdc..11c3af1af 100644
AcpiDmIndent (Level);
AcpiOsPrintf ("PinFunction (%s, ",
-@@ -559,12 +572,14 @@ AcpiDmPinFunctionDescriptor (
+@@ -451,12 +464,14 @@ AcpiDmPinFunctionDescriptor (
/* FunctionNumber */
@@ -2652,7 +2652,7 @@ index a2a85dfdc..11c3af1af 100644
AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
}
-@@ -584,15 +599,15 @@ AcpiDmPinFunctionDescriptor (
+@@ -476,15 +491,15 @@ AcpiDmPinFunctionDescriptor (
/* Dump the vendor data */
@@ -2673,7 +2673,7 @@ index a2a85dfdc..11c3af1af 100644
}
AcpiOsPrintf (")\n");
-@@ -603,17 +618,17 @@ AcpiDmPinFunctionDescriptor (
+@@ -495,17 +510,17 @@ AcpiDmPinFunctionDescriptor (
AcpiOsPrintf ("{ // Pin list\n");
@@ -2696,7 +2696,7 @@ index a2a85dfdc..11c3af1af 100644
((i + 1) < PinCount) ? "," : "");
}
-@@ -649,7 +664,8 @@ AcpiDmDumpSerialBusVendorData (
+@@ -541,7 +556,8 @@ AcpiDmDumpSerialBusVendorData (
{
case AML_RESOURCE_I2C_SERIALBUSTYPE:
@@ -2706,7 +2706,7 @@ index a2a85dfdc..11c3af1af 100644
AML_RESOURCE_I2C_MIN_DATA_LEN;
VendorData = ACPI_ADD_PTR (UINT8, Resource,
-@@ -658,7 +674,8 @@ AcpiDmDumpSerialBusVendorData (
+@@ -550,7 +566,8 @@ AcpiDmDumpSerialBusVendorData (
case AML_RESOURCE_SPI_SERIALBUSTYPE:
@@ -2716,7 +2716,7 @@ index a2a85dfdc..11c3af1af 100644
AML_RESOURCE_SPI_MIN_DATA_LEN;
VendorData = ACPI_ADD_PTR (UINT8, Resource,
-@@ -667,7 +684,8 @@ AcpiDmDumpSerialBusVendorData (
+@@ -559,7 +576,8 @@ AcpiDmDumpSerialBusVendorData (
case AML_RESOURCE_UART_SERIALBUSTYPE:
@@ -2726,7 +2726,7 @@ index a2a85dfdc..11c3af1af 100644
AML_RESOURCE_UART_MIN_DATA_LEN;
VendorData = ACPI_ADD_PTR (UINT8, Resource,
-@@ -715,9 +733,9 @@ AcpiDmI2cSerialBusDescriptor (
+@@ -607,9 +625,9 @@ AcpiDmI2cSerialBusDescriptor (
AcpiDmIndent (Level);
AcpiOsPrintf ("I2cSerialBusV2 (0x%4.4X, %s, 0x%8.8X,\n",
@@ -2738,7 +2738,7 @@ index a2a85dfdc..11c3af1af 100644
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("%s, ",
-@@ -726,7 +744,7 @@ AcpiDmI2cSerialBusDescriptor (
+@@ -618,7 +636,7 @@ AcpiDmI2cSerialBusDescriptor (
/* ResourceSource is a required field */
ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) +
@@ -2747,7 +2747,7 @@ index a2a85dfdc..11c3af1af 100644
DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset);
AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
-@@ -783,15 +801,17 @@ AcpiDmSpiSerialBusDescriptor (
+@@ -675,15 +693,17 @@ AcpiDmSpiSerialBusDescriptor (
{
UINT32 ResourceSourceOffset;
char *DeviceName;
@@ -2768,7 +2768,7 @@ index a2a85dfdc..11c3af1af 100644
Resource->SpiSerialBus.DataBitLength);
/* SlaveMode, ConnectionSpeed, ClockPolarity, ClockPhase */
-@@ -799,7 +819,7 @@ AcpiDmSpiSerialBusDescriptor (
+@@ -691,7 +711,7 @@ AcpiDmSpiSerialBusDescriptor (
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("%s, 0x%8.8X, %s,\n",
AcpiGbl_SmDecode [ACPI_GET_1BIT_FLAG (Resource->SpiSerialBus.Flags)],
@@ -2777,7 +2777,7 @@ index a2a85dfdc..11c3af1af 100644
AcpiGbl_CpoDecode [ACPI_GET_1BIT_FLAG (Resource->SpiSerialBus.ClockPolarity)]);
AcpiDmIndent (Level + 1);
-@@ -809,7 +829,7 @@ AcpiDmSpiSerialBusDescriptor (
+@@ -701,7 +721,7 @@ AcpiDmSpiSerialBusDescriptor (
/* ResourceSource is a required field */
ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) +
@@ -2786,7 +2786,7 @@ index a2a85dfdc..11c3af1af 100644
DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset);
AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
-@@ -866,15 +886,17 @@ AcpiDmUartSerialBusDescriptor (
+@@ -758,15 +778,17 @@ AcpiDmUartSerialBusDescriptor (
{
UINT32 ResourceSourceOffset;
char *DeviceName;
@@ -2807,7 +2807,7 @@ index a2a85dfdc..11c3af1af 100644
/* LinesInUse, IsBigEndian, Parity, FlowControl */
-@@ -889,13 +911,13 @@ AcpiDmUartSerialBusDescriptor (
+@@ -781,13 +803,13 @@ AcpiDmUartSerialBusDescriptor (
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("0x%4.4X, 0x%4.4X, ",
@@ -2824,11 +2824,11 @@ index a2a85dfdc..11c3af1af 100644
DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset);
AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
-diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c
-index 5f5c7edaf..21d397637 100644
---- a/source/components/disassembler/dmresrcs.c
-+++ b/source/components/disassembler/dmresrcs.c
-@@ -201,7 +201,7 @@ AcpiDmIrqDescriptor (
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcs.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
+@@ -93,7 +93,7 @@ AcpiDmIrqDescriptor (
AcpiOsPrintf (")\n");
AcpiDmIndent (Level + 1);
@@ -2837,7 +2837,7 @@ index 5f5c7edaf..21d397637 100644
}
-@@ -269,8 +269,8 @@ AcpiDmFixedDmaDescriptor (
+@@ -161,8 +161,8 @@ AcpiDmFixedDmaDescriptor (
AcpiDmIndent (Level);
AcpiOsPrintf ("FixedDMA (0x%4.4X, 0x%4.4X, ",
@@ -2848,7 +2848,7 @@ index 5f5c7edaf..21d397637 100644
if (Resource->FixedDma.Width <= 5)
{
-@@ -318,10 +318,12 @@ AcpiDmIoDescriptor (
+@@ -210,10 +210,12 @@ AcpiDmIoDescriptor (
AcpiGbl_IoDecode [ACPI_GET_1BIT_FLAG (Resource->Io.Flags)]);
AcpiDmIndent (Level + 1);
@@ -2863,7 +2863,7 @@ index 5f5c7edaf..21d397637 100644
AcpiDmIndent (Level + 1);
AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment");
-@@ -364,10 +366,12 @@ AcpiDmFixedIoDescriptor (
+@@ -256,10 +258,12 @@ AcpiDmFixedIoDescriptor (
AcpiOsPrintf ("FixedIO (\n");
AcpiDmIndent (Level + 1);
@@ -2878,11 +2878,11 @@ index 5f5c7edaf..21d397637 100644
/* Insert a descriptor name */
-diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c
-index 76ef0aacb..069c11fbb 100644
---- a/source/components/disassembler/dmwalk.c
-+++ b/source/components/disassembler/dmwalk.c
-@@ -1263,7 +1263,7 @@ AcpiDmAscendingOp (
+Index: acpica-unix2-20200925/source/components/disassembler/dmwalk.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmwalk.c
++++ acpica-unix2-20200925/source/components/disassembler/dmwalk.c
+@@ -1155,7 +1155,7 @@ AcpiDmAscendingOp (
{
ParentOp->Common.DisasmFlags |= ACPI_PARSEOP_EMPTY_TERMLIST;
ASL_CV_CLOSE_PAREN (Op, Level);
@@ -2891,11 +2891,11 @@ index 76ef0aacb..069c11fbb 100644
}
}
-diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c
-index f41990780..937c1e9f5 100644
---- a/source/components/dispatcher/dsfield.c
-+++ b/source/components/dispatcher/dsfield.c
-@@ -444,6 +444,8 @@ AcpiDsGetFieldNames (
+Index: acpica-unix2-20200925/source/components/dispatcher/dsfield.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/dispatcher/dsfield.c
++++ acpica-unix2-20200925/source/components/dispatcher/dsfield.c
+@@ -336,6 +336,8 @@ AcpiDsGetFieldNames (
char *NamePath;
#endif
@@ -2904,7 +2904,7 @@ index f41990780..937c1e9f5 100644
ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info);
-@@ -550,14 +552,17 @@ AcpiDsGetFieldNames (
+@@ -442,14 +444,17 @@ AcpiDsGetFieldNames (
/* Lookup the name, it should already exist */
@@ -2924,7 +2924,7 @@ index f41990780..937c1e9f5 100644
return_ACPI_STATUS (Status);
}
else
-@@ -811,8 +816,13 @@ AcpiDsInitFieldObjects (
+@@ -703,8 +708,13 @@ AcpiDsInitFieldObjects (
*/
if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
{
@@ -2939,11 +2939,11 @@ index f41990780..937c1e9f5 100644
Flags, WalkState, &Node);
if (ACPI_FAILURE (Status))
{
-diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c
-index f9227ee4d..55e768698 100644
---- a/source/components/namespace/nsaccess.c
-+++ b/source/components/namespace/nsaccess.c
-@@ -753,7 +753,7 @@ AcpiNsLookup (
+Index: acpica-unix2-20200925/source/components/namespace/nsaccess.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsaccess.c
++++ acpica-unix2-20200925/source/components/namespace/nsaccess.c
+@@ -645,7 +645,7 @@ AcpiNsLookup (
/* Extract one ACPI name from the front of the pathname */
@@ -2952,11 +2952,11 @@ index f9227ee4d..55e768698 100644
/* Try to find the single (4 character) ACPI name */
-diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c
-index a27a87f02..16202ce32 100644
---- a/source/components/namespace/nsnames.c
-+++ b/source/components/namespace/nsnames.c
-@@ -408,7 +408,7 @@ AcpiNsBuildNormalizedPath (
+Index: acpica-unix2-20200925/source/components/namespace/nsnames.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsnames.c
++++ acpica-unix2-20200925/source/components/namespace/nsnames.c
+@@ -300,7 +300,7 @@ AcpiNsBuildNormalizedPath (
ACPI_PATH_PUT8(FullPath, PathSize, AML_DUAL_NAME_PREFIX, Length);
}
@@ -2965,11 +2965,11 @@ index a27a87f02..16202ce32 100644
DoNoTrailing = NoTrailing;
for (i = 0; i < 4; i++)
{
-diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c
-index f10db0e4d..a5cb221aa 100644
---- a/source/components/namespace/nsparse.c
-+++ b/source/components/namespace/nsparse.c
-@@ -311,6 +311,7 @@ AcpiNsOneCompleteParse (
+Index: acpica-unix2-20200925/source/components/namespace/nsparse.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsparse.c
++++ acpica-unix2-20200925/source/components/namespace/nsparse.c
+@@ -203,6 +203,7 @@ AcpiNsOneCompleteParse (
ACPI_WALK_STATE *WalkState;
ACPI_TABLE_HEADER *Table;
ACPI_OWNER_ID OwnerId;
@@ -2977,7 +2977,7 @@ index f10db0e4d..a5cb221aa 100644
ACPI_FUNCTION_TRACE (NsOneCompleteParse);
-@@ -324,13 +325,14 @@ AcpiNsOneCompleteParse (
+@@ -216,13 +217,14 @@ AcpiNsOneCompleteParse (
/* Table must consist of at least a complete header */
@@ -2994,11 +2994,11 @@ index f10db0e4d..a5cb221aa 100644
Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
if (ACPI_FAILURE (Status))
-diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c
-index a74dd1299..6df0d087d 100644
---- a/source/components/namespace/nsutils.c
-+++ b/source/components/namespace/nsutils.c
-@@ -380,7 +380,6 @@ AcpiNsBuildInternalName (
+Index: acpica-unix2-20200925/source/components/namespace/nsutils.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsutils.c
++++ acpica-unix2-20200925/source/components/namespace/nsutils.c
+@@ -272,7 +272,6 @@ AcpiNsBuildInternalName (
const char *ExternalName = Info->NextExternalChar;
char *Result = NULL;
UINT32 i;
@@ -3006,7 +3006,7 @@ index a74dd1299..6df0d087d 100644
ACPI_FUNCTION_TRACE (NsBuildInternalName);
-@@ -444,7 +443,6 @@ AcpiNsBuildInternalName (
+@@ -336,7 +335,6 @@ AcpiNsBuildInternalName (
for (; NumSegments; NumSegments--)
{
@@ -3014,7 +3014,7 @@ index a74dd1299..6df0d087d 100644
for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (ACPI_IS_PATH_SEPARATOR (*ExternalName) ||
-@@ -452,17 +450,16 @@ AcpiNsBuildInternalName (
+@@ -344,17 +342,16 @@ AcpiNsBuildInternalName (
{
/* Pad the segment with underscore(s) if segment is short */
@@ -3034,6 +3034,3 @@ index a74dd1299..6df0d087d 100644
/* Now we must have a path separator, or the pathname is bad */
---
-2.26.2
-
diff --git a/0041-Support-MTMR-in-a-big-endian-world.patch b/0041-Support-MTMR-in-a-big-endian-world.patch
index afb4976..c1245bd 100644
--- a/0041-Support-MTMR-in-a-big-endian-world.patch
+++ b/0041-Support-MTMR-in-a-big-endian-world.patch
@@ -8,11 +8,11 @@ Signed-off-by: Al Stone <ahs3(a)redhat.com>
source/common/dmtbdump2.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
-diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c
-index 285fd30d7..7450ca3f7 100644
---- a/source/common/dmtbdump2.c
-+++ b/source/common/dmtbdump2.c
-@@ -1156,11 +1156,12 @@ AcpiDmDumpMtmr (
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1048,11 +1048,12 @@ AcpiDmDumpMtmr (
ACPI_STATUS Status;
UINT32 Offset = sizeof (ACPI_TABLE_MTMR);
ACPI_MTMR_ENTRY *Subtable;
@@ -26,7 +26,7 @@ index 285fd30d7..7450ca3f7 100644
if (ACPI_FAILURE (Status))
{
return;
-@@ -1169,12 +1170,12 @@ AcpiDmDumpMtmr (
+@@ -1061,12 +1062,12 @@ AcpiDmDumpMtmr (
/* Subtables */
Subtable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset);
@@ -41,6 +41,3 @@ index 285fd30d7..7450ca3f7 100644
sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0);
if (ACPI_FAILURE (Status))
{
---
-2.26.2
-
diff --git a/0042-Support-VRTC-in-a-big-endian-world.patch b/0042-Support-VRTC-in-a-big-endian-world.patch
index 6bd6d62..e66d27e 100644
--- a/0042-Support-VRTC-in-a-big-endian-world.patch
+++ b/0042-Support-VRTC-in-a-big-endian-world.patch
@@ -7,11 +7,11 @@ Subject: [PATCH 4/5] Support VRTC in a big-endian world
source/common/dmtbdump3.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
-diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c
-index da9b81c92..db2f54ffb 100644
---- a/source/common/dmtbdump3.c
-+++ b/source/common/dmtbdump3.c
-@@ -629,11 +629,12 @@ AcpiDmDumpVrtc (
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -521,11 +521,12 @@ AcpiDmDumpVrtc (
ACPI_STATUS Status;
UINT32 Offset = sizeof (ACPI_TABLE_VRTC);
ACPI_VRTC_ENTRY *Subtable;
@@ -25,7 +25,7 @@ index da9b81c92..db2f54ffb 100644
if (ACPI_FAILURE (Status))
{
return;
-@@ -642,12 +643,12 @@ AcpiDmDumpVrtc (
+@@ -534,12 +535,12 @@ AcpiDmDumpVrtc (
/* Subtables */
Subtable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset);
@@ -40,6 +40,3 @@ index da9b81c92..db2f54ffb 100644
sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0);
if (ACPI_FAILURE (Status))
{
---
-2.26.2
-
diff --git a/0043-Support-S3PT-in-a-big-endian-world.patch b/0043-Support-S3PT-in-a-big-endian-world.patch
index 3e41bfe..b8c804e 100644
--- a/0043-Support-S3PT-in-a-big-endian-world.patch
+++ b/0043-Support-S3PT-in-a-big-endian-world.patch
@@ -8,11 +8,11 @@ Subject: [PATCH 5/5] Support S3PT in a big-endian world
source/compiler/dttable2.c | 4 +++-
2 files changed, 12 insertions(+), 7 deletions(-)
-diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c
-index 7450ca3f7..ada564cd5 100644
---- a/source/common/dmtbdump2.c
-+++ b/source/common/dmtbdump2.c
-@@ -1917,6 +1917,8 @@ AcpiDmDumpS3pt (
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1809,6 +1809,8 @@ AcpiDmDumpS3pt (
ACPI_FPDT_HEADER *Subtable;
ACPI_DMTABLE_INFO *InfoTable;
ACPI_TABLE_S3PT *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables);
@@ -21,7 +21,7 @@ index 7450ca3f7..ada564cd5 100644
/* Main table */
-@@ -1928,19 +1930,20 @@ AcpiDmDumpS3pt (
+@@ -1820,19 +1822,20 @@ AcpiDmDumpS3pt (
}
Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, S3ptTable, Offset);
@@ -45,7 +45,7 @@ index 7450ca3f7..ada564cd5 100644
{
case ACPI_S3PT_TYPE_RESUME:
-@@ -1955,7 +1958,7 @@ AcpiDmDumpS3pt (
+@@ -1847,7 +1850,7 @@ AcpiDmDumpS3pt (
default:
AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n",
@@ -54,7 +54,7 @@ index 7450ca3f7..ada564cd5 100644
/* Attempt to continue */
-@@ -1968,7 +1971,7 @@ AcpiDmDumpS3pt (
+@@ -1860,7 +1863,7 @@ AcpiDmDumpS3pt (
}
AcpiOsPrintf ("\n");
@@ -63,7 +63,7 @@ index 7450ca3f7..ada564cd5 100644
Subtable->Length, InfoTable);
if (ACPI_FAILURE (Status))
{
-@@ -1982,7 +1985,7 @@ NextSubtable:
+@@ -1874,7 +1877,7 @@ NextSubtable:
Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, Subtable, Subtable->Length);
}
@@ -72,11 +72,11 @@ index 7450ca3f7..ada564cd5 100644
}
-diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c
-index 48729b48f..1ac063795 100644
---- a/source/compiler/dttable2.c
-+++ b/source/compiler/dttable2.c
-@@ -1296,6 +1296,7 @@ DtCompileS3pt (
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -1188,6 +1188,7 @@ DtCompileS3pt (
DT_SUBTABLE *ParentTable;
ACPI_DMTABLE_INFO *InfoTable;
DT_FIELD *SubtableStart;
@@ -84,7 +84,7 @@ index 48729b48f..1ac063795 100644
Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt,
-@@ -1323,7 +1324,8 @@ DtCompileS3pt (
+@@ -1215,7 +1216,8 @@ DtCompileS3pt (
S3ptHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer);
@@ -94,6 +94,3 @@ index 48729b48f..1ac063795 100644
{
case ACPI_S3PT_TYPE_RESUME:
---
-2.26.2
-
commit 6c29d6805886b3c4efc53e39596ac8496b3f4122
Author: Al Stone <ahs3(a)redhat.com>
Date: Fri Oct 23 18:40:24 2020 -0600
Update some of the big-endian patches with corrections
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/0039-Add-partial-big-endian-support-for-WPBT-tables.patch b/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
index e5192e5..071d600 100644
--- a/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
+++ b/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
@@ -1,7 +1,7 @@
From 9d7f9c8f4ecbee2e621d471a8c4944cebe62947d Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3(a)redhat.com>
Date: Wed, 30 Sep 2020 18:59:57 -0600
-Subject: [PATCH 39/40] Add partial big-endian support for WPBT tables
+Subject: [PATCH 1/5] Add partial big-endian support for WPBT tables
There's some weirdness here that at present does not warrant
further investigation; this is just a really low priority table.
@@ -12,11 +12,11 @@ Signed-off-by: Al Stone <ahs3(a)redhat.com>
source/compiler/dttable2.c | 3 ++-
2 files changed, 6 insertions(+), 5 deletions(-)
-Index: acpica-unix2-20200925/source/common/dmtbdump3.c
-===================================================================
---- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
-+++ acpica-unix2-20200925/source/common/dmtbdump3.c
-@@ -628,13 +628,13 @@ AcpiDmDumpWpbt (
+diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c
+index d2f2bf7b7..da9b81c92 100644
+--- a/source/common/dmtbdump3.c
++++ b/source/common/dmtbdump3.c
+@@ -736,13 +736,13 @@ AcpiDmDumpWpbt (
{
ACPI_STATUS Status;
ACPI_TABLE_WPBT *Subtable;
@@ -32,7 +32,7 @@ Index: acpica-unix2-20200925/source/common/dmtbdump3.c
if (ACPI_FAILURE (Status))
{
return;
-@@ -643,10 +643,10 @@ AcpiDmDumpWpbt (
+@@ -751,10 +751,10 @@ AcpiDmDumpWpbt (
/* Extract the arguments buffer length from the main table */
Subtable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table);
@@ -45,11 +45,11 @@ Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+ (void) AcpiDmDumpTable (TableLength, 0, Table, ArgumentsLength,
AcpiDmTableInfoWpbt0);
}
-Index: acpica-unix2-20200925/source/compiler/dttable2.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/dttable2.c
-+++ acpica-unix2-20200925/source/compiler/dttable2.c
-@@ -2190,7 +2190,8 @@ DtCompileWpbt (
+diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c
+index 584c09ee8..48729b48f 100644
+--- a/source/compiler/dttable2.c
++++ b/source/compiler/dttable2.c
+@@ -2298,7 +2298,8 @@ DtCompileWpbt (
/* Extract the length of the Arguments buffer, insert into main table */
@@ -59,3 +59,6 @@ Index: acpica-unix2-20200925/source/compiler/dttable2.c
Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer);
Table->ArgumentsLength = Length;
+--
+2.26.2
+
diff --git a/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch b/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
index b5087dc..43b4114 100644
--- a/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
+++ b/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
@@ -1,7 +1,7 @@
-From 355bbdd2ecf184e56108a2446244761895f93a62 Mon Sep 17 00:00:00 2001
+From a11c0a997dca2b40d1bcff68368d9d5d5297b781 Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3(a)redhat.com>
Date: Thu, 15 Oct 2020 11:35:23 -0600
-Subject: [PATCH 40/40] Support DSDT/SSDT in a big-endian world
+Subject: [PATCH 2/5] Support DSDT/SSDT in a big-endian world
NB: this is a very large diff. The problem is that ResourceTemplates
are treated differently during compilation and disassembly so each of
@@ -15,33 +15,35 @@ Signed-off-by: Al Stone <ahs3(a)redhat.com>
source/common/dmrestag.c | 2 +-
source/common/dmtables.c | 17 +-
source/common/dmtbdump.c | 3 +-
- source/compiler/aslcodegen.c | 61 +++++--
+ source/compiler/aslcodegen.c | 61 ++++--
+ source/compiler/aslopcodes.c | 3 +-
source/compiler/aslrestype1.c | 44 +++--
source/compiler/aslrestype1i.c | 33 ++--
- source/compiler/aslrestype2.c | 20 ++-
- source/compiler/aslrestype2d.c | 99 ++++++-----
- source/compiler/aslrestype2e.c | 90 ++++++----
- source/compiler/aslrestype2q.c | 81 ++++++---
- source/compiler/aslrestype2s.c | 181 ++++++++++++++++++---
- source/compiler/aslrestype2w.c | 94 ++++++-----
- source/components/disassembler/dmbuffer.c | 2 +-
+ source/compiler/aslrestype2.c | 20 +-
+ source/compiler/aslrestype2d.c | 99 ++++++----
+ source/compiler/aslrestype2e.c | 90 ++++++---
+ source/compiler/aslrestype2q.c | 81 +++++---
+ source/compiler/aslrestype2s.c | 214 +++++++++++++++++----
+ source/compiler/aslrestype2w.c | 94 +++++----
+ source/components/disassembler/dmbuffer.c | 10 +-
source/components/disassembler/dmopcode.c | 8 +-
source/components/disassembler/dmresrc.c | 2 +-
source/components/disassembler/dmresrcl.c | 43 +++--
- source/components/disassembler/dmresrcl2.c | 64 +++++---
+ source/components/disassembler/dmresrcl2.c | 128 +++++++-----
source/components/disassembler/dmresrcs.c | 18 +-
+ source/components/disassembler/dmwalk.c | 2 +-
source/components/dispatcher/dsfield.c | 16 +-
source/components/namespace/nsaccess.c | 2 +-
source/components/namespace/nsnames.c | 2 +-
source/components/namespace/nsparse.c | 6 +-
source/components/namespace/nsutils.c | 7 +-
- 23 files changed, 613 insertions(+), 282 deletions(-)
+ 25 files changed, 682 insertions(+), 323 deletions(-)
-Index: acpica-unix2-20200925/source/common/dmrestag.c
-===================================================================
---- acpica-unix2-20200925.orig/source/common/dmrestag.c
-+++ acpica-unix2-20200925/source/common/dmrestag.c
-@@ -1038,7 +1038,7 @@ AcpiDmAddResourcesToNamespace (
+diff --git a/source/common/dmrestag.c b/source/common/dmrestag.c
+index fe6e74146..eed863037 100644
+--- a/source/common/dmrestag.c
++++ b/source/common/dmrestag.c
+@@ -1146,7 +1146,7 @@ AcpiDmAddResourcesToNamespace (
* NextOp contains the Aml pointer and the Aml length
*/
AcpiUtWalkAmlResources (NULL, (UINT8 *) NextOp->Named.Data,
@@ -50,11 +52,11 @@ Index: acpica-unix2-20200925/source/common/dmrestag.c
AcpiDmAddResourceToNamespace, (void **) BufferNode);
}
-Index: acpica-unix2-20200925/source/common/dmtables.c
-===================================================================
---- acpica-unix2-20200925.orig/source/common/dmtables.c
-+++ acpica-unix2-20200925/source/common/dmtables.c
-@@ -142,6 +142,10 @@ AdCreateTableHeader (
+diff --git a/source/common/dmtables.c b/source/common/dmtables.c
+index ee18d26c9..2a5551ece 100644
+--- a/source/common/dmtables.c
++++ b/source/common/dmtables.c
+@@ -250,6 +250,10 @@ AdCreateTableHeader (
ACPI_TABLE_HEADER *Table)
{
UINT8 Checksum;
@@ -65,7 +67,7 @@ Index: acpica-unix2-20200925/source/common/dmtables.c
/* Reset globals for External statements */
-@@ -156,7 +160,7 @@ AdCreateTableHeader (
+@@ -264,7 +268,7 @@ AdCreateTableHeader (
AcpiOsPrintf (" * Original Table Header:\n");
AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature);
@@ -74,7 +76,7 @@ Index: acpica-unix2-20200925/source/common/dmtables.c
/* Print and validate the revision */
-@@ -188,7 +192,7 @@ AdCreateTableHeader (
+@@ -296,7 +300,7 @@ AdCreateTableHeader (
AcpiOsPrintf ("\n * Checksum 0x%2.2X", Table->Checksum);
@@ -83,7 +85,7 @@ Index: acpica-unix2-20200925/source/common/dmtables.c
if (Checksum)
{
AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X",
-@@ -198,9 +202,9 @@ AdCreateTableHeader (
+@@ -306,9 +310,9 @@ AdCreateTableHeader (
AcpiOsPrintf ("\n");
AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId);
AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId);
@@ -95,7 +97,7 @@ Index: acpica-unix2-20200925/source/common/dmtables.c
AcpiOsPrintf (" */\n");
/*
-@@ -221,7 +225,7 @@ AdCreateTableHeader (
+@@ -329,7 +333,7 @@ AdCreateTableHeader (
AcpiOsPrintf (
"DefinitionBlock (\"\", \"%4.4s\", %u, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
Table->Signature, Table->Revision,
@@ -104,7 +106,7 @@ Index: acpica-unix2-20200925/source/common/dmtables.c
}
-@@ -396,7 +400,8 @@ AdParseTable (
+@@ -504,7 +508,8 @@ AdParseTable (
fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature);
@@ -114,11 +116,11 @@ Index: acpica-unix2-20200925/source/common/dmtables.c
AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
AcpiUtSetIntegerWidth (Table->Revision);
-Index: acpica-unix2-20200925/source/common/dmtbdump.c
-===================================================================
---- acpica-unix2-20200925.orig/source/common/dmtbdump.c
-+++ acpica-unix2-20200925/source/common/dmtbdump.c
-@@ -333,8 +333,7 @@ AcpiDmDumpXsdt (
+diff --git a/source/common/dmtbdump.c b/source/common/dmtbdump.c
+index 92d86930b..5ad20ff62 100644
+--- a/source/common/dmtbdump.c
++++ b/source/common/dmtbdump.c
+@@ -441,8 +441,7 @@ AcpiDmDumpXsdt (
for (i = 0; i < Entries; i++)
{
AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
@@ -128,11 +130,11 @@ Index: acpica-unix2-20200925/source/common/dmtbdump.c
Offset += sizeof (UINT64);
}
}
-Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslcodegen.c
-+++ acpica-unix2-20200925/source/compiler/aslcodegen.c
-@@ -238,6 +238,10 @@ CgWriteAmlOpcode (
+diff --git a/source/compiler/aslcodegen.c b/source/compiler/aslcodegen.c
+index ba0384e84..14be9dcc2 100644
+--- a/source/compiler/aslcodegen.c
++++ b/source/compiler/aslcodegen.c
+@@ -346,6 +346,10 @@ CgWriteAmlOpcode (
{
UINT8 PkgLenFirstByte;
UINT32 i;
@@ -143,7 +145,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
union {
UINT16 Opcode;
UINT8 OpcodeBytes[2];
-@@ -305,25 +309,26 @@ CgWriteAmlOpcode (
+@@ -413,25 +417,26 @@ CgWriteAmlOpcode (
/* Value is the length to be encoded (Used in field definitions) */
@@ -174,7 +176,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
break;
}
-@@ -335,7 +340,8 @@ CgWriteAmlOpcode (
+@@ -443,7 +448,8 @@ CgWriteAmlOpcode (
{
/* Simplest case -- no bytes to follow, just write the count */
@@ -184,7 +186,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
}
else if (Op->Asl.AmlPkgLenBytes != 0)
{
-@@ -343,9 +349,10 @@ CgWriteAmlOpcode (
+@@ -451,9 +457,10 @@ CgWriteAmlOpcode (
* Encode the "bytes to follow" in the first byte, top two bits.
* The low-order nybble of the length is in the bottom 4 bits
*/
@@ -196,7 +198,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
CgLocalWriteAmlData (Op, &PkgLenFirstByte, 1);
-@@ -359,6 +366,9 @@ CgWriteAmlOpcode (
+@@ -467,6 +474,9 @@ CgWriteAmlOpcode (
* Now we can write the remaining bytes -
* either 1, 2, or 3 bytes
*/
@@ -206,7 +208,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++)
{
CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1);
-@@ -370,22 +380,30 @@ CgWriteAmlOpcode (
+@@ -478,22 +488,30 @@ CgWriteAmlOpcode (
{
case AML_BYTE_OP:
@@ -241,7 +243,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
break;
case AML_STRING_OP:
-@@ -423,6 +441,7 @@ CgWriteTableHeader (
+@@ -531,6 +549,7 @@ CgWriteTableHeader (
ACPI_PARSE_OBJECT *Child;
UINT32 CommentLength;
ACPI_COMMENT_NODE *Current;
@@ -249,7 +251,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
memset (&AslGbl_TableHeader, 0, sizeof (ACPI_TABLE_HEADER));
-@@ -478,7 +497,9 @@ CgWriteTableHeader (
+@@ -586,7 +605,9 @@ CgWriteTableHeader (
/* OEM Revision */
Child = Child->Asl.Next;
@@ -260,7 +262,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
/* Compiler ID */
-@@ -486,7 +507,8 @@ CgWriteTableHeader (
+@@ -594,7 +615,8 @@ CgWriteTableHeader (
/* Compiler version */
@@ -270,7 +272,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
/* Table length. Checksum zero for now, will rewrite later */
-@@ -541,6 +563,15 @@ CgWriteTableHeader (
+@@ -649,6 +671,15 @@ CgWriteTableHeader (
AslGbl_TableHeader.Checksum = 0;
Op->Asl.FinalAmlOffset = ftell (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
@@ -286,7 +288,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
/* Write entire header and clear the table header global */
CgLocalWriteAmlData (Op, &AslGbl_TableHeader, sizeof (ACPI_TABLE_HEADER));
-@@ -625,6 +656,7 @@ CgWriteNode (
+@@ -733,6 +764,7 @@ CgWriteNode (
ACPI_PARSE_OBJECT *Op)
{
ASL_RESOURCE_NODE *Rnode;
@@ -294,7 +296,7 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
/* Write all comments here. */
-@@ -653,7 +685,10 @@ CgWriteNode (
+@@ -761,7 +793,10 @@ CgWriteNode (
case AML_RAW_DATA_DWORD:
case AML_RAW_DATA_QWORD:
@@ -306,11 +308,25 @@ Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
return;
-Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype1.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype1.c
-@@ -143,6 +143,7 @@ RsDoMemory24Descriptor (
+diff --git a/source/compiler/aslopcodes.c b/source/compiler/aslopcodes.c
+index b2a023650..afc9004af 100644
+--- a/source/compiler/aslopcodes.c
++++ b/source/compiler/aslopcodes.c
+@@ -619,7 +619,8 @@ OpcDoUnicode (
+
+ for (i = 0; i < Count; i++)
+ {
+- UnicodeString[i] = (UINT16) AsciiString[i];
++ AcpiUtWriteUint(&UnicodeString[i], sizeof(UINT16),
++ &AsciiString[i], sizeof(UINT8));
+ }
+
+ /*
+diff --git a/source/compiler/aslrestype1.c b/source/compiler/aslrestype1.c
+index 4dff4607d..e7639c0bb 100644
+--- a/source/compiler/aslrestype1.c
++++ b/source/compiler/aslrestype1.c
+@@ -251,6 +251,7 @@ RsDoMemory24Descriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -318,7 +334,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -151,7 +152,8 @@ RsDoMemory24Descriptor (
+@@ -259,7 +260,8 @@ RsDoMemory24Descriptor (
Descriptor = Rnode->Buffer;
Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24;
@@ -328,7 +344,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
/* Process all child initialization nodes */
-@@ -168,7 +170,8 @@ RsDoMemory24Descriptor (
+@@ -276,7 +278,8 @@ RsDoMemory24Descriptor (
case 1: /* Min Address */
@@ -338,7 +354,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
MinOp = InitializerOp;
-@@ -176,7 +179,8 @@ RsDoMemory24Descriptor (
+@@ -284,7 +287,8 @@ RsDoMemory24Descriptor (
case 2: /* Max Address */
@@ -348,7 +364,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
MaxOp = InitializerOp;
-@@ -184,14 +188,16 @@ RsDoMemory24Descriptor (
+@@ -292,14 +296,16 @@ RsDoMemory24Descriptor (
case 3: /* Alignment */
@@ -367,7 +383,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
LengthOp = InitializerOp;
-@@ -249,6 +255,8 @@ RsDoMemory32Descriptor (
+@@ -357,6 +363,8 @@ RsDoMemory32Descriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -376,7 +392,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -257,7 +265,8 @@ RsDoMemory32Descriptor (
+@@ -365,7 +373,8 @@ RsDoMemory32Descriptor (
Descriptor = Rnode->Buffer;
Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32;
@@ -386,7 +402,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
/* Process all child initialization nodes */
-@@ -274,7 +283,8 @@ RsDoMemory32Descriptor (
+@@ -382,7 +391,8 @@ RsDoMemory32Descriptor (
case 1: /* Min Address */
@@ -396,7 +412,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
MinOp = InitializerOp;
-@@ -282,7 +292,8 @@ RsDoMemory32Descriptor (
+@@ -390,7 +400,8 @@ RsDoMemory32Descriptor (
case 2: /* Max Address */
@@ -406,7 +422,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
MaxOp = InitializerOp;
-@@ -290,7 +301,8 @@ RsDoMemory32Descriptor (
+@@ -398,7 +409,8 @@ RsDoMemory32Descriptor (
case 3: /* Alignment */
@@ -416,7 +432,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
AlignOp = InitializerOp;
-@@ -298,7 +310,8 @@ RsDoMemory32Descriptor (
+@@ -406,7 +418,8 @@ RsDoMemory32Descriptor (
case 4: /* Length */
@@ -426,7 +442,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
LengthOp = InitializerOp;
-@@ -352,6 +365,8 @@ RsDoMemory32FixedDescriptor (
+@@ -460,6 +473,8 @@ RsDoMemory32FixedDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -435,7 +451,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -360,7 +375,8 @@ RsDoMemory32FixedDescriptor (
+@@ -468,7 +483,8 @@ RsDoMemory32FixedDescriptor (
Descriptor = Rnode->Buffer;
Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32;
@@ -445,7 +461,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
/* Process all child initialization nodes */
-@@ -377,14 +393,16 @@ RsDoMemory32FixedDescriptor (
+@@ -485,14 +501,16 @@ RsDoMemory32FixedDescriptor (
case 1: /* Address */
@@ -464,11 +480,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
break;
-Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype1i.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype1i.c
-@@ -199,6 +199,7 @@ RsDoFixedDmaDescriptor (
+diff --git a/source/compiler/aslrestype1i.c b/source/compiler/aslrestype1i.c
+index 9e9bc2096..532553c4b 100644
+--- a/source/compiler/aslrestype1i.c
++++ b/source/compiler/aslrestype1i.c
+@@ -307,6 +307,7 @@ RsDoFixedDmaDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -476,7 +492,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -217,14 +218,16 @@ RsDoFixedDmaDescriptor (
+@@ -325,14 +326,16 @@ RsDoFixedDmaDescriptor (
{
case 0: /* DMA Request Lines [WORD] (_DMA) */
@@ -495,7 +511,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_DMATYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.Channels));
break;
-@@ -275,6 +278,7 @@ RsDoFixedIoDescriptor (
+@@ -383,6 +386,7 @@ RsDoFixedIoDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -503,7 +519,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -293,8 +297,8 @@ RsDoFixedIoDescriptor (
+@@ -401,8 +405,8 @@ RsDoFixedIoDescriptor (
{
case 0: /* Base Address */
@@ -514,7 +530,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
AddressOp = InitializerOp;
-@@ -358,6 +362,7 @@ RsDoIoDescriptor (
+@@ -466,6 +470,7 @@ RsDoIoDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -522,7 +538,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -383,8 +388,8 @@ RsDoIoDescriptor (
+@@ -491,8 +496,8 @@ RsDoIoDescriptor (
case 1: /* Min Address */
@@ -533,7 +549,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
MinOp = InitializerOp;
-@@ -392,8 +397,8 @@ RsDoIoDescriptor (
+@@ -500,8 +505,8 @@ RsDoIoDescriptor (
case 2: /* Max Address */
@@ -544,7 +560,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
MaxOp = InitializerOp;
-@@ -434,10 +439,10 @@ RsDoIoDescriptor (
+@@ -542,10 +547,10 @@ RsDoIoDescriptor (
/* Validate the Min/Max/Len/Align values */
RsSmallAddressCheck (ACPI_RESOURCE_NAME_IO,
@@ -559,7 +575,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
return (Rnode);
-@@ -561,7 +566,7 @@ RsDoIrqDescriptor (
+@@ -669,7 +674,7 @@ RsDoIrqDescriptor (
/* Now we can set the channel mask */
@@ -568,7 +584,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
return (Rnode);
}
-@@ -660,6 +665,6 @@ RsDoIrqNoFlagsDescriptor (
+@@ -768,6 +773,6 @@ RsDoIrqNoFlagsDescriptor (
/* Now we can set the interrupt mask */
@@ -576,11 +592,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
+ Descriptor->Irq.IrqMask = AcpiUtReadUint16(&IrqMask);
return (Rnode);
}
-Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype2.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype2.c
-@@ -77,6 +77,8 @@ RsDoGeneralRegisterDescriptor (
+diff --git a/source/compiler/aslrestype2.c b/source/compiler/aslrestype2.c
+index 93236853a..13d0476e7 100644
+--- a/source/compiler/aslrestype2.c
++++ b/source/compiler/aslrestype2.c
+@@ -185,6 +185,8 @@ RsDoGeneralRegisterDescriptor (
ASL_RESOURCE_NODE *Rnode;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -589,7 +605,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -85,7 +87,8 @@ RsDoGeneralRegisterDescriptor (
+@@ -193,7 +195,8 @@ RsDoGeneralRegisterDescriptor (
Descriptor = Rnode->Buffer;
Descriptor->GenericReg.DescriptorType = ACPI_RESOURCE_NAME_GENERIC_REGISTER;
@@ -599,7 +615,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
/* Process all child initialization nodes */
-@@ -116,7 +119,8 @@ RsDoGeneralRegisterDescriptor (
+@@ -224,7 +227,8 @@ RsDoGeneralRegisterDescriptor (
case 3: /* Register Address */
@@ -609,7 +625,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_ADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
break;
-@@ -184,6 +188,8 @@ RsDoInterruptDescriptor (
+@@ -292,6 +296,8 @@ RsDoInterruptDescriptor (
BOOLEAN HasResSourceIndex = FALSE;
UINT8 ResSourceIndex = 0;
UINT8 *ResSourceString = NULL;
@@ -618,7 +634,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -225,7 +231,7 @@ RsDoInterruptDescriptor (
+@@ -333,7 +339,7 @@ RsDoInterruptDescriptor (
* Initial descriptor length -- may be enlarged if there are
* optional fields present
*/
@@ -627,7 +643,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
Descriptor->ExtendedIrq.InterruptCount = 0;
Rover = ACPI_CAST_PTR (AML_RESOURCE,
-@@ -333,7 +339,8 @@ RsDoInterruptDescriptor (
+@@ -441,7 +447,8 @@ RsDoInterruptDescriptor (
/* Save the integer and move pointer to the next one */
@@ -637,7 +653,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->DwordItem), 4);
Descriptor->ExtendedIrq.InterruptCount++;
Descriptor->ExtendedIrq.ResourceLength += 4;
-@@ -384,6 +391,8 @@ RsDoInterruptDescriptor (
+@@ -492,6 +499,8 @@ RsDoInterruptDescriptor (
Descriptor->ExtendedIrq.ResourceLength = (UINT16)
(Descriptor->ExtendedIrq.ResourceLength + StringLength);
}
@@ -646,7 +662,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
Rnode->BufferLength =
(ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) -
-@@ -436,7 +445,8 @@ RsDoVendorLargeDescriptor (
+@@ -544,7 +553,8 @@ RsDoVendorLargeDescriptor (
Descriptor = Rnode->Buffer;
Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE;
@@ -656,11 +672,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
/* Point to end-of-descriptor for vendor data */
-Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype2d.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype2d.c
-@@ -84,6 +84,8 @@ RsDoDwordIoDescriptor (
+diff --git a/source/compiler/aslrestype2d.c b/source/compiler/aslrestype2d.c
+index 394530ae3..fd9dc91de 100644
+--- a/source/compiler/aslrestype2d.c
++++ b/source/compiler/aslrestype2d.c
+@@ -192,6 +192,8 @@ RsDoDwordIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -669,7 +685,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -147,8 +149,8 @@ RsDoDwordIoDescriptor (
+@@ -255,8 +257,8 @@ RsDoDwordIoDescriptor (
case 5: /* Address Granularity */
@@ -680,7 +696,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp;
-@@ -156,8 +158,8 @@ RsDoDwordIoDescriptor (
+@@ -264,8 +266,8 @@ RsDoDwordIoDescriptor (
case 6: /* Address Min */
@@ -691,7 +707,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp;
-@@ -165,8 +167,8 @@ RsDoDwordIoDescriptor (
+@@ -273,8 +275,8 @@ RsDoDwordIoDescriptor (
case 7: /* Address Max */
@@ -702,7 +718,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp;
-@@ -174,16 +176,16 @@ RsDoDwordIoDescriptor (
+@@ -282,16 +284,16 @@ RsDoDwordIoDescriptor (
case 8: /* Translation Offset */
@@ -723,7 +739,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp;
-@@ -271,11 +273,14 @@ RsDoDwordIoDescriptor (
+@@ -379,11 +381,14 @@ RsDoDwordIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -742,7 +758,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
Descriptor->Address32.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -314,6 +319,8 @@ RsDoDwordMemoryDescriptor (
+@@ -422,6 +427,8 @@ RsDoDwordMemoryDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -751,7 +767,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -385,8 +392,8 @@ RsDoDwordMemoryDescriptor (
+@@ -493,8 +500,8 @@ RsDoDwordMemoryDescriptor (
case 6: /* Address Granularity */
@@ -762,7 +778,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp;
-@@ -394,8 +401,8 @@ RsDoDwordMemoryDescriptor (
+@@ -502,8 +509,8 @@ RsDoDwordMemoryDescriptor (
case 7: /* Min Address */
@@ -773,7 +789,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp;
-@@ -403,8 +410,8 @@ RsDoDwordMemoryDescriptor (
+@@ -511,8 +518,8 @@ RsDoDwordMemoryDescriptor (
case 8: /* Max Address */
@@ -784,7 +800,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp;
-@@ -412,16 +419,16 @@ RsDoDwordMemoryDescriptor (
+@@ -520,16 +527,16 @@ RsDoDwordMemoryDescriptor (
case 9: /* Translation Offset */
@@ -805,7 +821,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp;
-@@ -506,11 +513,14 @@ RsDoDwordMemoryDescriptor (
+@@ -614,11 +621,14 @@ RsDoDwordMemoryDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -824,7 +840,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
Descriptor->Address32.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -549,6 +559,8 @@ RsDoDwordSpaceDescriptor (
+@@ -657,6 +667,8 @@ RsDoDwordSpaceDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -833,7 +849,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -616,8 +628,8 @@ RsDoDwordSpaceDescriptor (
+@@ -724,8 +736,8 @@ RsDoDwordSpaceDescriptor (
case 6: /* Address Granularity */
@@ -844,7 +860,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp;
-@@ -625,8 +637,8 @@ RsDoDwordSpaceDescriptor (
+@@ -733,8 +745,8 @@ RsDoDwordSpaceDescriptor (
case 7: /* Min Address */
@@ -855,7 +871,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp;
-@@ -634,8 +646,8 @@ RsDoDwordSpaceDescriptor (
+@@ -742,8 +754,8 @@ RsDoDwordSpaceDescriptor (
case 8: /* Max Address */
@@ -866,7 +882,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp;
-@@ -643,16 +655,16 @@ RsDoDwordSpaceDescriptor (
+@@ -751,16 +763,16 @@ RsDoDwordSpaceDescriptor (
case 9: /* Translation Offset */
@@ -887,7 +903,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp;
-@@ -723,11 +735,14 @@ RsDoDwordSpaceDescriptor (
+@@ -831,11 +843,14 @@ RsDoDwordSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -906,11 +922,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
Descriptor->Address32.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype2e.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype2e.c
-@@ -80,6 +80,7 @@ RsDoExtendedIoDescriptor (
+diff --git a/source/compiler/aslrestype2e.c b/source/compiler/aslrestype2e.c
+index b188994d3..ad61efc77 100644
+--- a/source/compiler/aslrestype2e.c
++++ b/source/compiler/aslrestype2e.c
+@@ -188,6 +188,7 @@ RsDoExtendedIoDescriptor (
UINT16 StringLength = 0;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -918,7 +934,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -139,7 +140,8 @@ RsDoExtendedIoDescriptor (
+@@ -247,7 +248,8 @@ RsDoExtendedIoDescriptor (
case 5: /* Address Granularity */
@@ -928,7 +944,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp;
-@@ -147,7 +149,8 @@ RsDoExtendedIoDescriptor (
+@@ -255,7 +257,8 @@ RsDoExtendedIoDescriptor (
case 6: /* Address Min */
@@ -938,7 +954,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp;
-@@ -155,7 +158,8 @@ RsDoExtendedIoDescriptor (
+@@ -263,7 +266,8 @@ RsDoExtendedIoDescriptor (
case 7: /* Address Max */
@@ -948,7 +964,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp;
-@@ -163,14 +167,16 @@ RsDoExtendedIoDescriptor (
+@@ -271,14 +275,16 @@ RsDoExtendedIoDescriptor (
case 8: /* Translation Offset */
@@ -967,7 +983,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp;
-@@ -178,7 +184,8 @@ RsDoExtendedIoDescriptor (
+@@ -286,7 +292,8 @@ RsDoExtendedIoDescriptor (
case 10: /* Type-Specific Attributes */
@@ -977,7 +993,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break;
-@@ -213,11 +220,14 @@ RsDoExtendedIoDescriptor (
+@@ -321,11 +328,14 @@ RsDoExtendedIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -996,7 +1012,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
Descriptor->ExtAddress64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -253,6 +263,7 @@ RsDoExtendedMemoryDescriptor (
+@@ -361,6 +371,7 @@ RsDoExtendedMemoryDescriptor (
UINT16 StringLength = 0;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1004,7 +1020,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -319,7 +330,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -427,7 +438,8 @@ RsDoExtendedMemoryDescriptor (
case 6: /* Address Granularity */
@@ -1014,7 +1030,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp;
-@@ -327,7 +339,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -435,7 +447,8 @@ RsDoExtendedMemoryDescriptor (
case 7: /* Min Address */
@@ -1024,7 +1040,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp;
-@@ -335,7 +348,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -443,7 +456,8 @@ RsDoExtendedMemoryDescriptor (
case 8: /* Max Address */
@@ -1034,7 +1050,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp;
-@@ -343,14 +357,16 @@ RsDoExtendedMemoryDescriptor (
+@@ -451,14 +465,16 @@ RsDoExtendedMemoryDescriptor (
case 9: /* Translation Offset */
@@ -1053,7 +1069,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp;
-@@ -358,7 +374,8 @@ RsDoExtendedMemoryDescriptor (
+@@ -466,7 +482,8 @@ RsDoExtendedMemoryDescriptor (
case 11: /* Type-Specific Attributes */
@@ -1063,7 +1079,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break;
-@@ -394,11 +411,14 @@ RsDoExtendedMemoryDescriptor (
+@@ -502,11 +519,14 @@ RsDoExtendedMemoryDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1082,7 +1098,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
Descriptor->ExtAddress64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -434,6 +454,7 @@ RsDoExtendedSpaceDescriptor (
+@@ -542,6 +562,7 @@ RsDoExtendedSpaceDescriptor (
UINT16 StringLength = 0;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1090,7 +1106,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -497,7 +518,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -605,7 +626,8 @@ RsDoExtendedSpaceDescriptor (
case 6: /* Address Granularity */
@@ -1100,7 +1116,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp;
-@@ -505,7 +527,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -613,7 +635,8 @@ RsDoExtendedSpaceDescriptor (
case 7: /* Min Address */
@@ -1110,7 +1126,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp;
-@@ -513,7 +536,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -621,7 +644,8 @@ RsDoExtendedSpaceDescriptor (
case 8: /* Max Address */
@@ -1120,7 +1136,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp;
-@@ -521,14 +545,16 @@ RsDoExtendedSpaceDescriptor (
+@@ -629,14 +653,16 @@ RsDoExtendedSpaceDescriptor (
case 9: /* Translation Offset */
@@ -1139,7 +1155,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp;
-@@ -536,7 +562,8 @@ RsDoExtendedSpaceDescriptor (
+@@ -644,7 +670,8 @@ RsDoExtendedSpaceDescriptor (
case 11: /* Type-Specific Attributes */
@@ -1149,7 +1165,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break;
-@@ -557,11 +584,14 @@ RsDoExtendedSpaceDescriptor (
+@@ -665,11 +692,14 @@ RsDoExtendedSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1168,11 +1184,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
Descriptor->ExtAddress64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype2q.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype2q.c
-@@ -84,6 +84,7 @@ RsDoQwordIoDescriptor (
+diff --git a/source/compiler/aslrestype2q.c b/source/compiler/aslrestype2q.c
+index 02db0ab34..7706b07ac 100644
+--- a/source/compiler/aslrestype2q.c
++++ b/source/compiler/aslrestype2q.c
+@@ -192,6 +192,7 @@ RsDoQwordIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1180,7 +1196,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -147,7 +148,8 @@ RsDoQwordIoDescriptor (
+@@ -255,7 +256,8 @@ RsDoQwordIoDescriptor (
case 5: /* Address Granularity */
@@ -1190,7 +1206,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp;
-@@ -155,7 +157,8 @@ RsDoQwordIoDescriptor (
+@@ -263,7 +265,8 @@ RsDoQwordIoDescriptor (
case 6: /* Address Min */
@@ -1200,7 +1216,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp;
-@@ -163,7 +166,8 @@ RsDoQwordIoDescriptor (
+@@ -271,7 +274,8 @@ RsDoQwordIoDescriptor (
case 7: /* Address Max */
@@ -1210,7 +1226,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp;
-@@ -171,14 +175,16 @@ RsDoQwordIoDescriptor (
+@@ -279,14 +283,16 @@ RsDoQwordIoDescriptor (
case 8: /* Translation Offset */
@@ -1229,7 +1245,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp;
-@@ -262,11 +268,14 @@ RsDoQwordIoDescriptor (
+@@ -370,11 +376,14 @@ RsDoQwordIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1248,7 +1264,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
Descriptor->Address64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -305,6 +314,7 @@ RsDoQwordMemoryDescriptor (
+@@ -413,6 +422,7 @@ RsDoQwordMemoryDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1256,7 +1272,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -375,7 +385,8 @@ RsDoQwordMemoryDescriptor (
+@@ -483,7 +493,8 @@ RsDoQwordMemoryDescriptor (
case 6: /* Address Granularity */
@@ -1266,7 +1282,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp;
-@@ -383,7 +394,8 @@ RsDoQwordMemoryDescriptor (
+@@ -491,7 +502,8 @@ RsDoQwordMemoryDescriptor (
case 7: /* Min Address */
@@ -1276,7 +1292,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp;
-@@ -391,7 +403,8 @@ RsDoQwordMemoryDescriptor (
+@@ -499,7 +511,8 @@ RsDoQwordMemoryDescriptor (
case 8: /* Max Address */
@@ -1286,7 +1302,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp;
-@@ -399,14 +412,16 @@ RsDoQwordMemoryDescriptor (
+@@ -507,14 +520,16 @@ RsDoQwordMemoryDescriptor (
case 9: /* Translation Offset */
@@ -1305,7 +1321,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp;
-@@ -491,11 +506,14 @@ RsDoQwordMemoryDescriptor (
+@@ -599,11 +614,14 @@ RsDoQwordMemoryDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1324,7 +1340,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
Descriptor->Address64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-@@ -534,6 +552,7 @@ RsDoQwordSpaceDescriptor (
+@@ -642,6 +660,7 @@ RsDoQwordSpaceDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1332,7 +1348,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -601,7 +620,8 @@ RsDoQwordSpaceDescriptor (
+@@ -709,7 +728,8 @@ RsDoQwordSpaceDescriptor (
case 6: /* Address Granularity */
@@ -1342,7 +1358,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp;
-@@ -609,7 +629,8 @@ RsDoQwordSpaceDescriptor (
+@@ -717,7 +737,8 @@ RsDoQwordSpaceDescriptor (
case 7: /* Min Address */
@@ -1352,7 +1368,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp;
-@@ -617,7 +638,8 @@ RsDoQwordSpaceDescriptor (
+@@ -725,7 +746,8 @@ RsDoQwordSpaceDescriptor (
case 8: /* Max Address */
@@ -1362,7 +1378,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp;
-@@ -625,14 +647,16 @@ RsDoQwordSpaceDescriptor (
+@@ -733,14 +755,16 @@ RsDoQwordSpaceDescriptor (
case 9: /* Translation Offset */
@@ -1381,7 +1397,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp;
-@@ -702,11 +726,14 @@ RsDoQwordSpaceDescriptor (
+@@ -810,11 +834,14 @@ RsDoQwordSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
@@ -1400,11 +1416,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
Descriptor->Address64.Flags,
MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype2s.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype2s.c
-@@ -343,6 +343,7 @@ RsDoGpioIntDescriptor (
+diff --git a/source/compiler/aslrestype2s.c b/source/compiler/aslrestype2s.c
+index c075c89c9..7aa23a35b 100644
+--- a/source/compiler/aslrestype2s.c
++++ b/source/compiler/aslrestype2s.c
+@@ -451,6 +451,7 @@ RsDoGpioIntDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1412,7 +1428,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -485,7 +486,8 @@ RsDoGpioIntDescriptor (
+@@ -593,7 +594,8 @@ RsDoGpioIntDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1422,7 +1438,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InterruptList++;
PinCount++;
-@@ -518,6 +520,27 @@ RsDoGpioIntDescriptor (
+@@ -626,6 +628,27 @@ RsDoGpioIntDescriptor (
MpSaveGpioInfo (Info->MappingOp, Descriptor,
PinCount, PinList, ResourceSource);
@@ -1450,7 +1466,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
return (Rnode);
}
-@@ -552,6 +575,7 @@ RsDoGpioIoDescriptor (
+@@ -660,6 +683,7 @@ RsDoGpioIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1458,7 +1474,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -691,7 +715,8 @@ RsDoGpioIoDescriptor (
+@@ -799,7 +823,8 @@ RsDoGpioIoDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1468,7 +1484,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InterruptList++;
PinCount++;
-@@ -724,6 +749,27 @@ RsDoGpioIoDescriptor (
+@@ -832,6 +857,27 @@ RsDoGpioIoDescriptor (
MpSaveGpioInfo (Info->MappingOp, Descriptor,
PinCount, PinList, ResourceSource);
@@ -1496,7 +1512,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
return (Rnode);
}
-@@ -754,6 +800,8 @@ RsDoI2cSerialBusDescriptor (
+@@ -862,6 +908,8 @@ RsDoI2cSerialBusDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1505,7 +1521,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -781,7 +829,8 @@ RsDoI2cSerialBusDescriptor (
+@@ -889,7 +937,8 @@ RsDoI2cSerialBusDescriptor (
Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION;
Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION;
Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE;
@@ -1515,7 +1531,14 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_I2C_SERIALBUS_V2)
{
-@@ -801,7 +850,8 @@ RsDoI2cSerialBusDescriptor (
+@@ -903,13 +952,15 @@ RsDoI2cSerialBusDescriptor (
+
+ /* Process all child initialization nodes */
+
++ Descriptor->I2cSerialBus.TypeSpecificFlags = 0;
+ for (i = 0; InitializerOp; i++)
+ {
+ switch (i)
{
case 0: /* Slave Address [WORD] (_ADR) */
@@ -1525,7 +1548,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.SlaveAddress));
break;
-@@ -815,7 +865,8 @@ RsDoI2cSerialBusDescriptor (
+@@ -923,16 +974,19 @@ RsDoI2cSerialBusDescriptor (
case 2: /* Connection Speed [DWORD] (_SPE) */
@@ -1535,7 +1558,28 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.ConnectionSpeed));
break;
-@@ -913,6 +964,8 @@ RsDoSpiSerialBusDescriptor (
+
+ case 3: /* Addressing Mode [Flag] (_MOD) */
+
+- RsSetFlagBits16 (&Descriptor->I2cSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
++ Tmp16 = AcpiUtReadUint16(&Descriptor->I2cSerialBus.TypeSpecificFlags);
++ RsSetFlagBits16 (&Tmp16, InitializerOp, 0, 0);
+ RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.TypeSpecificFlags), 0);
++ Descriptor->I2cSerialBus.TypeSpecificFlags = AcpiUtReadUint16(&Tmp16);
+ break;
+
+ case 4: /* ResSource [Optional Field - STRING] */
+@@ -990,6 +1044,8 @@ RsDoI2cSerialBusDescriptor (
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
++ Tmp16 = Descriptor->I2cSerialBus.ResourceLength;
++ Descriptor->I2cSerialBus.ResourceLength = AcpiUtReadUint16(&Tmp16);
+ MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
+ return (Rnode);
+ }
+@@ -1021,6 +1077,8 @@ RsDoSpiSerialBusDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1544,7 +1588,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -935,12 +988,13 @@ RsDoSpiSerialBusDescriptor (
+@@ -1043,12 +1101,13 @@ RsDoSpiSerialBusDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1560,7 +1604,14 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_SPI_SERIALBUS_V2)
{
-@@ -961,7 +1015,8 @@ RsDoSpiSerialBusDescriptor (
+@@ -1063,29 +1122,35 @@ RsDoSpiSerialBusDescriptor (
+
+ /* Process all child initialization nodes */
+
++ Descriptor->SpiSerialBus.TypeSpecificFlags = 0;
+ for (i = 0; InitializerOp; i++)
+ {
+ switch (i)
{
case 0: /* Device Selection [WORD] (_ADR) */
@@ -1570,7 +1621,29 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.DeviceSelection));
break;
-@@ -996,7 +1051,8 @@ RsDoSpiSerialBusDescriptor (
+
+ case 1: /* Device Polarity [Flag] (_DPL) */
+
+- RsSetFlagBits16 (&Descriptor->SpiSerialBus.TypeSpecificFlags, InitializerOp, 1, 0);
++ Tmp16 = AcpiUtReadUint16(&Descriptor->SpiSerialBus.TypeSpecificFlags);
++ RsSetFlagBits16 (&Tmp16, InitializerOp, 1, 0);
+ RsCreateBitField (InitializerOp, ACPI_RESTAG_DEVICEPOLARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 1);
++ Descriptor->SpiSerialBus.TypeSpecificFlags = AcpiUtReadUint16(&Tmp16);
+ break;
+
+ case 2: /* Wire Mode [Flag] (_MOD) */
+
+- RsSetFlagBits16 (&Descriptor->SpiSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
++ Tmp16 = AcpiUtReadUint16(&Descriptor->SpiSerialBus.TypeSpecificFlags);
++ RsSetFlagBits16 (&Tmp16, InitializerOp, 0, 0);
+ RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 0);
++ Descriptor->SpiSerialBus.TypeSpecificFlags = AcpiUtReadUint16(&Tmp16);
+ break;
+
+ case 3: /* Device Bit Length [BYTE] (_LEN) */
+@@ -1104,7 +1169,8 @@ RsDoSpiSerialBusDescriptor (
case 5: /* Connection Speed [DWORD] (_SPE) */
@@ -1580,7 +1653,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.ConnectionSpeed));
break;
-@@ -1101,6 +1157,8 @@ RsDoUartSerialBusDescriptor (
+@@ -1209,6 +1275,8 @@ RsDoUartSerialBusDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1589,7 +1662,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -1123,12 +1181,13 @@ RsDoUartSerialBusDescriptor (
+@@ -1231,12 +1299,13 @@ RsDoUartSerialBusDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1605,7 +1678,14 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_UART_SERIALBUS_V2)
{
-@@ -1148,7 +1207,8 @@ RsDoUartSerialBusDescriptor (
+@@ -1250,29 +1319,35 @@ RsDoUartSerialBusDescriptor (
+
+ /* Process all child initialization nodes */
+
++ Descriptor->UartSerialBus.TypeSpecificFlags = 0;
+ for (i = 0; InitializerOp; i++)
+ {
+ switch (i)
{
case 0: /* Connection Speed (Baud Rate) [DWORD] (_SPE) */
@@ -1615,7 +1695,52 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.DefaultBaudRate));
break;
-@@ -1197,14 +1257,16 @@ RsDoUartSerialBusDescriptor (
+
+ case 1: /* Bits Per Byte [Flags] (_LEN) */
+
+- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 4, 3);
++ Tmp16 = AcpiUtReadUint16(&Descriptor->UartSerialBus.TypeSpecificFlags);
++ RsSetFlagBits16 (&Tmp16, InitializerOp, 4, 3);
+ RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 4, 3);
++ Descriptor->UartSerialBus.TypeSpecificFlags = AcpiUtReadUint16(&Tmp16);;
+ break;
+
+ case 2: /* Stop Bits [Flags] (_STB) */
+
+- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 2, 1);
++ Tmp16 = AcpiUtReadUint16(&Descriptor->UartSerialBus.TypeSpecificFlags);
++ RsSetFlagBits16 (&Tmp16, InitializerOp, 2, 1);
+ RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_STOPBITS,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 2, 2);
++ Descriptor->UartSerialBus.TypeSpecificFlags = AcpiUtReadUint16(&Tmp16);;
+ break;
+
+ case 3: /* Lines In Use [BYTE] (_LIN) */
+@@ -1284,9 +1359,11 @@ RsDoUartSerialBusDescriptor (
+
+ case 4: /* Endianness [Flag] (_END) */
+
+- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 7, 0);
++ Tmp16 = AcpiUtReadUint16(&Descriptor->UartSerialBus.TypeSpecificFlags);
++ RsSetFlagBits16 (&Tmp16, InitializerOp, 7, 0);
+ RsCreateBitField (InitializerOp, ACPI_RESTAG_ENDIANNESS,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 7);
++ Descriptor->UartSerialBus.TypeSpecificFlags = AcpiUtReadUint16(&Tmp16);;
+ break;
+
+ case 5: /* Parity [BYTE] (_PAR) */
+@@ -1298,21 +1375,25 @@ RsDoUartSerialBusDescriptor (
+
+ case 6: /* Flow Control [Flags] (_FLC) */
+
+- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
++ Tmp16 = AcpiUtReadUint16(&Descriptor->UartSerialBus.TypeSpecificFlags);
++ RsSetFlagBits16 (&Tmp16, InitializerOp, 0, 0);
+ RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_FLOWCONTROL,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 0, 2);
++ Descriptor->UartSerialBus.TypeSpecificFlags = AcpiUtReadUint16(&Tmp16);;
+ break;
case 7: /* Rx Buffer Size [WORD] (_RXL) */
@@ -1634,7 +1759,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_TX,
CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TxFifoSize));
break;
-@@ -1308,6 +1370,7 @@ RsDoPinFunctionDescriptor (
+@@ -1416,6 +1497,7 @@ RsDoPinFunctionDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1642,7 +1767,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1331,7 +1394,7 @@ RsDoPinFunctionDescriptor (
+@@ -1439,7 +1521,7 @@ RsDoPinFunctionDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1651,7 +1776,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
Descriptor->PinFunction.DescriptorType = ACPI_RESOURCE_NAME_PIN_FUNCTION;
Descriptor->PinFunction.RevisionId = AML_RESOURCE_PIN_FUNCTION_REVISION;
-@@ -1371,7 +1434,8 @@ RsDoPinFunctionDescriptor (
+@@ -1479,7 +1561,8 @@ RsDoPinFunctionDescriptor (
case 2: /* Function Number [WORD] (_FUN) */
@@ -1661,7 +1786,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_FUNCTION,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinFunction.FunctionNumber));
break;
-@@ -1419,6 +1483,12 @@ RsDoPinFunctionDescriptor (
+@@ -1527,6 +1610,12 @@ RsDoPinFunctionDescriptor (
{
Descriptor->PinFunction.VendorLength = VendorLength;
}
@@ -1674,7 +1799,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
break;
default:
-@@ -1430,7 +1500,8 @@ RsDoPinFunctionDescriptor (
+@@ -1538,7 +1627,8 @@ RsDoPinFunctionDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1684,7 +1809,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
PinList++;
PinCount++;
-@@ -1461,6 +1532,13 @@ RsDoPinFunctionDescriptor (
+@@ -1569,6 +1659,13 @@ RsDoPinFunctionDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1698,7 +1823,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
return (Rnode);
}
-@@ -1494,6 +1572,8 @@ RsDoPinConfigDescriptor (
+@@ -1602,6 +1699,8 @@ RsDoPinConfigDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1707,7 +1832,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1517,7 +1597,7 @@ RsDoPinConfigDescriptor (
+@@ -1625,7 +1724,7 @@ RsDoPinConfigDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1716,7 +1841,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
Descriptor->PinConfig.DescriptorType = ACPI_RESOURCE_NAME_PIN_CONFIG;
Descriptor->PinConfig.RevisionId = AML_RESOURCE_PIN_CONFIG_REVISION;
-@@ -1571,7 +1651,8 @@ RsDoPinConfigDescriptor (
+@@ -1679,7 +1778,8 @@ RsDoPinConfigDescriptor (
case 2: /* Pin Config Value [DWORD] (_VAL) */
@@ -1726,7 +1851,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_PINCONFIG_VALUE,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinConfig.PinConfigValue));
break;
-@@ -1630,7 +1711,8 @@ RsDoPinConfigDescriptor (
+@@ -1738,7 +1838,8 @@ RsDoPinConfigDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1736,7 +1861,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
PinList++;
PinCount++;
-@@ -1661,6 +1743,16 @@ RsDoPinConfigDescriptor (
+@@ -1769,6 +1870,16 @@ RsDoPinConfigDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1753,7 +1878,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
return (Rnode);
}
-@@ -1694,6 +1786,7 @@ RsDoPinGroupDescriptor (
+@@ -1802,6 +1913,7 @@ RsDoPinGroupDescriptor (
UINT32 CurrentByteOffset;
UINT32 PinCount = 0;
UINT32 i;
@@ -1761,7 +1886,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1717,7 +1810,7 @@ RsDoPinGroupDescriptor (
+@@ -1825,7 +1937,7 @@ RsDoPinGroupDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1770,7 +1895,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
Descriptor->PinGroup.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP;
Descriptor->PinGroup.RevisionId = AML_RESOURCE_PIN_GROUP_REVISION;
-@@ -1784,7 +1877,8 @@ RsDoPinGroupDescriptor (
+@@ -1892,7 +2004,8 @@ RsDoPinGroupDescriptor (
* (implies resource source must immediately follow the pin list.)
* Name: _PIN
*/
@@ -1780,7 +1905,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
PinList++;
PinCount++;
-@@ -1815,6 +1909,16 @@ RsDoPinGroupDescriptor (
+@@ -1923,6 +2036,16 @@ RsDoPinGroupDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1797,7 +1922,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
return (Rnode);
}
-@@ -1847,6 +1951,7 @@ RsDoPinGroupFunctionDescriptor (
+@@ -1955,6 +2078,7 @@ RsDoPinGroupFunctionDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1805,7 +1930,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -1870,7 +1975,7 @@ RsDoPinGroupFunctionDescriptor (
+@@ -1978,7 +2102,7 @@ RsDoPinGroupFunctionDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1814,7 +1939,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
Descriptor->PinGroupFunction.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION;
Descriptor->PinGroupFunction.RevisionId = AML_RESOURCE_PIN_GROUP_FUNCTION_REVISION;
-@@ -1902,7 +2007,8 @@ RsDoPinGroupFunctionDescriptor (
+@@ -2010,7 +2134,8 @@ RsDoPinGroupFunctionDescriptor (
case 1: /* Function Number [WORD] */
@@ -1824,7 +1949,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_FUNCTION,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinGroupFunction.FunctionNumber));
break;
-@@ -1961,6 +2067,16 @@ RsDoPinGroupFunctionDescriptor (
+@@ -2069,6 +2194,16 @@ RsDoPinGroupFunctionDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1841,7 +1966,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
return (Rnode);
}
-@@ -1993,6 +2109,8 @@ RsDoPinGroupConfigDescriptor (
+@@ -2101,6 +2236,8 @@ RsDoPinGroupConfigDescriptor (
UINT16 DescriptorSize;
UINT32 CurrentByteOffset;
UINT32 i;
@@ -1850,7 +1975,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
CurrentByteOffset = Info->CurrentByteOffset;
-@@ -2016,7 +2134,7 @@ RsDoPinGroupConfigDescriptor (
+@@ -2124,7 +2261,7 @@ RsDoPinGroupConfigDescriptor (
sizeof (AML_RESOURCE_LARGE_HEADER));
Descriptor = Rnode->Buffer;
@@ -1859,7 +1984,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
Descriptor->PinGroupConfig.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG;
Descriptor->PinGroupConfig.RevisionId = AML_RESOURCE_PIN_GROUP_CONFIG_REVISION;
-@@ -2069,7 +2187,8 @@ RsDoPinGroupConfigDescriptor (
+@@ -2177,7 +2314,8 @@ RsDoPinGroupConfigDescriptor (
case 2: /* Pin Config Value [DWORD] (_VAL) */
@@ -1869,7 +1994,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
RsCreateDwordField (InitializerOp, ACPI_RESTAG_PINCONFIG_VALUE,
CurrentByteOffset + ASL_RESDESC_OFFSET (PinGroupConfig.PinConfigValue));
break;
-@@ -2130,5 +2249,15 @@ RsDoPinGroupConfigDescriptor (
+@@ -2238,5 +2376,15 @@ RsDoPinGroupConfigDescriptor (
InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
}
@@ -1885,11 +2010,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
+
return (Rnode);
}
-Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
-===================================================================
---- acpica-unix2-20200925.orig/source/compiler/aslrestype2w.c
-+++ acpica-unix2-20200925/source/compiler/aslrestype2w.c
-@@ -84,6 +84,7 @@ RsDoWordIoDescriptor (
+diff --git a/source/compiler/aslrestype2w.c b/source/compiler/aslrestype2w.c
+index b2113f4c9..6077f5f1a 100644
+--- a/source/compiler/aslrestype2w.c
++++ b/source/compiler/aslrestype2w.c
+@@ -192,6 +192,7 @@ RsDoWordIoDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1897,7 +2022,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -147,7 +148,8 @@ RsDoWordIoDescriptor (
+@@ -255,7 +256,8 @@ RsDoWordIoDescriptor (
case 5: /* Address Granularity */
@@ -1907,7 +2032,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp;
-@@ -155,7 +157,8 @@ RsDoWordIoDescriptor (
+@@ -263,7 +265,8 @@ RsDoWordIoDescriptor (
case 6: /* Address Min */
@@ -1917,7 +2042,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp;
-@@ -163,7 +166,8 @@ RsDoWordIoDescriptor (
+@@ -271,7 +274,8 @@ RsDoWordIoDescriptor (
case 7: /* Address Max */
@@ -1927,7 +2052,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp;
-@@ -171,14 +175,16 @@ RsDoWordIoDescriptor (
+@@ -279,14 +283,16 @@ RsDoWordIoDescriptor (
case 8: /* Translation Offset */
@@ -1946,7 +2071,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp;
-@@ -263,13 +269,17 @@ RsDoWordIoDescriptor (
+@@ -371,13 +377,17 @@ RsDoWordIoDescriptor (
/* Validate the Min/Max/Len/Gran values */
RsLargeAddressCheck (
@@ -1968,7 +2093,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
return (Rnode);
-@@ -305,6 +315,7 @@ RsDoWordBusNumberDescriptor (
+@@ -413,6 +423,7 @@ RsDoWordBusNumberDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -1976,7 +2101,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -361,8 +372,8 @@ RsDoWordBusNumberDescriptor (
+@@ -469,8 +480,8 @@ RsDoWordBusNumberDescriptor (
case 4: /* Address Granularity */
@@ -1987,7 +2112,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp;
-@@ -370,8 +381,8 @@ RsDoWordBusNumberDescriptor (
+@@ -478,8 +489,8 @@ RsDoWordBusNumberDescriptor (
case 5: /* Min Address */
@@ -1998,7 +2123,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp;
-@@ -379,8 +390,8 @@ RsDoWordBusNumberDescriptor (
+@@ -487,8 +498,8 @@ RsDoWordBusNumberDescriptor (
case 6: /* Max Address */
@@ -2009,7 +2134,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp;
-@@ -388,16 +399,16 @@ RsDoWordBusNumberDescriptor (
+@@ -496,16 +507,16 @@ RsDoWordBusNumberDescriptor (
case 7: /* Translation Offset */
@@ -2030,7 +2155,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp;
-@@ -468,13 +479,17 @@ RsDoWordBusNumberDescriptor (
+@@ -576,13 +587,17 @@ RsDoWordBusNumberDescriptor (
/* Validate the Min/Max/Len/Gran values */
RsLargeAddressCheck (
@@ -2052,7 +2177,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
return (Rnode);
-@@ -510,6 +525,7 @@ RsDoWordSpaceDescriptor (
+@@ -618,6 +633,7 @@ RsDoWordSpaceDescriptor (
UINT32 CurrentByteOffset;
UINT32 i;
BOOLEAN ResSourceIndex = FALSE;
@@ -2060,7 +2185,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -577,8 +593,8 @@ RsDoWordSpaceDescriptor (
+@@ -685,8 +701,8 @@ RsDoWordSpaceDescriptor (
case 6: /* Address Granularity */
@@ -2071,7 +2196,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp;
-@@ -586,8 +602,8 @@ RsDoWordSpaceDescriptor (
+@@ -694,8 +710,8 @@ RsDoWordSpaceDescriptor (
case 7: /* Min Address */
@@ -2082,7 +2207,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp;
-@@ -595,8 +611,8 @@ RsDoWordSpaceDescriptor (
+@@ -703,8 +719,8 @@ RsDoWordSpaceDescriptor (
case 8: /* Max Address */
@@ -2093,7 +2218,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp;
-@@ -604,16 +620,16 @@ RsDoWordSpaceDescriptor (
+@@ -712,16 +728,16 @@ RsDoWordSpaceDescriptor (
case 9: /* Translation Offset */
@@ -2114,7 +2239,7 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp;
-@@ -684,13 +700,17 @@ RsDoWordSpaceDescriptor (
+@@ -792,13 +808,17 @@ RsDoWordSpaceDescriptor (
/* Validate the Min/Max/Len/Gran values */
RsLargeAddressCheck (
@@ -2136,11 +2261,11 @@ Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
OptionIndex + StringLength;
return (Rnode);
-Index: acpica-unix2-20200925/source/components/disassembler/dmbuffer.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/disassembler/dmbuffer.c
-+++ acpica-unix2-20200925/source/components/disassembler/dmbuffer.c
-@@ -204,7 +204,7 @@ AcpiDmByteList (
+diff --git a/source/components/disassembler/dmbuffer.c b/source/components/disassembler/dmbuffer.c
+index 810f727fa..6960e9913 100644
+--- a/source/components/disassembler/dmbuffer.c
++++ b/source/components/disassembler/dmbuffer.c
+@@ -312,7 +312,7 @@ AcpiDmByteList (
ByteData = Op->Named.Data;
@@ -2149,11 +2274,46 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmbuffer.c
/*
* The byte list belongs to a buffer, and can be produced by either
-Index: acpica-unix2-20200925/source/components/disassembler/dmopcode.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/disassembler/dmopcode.c
-+++ acpica-unix2-20200925/source/components/disassembler/dmopcode.c
-@@ -882,23 +882,23 @@ AcpiDmDisassembleOneOp (
+@@ -416,7 +416,7 @@ AcpiDmIsUuidBuffer (
+ /* Extract the byte list info */
+
+ ByteData = NextOp->Named.Data;
+- ByteCount = (UINT32) NextOp->Common.Value.Integer;
++ ByteCount = (UINT32) NextOp->Common.Value.Size;
+
+ /* Byte count must be exactly 16 */
+
+@@ -544,7 +544,7 @@ AcpiDmIsUnicodeBuffer (
+ /* Extract the byte list info */
+
+ ByteData = NextOp->Named.Data;
+- ByteCount = (UINT32) NextOp->Common.Value.Integer;
++ ByteCount = (UINT32) NextOp->Common.Value.Size;
+ WordCount = ACPI_DIV_2 (ByteCount);
+
+ /*
+@@ -986,14 +986,14 @@ AcpiDmUnicode (
+ /* Extract the buffer info as a WORD buffer */
+
+ WordData = ACPI_CAST_PTR (UINT16, Op->Named.Data);
+- WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Integer));
++ WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Size));
+
+ /* Write every other byte as an ASCII character */
+
+ AcpiOsPrintf ("\"");
+ for (i = 0; i < (WordCount - 1); i++)
+ {
+- OutputValue = (int) WordData[i];
++ OutputValue = (int) AcpiUtReadUint16(&WordData[i]);
+
+ /* Handle values that must be escaped */
+
+diff --git a/source/components/disassembler/dmopcode.c b/source/components/disassembler/dmopcode.c
+index 1372a0f25..bb7abab2c 100644
+--- a/source/components/disassembler/dmopcode.c
++++ b/source/components/disassembler/dmopcode.c
+@@ -990,23 +990,23 @@ AcpiDmDisassembleOneOp (
case AML_INT_NAMEDFIELD_OP:
@@ -2181,11 +2341,11 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmopcode.c
Info->BitOffset += Offset;
if (Info->BitOffset % 8 == 0)
-Index: acpica-unix2-20200925/source/components/disassembler/dmresrc.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/disassembler/dmresrc.c
-+++ acpica-unix2-20200925/source/components/disassembler/dmresrc.c
-@@ -417,7 +417,7 @@ AcpiDmIsResourceTemplate (
+diff --git a/source/components/disassembler/dmresrc.c b/source/components/disassembler/dmresrc.c
+index a3403322b..af75a7833 100644
+--- a/source/components/disassembler/dmresrc.c
++++ b/source/components/disassembler/dmresrc.c
+@@ -525,7 +525,7 @@ AcpiDmIsResourceTemplate (
return (AE_TYPE);
}
@@ -2194,11 +2354,11 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrc.c
/* Get the length of the raw initialization byte list */
-Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcl.c
-+++ acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
-@@ -141,6 +141,8 @@ AcpiDmMemoryFields (
+diff --git a/source/components/disassembler/dmresrcl.c b/source/components/disassembler/dmresrcl.c
+index e9d391df3..eed859928 100644
+--- a/source/components/disassembler/dmresrcl.c
++++ b/source/components/disassembler/dmresrcl.c
+@@ -249,6 +249,8 @@ AcpiDmMemoryFields (
UINT32 Level)
{
UINT32 i;
@@ -2207,7 +2367,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
for (i = 0; i < 4; i++)
-@@ -151,14 +153,16 @@ AcpiDmMemoryFields (
+@@ -259,14 +261,16 @@ AcpiDmMemoryFields (
{
case 16:
@@ -2228,7 +2388,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
break;
default:
-@@ -190,6 +194,9 @@ AcpiDmAddressFields (
+@@ -298,6 +302,9 @@ AcpiDmAddressFields (
UINT32 Level)
{
UINT32 i;
@@ -2238,7 +2398,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
AcpiOsPrintf ("\n");
-@@ -202,20 +209,23 @@ AcpiDmAddressFields (
+@@ -310,20 +317,23 @@ AcpiDmAddressFields (
{
case 16:
@@ -2268,7 +2428,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
break;
default:
-@@ -749,7 +759,7 @@ AcpiDmExtendedDescriptor (
+@@ -857,7 +867,7 @@ AcpiDmExtendedDescriptor (
/* Extra field for this descriptor only */
AcpiDmIndent (Level + 1);
@@ -2277,7 +2437,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
"Type-Specific Attributes");
/* Insert a descriptor name */
-@@ -876,11 +886,11 @@ AcpiDmFixedMemory32Descriptor (
+@@ -984,11 +994,11 @@ AcpiDmFixedMemory32Descriptor (
AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]);
AcpiDmIndent (Level + 1);
@@ -2291,7 +2451,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
"Address Length");
/* Insert a descriptor name */
-@@ -926,7 +936,8 @@ AcpiDmGenericRegisterDescriptor (
+@@ -1034,7 +1044,8 @@ AcpiDmGenericRegisterDescriptor (
AcpiDmDumpInteger8 (Resource->GenericReg.BitOffset, "Bit Offset");
AcpiDmIndent (Level + 1);
@@ -2301,7 +2461,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
/* Optional field for ACPI 3.0 */
-@@ -989,7 +1000,7 @@ AcpiDmInterruptDescriptor (
+@@ -1097,7 +1108,7 @@ AcpiDmInterruptDescriptor (
AcpiDmResourceSource (Resource,
sizeof (AML_RESOURCE_EXTENDED_IRQ) +
((UINT32) Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32),
@@ -2310,7 +2470,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
/* Insert a descriptor name */
-@@ -1004,7 +1015,7 @@ AcpiDmInterruptDescriptor (
+@@ -1112,7 +1123,7 @@ AcpiDmInterruptDescriptor (
{
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("0x%8.8X,\n",
@@ -2319,17 +2479,18 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
}
AcpiDmIndent (Level);
-Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcl2.c
-+++ acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
-@@ -191,15 +191,19 @@ AcpiDmGpioCommon (
+diff --git a/source/components/disassembler/dmresrcl2.c b/source/components/disassembler/dmresrcl2.c
+index a2a85dfdc..11c3af1af 100644
+--- a/source/components/disassembler/dmresrcl2.c
++++ b/source/components/disassembler/dmresrcl2.c
+@@ -299,22 +299,27 @@ AcpiDmGpioCommon (
char *DeviceName = NULL;
UINT32 PinCount;
UINT32 i;
+ UINT16 ResSourceOffset;
+ UINT16 VendorOffset;
+ UINT16 VendorLength;
++ UINT16 Tmp16;
/* ResourceSource, ResourceSourceIndex, ResourceType */
@@ -2345,7 +2506,16 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
}
-@@ -215,15 +219,15 @@ AcpiDmGpioCommon (
+ AcpiOsPrintf (", ");
+ AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.ResSourceIndex);
+- AcpiOsPrintf ("%s, ",
+- AcpiGbl_ConsumeDecode [ACPI_GET_1BIT_FLAG (Resource->Gpio.Flags)]);
++ Tmp16 = AcpiUtReadUint16(&Resource->Gpio.Flags);
++ AcpiOsPrintf ("%s, ", AcpiGbl_ConsumeDecode [ACPI_GET_1BIT_FLAG (Tmp16)]);
+
+ /* Insert a descriptor name */
+
+@@ -323,15 +328,15 @@ AcpiDmGpioCommon (
/* Dump the vendor data */
@@ -2366,17 +2536,16 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
}
AcpiOsPrintf (")\n");
-@@ -233,17 +237,21 @@ AcpiDmGpioCommon (
+@@ -341,17 +346,17 @@ AcpiDmGpioCommon (
AcpiDmIndent (Level + 1);
AcpiOsPrintf ("{ // Pin list\n");
+- PinCount = ((UINT32) (Resource->Gpio.ResSourceOffset -
+- Resource->Gpio.PinTableOffset)) /
+- sizeof (UINT16);
+ PinCount = (UINT32) AcpiUtReadUint16(&Resource->Gpio.ResSourceOffset);
+ PinCount -= (UINT32) AcpiUtReadUint16(&Resource->Gpio.PinTableOffset);
+ PinCount /= sizeof (UINT16);
-+
- PinCount = ((UINT32) (Resource->Gpio.ResSourceOffset -
- Resource->Gpio.PinTableOffset)) /
- sizeof (UINT16);
PinList = (UINT16 *) ACPI_ADD_PTR (char, Resource,
- Resource->Gpio.PinTableOffset);
@@ -2390,7 +2559,29 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
((i + 1) < PinCount) ? "," : "");
}
-@@ -299,7 +307,8 @@ AcpiDmGpioIntDescriptor (
+@@ -385,16 +390,18 @@ AcpiDmGpioIntDescriptor (
+ UINT32 Length,
+ UINT32 Level)
+ {
++ UINT16 Tmp16;
+
+ /* Dump the GpioInt-specific portion of the descriptor */
+
+ /* EdgeLevel, ActiveLevel, Shared */
+
+ AcpiDmIndent (Level);
++ Tmp16 = AcpiUtReadUint16(&Resource->Gpio.IntFlags);
+ AcpiOsPrintf ("GpioInt (%s, %s, %s, ",
+- AcpiGbl_HeDecode [ACPI_GET_1BIT_FLAG (Resource->Gpio.IntFlags)],
+- AcpiGbl_LlDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 1)],
+- AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 3)]);
++ AcpiGbl_HeDecode [ACPI_GET_1BIT_FLAG (Tmp16)],
++ AcpiGbl_LlDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 1)],
++ AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 3)]);
+
+ /* PinConfig, DebounceTimeout */
+
+@@ -407,7 +414,8 @@ AcpiDmGpioIntDescriptor (
{
AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.PinConfig);
}
@@ -2400,18 +2591,40 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
/* Dump the GpioInt/GpioIo common portion of the descriptor */
-@@ -350,8 +359,8 @@ AcpiDmGpioIoDescriptor (
+@@ -437,14 +445,16 @@ AcpiDmGpioIoDescriptor (
+ UINT32 Length,
+ UINT32 Level)
+ {
++ UINT16 Tmp16;
+
+ /* Dump the GpioIo-specific portion of the descriptor */
+
+ /* Shared, PinConfig */
+
+ AcpiDmIndent (Level);
++ Tmp16 = AcpiUtReadUint16(&Resource->Gpio.IntFlags);
+ AcpiOsPrintf ("GpioIo (%s, ",
+- AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 3)]);
++ AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 3)]);
+
+ if (Resource->Gpio.PinConfig <= 3)
+ {
+@@ -458,10 +468,10 @@ AcpiDmGpioIoDescriptor (
/* DebounceTimeout, DriveStrength, IoRestriction */
- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DebounceTimeout);
- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DriveStrength);
+- AcpiOsPrintf ("%s,\n",
+- AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Resource->Gpio.IntFlags)]);
+ AcpiOsPrintf ("0x%4.4X, ", AcpiUtReadUint16(&Resource->Gpio.DebounceTimeout));
+ AcpiOsPrintf ("0x%4.4X, ", AcpiUtReadUint16(&Resource->Gpio.DriveStrength));
- AcpiOsPrintf ("%s,\n",
- AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Resource->Gpio.IntFlags)]);
++ Tmp16 = AcpiUtReadUint16(&Resource->Gpio.IntFlags);
++ AcpiOsPrintf ("%s,\n", AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Tmp16)]);
+
+ /* Dump the GpioInt/GpioIo common portion of the descriptor */
-@@ -434,6 +443,9 @@ AcpiDmPinFunctionDescriptor (
+@@ -542,6 +552,9 @@ AcpiDmPinFunctionDescriptor (
char *DeviceName = NULL;
UINT32 PinCount;
UINT32 i;
@@ -2421,7 +2634,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
AcpiDmIndent (Level);
AcpiOsPrintf ("PinFunction (%s, ",
-@@ -451,12 +463,14 @@ AcpiDmPinFunctionDescriptor (
+@@ -559,12 +572,14 @@ AcpiDmPinFunctionDescriptor (
/* FunctionNumber */
@@ -2439,7 +2652,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
}
-@@ -476,15 +490,15 @@ AcpiDmPinFunctionDescriptor (
+@@ -584,15 +599,15 @@ AcpiDmPinFunctionDescriptor (
/* Dump the vendor data */
@@ -2460,7 +2673,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
}
AcpiOsPrintf (")\n");
-@@ -495,17 +509,17 @@ AcpiDmPinFunctionDescriptor (
+@@ -603,17 +618,17 @@ AcpiDmPinFunctionDescriptor (
AcpiOsPrintf ("{ // Pin list\n");
@@ -2483,11 +2696,139 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
((i + 1) < PinCount) ? "," : "");
}
-Index: acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcs.c
-+++ acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
-@@ -93,7 +93,7 @@ AcpiDmIrqDescriptor (
+@@ -649,7 +664,8 @@ AcpiDmDumpSerialBusVendorData (
+ {
+ case AML_RESOURCE_I2C_SERIALBUSTYPE:
+
+- VendorLength = Resource->CommonSerialBus.TypeDataLength -
++ VendorLength =
++ AcpiUtReadUint16(&Resource->CommonSerialBus.TypeDataLength) -
+ AML_RESOURCE_I2C_MIN_DATA_LEN;
+
+ VendorData = ACPI_ADD_PTR (UINT8, Resource,
+@@ -658,7 +674,8 @@ AcpiDmDumpSerialBusVendorData (
+
+ case AML_RESOURCE_SPI_SERIALBUSTYPE:
+
+- VendorLength = Resource->CommonSerialBus.TypeDataLength -
++ VendorLength =
++ AcpiUtReadUint16(&Resource->CommonSerialBus.TypeDataLength) -
+ AML_RESOURCE_SPI_MIN_DATA_LEN;
+
+ VendorData = ACPI_ADD_PTR (UINT8, Resource,
+@@ -667,7 +684,8 @@ AcpiDmDumpSerialBusVendorData (
+
+ case AML_RESOURCE_UART_SERIALBUSTYPE:
+
+- VendorLength = Resource->CommonSerialBus.TypeDataLength -
++ VendorLength =
++ AcpiUtReadUint16(&Resource->CommonSerialBus.TypeDataLength) -
+ AML_RESOURCE_UART_MIN_DATA_LEN;
+
+ VendorData = ACPI_ADD_PTR (UINT8, Resource,
+@@ -715,9 +733,9 @@ AcpiDmI2cSerialBusDescriptor (
+
+ AcpiDmIndent (Level);
+ AcpiOsPrintf ("I2cSerialBusV2 (0x%4.4X, %s, 0x%8.8X,\n",
+- Resource->I2cSerialBus.SlaveAddress,
++ AcpiUtReadUint16(&Resource->I2cSerialBus.SlaveAddress),
+ AcpiGbl_SmDecode [ACPI_GET_1BIT_FLAG (Resource->I2cSerialBus.Flags)],
+- Resource->I2cSerialBus.ConnectionSpeed);
++ AcpiUtReadUint32(&Resource->I2cSerialBus.ConnectionSpeed));
+
+ AcpiDmIndent (Level + 1);
+ AcpiOsPrintf ("%s, ",
+@@ -726,7 +744,7 @@ AcpiDmI2cSerialBusDescriptor (
+ /* ResourceSource is a required field */
+
+ ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) +
+- Resource->CommonSerialBus.TypeDataLength;
++ AcpiUtReadUint16(&Resource->CommonSerialBus.TypeDataLength);
+
+ DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset);
+ AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
+@@ -783,15 +801,17 @@ AcpiDmSpiSerialBusDescriptor (
+ {
+ UINT32 ResourceSourceOffset;
+ char *DeviceName;
++ UINT16 Tmp16;
+
+
+ /* DeviceSelection, DeviceSelectionPolarity, WireMode, DataBitLength */
+
+ AcpiDmIndent (Level);
++ Tmp16 = AcpiUtReadUint16(&Resource->SpiSerialBus.TypeSpecificFlags);
+ AcpiOsPrintf ("SpiSerialBusV2 (0x%4.4X, %s, %s, 0x%2.2X,\n",
+- Resource->SpiSerialBus.DeviceSelection,
+- AcpiGbl_DpDecode [ACPI_EXTRACT_1BIT_FLAG (Resource->SpiSerialBus.TypeSpecificFlags, 1)],
+- AcpiGbl_WmDecode [ACPI_GET_1BIT_FLAG (Resource->SpiSerialBus.TypeSpecificFlags)],
++ AcpiUtReadUint16(&Resource->SpiSerialBus.DeviceSelection),
++ AcpiGbl_DpDecode [ACPI_EXTRACT_1BIT_FLAG (Tmp16, 1)],
++ AcpiGbl_WmDecode [ACPI_GET_1BIT_FLAG (Tmp16)],
+ Resource->SpiSerialBus.DataBitLength);
+
+ /* SlaveMode, ConnectionSpeed, ClockPolarity, ClockPhase */
+@@ -799,7 +819,7 @@ AcpiDmSpiSerialBusDescriptor (
+ AcpiDmIndent (Level + 1);
+ AcpiOsPrintf ("%s, 0x%8.8X, %s,\n",
+ AcpiGbl_SmDecode [ACPI_GET_1BIT_FLAG (Resource->SpiSerialBus.Flags)],
+- Resource->SpiSerialBus.ConnectionSpeed,
++ AcpiUtReadUint32(&Resource->SpiSerialBus.ConnectionSpeed),
+ AcpiGbl_CpoDecode [ACPI_GET_1BIT_FLAG (Resource->SpiSerialBus.ClockPolarity)]);
+
+ AcpiDmIndent (Level + 1);
+@@ -809,7 +829,7 @@ AcpiDmSpiSerialBusDescriptor (
+ /* ResourceSource is a required field */
+
+ ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) +
+- Resource->CommonSerialBus.TypeDataLength;
++ AcpiUtReadUint16(&Resource->CommonSerialBus.TypeDataLength);
+
+ DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset);
+ AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
+@@ -866,15 +886,17 @@ AcpiDmUartSerialBusDescriptor (
+ {
+ UINT32 ResourceSourceOffset;
+ char *DeviceName;
++ UINT16 Tmp16;
+
+
+ /* ConnectionSpeed, BitsPerByte, StopBits */
+
+ AcpiDmIndent (Level);
++ Tmp16 = AcpiUtReadUint16(&Resource->UartSerialBus.TypeSpecificFlags);
+ AcpiOsPrintf ("UartSerialBusV2 (0x%8.8X, %s, %s,\n",
+- Resource->UartSerialBus.DefaultBaudRate,
+- AcpiGbl_BpbDecode [ACPI_EXTRACT_3BIT_FLAG (Resource->UartSerialBus.TypeSpecificFlags, 4)],
+- AcpiGbl_SbDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->UartSerialBus.TypeSpecificFlags, 2)]);
++ AcpiUtReadUint32(&Resource->UartSerialBus.DefaultBaudRate),
++ AcpiGbl_BpbDecode [ACPI_EXTRACT_3BIT_FLAG (Tmp16, 4)],
++ AcpiGbl_SbDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 2)]);
+
+ /* LinesInUse, IsBigEndian, Parity, FlowControl */
+
+@@ -889,13 +911,13 @@ AcpiDmUartSerialBusDescriptor (
+
+ AcpiDmIndent (Level + 1);
+ AcpiOsPrintf ("0x%4.4X, 0x%4.4X, ",
+- Resource->UartSerialBus.RxFifoSize,
+- Resource->UartSerialBus.TxFifoSize);
++ AcpiUtReadUint16(&Resource->UartSerialBus.RxFifoSize),
++ AcpiUtReadUint16(&Resource->UartSerialBus.TxFifoSize));
+
+ /* ResourceSource is a required field */
+
+ ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) +
+- Resource->CommonSerialBus.TypeDataLength;
++ AcpiUtReadUint16(&Resource->CommonSerialBus.TypeDataLength);
+
+ DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset);
+ AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
+diff --git a/source/components/disassembler/dmresrcs.c b/source/components/disassembler/dmresrcs.c
+index 5f5c7edaf..21d397637 100644
+--- a/source/components/disassembler/dmresrcs.c
++++ b/source/components/disassembler/dmresrcs.c
+@@ -201,7 +201,7 @@ AcpiDmIrqDescriptor (
AcpiOsPrintf (")\n");
AcpiDmIndent (Level + 1);
@@ -2496,7 +2837,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
}
-@@ -161,8 +161,8 @@ AcpiDmFixedDmaDescriptor (
+@@ -269,8 +269,8 @@ AcpiDmFixedDmaDescriptor (
AcpiDmIndent (Level);
AcpiOsPrintf ("FixedDMA (0x%4.4X, 0x%4.4X, ",
@@ -2507,7 +2848,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
if (Resource->FixedDma.Width <= 5)
{
-@@ -210,10 +210,12 @@ AcpiDmIoDescriptor (
+@@ -318,10 +318,12 @@ AcpiDmIoDescriptor (
AcpiGbl_IoDecode [ACPI_GET_1BIT_FLAG (Resource->Io.Flags)]);
AcpiDmIndent (Level + 1);
@@ -2522,7 +2863,7 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
AcpiDmIndent (Level + 1);
AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment");
-@@ -256,10 +258,12 @@ AcpiDmFixedIoDescriptor (
+@@ -364,10 +366,12 @@ AcpiDmFixedIoDescriptor (
AcpiOsPrintf ("FixedIO (\n");
AcpiDmIndent (Level + 1);
@@ -2537,11 +2878,24 @@ Index: acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
/* Insert a descriptor name */
-Index: acpica-unix2-20200925/source/components/dispatcher/dsfield.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/dispatcher/dsfield.c
-+++ acpica-unix2-20200925/source/components/dispatcher/dsfield.c
-@@ -336,6 +336,8 @@ AcpiDsGetFieldNames (
+diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c
+index 76ef0aacb..069c11fbb 100644
+--- a/source/components/disassembler/dmwalk.c
++++ b/source/components/disassembler/dmwalk.c
+@@ -1263,7 +1263,7 @@ AcpiDmAscendingOp (
+ {
+ ParentOp->Common.DisasmFlags |= ACPI_PARSEOP_EMPTY_TERMLIST;
+ ASL_CV_CLOSE_PAREN (Op, Level);
+- AcpiOsPrintf ("{");
++ AcpiOsPrintf (" {");
+ }
+ }
+
+diff --git a/source/components/dispatcher/dsfield.c b/source/components/dispatcher/dsfield.c
+index f41990780..937c1e9f5 100644
+--- a/source/components/dispatcher/dsfield.c
++++ b/source/components/dispatcher/dsfield.c
+@@ -444,6 +444,8 @@ AcpiDsGetFieldNames (
char *NamePath;
#endif
@@ -2550,7 +2904,7 @@ Index: acpica-unix2-20200925/source/components/dispatcher/dsfield.c
ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info);
-@@ -442,14 +444,17 @@ AcpiDsGetFieldNames (
+@@ -550,14 +552,17 @@ AcpiDsGetFieldNames (
/* Lookup the name, it should already exist */
@@ -2570,7 +2924,7 @@ Index: acpica-unix2-20200925/source/components/dispatcher/dsfield.c
return_ACPI_STATUS (Status);
}
else
-@@ -703,8 +708,13 @@ AcpiDsInitFieldObjects (
+@@ -811,8 +816,13 @@ AcpiDsInitFieldObjects (
*/
if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
{
@@ -2585,11 +2939,11 @@ Index: acpica-unix2-20200925/source/components/dispatcher/dsfield.c
Flags, WalkState, &Node);
if (ACPI_FAILURE (Status))
{
-Index: acpica-unix2-20200925/source/components/namespace/nsaccess.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/namespace/nsaccess.c
-+++ acpica-unix2-20200925/source/components/namespace/nsaccess.c
-@@ -645,7 +645,7 @@ AcpiNsLookup (
+diff --git a/source/components/namespace/nsaccess.c b/source/components/namespace/nsaccess.c
+index f9227ee4d..55e768698 100644
+--- a/source/components/namespace/nsaccess.c
++++ b/source/components/namespace/nsaccess.c
+@@ -753,7 +753,7 @@ AcpiNsLookup (
/* Extract one ACPI name from the front of the pathname */
@@ -2598,11 +2952,11 @@ Index: acpica-unix2-20200925/source/components/namespace/nsaccess.c
/* Try to find the single (4 character) ACPI name */
-Index: acpica-unix2-20200925/source/components/namespace/nsnames.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/namespace/nsnames.c
-+++ acpica-unix2-20200925/source/components/namespace/nsnames.c
-@@ -300,7 +300,7 @@ AcpiNsBuildNormalizedPath (
+diff --git a/source/components/namespace/nsnames.c b/source/components/namespace/nsnames.c
+index a27a87f02..16202ce32 100644
+--- a/source/components/namespace/nsnames.c
++++ b/source/components/namespace/nsnames.c
+@@ -408,7 +408,7 @@ AcpiNsBuildNormalizedPath (
ACPI_PATH_PUT8(FullPath, PathSize, AML_DUAL_NAME_PREFIX, Length);
}
@@ -2611,11 +2965,11 @@ Index: acpica-unix2-20200925/source/components/namespace/nsnames.c
DoNoTrailing = NoTrailing;
for (i = 0; i < 4; i++)
{
-Index: acpica-unix2-20200925/source/components/namespace/nsparse.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/namespace/nsparse.c
-+++ acpica-unix2-20200925/source/components/namespace/nsparse.c
-@@ -203,6 +203,7 @@ AcpiNsOneCompleteParse (
+diff --git a/source/components/namespace/nsparse.c b/source/components/namespace/nsparse.c
+index f10db0e4d..a5cb221aa 100644
+--- a/source/components/namespace/nsparse.c
++++ b/source/components/namespace/nsparse.c
+@@ -311,6 +311,7 @@ AcpiNsOneCompleteParse (
ACPI_WALK_STATE *WalkState;
ACPI_TABLE_HEADER *Table;
ACPI_OWNER_ID OwnerId;
@@ -2623,7 +2977,7 @@ Index: acpica-unix2-20200925/source/components/namespace/nsparse.c
ACPI_FUNCTION_TRACE (NsOneCompleteParse);
-@@ -216,13 +217,14 @@ AcpiNsOneCompleteParse (
+@@ -324,13 +325,14 @@ AcpiNsOneCompleteParse (
/* Table must consist of at least a complete header */
@@ -2640,11 +2994,11 @@ Index: acpica-unix2-20200925/source/components/namespace/nsparse.c
Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
if (ACPI_FAILURE (Status))
-Index: acpica-unix2-20200925/source/components/namespace/nsutils.c
-===================================================================
---- acpica-unix2-20200925.orig/source/components/namespace/nsutils.c
-+++ acpica-unix2-20200925/source/components/namespace/nsutils.c
-@@ -272,7 +272,6 @@ AcpiNsBuildInternalName (
+diff --git a/source/components/namespace/nsutils.c b/source/components/namespace/nsutils.c
+index a74dd1299..6df0d087d 100644
+--- a/source/components/namespace/nsutils.c
++++ b/source/components/namespace/nsutils.c
+@@ -380,7 +380,6 @@ AcpiNsBuildInternalName (
const char *ExternalName = Info->NextExternalChar;
char *Result = NULL;
UINT32 i;
@@ -2652,7 +3006,7 @@ Index: acpica-unix2-20200925/source/components/namespace/nsutils.c
ACPI_FUNCTION_TRACE (NsBuildInternalName);
-@@ -336,7 +335,6 @@ AcpiNsBuildInternalName (
+@@ -444,7 +443,6 @@ AcpiNsBuildInternalName (
for (; NumSegments; NumSegments--)
{
@@ -2660,7 +3014,7 @@ Index: acpica-unix2-20200925/source/components/namespace/nsutils.c
for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
{
if (ACPI_IS_PATH_SEPARATOR (*ExternalName) ||
-@@ -344,17 +342,16 @@ AcpiNsBuildInternalName (
+@@ -452,17 +450,16 @@ AcpiNsBuildInternalName (
{
/* Pad the segment with underscore(s) if segment is short */
@@ -2680,3 +3034,6 @@ Index: acpica-unix2-20200925/source/components/namespace/nsutils.c
/* Now we must have a path separator, or the pathname is bad */
+--
+2.26.2
+
diff --git a/0041-Support-MTMR-in-a-big-endian-world.patch b/0041-Support-MTMR-in-a-big-endian-world.patch
index dc4ad0b..afb4976 100644
--- a/0041-Support-MTMR-in-a-big-endian-world.patch
+++ b/0041-Support-MTMR-in-a-big-endian-world.patch
@@ -1,7 +1,7 @@
-From 902266037614bc0b3ff31c1dfeb350c80e517d90 Mon Sep 17 00:00:00 2001
+From 62c6c5b94772b7f8f5de6136a2ba61e31d0c7b3c Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3(a)redhat.com>
Date: Fri, 16 Oct 2020 20:52:43 -0400
-Subject: [PATCH 1/4] Support MTMR in a big-endian world
+Subject: [PATCH 3/5] Support MTMR in a big-endian world
Signed-off-by: Al Stone <ahs3(a)redhat.com>
---
@@ -42,5 +42,5 @@ index 285fd30d7..7450ca3f7 100644
if (ACPI_FAILURE (Status))
{
--
-2.28.0
+2.26.2
diff --git a/0042-Support-VRTC-in-a-big-endian-world.patch b/0042-Support-VRTC-in-a-big-endian-world.patch
index 24e50c2..6bd6d62 100644
--- a/0042-Support-VRTC-in-a-big-endian-world.patch
+++ b/0042-Support-VRTC-in-a-big-endian-world.patch
@@ -1,7 +1,7 @@
-From b8d25df79205c128057dba4112b34a7b714a7c43 Mon Sep 17 00:00:00 2001
+From 19eefeadf92a471f1c4fbc6dd4d035e45fa76dcd Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3(a)redhat.com>
Date: Mon, 19 Oct 2020 17:17:40 -0400
-Subject: [PATCH 2/4] Support VRTC in a big-endian world
+Subject: [PATCH 4/5] Support VRTC in a big-endian world
---
source/common/dmtbdump3.c | 7 ++++---
@@ -41,5 +41,5 @@ index da9b81c92..db2f54ffb 100644
if (ACPI_FAILURE (Status))
{
--
-2.28.0
+2.26.2
diff --git a/0043-Support-S3PT-in-a-big-endian-world.patch b/0043-Support-S3PT-in-a-big-endian-world.patch
index bf1be6f..3e41bfe 100644
--- a/0043-Support-S3PT-in-a-big-endian-world.patch
+++ b/0043-Support-S3PT-in-a-big-endian-world.patch
@@ -1,7 +1,7 @@
-From 1652084e864a8048b44486548d9df40eb64cd8de Mon Sep 17 00:00:00 2001
+From 5805d42c0cec5366daa12e0f4caed7a58b13fe5b Mon Sep 17 00:00:00 2001
From: Al Stone <ahs3(a)redhat.com>
Date: Mon, 19 Oct 2020 17:30:30 -0400
-Subject: [PATCH 3/4] Support S3PT in a big-endian world
+Subject: [PATCH 5/5] Support S3PT in a big-endian world
---
source/common/dmtbdump2.c | 15 +++++++++------
@@ -95,5 +95,5 @@ index 48729b48f..1ac063795 100644
case ACPI_S3PT_TYPE_RESUME:
--
-2.28.0
+2.26.2
commit 249abc074a65613c3303687151979a4b4065dd1f
Author: Al Stone <ahs3(a)redhat.com>
Date: Fri Oct 23 13:04:26 2020 -0600
Add big-endian support for three additional tables: MTMR, VRTC and S3PT
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/0041-Support-MTMR-in-a-big-endian-world.patch b/0041-Support-MTMR-in-a-big-endian-world.patch
new file mode 100644
index 0000000..dc4ad0b
--- /dev/null
+++ b/0041-Support-MTMR-in-a-big-endian-world.patch
@@ -0,0 +1,46 @@
+From 902266037614bc0b3ff31c1dfeb350c80e517d90 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 16 Oct 2020 20:52:43 -0400
+Subject: [PATCH 1/4] Support MTMR in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c
+index 285fd30d7..7450ca3f7 100644
+--- a/source/common/dmtbdump2.c
++++ b/source/common/dmtbdump2.c
+@@ -1156,11 +1156,12 @@ AcpiDmDumpMtmr (
+ ACPI_STATUS Status;
+ UINT32 Offset = sizeof (ACPI_TABLE_MTMR);
+ ACPI_MTMR_ENTRY *Subtable;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMtmr);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoMtmr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1169,12 +1170,12 @@ AcpiDmDumpMtmr (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_MTMR_ENTRY, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ sizeof (ACPI_MTMR_ENTRY), AcpiDmTableInfoMtmr0);
+ if (ACPI_FAILURE (Status))
+ {
+--
+2.28.0
+
diff --git a/0042-Support-VRTC-in-a-big-endian-world.patch b/0042-Support-VRTC-in-a-big-endian-world.patch
new file mode 100644
index 0000000..24e50c2
--- /dev/null
+++ b/0042-Support-VRTC-in-a-big-endian-world.patch
@@ -0,0 +1,45 @@
+From b8d25df79205c128057dba4112b34a7b714a7c43 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Mon, 19 Oct 2020 17:17:40 -0400
+Subject: [PATCH 2/4] Support VRTC in a big-endian world
+
+---
+ source/common/dmtbdump3.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/source/common/dmtbdump3.c b/source/common/dmtbdump3.c
+index da9b81c92..db2f54ffb 100644
+--- a/source/common/dmtbdump3.c
++++ b/source/common/dmtbdump3.c
+@@ -629,11 +629,12 @@ AcpiDmDumpVrtc (
+ ACPI_STATUS Status;
+ UINT32 Offset = sizeof (ACPI_TABLE_VRTC);
+ ACPI_VRTC_ENTRY *Subtable;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoVrtc);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoVrtc);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -642,12 +643,12 @@ AcpiDmDumpVrtc (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_VRTC_ENTRY, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ sizeof (ACPI_VRTC_ENTRY), AcpiDmTableInfoVrtc0);
+ if (ACPI_FAILURE (Status))
+ {
+--
+2.28.0
+
diff --git a/0043-Support-S3PT-in-a-big-endian-world.patch b/0043-Support-S3PT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..bf1be6f
--- /dev/null
+++ b/0043-Support-S3PT-in-a-big-endian-world.patch
@@ -0,0 +1,99 @@
+From 1652084e864a8048b44486548d9df40eb64cd8de Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Mon, 19 Oct 2020 17:30:30 -0400
+Subject: [PATCH 3/4] Support S3PT in a big-endian world
+
+---
+ source/common/dmtbdump2.c | 15 +++++++++------
+ source/compiler/dttable2.c | 4 +++-
+ 2 files changed, 12 insertions(+), 7 deletions(-)
+
+diff --git a/source/common/dmtbdump2.c b/source/common/dmtbdump2.c
+index 7450ca3f7..ada564cd5 100644
+--- a/source/common/dmtbdump2.c
++++ b/source/common/dmtbdump2.c
+@@ -1917,6 +1917,8 @@ AcpiDmDumpS3pt (
+ ACPI_FPDT_HEADER *Subtable;
+ ACPI_DMTABLE_INFO *InfoTable;
+ ACPI_TABLE_S3PT *S3ptTable = ACPI_CAST_PTR (ACPI_TABLE_S3PT, Tables);
++ UINT32 S3ptTableLength = AcpiUtReadUint32(&S3ptTable->Length);
++ UINT16 SubtableType;
+
+
+ /* Main table */
+@@ -1928,19 +1930,20 @@ AcpiDmDumpS3pt (
+ }
+
+ Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, S3ptTable, Offset);
+- while (Offset < S3ptTable->Length)
++ while (Offset < S3ptTableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (S3ptTableLength, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoS3ptHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return 0;
+ }
+
+- switch (Subtable->Type)
++ SubtableType = AcpiUtReadUint16(&Subtable->Type);
++ switch (SubtableType)
+ {
+ case ACPI_S3PT_TYPE_RESUME:
+
+@@ -1955,7 +1958,7 @@ AcpiDmDumpS3pt (
+ default:
+
+ AcpiOsPrintf ("\n**** Unknown S3PT subtable type 0x%X\n",
+- Subtable->Type);
++ SubtableType);
+
+ /* Attempt to continue */
+
+@@ -1968,7 +1971,7 @@ AcpiDmDumpS3pt (
+ }
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (S3ptTable->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (S3ptTableLength, Offset, Subtable,
+ Subtable->Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -1982,7 +1985,7 @@ NextSubtable:
+ Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, Subtable, Subtable->Length);
+ }
+
+- return (S3ptTable->Length);
++ return (S3ptTableLength);
+ }
+
+
+diff --git a/source/compiler/dttable2.c b/source/compiler/dttable2.c
+index 48729b48f..1ac063795 100644
+--- a/source/compiler/dttable2.c
++++ b/source/compiler/dttable2.c
+@@ -1296,6 +1296,7 @@ DtCompileS3pt (
+ DT_SUBTABLE *ParentTable;
+ ACPI_DMTABLE_INFO *InfoTable;
+ DT_FIELD *SubtableStart;
++ UINT16 S3ptHeaderType;
+
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt,
+@@ -1323,7 +1324,8 @@ DtCompileS3pt (
+
+ S3ptHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer);
+
+- switch (S3ptHeader->Type)
++ S3ptHeaderType = AcpiUtReadUint16(&S3ptHeader->Type);
++ switch (S3ptHeaderType)
+ {
+ case ACPI_S3PT_TYPE_RESUME:
+
+--
+2.28.0
+
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 2a6d3e5..5409cda 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -64,6 +64,9 @@ Patch36: 0037-Support-IVRS-in-a-big-endian-world.patch
Patch37: 0038-Support-TPM2-in-a-big-endian-world.patch
Patch38: 0039-Add-partial-big-endian-support-for-WPBT-tables.patch
Patch39: 0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
+Patch40: 0041-Support-MTMR-in-a-big-endian-world.patch
+Patch41: 0042-Support-VRTC-in-a-big-endian-world.patch
+Patch42: 0043-Support-S3PT-in-a-big-endian-world.patch
# other miscellaneous patches
Patch100: unaligned.patch
@@ -172,6 +175,9 @@ gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
%patch37 -p1
%patch38 -p1
%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
# apply the remaining patches
%patch100 -p1
commit 17d826f180de62ba31303b919cf69d5f411692e9
Author: Al Stone <ahs3(a)redhat.com>
Date: Mon Oct 19 12:38:41 2020 -0600
Minor fix to spec file
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 7123e29..2a6d3e5 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -82,9 +82,7 @@ Patch112: ptr-cast.patch
Patch113: facp.patch
Patch114: armv7-str-fixes.patch
Patch115: dbtest.patch
-%ifarch i686 armv7hl
Patch116: ull-32bit.patch
-%endif
BuildRequires: bison patchutils flex gcc
commit edb6c78416617cb61568d79ba861ba6d367c653a
Author: Al Stone <ahs3(a)redhat.com>
Date: Mon Oct 19 12:24:09 2020 -0600
Update to upstream 20200925 version
This update also means a major update for all of the big-endian patching
that has been done. The older mechanism was getting to unwieldy to keep
maintained, and too sensitive to upstream changes. Hence, redid all of
the old patches, and took the opportunity to make them more amenable to
change over time. Ultimately, the goal is to have upstream accept these
in some form.
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/0001-Add-in-basic-infrastructure-for-big-endian-support.patch b/0001-Add-in-basic-infrastructure-for-big-endian-support.patch
new file mode 100644
index 0000000..abd9298
--- /dev/null
+++ b/0001-Add-in-basic-infrastructure-for-big-endian-support.patch
@@ -0,0 +1,372 @@
+From bb45113bc9aed952a499cd1c53988dc81f597582 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Thu, 15 Oct 2020 11:53:33 -0600
+Subject: [PATCH 01/40] Add in basic infrastructure for big-endian support
+
+This adds in some basic functions -- AcpiUtReadUint32(), for example,
+to read a UINT32 value in little-endian form and return it in host-native
+format -- along with AcpiUtWriteUint() that writes out an integer in
+host-native format as a little-endian value.
+
+But, to do that, I'm adding the functions in a new file: utendian.c. So,
+the header files need fixing, and the makefiles need to be sure to compile
+the new code.
+
+However, this sets things up for the future, where endian-aware code can
+be added as the need is uncovered. For now, these functions cover all of
+the cases I know about.
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ generate/unix/acpibin/Makefile | 1 +
+ generate/unix/acpidump/Makefile | 1 +
+ generate/unix/acpiexamples/Makefile | 1 +
+ generate/unix/acpiexec/Makefile | 1 +
+ generate/unix/acpihelp/Makefile | 1 +
+ generate/unix/iasl/Makefile | 1 +
+ source/components/utilities/utendian.c | 205 +++++++++++++++++++++++++
+ source/include/acutils.h | 26 ++++
+ source/include/platform/aclinux.h | 5 +
+ 9 files changed, 242 insertions(+)
+ create mode 100644 source/components/utilities/utendian.c
+
+Index: acpica-unix2-20200925/generate/unix/acpibin/Makefile
+===================================================================
+--- acpica-unix2-20200925.orig/generate/unix/acpibin/Makefile
++++ acpica-unix2-20200925/generate/unix/acpibin/Makefile
+@@ -37,6 +37,7 @@ OBJECTS = \
+ $(OBJDIR)/utcache.o\
+ $(OBJDIR)/utdebug.o\
+ $(OBJDIR)/utdecode.o\
++ $(OBJDIR)/utendian.o\
+ $(OBJDIR)/utexcep.o\
+ $(OBJDIR)/utglobal.o\
+ $(OBJDIR)/utlock.o\
+Index: acpica-unix2-20200925/generate/unix/acpidump/Makefile
+===================================================================
+--- acpica-unix2-20200925.orig/generate/unix/acpidump/Makefile
++++ acpica-unix2-20200925/generate/unix/acpidump/Makefile
+@@ -36,6 +36,7 @@ OBJECTS = \
+ $(OBJDIR)/osunixdir.o\
+ $(OBJDIR)/osunixmap.o\
+ $(OBJDIR)/osunixxf.o\
++ $(OBJDIR)/utendian.o\
+ $(OBJDIR)/tbprint.o\
+ $(OBJDIR)/tbxfroot.o\
+ $(OBJDIR)/utascii.o\
+Index: acpica-unix2-20200925/generate/unix/acpiexamples/Makefile
+===================================================================
+--- acpica-unix2-20200925.orig/generate/unix/acpiexamples/Makefile
++++ acpica-unix2-20200925/generate/unix/acpiexamples/Makefile
+@@ -139,6 +139,7 @@ OBJECTS = \
+ $(OBJDIR)/utdebug.o\
+ $(OBJDIR)/utdecode.o\
+ $(OBJDIR)/utdelete.o\
++ $(OBJDIR)/utendian.o\
+ $(OBJDIR)/uterror.o\
+ $(OBJDIR)/uteval.o\
+ $(OBJDIR)/utexcep.o\
+Index: acpica-unix2-20200925/generate/unix/acpiexec/Makefile
+===================================================================
+--- acpica-unix2-20200925.orig/generate/unix/acpiexec/Makefile
++++ acpica-unix2-20200925/generate/unix/acpiexec/Makefile
+@@ -214,6 +214,7 @@ OBJECTS = \
+ $(OBJDIR)/utdebug.o\
+ $(OBJDIR)/utdecode.o\
+ $(OBJDIR)/utdelete.o\
++ $(OBJDIR)/utendian.o\
+ $(OBJDIR)/uterror.o\
+ $(OBJDIR)/uteval.o\
+ $(OBJDIR)/utexcep.o\
+Index: acpica-unix2-20200925/generate/unix/acpihelp/Makefile
+===================================================================
+--- acpica-unix2-20200925.orig/generate/unix/acpihelp/Makefile
++++ acpica-unix2-20200925/generate/unix/acpihelp/Makefile
+@@ -43,6 +43,7 @@ OBJECTS = \
+ $(OBJDIR)/getopt.o\
+ $(OBJDIR)/osunixxf.o\
+ $(OBJDIR)/utdebug.o\
++ $(OBJDIR)/utendian.o\
+ $(OBJDIR)/utexcep.o\
+ $(OBJDIR)/utglobal.o\
+ $(OBJDIR)/uthex.o\
+Index: acpica-unix2-20200925/generate/unix/iasl/Makefile
+===================================================================
+--- acpica-unix2-20200925.orig/generate/unix/iasl/Makefile
++++ acpica-unix2-20200925/generate/unix/iasl/Makefile
+@@ -225,6 +225,7 @@ OBJECTS = \
+ $(OBJDIR)/utdebug.o\
+ $(OBJDIR)/utdecode.o\
+ $(OBJDIR)/utdelete.o\
++ $(OBJDIR)/utendian.o\
+ $(OBJDIR)/uterror.o\
+ $(OBJDIR)/utexcep.o\
+ $(OBJDIR)/utglobal.o\
+Index: acpica-unix2-20200925/source/components/utilities/utendian.c
+===================================================================
+--- /dev/null
++++ acpica-unix2-20200925/source/components/utilities/utendian.c
+@@ -0,0 +1,205 @@
++/******************************************************************************
++ *
++ * Module Name: utendian -- byte swapping support for other-endianness
++ *
++ *****************************************************************************/
++
++/*****************************************************************************
++ *
++ * Copyright (c) 2020, Al Stone <ahs3(a)redhat.com>
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions, and the following disclaimer,
++ * without modification.
++ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
++ * substantially similar to the "NO WARRANTY" disclaimer below
++ * ("Disclaimer") and any redistribution must be conditioned upon
++ * including a substantially similar Disclaimer requirement for further
++ * binary redistribution.
++ * 3. Neither the names of the above-listed copyright holders nor the names
++ * of any contributors may be used to endorse or promote products derived
++ * from this software without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Alternatively, you may choose to be licensed under the terms of the
++ * GNU General Public License ("GPL") version 2 as published by the Free
++ * Software Foundation.
++ *
++ *****************************************************************************/
++
++#include "acpi.h"
++#include "accommon.h"
++
++#define _COMPONENT ACPI_COMPILER
++ ACPI_MODULE_NAME ("utendian")
++
++
++/*
++ * Endianness support functions.
++ *
++ * Ultimately, everything in ACPI tables or AML must be in little-endian
++ * format. However, we sometimes find it necessary to run on a big-endian
++ * machine and create or read those little-endian values. This is a small
++ * libary of functions to make that easier, and more visible.
++ *
++ */
++
++
++/*******************************************************************************
++ *
++ * FUNCTION: AcpiUtReadUint16
++ *
++ * PARAMETERS: Src - location containing the little-endian
++ * value
++ *
++ * RETURN: UINT16 value in host-native form
++ *
++ * DESCRIPTION: Read a UINT16 little-endian value from a given location
++ * and return it in host-native form
++ *
++ ******************************************************************************/
++
++#if defined(ACPI_BIG_ENDIAN)
++UINT16 AcpiUtReadUint16 (void *SrcPtr)
++{
++ UINT16 Result = 0;
++ UINT8 *Dst = (UINT8 *)&Result;
++ UINT8 *Src = (UINT8 *)SrcPtr;
++
++ Dst[0] = Src[1];
++ Dst[1] = Src[0];
++
++ return Result;
++}
++#else
++UINT16 AcpiUtReadUint16 (void *SrcPtr) { return *(UINT16 *)SrcPtr; }
++#endif
++
++/*******************************************************************************
++ *
++ * FUNCTION: AcpiUtReadUint32
++ *
++ * PARAMETERS: Src - location containing the little-endian
++ * value
++ *
++ * RETURN: UINT32 value in host-native form
++ *
++ * DESCRIPTION: Read a UINT32 little-endian value from a given location
++ * and return it in host-native form
++ *
++ ******************************************************************************/
++
++#if defined(ACPI_BIG_ENDIAN)
++UINT32 AcpiUtReadUint32 (void *SrcPtr)
++{
++ UINT32 Result = 0;
++ UINT8 *Dst = (UINT8 *)&Result;
++ UINT8 *Src = (UINT8 *)SrcPtr;
++
++ Dst[0] = Src[3];
++ Dst[1] = Src[2];
++ Dst[2] = Src[1];
++ Dst[3] = Src[0];
++
++ return Result;
++}
++#else
++UINT32 AcpiUtReadUint32 (void *SrcPtr) { return *(UINT32 *)SrcPtr; }
++#endif
++
++/*******************************************************************************
++ *
++ * FUNCTION: AcpiUtReadUint64
++ *
++ * PARAMETERS: Src - location containing the little-endian
++ * value
++ *
++ * RETURN: UINT64 value in host-native form
++ *
++ * DESCRIPTION: Read a UINT64 little-endian value from a given location
++ * and return it in host-native form
++ *
++ ******************************************************************************/
++
++#if defined(ACPI_BIG_ENDIAN)
++UINT64 AcpiUtReadUint64 (void *SrcPtr)
++{
++ UINT64 Result = 0;
++ UINT8 *Dst = (UINT8 *)&Result;
++ UINT8 *Src = (UINT8 *)SrcPtr;
++
++ Dst[0] = Src[7];
++ Dst[1] = Src[6];
++ Dst[2] = Src[5];
++ Dst[3] = Src[4];
++ Dst[4] = Src[3];
++ Dst[5] = Src[2];
++ Dst[6] = Src[1];
++ Dst[7] = Src[0];
++
++ return Result;
++}
++#else
++UINT64 AcpiUtReadUint64 (void *SrcPtr) { return *(UINT64 *)SrcPtr; }
++#endif
++
++/*******************************************************************************
++ *
++ * FUNCTION: AcpiUtWriteUint
++ *
++ * PARAMETERS: DstPtr - where to place the retrieved value
++ * DstLength - space in bytes for this int type
++ * SrcPtr - where the little-endian value lives
++ * SrcLength - space in bytes for this int type
++ *
++ * RETURN: None.
++ *
++ * DESCRIPTION: Write a host-native integer value of the given size, and
++ * store it in the location specified in little-endian form.
++ * Given the amount of integer type casting done, this general
++ * version seems the most useful (vs 32->32, 32->16, 16->32,
++ * ad infinitum)
++ *
++ ******************************************************************************/
++
++#if defined(ACPI_BIG_ENDIAN)
++void AcpiUtWriteUint (void *DstPtr, int DstLength,
++ const void *SrcPtr, const int SrcLength)
++{
++ UINT8 *Dst = (UINT8 *)DstPtr;
++ UINT8 *Src = (UINT8 *)SrcPtr;
++ int Length;
++ int ii;
++
++ Length = SrcLength >= DstLength ? DstLength : SrcLength;
++ for (ii = 0; ii < Length; ii++)
++ Dst[ii] = Src[SrcLength - ii - 1];
++
++}
++#else
++void AcpiUtWriteUint (void *DstPtr, int DstLength,
++ const void *SrcPtr, const int SrcLength)
++{
++ UINT8 *Dst = (UINT8 *)DstPtr;
++ UINT8 *Src = (UINT8 *)SrcPtr;
++ uint Length;
++
++ Length = SrcLength > DstLength ? DstLength : SrcLength;
++ memcpy(Dst, Src, Length);
++}
++#endif
++
+Index: acpica-unix2-20200925/source/include/acutils.h
+===================================================================
+--- acpica-unix2-20200925.orig/source/include/acutils.h
++++ acpica-unix2-20200925/source/include/acutils.h
+@@ -1161,4 +1161,30 @@ AcpiUtConvertStringToUuid (
+ UINT8 *UuidBuffer);
+ #endif
+
++/*
++ * utendian -- byte-swapping for big-endian support
++ */
++#if defined(ACPI_ASL_COMPILER) || defined(ACPI_EXEC_APP) || \
++ defined(ACPI_HELP_APP) || defined(ACPI_DUMP_APP) || \
++ defined(ACPI_EXAMPLE_APP) || defined(ACPI_BIN_APP)
++UINT32
++AcpiUtReadUint32 (
++ void *SrcPtr);
++
++UINT16
++AcpiUtReadUint16 (
++ void *SrcPtr);
++
++UINT64
++AcpiUtReadUint64 (
++ void *SrcPtr);
++
++void
++AcpiUtWriteUint (
++ void *DstPtr,
++ int DstLength,
++ const void *SrcPtr,
++ const int SrcLength);
++#endif
++
+ #endif /* _ACUTILS_H */
+Index: acpica-unix2-20200925/source/include/platform/aclinux.h
+===================================================================
+--- acpica-unix2-20200925.orig/source/include/platform/aclinux.h
++++ acpica-unix2-20200925/source/include/platform/aclinux.h
+@@ -198,6 +198,7 @@
+
+ #ifdef ACPI_USE_STANDARD_HEADERS
+ #include <unistd.h>
++#include <endian.h>
+ #endif
+
+ /* Define/disable kernel-specific declarators */
+@@ -233,6 +234,10 @@
+ #define __cdecl
+ #endif
+
++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
++#define ACPI_BIG_ENDIAN
++#endif
++
+ #endif /* __KERNEL__ */
+
+ #endif /* __ACLINUX_H__ */
diff --git a/0002-Modify-utility-functions-to-be-endian-agnostic.patch b/0002-Modify-utility-functions-to-be-endian-agnostic.patch
new file mode 100644
index 0000000..4b99375
--- /dev/null
+++ b/0002-Modify-utility-functions-to-be-endian-agnostic.patch
@@ -0,0 +1,200 @@
+From d0c879747147c24c47bae363359127d62cd0cae1 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 18 Sep 2020 15:14:30 -0600
+Subject: [PATCH 02/40] Modify utility functions to be endian-agnostic
+
+All of the modifications here use the big-endian code previously added
+(see utendian.c) to make themselves endian-agnostic; i.e., that the code
+does not need to change further to work on both big- and little-endian
+machines.
+
+These particular files were changed to handle the reading and writing
+of files (the length is often embedded in the binary stream), and to
+handle the reading and writing of integer values. The common cases are
+to "read" a 32-bit unsigned int in little-endian format, but convert it
+to host-native, and to write a byte, word, double word or quad word value
+as little-endian, regardless of host-native format.
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/acfileio.c | 16 ++++++++++------
+ source/common/dmtable.c | 8 ++++----
+ source/compiler/dtfield.c | 2 +-
+ source/compiler/dtsubtable.c | 4 ++--
+ source/components/tables/tbprint.c | 13 +++++++++----
+ 5 files changed, 26 insertions(+), 17 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/acfileio.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/acfileio.c
++++ acpica-unix2-20200925/source/common/acfileio.c
+@@ -280,6 +280,7 @@ AcGetOneTableFromFile (
+ ACPI_TABLE_HEADER *Table;
+ INT32 Count;
+ long TableOffset;
++ UINT32 Length;
+
+
+ *ReturnTable = NULL;
+@@ -319,7 +320,8 @@ AcGetOneTableFromFile (
+
+ /* Allocate a buffer for the entire table */
+
+- Table = AcpiOsAllocate ((ACPI_SIZE) TableHeader.Length);
++ Length = AcpiUtReadUint32(&TableHeader.Length);
++ Table = AcpiOsAllocate ((ACPI_SIZE) Length);
+ if (!Table)
+ {
+ return (AE_NO_MEMORY);
+@@ -329,13 +331,13 @@ AcGetOneTableFromFile (
+
+ fseek (File, TableOffset, SEEK_SET);
+
+- Count = fread (Table, 1, TableHeader.Length, File);
++ Count = fread (Table, 1, Length, File);
+
+ /*
+ * Checks for data table headers happen later in the execution. Only verify
+ * for Aml tables at this point in the code.
+ */
+- if (GetOnlyAmlTables && Count != (INT32) TableHeader.Length)
++ if (GetOnlyAmlTables && Count != (INT32) Length)
+ {
+ Status = AE_ERROR;
+ goto ErrorExit;
+@@ -343,7 +345,7 @@ AcGetOneTableFromFile (
+
+ /* Validate the checksum (just issue a warning) */
+
+- Status = AcpiTbVerifyChecksum (Table, TableHeader.Length);
++ Status = AcpiTbVerifyChecksum (Table, Length);
+ if (ACPI_FAILURE (Status))
+ {
+ Status = AcCheckTextModeCorruption (Table);
+@@ -436,6 +438,7 @@ AcValidateTableHeader (
+ long OriginalOffset;
+ UINT32 FileSize;
+ UINT32 i;
++ UINT32 Length;
+
+
+ ACPI_FUNCTION_TRACE (AcValidateTableHeader);
+@@ -464,11 +467,12 @@ AcValidateTableHeader (
+ /* Validate table length against bytes remaining in the file */
+
+ FileSize = CmGetFileSize (File);
+- if (TableHeader.Length > (UINT32) (FileSize - TableOffset))
++ Length = AcpiUtReadUint32(&TableHeader.Length);
++ if (Length > (UINT32) (FileSize - TableOffset))
+ {
+ fprintf (stderr, "Table [%4.4s] is too long for file - "
+ "needs: 0x%.2X, remaining in file: 0x%.2X\n",
+- TableHeader.Signature, TableHeader.Length,
++ TableHeader.Signature, Length,
+ (UINT32) (FileSize - TableOffset));
+ return (AE_BAD_HEADER);
+ }
+Index: acpica-unix2-20200925/source/common/dmtable.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtable.c
++++ acpica-unix2-20200925/source/common/dmtable.c
+@@ -534,7 +534,7 @@ AcpiDmDumpDataTable (
+ {
+ /* Dump the raw table data */
+
+- Length = Table->Length;
++ Length = AcpiUtReadUint32(&Table->Length);
+
+ AcpiOsPrintf ("\n/*\n%s: Length %d (0x%X)\n\n",
+ ACPI_RAW_TABLE_DATA_HEADER, Length, Length);
+@@ -551,7 +551,7 @@ AcpiDmDumpDataTable (
+ */
+ if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS))
+ {
+- Length = Table->Length;
++ Length = AcpiUtReadUint32(&Table->Length);
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFacs);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -571,7 +571,7 @@ AcpiDmDumpDataTable (
+ /*
+ * All other tables must use the common ACPI table header, dump it now
+ */
+- Length = Table->Length;
++ Length = AcpiUtReadUint32(&Table->Length);
+ Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHeader);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -1179,7 +1179,7 @@ AcpiDmDumpTable (
+
+ AcpiOsPrintf ("%2.2X", *Target);
+ Temp8 = AcpiDmGenerateChecksum (Table,
+- ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length,
++ AcpiUtReadUint32(&(ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length)),
+ ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum);
+
+ if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum)
+Index: acpica-unix2-20200925/source/compiler/dtfield.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dtfield.c
++++ acpica-unix2-20200925/source/compiler/dtfield.c
+@@ -361,7 +361,7 @@ DtCompileInteger (
+ DtError (ASL_ERROR, ASL_MSG_INTEGER_SIZE, Field, AslGbl_MsgBuffer);
+ }
+
+- memcpy (Buffer, &Value, ByteLength);
++ AcpiUtWriteUint(Buffer, ByteLength, &Value, sizeof(UINT64));
+ return;
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dtsubtable.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dtsubtable.c
++++ acpica-unix2-20200925/source/compiler/dtsubtable.c
+@@ -378,6 +378,6 @@ DtSetSubtableLength (
+ return;
+ }
+
+- memcpy (Subtable->LengthField, &Subtable->TotalLength,
+- Subtable->SizeOfLengthField);
++ AcpiUtWriteUint(Subtable->LengthField, Subtable->SizeOfLengthField,
++ &Subtable->TotalLength, sizeof(Subtable->TotalLength));
+ }
+Index: acpica-unix2-20200925/source/components/tables/tbprint.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/tables/tbprint.c
++++ acpica-unix2-20200925/source/components/tables/tbprint.c
+@@ -44,6 +44,8 @@
+ #include "acpi.h"
+ #include "accommon.h"
+ #include "actables.h"
++#include "platform/acenv.h"
++#include "acutils.h"
+
+ #define _COMPONENT ACPI_TABLES
+ ACPI_MODULE_NAME ("tbprint")
+@@ -151,7 +153,7 @@ AcpiTbPrintTableHeader (
+
+ ACPI_INFO (("%-4.4s 0x%8.8X%8.8X %06X",
+ Header->Signature, ACPI_FORMAT_UINT64 (Address),
+- Header->Length));
++ AcpiUtReadUint32(&Header->Length)));
+ }
+ else if (ACPI_VALIDATE_RSDP_SIG (Header->Signature))
+ {
+@@ -178,9 +180,12 @@ AcpiTbPrintTableHeader (
+ "%-4.4s 0x%8.8X%8.8X"
+ " %06X (v%.2d %-6.6s %-8.8s %08X %-4.4s %08X)",
+ LocalHeader.Signature, ACPI_FORMAT_UINT64 (Address),
+- LocalHeader.Length, LocalHeader.Revision, LocalHeader.OemId,
+- LocalHeader.OemTableId, LocalHeader.OemRevision,
+- LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision));
++ AcpiUtReadUint32(&LocalHeader.Length),
++ LocalHeader.Revision, LocalHeader.OemId,
++ LocalHeader.OemTableId,
++ AcpiUtReadUint32(&LocalHeader.OemRevision),
++ LocalHeader.AslCompilerId,
++ AcpiUtReadUint32(&LocalHeader.AslCompilerRevision)));
+ }
+ }
+
diff --git a/0003-Always-display-table-header-content-in-human-readabl.patch b/0003-Always-display-table-header-content-in-human-readabl.patch
new file mode 100644
index 0000000..4ba465b
--- /dev/null
+++ b/0003-Always-display-table-header-content-in-human-readabl.patch
@@ -0,0 +1,51 @@
+From 08862d9a4be8262c045549c287adf1e6c320cbec Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 18 Sep 2020 15:20:37 -0600
+Subject: [PATCH 03/40] Always display table header content in human-readable
+ form
+
+When comparing two binary data tables, little-endian values are read
+from each table header and printed out. Make sure they show up in a
+form that makes sense to humans.
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/tools/acpibin/abcompare.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+Index: acpica-unix2-20200925/source/tools/acpibin/abcompare.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/tools/acpibin/abcompare.c
++++ acpica-unix2-20200925/source/tools/acpibin/abcompare.c
+@@ -42,6 +42,7 @@
+ */
+
+ #include "acpibin.h"
++#include "acutils.h"
+
+
+ ACPI_TABLE_HEADER Header1;
+@@ -179,14 +180,20 @@ AbPrintHeadersInfo (
+ /* Display header information for both headers */
+
+ printf ("Signature %8.4s : %4.4s\n", Header->Signature, Header2->Signature);
+- printf ("Length %8.8X : %8.8X\n", Header->Length, Header2->Length);
++ printf ("Length %8.8X : %8.8X\n",
++ AcpiUtReadUint32(&Header->Length),
++ AcpiUtReadUint32(&Header2->Length));
+ printf ("Revision %8.2X : %2.2X\n", Header->Revision, Header2->Revision);
+ printf ("Checksum %8.2X : %2.2X\n", Header->Checksum, Header2->Checksum);
+ printf ("OEM ID %8.6s : %.6s\n", Header->OemId, Header2->OemId);
+ printf ("OEM Table ID %8.8s : %.8s\n", Header->OemTableId, Header2->OemTableId);
+- printf ("OEM Revision %8.8X : %8.8X\n", Header->OemRevision, Header2->OemRevision);
++ printf ("OEM Revision %8.8X : %8.8X\n",
++ AcpiUtReadUint32(&Header->OemRevision),
++ AcpiUtReadUint32(&Header2->OemRevision));
+ printf ("ASL Compiler ID %8.4s : %.4s\n", Header->AslCompilerId, Header2->AslCompilerId);
+- printf ("Compiler Revision %8.8X : %8.8X\n", Header->AslCompilerRevision, Header2->AslCompilerRevision);
++ printf ("Compiler Revision %8.8X : %8.8X\n",
++ AcpiUtReadUint32(&Header->AslCompilerRevision),
++ AcpiUtReadUint32(&Header2->AslCompilerRevision));
+ printf ("\n");
+ }
+
diff --git a/0004-Re-enable-support-for-big-endian-machines.patch b/0004-Re-enable-support-for-big-endian-machines.patch
new file mode 100644
index 0000000..c88eee8
--- /dev/null
+++ b/0004-Re-enable-support-for-big-endian-machines.patch
@@ -0,0 +1,78 @@
+From 16c399a7e2a2c7bd8fb8f38fed202f23c3a786a9 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 16 Sep 2020 16:27:06 -0600
+Subject: [PATCH 04/40] Re-enable support for big-endian machines
+
+First, disable the big-endian check and fail. Then, make sure the
+namespace gets initialized properly (NB: needed even if we are only
+compiling/disassembling data tables).
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/compiler/aslmain.c | 12 ------------
+ source/components/namespace/nsutils.c | 7 +++++--
+ 2 files changed, 5 insertions(+), 14 deletions(-)
+
+Index: acpica-unix2-20200925/source/compiler/aslmain.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslmain.c
++++ acpica-unix2-20200925/source/compiler/aslmain.c
+@@ -101,18 +101,6 @@ main (
+
+ signal (SIGINT, AslSignalHandler);
+
+- /*
+- * Big-endian machines are not currently supported. ACPI tables must
+- * be little-endian, and support for big-endian machines needs to
+- * be implemented.
+- */
+- if (UtIsBigEndianMachine ())
+- {
+- fprintf (stderr,
+- "iASL is not currently supported on big-endian machines.\n");
+- return (-1);
+- }
+-
+ AcpiOsInitialize ();
+ ACPI_DEBUG_INITIALIZE (); /* For debug version only */
+
+Index: acpica-unix2-20200925/source/components/namespace/nsutils.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsutils.c
++++ acpica-unix2-20200925/source/components/namespace/nsutils.c
+@@ -272,6 +272,7 @@ AcpiNsBuildInternalName (
+ const char *ExternalName = Info->NextExternalChar;
+ char *Result = NULL;
+ UINT32 i;
++ char TmpSeg[ACPI_NAMESEG_SIZE+1];
+
+
+ ACPI_FUNCTION_TRACE (NsBuildInternalName);
+@@ -335,6 +336,7 @@ AcpiNsBuildInternalName (
+
+ for (; NumSegments; NumSegments--)
+ {
++ memset(TmpSeg, 0, ACPI_NAMESEG_SIZE+1);
+ for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
+ {
+ if (ACPI_IS_PATH_SEPARATOR (*ExternalName) ||
+@@ -342,16 +344,17 @@ AcpiNsBuildInternalName (
+ {
+ /* Pad the segment with underscore(s) if segment is short */
+
+- Result[i] = '_';
++ TmpSeg[i] = '_';
+ }
+ else
+ {
+ /* Convert the character to uppercase and save it */
+
+- Result[i] = (char) toupper ((int) *ExternalName);
++ TmpSeg[i] = (char) toupper ((int) *ExternalName);
+ ExternalName++;
+ }
+ }
++ AcpiUtWriteUint(Result, ACPI_NAMESEG_SIZE, TmpSeg, ACPI_NAMESEG_SIZE);
+
+ /* Now we must have a path separator, or the pathname is bad */
+
diff --git a/0005-Support-MADT-aka-APIC-in-a-big-endian-world.patch b/0005-Support-MADT-aka-APIC-in-a-big-endian-world.patch
new file mode 100644
index 0000000..cc1392b
--- /dev/null
+++ b/0005-Support-MADT-aka-APIC-in-a-big-endian-world.patch
@@ -0,0 +1,32 @@
+From f11fb1c691174eb7d236d60ad48da19e56291fef Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Thu, 15 Oct 2020 12:12:11 -0600
+Subject: [PATCH 05/40] Support MADT (aka APIC) in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -607,7 +607,7 @@ AcpiDmDumpMadt (
+ {
+ ACPI_STATUS Status;
+ ACPI_SUBTABLE_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_MADT);
+ ACPI_DMTABLE_INFO *InfoTable;
+
+@@ -623,7 +623,7 @@ AcpiDmDumpMadt (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < Length)
+ {
+ /* Common subtable header */
+
diff --git a/0006-Support-ASF-tables-in-a-big-endian-world.patch b/0006-Support-ASF-tables-in-a-big-endian-world.patch
new file mode 100644
index 0000000..194e5ca
--- /dev/null
+++ b/0006-Support-ASF-tables-in-a-big-endian-world.patch
@@ -0,0 +1,55 @@
+From 5ac8e9cca71eacd4f18dba2eb89e9b65a805f712 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 18 Sep 2020 16:41:02 -0600
+Subject: [PATCH 06/40] Support ASF! tables in a big-endian world
+
+Read the table length properly and it all works right for big-endian.
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -79,16 +79,18 @@ AcpiDmDumpAsf (
+ UINT32 DataOffset = 0;
+ UINT32 i;
+ UINT8 Type;
++ UINT32 TableLength;
+
+
+ /* No main table, only subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_ASF_INFO, Table, Offset);
+- while (Offset < Table->Length)
++ TableLength = AcpiUtReadUint32(&Table->Length);
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Header.Length, AcpiDmTableInfoAsfHdr);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -146,7 +148,7 @@ AcpiDmDumpAsf (
+ return;
+ }
+
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Header.Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -163,7 +165,7 @@ AcpiDmDumpAsf (
+ for (i = 0; i < DataCount; i++)
+ {
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, DataOffset,
++ Status = AcpiDmDumpTable (TableLength, DataOffset,
+ DataTable, DataLength, DataInfoTable);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0007-Support-CPEP-tables-in-a-big-endian-world.patch b/0007-Support-CPEP-tables-in-a-big-endian-world.patch
new file mode 100644
index 0000000..f58cf61
--- /dev/null
+++ b/0007-Support-CPEP-tables-in-a-big-endian-world.patch
@@ -0,0 +1,32 @@
+From d66af65b4cd0a2719e5a06b77f8eda5e892bfc63 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 18 Sep 2020 16:54:13 -0600
+Subject: [PATCH 07/40] Support CPEP tables in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -243,7 +243,7 @@ AcpiDmDumpCpep (
+ {
+ ACPI_STATUS Status;
+ ACPI_CPEP_POLLING *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_CPEP);
+
+
+@@ -258,7 +258,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,
diff --git a/0008-Support-DBG2-table-in-a-big-endian-world.patch b/0008-Support-DBG2-table-in-a-big-endian-world.patch
new file mode 100644
index 0000000..d0dac5e
--- /dev/null
+++ b/0008-Support-DBG2-table-in-a-big-endian-world.patch
@@ -0,0 +1,254 @@
+From 2d7396fe2b270b0bed6a6436f9e3d15cfbb9abfc Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Sat, 19 Sep 2020 13:37:38 -0600
+Subject: [PATCH 08/40] Support DBG2 table in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 35 +++++++++++++++++--------------
+ source/compiler/dttable1.c | 43 ++++++++++++++++++++++++--------------
+ 2 files changed, 46 insertions(+), 32 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -298,7 +298,7 @@ AcpiDmDumpCsrt (
+ ACPI_CSRT_GROUP *Subtable;
+ ACPI_CSRT_SHARED_INFO *SharedInfoTable;
+ ACPI_CSRT_DESCRIPTOR *SubSubtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_CSRT);
+ UINT32 SubOffset;
+ UINT32 SubSubOffset;
+@@ -310,7 +310,7 @@ AcpiDmDumpCsrt (
+ /* Subtables (Resource Groups) */
+
+ Subtable = ACPI_ADD_PTR (ACPI_CSRT_GROUP, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < Length)
+ {
+ /* Resource group subtable */
+
+@@ -344,7 +344,7 @@ AcpiDmDumpCsrt (
+ Offset + SubOffset);
+
+ while ((SubOffset < Subtable->Length) &&
+- ((Offset + SubOffset) < Table->Length))
++ ((Offset + SubOffset) < Length))
+ {
+ AcpiOsPrintf ("\n");
+ Status = AcpiDmDumpTable (Length, Offset + SubOffset, SubSubtable,
+@@ -405,12 +405,13 @@ AcpiDmDumpDbg2 (
+ {
+ ACPI_STATUS Status;
+ ACPI_DBG2_DEVICE *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_DBG2);
+ UINT32 i;
+ UINT32 ArrayOffset;
+ UINT32 AbsoluteOffset;
+ UINT8 *Array;
++ UINT16 SubtableLength;
+
+
+ /* Main table */
+@@ -424,11 +425,12 @@ AcpiDmDumpDbg2 (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < Length)
+ {
+ AcpiOsPrintf ("\n");
++ SubtableLength = AcpiUtReadUint16(&Subtable->Length);
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
+- Subtable->Length, AcpiDmTableInfoDbg2Device);
++ SubtableLength, AcpiDmTableInfoDbg2Device);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -438,13 +440,13 @@ AcpiDmDumpDbg2 (
+
+ for (i = 0; i < Subtable->RegisterCount; i++)
+ {
+- ArrayOffset = Subtable->BaseAddressOffset +
++ ArrayOffset = AcpiUtReadUint16(&Subtable->BaseAddressOffset) +
+ (sizeof (ACPI_GENERIC_ADDRESS) * i);
+ AbsoluteOffset = Offset + ArrayOffset;
+ Array = (UINT8 *) Subtable + ArrayOffset;
+
+ Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
+- Subtable->Length, AcpiDmTableInfoDbg2Addr);
++ SubtableLength, AcpiDmTableInfoDbg2Addr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -455,13 +457,13 @@ AcpiDmDumpDbg2 (
+
+ for (i = 0; i < Subtable->RegisterCount; i++)
+ {
+- ArrayOffset = Subtable->AddressSizeOffset +
++ ArrayOffset = AcpiUtReadUint16(&Subtable->AddressSizeOffset) +
+ (sizeof (UINT32) * i);
+ AbsoluteOffset = Offset + ArrayOffset;
+ Array = (UINT8 *) Subtable + ArrayOffset;
+
+ Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
+- Subtable->Length, AcpiDmTableInfoDbg2Size);
++ SubtableLength, AcpiDmTableInfoDbg2Size);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -471,12 +473,12 @@ AcpiDmDumpDbg2 (
+ /* Dump the Namestring (required) */
+
+ AcpiOsPrintf ("\n");
+- ArrayOffset = Subtable->NamepathOffset;
++ ArrayOffset = AcpiUtReadUint16(&Subtable->NamepathOffset);
+ AbsoluteOffset = Offset + ArrayOffset;
+ Array = (UINT8 *) Subtable + ArrayOffset;
+
+ Status = AcpiDmDumpTable (Length, AbsoluteOffset, Array,
+- Subtable->Length, AcpiDmTableInfoDbg2Name);
++ SubtableLength, AcpiDmTableInfoDbg2Name);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -486,8 +488,9 @@ AcpiDmDumpDbg2 (
+
+ if (Subtable->OemDataOffset)
+ {
+- Status = AcpiDmDumpTable (Length, Offset + Subtable->OemDataOffset,
+- Table, Subtable->OemDataLength,
++ Status = AcpiDmDumpTable (Length,
++ Offset + AcpiUtReadUint16(&Subtable->OemDataOffset),
++ Table, AcpiUtReadUint16(&Subtable->OemDataLength),
+ AcpiDmTableInfoDbg2OemData);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -497,9 +500,9 @@ AcpiDmDumpDbg2 (
+
+ /* Point to next subtable */
+
+- Offset += Subtable->Length;
++ Offset += SubtableLength;
+ Subtable = ACPI_ADD_PTR (ACPI_DBG2_DEVICE, Subtable,
+- Subtable->Length);
++ SubtableLength);
+ }
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -281,6 +281,7 @@ DtCompileCsrt (
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ UINT32 DescriptorCount;
+ UINT32 GroupLength;
++ UINT32 Tmp;
+
+
+ /* Subtables (Resource Groups) */
+@@ -299,12 +300,13 @@ DtCompileCsrt (
+
+ /* Compute the number of resource descriptors */
+
+- GroupLength =
+- (ACPI_CAST_PTR (ACPI_CSRT_GROUP,
+- Subtable->Buffer))->Length -
+- (ACPI_CAST_PTR (ACPI_CSRT_GROUP,
+- Subtable->Buffer))->SharedInfoLength -
+- sizeof (ACPI_CSRT_GROUP);
++ Tmp = AcpiUtReadUint32(&(ACPI_CAST_PTR (ACPI_CSRT_GROUP,
++ Subtable->Buffer))->Length);
++ GroupLength = Tmp;
++ Tmp = AcpiUtReadUint32(&(ACPI_CAST_PTR (ACPI_CSRT_GROUP,
++ Subtable->Buffer))->SharedInfoLength);
++ GroupLength -= Tmp;
++ GroupLength -= sizeof (ACPI_CSRT_GROUP);
+
+ DescriptorCount = (GroupLength /
+ sizeof (ACPI_CSRT_DESCRIPTOR));
+@@ -392,6 +394,7 @@ DtCompileDbg2 (
+ ACPI_DBG2_DEVICE *DeviceInfo;
+ UINT16 CurrentOffset;
+ UINT32 i;
++ UINT32 Tmp;
+
+
+ /* Main table */
+@@ -408,10 +411,12 @@ DtCompileDbg2 (
+ /* Main table fields */
+
+ Dbg2Header = ACPI_CAST_PTR (ACPI_DBG2_HEADER, Subtable->Buffer);
+- Dbg2Header->InfoOffset = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF (
+- ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header);
++ Tmp = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF (
++ ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header);
++ AcpiUtWriteUint(&Dbg2Header->InfoOffset, sizeof(UINT32),
++ &Tmp, sizeof(UINT32));
+
+- SubtableCount = Dbg2Header->InfoCount;
++ SubtableCount = Tmp;
+ DtPushSubtable (Subtable);
+
+ /* Process all Device Information subtables (Count = InfoCount) */
+@@ -438,7 +443,8 @@ DtCompileDbg2 (
+
+ /* BaseAddressRegister GAS array (Required, size is RegisterCount) */
+
+- DeviceInfo->BaseAddressOffset = CurrentOffset;
++ AcpiUtWriteUint(&DeviceInfo->BaseAddressOffset, sizeof(UINT16),
++ &CurrentOffset, sizeof(UINT16));
+ for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Addr,
+@@ -454,7 +460,8 @@ DtCompileDbg2 (
+
+ /* AddressSize array (Required, size = RegisterCount) */
+
+- DeviceInfo->AddressSizeOffset = CurrentOffset;
++ AcpiUtWriteUint(&DeviceInfo->AddressSizeOffset, sizeof(UINT16),
++ &CurrentOffset, sizeof(UINT16));
+ for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Size,
+@@ -470,7 +477,8 @@ DtCompileDbg2 (
+
+ /* NamespaceString device identifier (Required, size = NamePathLength) */
+
+- DeviceInfo->NamepathOffset = CurrentOffset;
++ AcpiUtWriteUint(&DeviceInfo->NamepathOffset, sizeof(UINT16),
++ &CurrentOffset, sizeof(UINT16));
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Name,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+@@ -480,8 +488,9 @@ DtCompileDbg2 (
+
+ /* Update the device info header */
+
+- DeviceInfo->NamepathLength = (UINT16) Subtable->Length;
+- CurrentOffset += (UINT16) DeviceInfo->NamepathLength;
++ AcpiUtWriteUint(&DeviceInfo->NamepathLength, sizeof(UINT16),
++ &Subtable->Length, sizeof(UINT32));
++ CurrentOffset += AcpiUtReadUint16(&DeviceInfo->NamepathLength);
+ DtInsertSubtable (ParentTable, Subtable);
+
+ /* OemData - Variable-length data (Optional, size = OemDataLength) */
+@@ -508,8 +517,10 @@ DtCompileDbg2 (
+
+ if (Subtable && Subtable->Length)
+ {
+- DeviceInfo->OemDataOffset = CurrentOffset;
+- DeviceInfo->OemDataLength = (UINT16) Subtable->Length;
++ AcpiUtWriteUint(&DeviceInfo->OemDataOffset, sizeof(UINT16),
++ &CurrentOffset, sizeof(UINT16));
++ AcpiUtWriteUint(&DeviceInfo->OemDataLength, sizeof(UINT16),
++ &Subtable->Length, sizeof(UINT32));
+
+ DtInsertSubtable (ParentTable, Subtable);
+ }
diff --git a/0009-Support-DMAR-in-a-big-endian-world.patch b/0009-Support-DMAR-in-a-big-endian-world.patch
new file mode 100644
index 0000000..d80d519
--- /dev/null
+++ b/0009-Support-DMAR-in-a-big-endian-world.patch
@@ -0,0 +1,171 @@
+From 01aad41e59efd615ac075fcedbaab0c60f9e1e11 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Sat, 19 Sep 2020 15:22:00 -0600
+Subject: [PATCH 09/40] Support DMAR in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtable.c | 4 ++--
+ source/common/dmtbdump1.c | 26 +++++++++++++++-----------
+ source/compiler/dttable1.c | 12 +++++++-----
+ 3 files changed, 24 insertions(+), 18 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtable.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtable.c
++++ acpica-unix2-20200925/source/common/dmtable.c
+@@ -1244,13 +1244,13 @@ AcpiDmDumpTable (
+
+ /* DMAR subtable types */
+
+- Temp16 = ACPI_GET16 (Target);
++ Temp16 = AcpiUtReadUint16 (Target);
+ if (Temp16 > ACPI_DMAR_TYPE_RESERVED)
+ {
+ Temp16 = ACPI_DMAR_TYPE_RESERVED;
+ }
+
+- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
++ AcpiOsPrintf (UINT16_FORMAT, Temp16,
+ AcpiDmDmarSubnames[Temp16]);
+ break;
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -526,13 +526,15 @@ AcpiDmDumpDmar (
+ {
+ ACPI_STATUS Status;
+ ACPI_DMAR_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_DMAR);
+ ACPI_DMTABLE_INFO *InfoTable;
+ ACPI_DMAR_DEVICE_SCOPE *ScopeTable;
+ UINT32 ScopeOffset;
+ UINT8 *PciPath;
+ UINT32 PathOffset;
++ UINT16 SubtableType;
++ UINT16 SubtableLength;
+
+
+ /* Main table */
+@@ -546,13 +548,14 @@ AcpiDmDumpDmar (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < Length)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
++ SubtableLength = AcpiUtReadUint16(&Subtable->Length);
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
+- Subtable->Length, AcpiDmTableInfoDmarHdr);
++ SubtableLength, AcpiDmTableInfoDmarHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -560,7 +563,8 @@ AcpiDmDumpDmar (
+
+ AcpiOsPrintf ("\n");
+
+- switch (Subtable->Type)
++ SubtableType = AcpiUtReadUint16(&Subtable->Type);
++ switch (SubtableType)
+ {
+ case ACPI_DMAR_TYPE_HARDWARE_UNIT:
+
+@@ -595,12 +599,12 @@ AcpiDmDumpDmar (
+ default:
+
+ AcpiOsPrintf ("\n**** Unknown DMAR subtable type 0x%X\n\n",
+- Subtable->Type);
++ SubtableType);
+ return;
+ }
+
+ Status = AcpiDmDumpTable (Length, Offset, Subtable,
+- Subtable->Length, InfoTable);
++ SubtableLength, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -609,8 +613,8 @@ AcpiDmDumpDmar (
+ /*
+ * Dump the optional device scope entries
+ */
+- if ((Subtable->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
+- (Subtable->Type == ACPI_DMAR_TYPE_NAMESPACE))
++ if ((SubtableType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
++ (SubtableType == ACPI_DMAR_TYPE_NAMESPACE))
+ {
+ /* These types do not support device scopes */
+
+@@ -618,7 +622,7 @@ AcpiDmDumpDmar (
+ }
+
+ ScopeTable = ACPI_ADD_PTR (ACPI_DMAR_DEVICE_SCOPE, Subtable, ScopeOffset);
+- while (ScopeOffset < Subtable->Length)
++ while (ScopeOffset < SubtableLength)
+ {
+ AcpiOsPrintf ("\n");
+ Status = AcpiDmDumpTable (Length, Offset + ScopeOffset, ScopeTable,
+@@ -659,9 +663,9 @@ AcpiDmDumpDmar (
+ NextSubtable:
+ /* Point to next subtable */
+
+- Offset += Subtable->Length;
++ Offset += SubtableLength;
+ Subtable = ACPI_ADD_PTR (ACPI_DMAR_HEADER, Subtable,
+- Subtable->Length);
++ SubtableLength);
+ }
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -560,6 +560,7 @@ DtCompileDmar (
+ ACPI_DMAR_DEVICE_SCOPE *DmarDeviceScope;
+ UINT32 DeviceScopeLength;
+ UINT32 PciPathLength;
++ UINT16 DmarHeaderType;
+
+
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmar, &Subtable);
+@@ -590,7 +591,8 @@ DtCompileDmar (
+
+ DmarHeader = ACPI_CAST_PTR (ACPI_DMAR_HEADER, Subtable->Buffer);
+
+- switch (DmarHeader->Type)
++ DmarHeaderType = AcpiUtReadUint16(&DmarHeader->Type);
++ switch (DmarHeaderType)
+ {
+ case ACPI_DMAR_TYPE_HARDWARE_UNIT:
+
+@@ -637,8 +639,8 @@ DtCompileDmar (
+ /*
+ * Optional Device Scope subtables
+ */
+- if ((DmarHeader->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
+- (DmarHeader->Type == ACPI_DMAR_TYPE_NAMESPACE))
++ if ((DmarHeaderType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
++ (DmarHeaderType == ACPI_DMAR_TYPE_NAMESPACE))
+ {
+ /* These types do not support device scopes */
+
+@@ -647,8 +649,8 @@ DtCompileDmar (
+ }
+
+ DtPushSubtable (Subtable);
+- DeviceScopeLength = DmarHeader->Length - Subtable->Length -
+- ParentTable->Length;
++ DeviceScopeLength = AcpiUtReadUint16(&DmarHeader->Length) -
++ Subtable->Length - ParentTable->Length;
+ while (DeviceScopeLength)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarScope,
diff --git a/0010-Support-DRTM-in-a-big-endian-world.patch b/0010-Support-DRTM-in-a-big-endian-world.patch
new file mode 100644
index 0000000..d4d94af
--- /dev/null
+++ b/0010-Support-DRTM-in-a-big-endian-world.patch
@@ -0,0 +1,112 @@
+From 9583e760908d4b7d2dabec82137d16f2492d2773 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Sat, 19 Sep 2020 15:44:06 -0600
+Subject: [PATCH 10/40] Support DRTM in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 25 +++++++++++++++----------
+ source/compiler/dttable1.c | 6 ++++--
+ 2 files changed, 19 insertions(+), 12 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -692,11 +692,14 @@ AcpiDmDumpDrtm (
+ ACPI_DRTM_RESOURCE_LIST *DrtmRl;
+ ACPI_DRTM_DPS_ID *DrtmDps;
+ UINT32 Count;
++ UINT32 ResourceCount;
++ UINT32 ValidatedTableCount;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0,
+ AcpiDmTableInfoDrtm);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -711,7 +714,7 @@ AcpiDmDumpDrtm (
+
+ DrtmVtl = ACPI_ADD_PTR (ACPI_DRTM_VTABLE_LIST, Table, Offset);
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset,
++ Status = AcpiDmDumpTable (TableLength, Offset,
+ DrtmVtl, ACPI_OFFSET (ACPI_DRTM_VTABLE_LIST, ValidatedTables),
+ AcpiDmTableInfoDrtm0);
+ if (ACPI_FAILURE (Status))
+@@ -724,10 +727,11 @@ AcpiDmDumpDrtm (
+ /* Dump Validated table addresses */
+
+ Count = 0;
+- while ((Offset < Table->Length) &&
+- (DrtmVtl->ValidatedTableCount > Count))
++ ValidatedTableCount = AcpiUtReadUint32(&DrtmVtl->ValidatedTableCount);
++ while ((Offset < TableLength) &&
++ (ValidatedTableCount > Count))
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset,
++ Status = AcpiDmDumpTable (TableLength, Offset,
+ ACPI_ADD_PTR (void, Table, Offset), sizeof (UINT64),
+ AcpiDmTableInfoDrtm0a);
+ if (ACPI_FAILURE (Status))
+@@ -743,7 +747,7 @@ AcpiDmDumpDrtm (
+
+ DrtmRl = ACPI_ADD_PTR (ACPI_DRTM_RESOURCE_LIST, Table, Offset);
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset,
++ Status = AcpiDmDumpTable (TableLength, Offset,
+ DrtmRl, ACPI_OFFSET (ACPI_DRTM_RESOURCE_LIST, Resources),
+ AcpiDmTableInfoDrtm1);
+ if (ACPI_FAILURE (Status))
+@@ -756,10 +760,11 @@ AcpiDmDumpDrtm (
+ /* Dump the Resource List */
+
+ Count = 0;
+- while ((Offset < Table->Length) &&
+- (DrtmRl->ResourceCount > Count))
++ ResourceCount = AcpiUtReadUint32(&DrtmRl->ResourceCount);
++ while ((Offset < TableLength) &&
++ (ResourceCount > Count))
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset,
++ Status = AcpiDmDumpTable (TableLength, Offset,
+ ACPI_ADD_PTR (void, Table, Offset),
+ sizeof (ACPI_DRTM_RESOURCE), AcpiDmTableInfoDrtm1a);
+ if (ACPI_FAILURE (Status))
+@@ -775,7 +780,7 @@ AcpiDmDumpDrtm (
+
+ DrtmDps = ACPI_ADD_PTR (ACPI_DRTM_DPS_ID, Table, Offset);
+ AcpiOsPrintf ("\n");
+- (void) AcpiDmDumpTable (Table->Length, Offset,
++ (void) AcpiDmDumpTable (TableLength, Offset,
+ DrtmDps, sizeof (ACPI_DRTM_DPS_ID), AcpiDmTableInfoDrtm2);
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -775,7 +775,8 @@ DtCompileDrtm (
+ Count++;
+ }
+
+- DrtmVtl->ValidatedTableCount = Count;
++ AcpiUtWriteUint(&DrtmVtl->ValidatedTableCount, sizeof(UINT32),
++ &Count, sizeof(UINT32));
+ DtPopSubtable ();
+ ParentTable = DtPeekSubtable ();
+
+@@ -813,7 +814,8 @@ DtCompileDrtm (
+ Count++;
+ }
+
+- DrtmRl->ResourceCount = Count;
++ AcpiUtWriteUint(&DrtmRl->ResourceCount, sizeof(UINT32),
++ &Count, sizeof(UINT32));
+ DtPopSubtable ();
+ ParentTable = DtPeekSubtable ();
+
diff --git a/0011-Support-EINJ-in-a-big-endian-world.patch b/0011-Support-EINJ-in-a-big-endian-world.patch
new file mode 100644
index 0000000..acb64f1
--- /dev/null
+++ b/0011-Support-EINJ-in-a-big-endian-world.patch
@@ -0,0 +1,32 @@
+From b264cb9a07faa05e6d8e5e6c2381270c218d88c4 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Sat, 19 Sep 2020 15:50:19 -0600
+Subject: [PATCH 11/40] Support EINJ in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -804,7 +804,7 @@ AcpiDmDumpEinj (
+ {
+ ACPI_STATUS Status;
+ ACPI_WHEA_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_EINJ);
+
+
+@@ -819,7 +819,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,
diff --git a/0012-Support-ERST-in-a-big-endian-world.patch b/0012-Support-ERST-in-a-big-endian-world.patch
new file mode 100644
index 0000000..2bd176e
--- /dev/null
+++ b/0012-Support-ERST-in-a-big-endian-world.patch
@@ -0,0 +1,32 @@
+From 99f27aa1a38868a716aefd9408a8cd3788644d13 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Sat, 19 Sep 2020 15:54:56 -0600
+Subject: [PATCH 12/40] Support ERST in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -857,7 +857,7 @@ AcpiDmDumpErst (
+ {
+ ACPI_STATUS Status;
+ ACPI_WHEA_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_ERST);
+
+
+@@ -872,7 +872,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,
diff --git a/0013-Support-FADT-aka-FACP-in-a-big-endian-world.patch b/0013-Support-FADT-aka-FACP-in-a-big-endian-world.patch
new file mode 100644
index 0000000..9fd3120
--- /dev/null
+++ b/0013-Support-FADT-aka-FACP-in-a-big-endian-world.patch
@@ -0,0 +1,189 @@
+From 3288b60b3ddc2df4656842d424bfc1e6a51b2ad2 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Sun, 20 Sep 2020 11:42:21 -0600
+Subject: [PATCH 13/40] Support FADT (aka, FACP) in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump.c | 25 ++++++++++++-----------
+ source/components/tables/tbfadt.c | 34 +++++++++++++++++++++++--------
+ 2 files changed, 38 insertions(+), 21 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump.c
++++ acpica-unix2-20200925/source/common/dmtbdump.c
+@@ -358,11 +358,12 @@ AcpiDmDumpFadt (
+ ACPI_TABLE_HEADER *Table)
+ {
+ ACPI_STATUS Status;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Always dump the minimum FADT revision 1 fields (ACPI 1.0) */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0,
+ AcpiDmTableInfoFadt1);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -371,10 +372,10 @@ 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 ((TableLength > ACPI_FADT_V1_SIZE) &&
++ (TableLength <= ACPI_FADT_V2_SIZE))
+ {
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0,
+ AcpiDmTableInfoFadt2);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -384,9 +385,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 (TableLength > ACPI_FADT_V2_SIZE)
+ {
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0,
+ AcpiDmTableInfoFadt3);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -395,9 +396,9 @@ AcpiDmDumpFadt (
+
+ /* Check for FADT revision 5 fields and up (ACPI 5.0+) */
+
+- if (Table->Length > ACPI_FADT_V3_SIZE)
++ if (TableLength > ACPI_FADT_V3_SIZE)
+ {
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0,
+ AcpiDmTableInfoFadt5);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -407,9 +408,9 @@ AcpiDmDumpFadt (
+
+ /* Check for FADT revision 6 fields and up (ACPI 6.0+) */
+
+- if (Table->Length > ACPI_FADT_V3_SIZE)
++ if (TableLength > ACPI_FADT_V3_SIZE)
+ {
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0,
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0,
+ AcpiDmTableInfoFadt6);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -420,11 +421,11 @@ AcpiDmDumpFadt (
+
+ /* Validate various fields in the FADT, including length */
+
+- AcpiTbCreateLocalFadt (Table, Table->Length);
++ AcpiTbCreateLocalFadt (Table, TableLength);
+
+ /* Validate FADT length against the revision */
+
+- AcpiDmValidateFadtLength (Table->Revision, Table->Length);
++ AcpiDmValidateFadtLength (Table->Revision, TableLength);
+ }
+
+
+Index: acpica-unix2-20200925/source/components/tables/tbfadt.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/tables/tbfadt.c
++++ acpica-unix2-20200925/source/components/tables/tbfadt.c
+@@ -289,7 +289,6 @@ AcpiTbSelectAddress (
+ UINT32 Address32,
+ UINT64 Address64)
+ {
+-
+ if (!Address64)
+ {
+ /* 64-bit address is zero, use 32-bit address */
+@@ -520,6 +519,9 @@ AcpiTbConvertFadt (
+ UINT8 Length;
+ UINT8 Flags;
+ UINT32 i;
++ UINT32 Tmp;
++ UINT32 Value32;
++ UINT64 Value64;
+
+
+ /*
+@@ -533,7 +535,7 @@ AcpiTbConvertFadt (
+ * Note: The FADT revision value is unreliable. Only the length can be
+ * trusted.
+ */
+- if (AcpiGbl_FADT.Header.Length <= ACPI_FADT_V2_SIZE)
++ if (AcpiUtReadUint32(&AcpiGbl_FADT.Header.Length) <= ACPI_FADT_V2_SIZE)
+ {
+ AcpiGbl_FADT.PreferredProfile = 0;
+ AcpiGbl_FADT.PstateControl = 0;
+@@ -546,14 +548,19 @@ AcpiTbConvertFadt (
+ * current FADT version as defined by the ACPI specification.
+ * Thus, we will have a common FADT internally.
+ */
+- AcpiGbl_FADT.Header.Length = sizeof (ACPI_TABLE_FADT);
++ Tmp = sizeof (ACPI_TABLE_FADT);
++ AcpiUtWriteUint(&AcpiGbl_FADT.Header.Length, sizeof(UINT32),
++ &Tmp, sizeof(UINT32));
+
+ /*
+ * Expand the 32-bit DSDT addresses to 64-bit as necessary.
+ * Later ACPICA code will always use the X 64-bit field.
+ */
+- AcpiGbl_FADT.XDsdt = AcpiTbSelectAddress ("DSDT",
+- AcpiGbl_FADT.Dsdt, AcpiGbl_FADT.XDsdt);
++ Value32 = AcpiUtReadUint32(&AcpiGbl_FADT.Dsdt);
++ Value64 = AcpiUtReadUint64(&AcpiGbl_FADT.XDsdt);
++ Value64 = AcpiTbSelectAddress ("DSDT", Value32, Value64);
++ AcpiUtWriteUint(&AcpiGbl_FADT.XDsdt, sizeof(UINT64),
++ &Value64, sizeof(UINT64));
+
+ /* If Hardware Reduced flag is set, we are all done */
+
+@@ -614,7 +621,11 @@ AcpiTbConvertFadt (
+ {
+ if (Address64->Address)
+ {
+- if (Address64->Address != (UINT64) Address32)
++ Value32 = AcpiUtReadUint32(&Address32);
++ Value64 = AcpiUtReadUint64(&Address64->Address);
++
++ /* if (Address64->Address != (UINT64) Address32) */
++ if (Value64 != (UINT64) Value32)
+ {
+ /* Address mismatch */
+
+@@ -655,9 +666,10 @@ AcpiTbConvertFadt (
+ */
+ if (!Address64->Address || AcpiGbl_Use32BitFadtAddresses)
+ {
++ Value32 = AcpiUtReadUint32(&Address32);
+ AcpiTbInitGenericAddress (Address64,
+ ACPI_ADR_SPACE_SYSTEM_IO, Length,
+- (UINT64) Address32, Name, Flags);
++ (UINT64) Value32, Name, Flags);
+ }
+ }
+
+@@ -780,10 +792,14 @@ AcpiTbSetupFadtRegisters (
+
+ if (Source64->Address)
+ {
++ UINT64 Address64;
++
++ Address64 = AcpiUtReadUint64(&Source64->Address);
++ Address64 +=
++ (FadtPmInfoTable[i].RegisterNum * Pm1RegisterByteWidth);
+ AcpiTbInitGenericAddress (FadtPmInfoTable[i].Target,
+ Source64->SpaceId, Pm1RegisterByteWidth,
+- Source64->Address +
+- (FadtPmInfoTable[i].RegisterNum * Pm1RegisterByteWidth),
++ Address64,
+ "PmRegisters", 0);
+ }
+ }
diff --git a/0014-Support-most-FPDTs-in-a-big-endian-world.patch b/0014-Support-most-FPDTs-in-a-big-endian-world.patch
new file mode 100644
index 0000000..f1f9715
--- /dev/null
+++ b/0014-Support-most-FPDTs-in-a-big-endian-world.patch
@@ -0,0 +1,85 @@
+From f0cba59f1ce62095cb0a0cecdf8d661b77bf2baf Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Tue, 22 Sep 2020 17:51:45 -0600
+Subject: [PATCH 14/40] Support most FPDTs in a big-endian world
+
+NB: there is no support for vendor specific records even in
+the little-endian version.
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 12 +++++++-----
+ source/compiler/dttable1.c | 4 +++-
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -910,9 +910,10 @@ AcpiDmDumpFpdt (
+ {
+ ACPI_STATUS Status;
+ ACPI_FPDT_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_FPDT);
+ ACPI_DMTABLE_INFO *InfoTable;
++ UINT16 SubtableType;
+
+
+ /* There is no main table (other than the standard ACPI header) */
+@@ -920,19 +921,20 @@ AcpiDmDumpFpdt (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_FPDT_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoFpdtHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+- switch (Subtable->Type)
++ SubtableType = AcpiUtReadUint16(&Subtable->Type);
++ switch (SubtableType)
+ {
+ case ACPI_FPDT_TYPE_BOOT:
+
+@@ -959,7 +961,7 @@ AcpiDmDumpFpdt (
+ goto NextSubtable;
+ }
+
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -1051,6 +1051,7 @@ DtCompileFpdt (
+ ACPI_DMTABLE_INFO *InfoTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ DT_FIELD *SubtableStart;
++ UINT16 SubtableType;
+
+
+ while (*PFieldList)
+@@ -1069,7 +1070,8 @@ DtCompileFpdt (
+
+ FpdtHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer);
+
+- switch (FpdtHeader->Type)
++ SubtableType = AcpiUtReadUint16(&FpdtHeader->Type);
++ switch (SubtableType)
+ {
+ case ACPI_FPDT_TYPE_BOOT:
+
diff --git a/0015-Support-GTDT-in-a-big-endian-world.patch b/0015-Support-GTDT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..7302133
--- /dev/null
+++ b/0015-Support-GTDT-in-a-big-endian-world.patch
@@ -0,0 +1,69 @@
+From faba93b1dd7ce4aa8983880e917d108496cd173f Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Tue, 22 Sep 2020 18:12:01 -0600
+Subject: [PATCH 15/40] Support GTDT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 13 +++++++++----
+ source/compiler/dttable1.c | 9 +++++++--
+ 2 files changed, 16 insertions(+), 6 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -997,7 +997,7 @@ AcpiDmDumpGtdt (
+ {
+ ACPI_STATUS Status;
+ ACPI_GTDT_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_GTDT);
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT32 SubtableLength;
+@@ -1033,7 +1033,7 @@ AcpiDmDumpGtdt (
+
+ /* Subtables */
+
+- while (Offset < Table->Length)
++ while (Offset < Length)
+ {
+ /* Common subtable header */
+
+@@ -1051,8 +1051,13 @@ AcpiDmDumpGtdt (
+ case ACPI_GTDT_TYPE_TIMER_BLOCK:
+
+ SubtableLength = sizeof (ACPI_GTDT_TIMER_BLOCK);
+- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
+- Subtable))->TimerCount;
++ {
++ UINT32 Tmp32;
++
++ Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
++ Subtable))->TimerCount;
++ GtCount = AcpiUtReadUint32(&Tmp32);
++ }
+
+ InfoTable = AcpiDmTableInfoGtdt0;
+ break;
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -997,8 +997,13 @@ DtCompileGtdt (
+ DtPushSubtable (Subtable);
+ ParentTable = DtPeekSubtable ();
+
+- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
+- Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount;
++ {
++ UINT32 Tmp32;
++
++ Tmp32 = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
++ Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount;
++ GtCount = AcpiUtReadUint32(&Tmp32);
++ }
+
+ while (GtCount)
+ {
diff --git a/0016-Support-HEST-in-a-big-endian-world.patch b/0016-Support-HEST-in-a-big-endian-world.patch
new file mode 100644
index 0000000..e38456f
--- /dev/null
+++ b/0016-Support-HEST-in-a-big-endian-world.patch
@@ -0,0 +1,75 @@
+From 1104928443b11ff1c0446ed1604882c0e6ae4dc1 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 23 Sep 2020 11:54:49 -0600
+Subject: [PATCH 16/40] Support HEST in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 10 ++++++----
+ source/compiler/dttable1.c | 4 +++-
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -1138,12 +1138,13 @@ AcpiDmDumpHest (
+ {
+ ACPI_STATUS Status;
+ ACPI_HEST_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 Length = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_HEST);
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT32 SubtableLength;
+ UINT32 BankCount;
+ ACPI_HEST_IA_ERROR_BANK *BankTable;
++ UINT16 SubtableType;
+
+
+ /* Main table */
+@@ -1157,10 +1158,11 @@ AcpiDmDumpHest (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_HEST_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < Length)
+ {
+ BankCount = 0;
+- switch (Subtable->Type)
++ SubtableType = Subtable->Type;
++ switch (SubtableType)
+ {
+ case ACPI_HEST_TYPE_IA32_CHECK:
+
+@@ -1227,7 +1229,7 @@ AcpiDmDumpHest (
+ /* Cannot continue on unknown type - no length */
+
+ AcpiOsPrintf ("\n**** Unknown HEST subtable type 0x%X\n",
+- Subtable->Type);
++ SubtableType);
+ return;
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -1133,6 +1133,7 @@ DtCompileHest (
+ DT_FIELD *SubtableStart;
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT16 Type;
++ UINT16 Tmp16;
+ UINT32 BankCount;
+
+
+@@ -1151,7 +1152,8 @@ DtCompileHest (
+ /* Get subtable type */
+
+ SubtableStart = *PFieldList;
+- DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0);
++ DtCompileInteger ((UINT8 *) &Tmp16, *PFieldList, 2, 0);
++ Type = AcpiUtReadUint32(&Tmp16);
+
+ switch (Type)
+ {
diff --git a/0017-Support-RSDT-RSD-PTR-in-a-big-endian-world.patch b/0017-Support-RSDT-RSD-PTR-in-a-big-endian-world.patch
new file mode 100644
index 0000000..4925302
--- /dev/null
+++ b/0017-Support-RSDT-RSD-PTR-in-a-big-endian-world.patch
@@ -0,0 +1,37 @@
+From 6565935b43c4795387aa4814d171dcd3c02bee33 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 23 Sep 2020 12:11:46 -0600
+Subject: [PATCH 17/40] Support RSDT ('RSD PTR') in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump.c
++++ acpica-unix2-20200925/source/common/dmtbdump.c
+@@ -277,6 +277,7 @@ AcpiDmDumpRsdt (
+ UINT32 Entries;
+ UINT32 Offset;
+ UINT32 i;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Point to start of table pointer array */
+@@ -286,12 +287,12 @@ AcpiDmDumpRsdt (
+
+ /* RSDT uses 32-bit pointers */
+
+- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT32);
++ Entries = (TableLength - 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]);
++ AcpiOsPrintf ("%8.8X\n", AcpiUtReadUint32(&Array[i]));
+ Offset += sizeof (UINT32);
+ }
+ }
diff --git a/0018-Support-XSDT-in-a-big-endian-world.patch b/0018-Support-XSDT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..7ae8ea1
--- /dev/null
+++ b/0018-Support-XSDT-in-a-big-endian-world.patch
@@ -0,0 +1,38 @@
+From 8d0ea4932cebc5d13cc811eb4f78b66a5e3cfd2c Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 23 Sep 2020 12:16:37 -0600
+Subject: [PATCH 18/40] Support XSDT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump.c
++++ acpica-unix2-20200925/source/common/dmtbdump.c
+@@ -318,6 +318,7 @@ AcpiDmDumpXsdt (
+ UINT32 Entries;
+ UINT32 Offset;
+ UINT32 i;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Point to start of table pointer array */
+@@ -327,12 +328,13 @@ AcpiDmDumpXsdt (
+
+ /* XSDT uses 64-bit pointers */
+
+- Entries = (Table->Length - sizeof (ACPI_TABLE_HEADER)) / sizeof (UINT64);
++ Entries = (TableLength - 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]));
++ AcpiOsPrintf ("%8.8X%8.8X\n",
++ ACPI_FORMAT_UINT64 (AcpiUtReadUint64(&Array[i])));
+ Offset += sizeof (UINT64);
+ }
+ }
diff --git a/0019-Support-SRAT-in-a-big-endian-world.patch b/0019-Support-SRAT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..6bb6215
--- /dev/null
+++ b/0019-Support-SRAT-in-a-big-endian-world.patch
@@ -0,0 +1,52 @@
+From 82421dd7d534f78edf85b862b196bae256cf8f87 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 23 Sep 2020 12:25:38 -0600
+Subject: [PATCH 19/40] Support SRAT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -173,11 +173,12 @@ AcpiDmDumpSrat (
+ UINT32 Offset = sizeof (ACPI_TABLE_SRAT);
+ ACPI_SUBTABLE_HEADER *Subtable;
+ ACPI_DMTABLE_INFO *InfoTable;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSrat);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoSrat);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -186,12 +187,12 @@ AcpiDmDumpSrat (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoSratHdr);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -245,7 +246,7 @@ AcpiDmDumpSrat (
+ }
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0020-Support-SLIT-in-a-big-endian-world.patch b/0020-Support-SLIT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..a0e3a5e
--- /dev/null
+++ b/0020-Support-SLIT-in-a-big-endian-world.patch
@@ -0,0 +1,61 @@
+From 4e76aa1a5556f250f51a3802734fd6cb77718299 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 23 Sep 2020 12:49:52 -0600
+Subject: [PATCH 20/40] Support SLIT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 8 +++++---
+ source/compiler/dttable2.c | 2 +-
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -96,11 +96,12 @@ AcpiDmDumpSlit (
+ UINT32 Localities;
+ UINT32 i;
+ UINT32 j;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoSlit);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoSlit);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -108,7 +109,8 @@ AcpiDmDumpSlit (
+
+ /* Display the Locality NxN Matrix */
+
+- Localities = (UINT32) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount;
++ Localities = (UINT32)
++ AcpiUtReadUint64(&ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->LocalityCount);
+ Offset = ACPI_OFFSET (ACPI_TABLE_SLIT, Entry[0]);
+ Row = (UINT8 *) ACPI_CAST_PTR (ACPI_TABLE_SLIT, Table)->Entry;
+
+@@ -121,7 +123,7 @@ AcpiDmDumpSlit (
+ {
+ /* Check for beyond EOT */
+
+- if (Offset >= Table->Length)
++ if (Offset >= TableLength)
+ {
+ AcpiOsPrintf (
+ "\n**** Not enough room in table for all localities\n");
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -1529,7 +1529,7 @@ DtCompileSlit (
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+- Localities = *ACPI_CAST_PTR (UINT32, Subtable->Buffer);
++ Localities = (UINT32) AcpiUtReadUint64(Subtable->Buffer);
+ LocalityBuffer = UtLocalCalloc (Localities);
+ LocalityListLength = 0;
+
diff --git a/0021-Support-MSCT-in-a-big-endian-world.patch b/0021-Support-MSCT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..3a59eaa
--- /dev/null
+++ b/0021-Support-MSCT-in-a-big-endian-world.patch
@@ -0,0 +1,43 @@
+From 4ca38d182bb40ba750d8f5ac6ff8560c40f06625 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 23 Sep 2020 15:44:21 -0600
+Subject: [PATCH 21/40] Support MSCT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -972,11 +972,12 @@ AcpiDmDumpMsct (
+ ACPI_STATUS Status;
+ UINT32 Offset = sizeof (ACPI_TABLE_MSCT);
+ ACPI_MSCT_PROXIMITY *Subtable;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMsct);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoMsct);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -985,12 +986,12 @@ AcpiDmDumpMsct (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_MSCT_PROXIMITY, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ sizeof (ACPI_MSCT_PROXIMITY), AcpiDmTableInfoMsct0);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0022-Support-MPST-in-a-big-endian-world.patch b/0022-Support-MPST-in-a-big-endian-world.patch
new file mode 100644
index 0000000..2b4c2e3
--- /dev/null
+++ b/0022-Support-MPST-in-a-big-endian-world.patch
@@ -0,0 +1,152 @@
+From dfe414b053fb9feb905271785b319afa7ba72932 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 23 Sep 2020 16:08:24 -0600
+Subject: [PATCH 22/40] Support MPST in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 33 +++++++++++++++++++--------------
+ source/compiler/dttable2.c | 8 ++++----
+ 2 files changed, 23 insertions(+), 18 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -834,11 +834,13 @@ AcpiDmDumpMpst (
+ UINT16 SubtableCount;
+ UINT32 PowerStateCount;
+ UINT32 ComponentCount;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
++ UINT16 Tmp16;
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMpst);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoMpst);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -846,13 +848,14 @@ AcpiDmDumpMpst (
+
+ /* Subtable: Memory Power Node(s) */
+
+- SubtableCount = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount;
++ Tmp16 = (ACPI_CAST_PTR (ACPI_TABLE_MPST, Table))->PowerNodeCount;
++ SubtableCount = AcpiUtReadUint16(&Tmp16);
+ Subtable0 = ACPI_ADD_PTR (ACPI_MPST_POWER_NODE, Table, Offset);
+
+- while ((Offset < Table->Length) && SubtableCount)
++ while ((Offset < TableLength) && SubtableCount)
+ {
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable0,
+ sizeof (ACPI_MPST_POWER_NODE), AcpiDmTableInfoMpst0);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -861,8 +864,8 @@ AcpiDmDumpMpst (
+
+ /* Extract the sub-subtable counts */
+
+- PowerStateCount = Subtable0->NumPowerStates;
+- ComponentCount = Subtable0->NumPhysicalComponents;
++ PowerStateCount = AcpiUtReadUint16(&Subtable0->NumPowerStates);
++ ComponentCount = AcpiUtReadUint16(&Subtable0->NumPhysicalComponents);
+ Offset += sizeof (ACPI_MPST_POWER_NODE);
+
+ /* Sub-subtables - Memory Power State Structure(s) */
+@@ -873,7 +876,7 @@ AcpiDmDumpMpst (
+ while (PowerStateCount)
+ {
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0A,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable0A,
+ sizeof (ACPI_MPST_POWER_STATE), AcpiDmTableInfoMpst0A);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -896,7 +899,7 @@ AcpiDmDumpMpst (
+
+ while (ComponentCount)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable0B,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable0B,
+ sizeof (ACPI_MPST_COMPONENT), AcpiDmTableInfoMpst0B);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -913,22 +916,24 @@ AcpiDmDumpMpst (
+ SubtableCount--;
+ 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) *
++ AcpiUtReadUint16(&Subtable0->NumPowerStates)) +
++ (sizeof (ACPI_MPST_COMPONENT) *
++ AcpiUtReadUint16(&Subtable0->NumPhysicalComponents)));
+ }
+
+ /* 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 (TableLength, Offset, Subtable1,
+ sizeof (ACPI_MPST_DATA_HDR), AcpiDmTableInfoMpst1);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+- SubtableCount = Subtable1->CharacteristicsCount;
++ SubtableCount = AcpiUtReadUint16(&Subtable1->CharacteristicsCount);
+ Offset += sizeof (ACPI_MPST_DATA_HDR);
+
+ /* Subtable: Memory Power State Characteristics structure(s) */
+@@ -936,10 +941,10 @@ AcpiDmDumpMpst (
+ Subtable2 = ACPI_ADD_PTR (ACPI_MPST_POWER_DATA, Subtable1,
+ sizeof (ACPI_MPST_DATA_HDR));
+
+- while ((Offset < Table->Length) && SubtableCount)
++ while ((Offset < TableLength) && SubtableCount)
+ {
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable2,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable2,
+ sizeof (ACPI_MPST_POWER_DATA), AcpiDmTableInfoMpst2);
+ if (ACPI_FAILURE (Status))
+ {
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -345,7 +345,7 @@ DtCompileMpst (
+ DtPushSubtable (Subtable);
+
+ MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer);
+- SubtableCount = MpstChannelInfo->PowerNodeCount;
++ SubtableCount = AcpiUtReadUint16(&MpstChannelInfo->PowerNodeCount);
+
+ while (*PFieldList && SubtableCount)
+ {
+@@ -363,8 +363,8 @@ DtCompileMpst (
+ DtPushSubtable (Subtable);
+
+ MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer);
+- PowerStateCount = MpstPowerNode->NumPowerStates;
+- ComponentCount = MpstPowerNode->NumPhysicalComponents;
++ PowerStateCount = AcpiUtReadUint16(&MpstPowerNode->NumPowerStates);
++ ComponentCount = AcpiUtReadUint16(&MpstPowerNode->NumPhysicalComponents);
+
+ ParentTable = DtPeekSubtable ();
+
+@@ -417,7 +417,7 @@ DtCompileMpst (
+ DtPushSubtable (Subtable);
+
+ MpstDataHeader = ACPI_CAST_PTR (ACPI_MPST_DATA_HDR, Subtable->Buffer);
+- SubtableCount = MpstDataHeader->CharacteristicsCount;
++ SubtableCount = AcpiUtReadUint16(&MpstDataHeader->CharacteristicsCount);
+
+ ParentTable = DtPeekSubtable ();
+
diff --git a/0023-Support-NFIT-in-a-big-endian-world.patch b/0023-Support-NFIT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..42d5a7d
--- /dev/null
+++ b/0023-Support-NFIT-in-a-big-endian-world.patch
@@ -0,0 +1,221 @@
+From 2a1f049c35736ddba45300bc5aba4db9c9df3be7 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Thu, 24 Sep 2020 15:25:53 -0600
+Subject: [PATCH 23/40] Support NFIT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtable.c | 4 ++--
+ source/common/dmtbdump2.c | 47 +++++++++++++++++++++++---------------
+ source/compiler/dttable2.c | 11 ++++++---
+ 3 files changed, 38 insertions(+), 24 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtable.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtable.c
++++ acpica-unix2-20200925/source/common/dmtable.c
+@@ -1429,13 +1429,13 @@ AcpiDmDumpTable (
+
+ /* NFIT subtable types */
+
+- Temp16 = ACPI_GET16 (Target);
++ Temp16 = AcpiUtReadUint16(Target);
+ if (Temp16 > ACPI_NFIT_TYPE_RESERVED)
+ {
+ Temp16 = ACPI_NFIT_TYPE_RESERVED;
+ }
+
+- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
++ AcpiOsPrintf (UINT16_FORMAT, Temp16,
+ AcpiDmNfitSubnames[Temp16]);
+ break;
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1084,18 +1084,23 @@ AcpiDmDumpNfit (
+ ACPI_STATUS Status;
+ UINT32 Offset = sizeof (ACPI_TABLE_NFIT);
+ UINT32 FieldOffset = 0;
+- UINT32 Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ ACPI_NFIT_HEADER *Subtable;
+ ACPI_DMTABLE_INFO *InfoTable;
+ ACPI_NFIT_INTERLEAVE *Interleave = NULL;
+ ACPI_NFIT_SMBIOS *SmbiosInfo = NULL;
+ ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL;
+ UINT32 i;
++ UINT32 Length;
++ UINT32 LineCount;
++ UINT16 SubtableLength;
++ UINT16 SubtableType;
++ UINT16 HintCount;
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoNfit);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoNfit);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1104,19 +1109,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);
++ SubtableType = AcpiUtReadUint16(&Subtable->Type);
++ SubtableLength = AcpiUtReadUint16(&Subtable->Length);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, AcpiDmTableInfoNfitHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+- switch (Subtable->Type)
++ switch (SubtableType)
+ {
+ case ACPI_NFIT_TYPE_SYSTEM_ADDRESS:
+
+@@ -1167,11 +1174,11 @@ AcpiDmDumpNfit (
+
+ default:
+ AcpiOsPrintf ("\n**** Unknown NFIT subtable type 0x%X\n",
+- Subtable->Type);
++ SubtableType);
+
+ /* Attempt to continue */
+
+- if (!Subtable->Length)
++ if (!SubtableLength)
+ {
+ AcpiOsPrintf ("Invalid zero length subtable\n");
+ return;
+@@ -1180,8 +1187,8 @@ AcpiDmDumpNfit (
+ }
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Subtable->Length, InfoTable);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1189,14 +1196,15 @@ AcpiDmDumpNfit (
+
+ /* Per-subtable variable-length fields */
+
+- switch (Subtable->Type)
++ switch (SubtableType)
+ {
+ case ACPI_NFIT_TYPE_INTERLEAVE:
+
+ Interleave = ACPI_CAST_PTR (ACPI_NFIT_INTERLEAVE, Subtable);
+- for (i = 0; i < Interleave->LineCount; i++)
++ LineCount = AcpiUtReadUint32(&Interleave->LineCount);
++ for (i = 0; i < LineCount; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
+ &Interleave->LineOffset[i],
+ sizeof (UINT32), AcpiDmTableInfoNfit2a);
+ if (ACPI_FAILURE (Status))
+@@ -1210,12 +1218,12 @@ AcpiDmDumpNfit (
+
+ case ACPI_NFIT_TYPE_SMBIOS:
+
+- Length = Subtable->Length -
++ Length = SubtableLength -
+ sizeof (ACPI_NFIT_SMBIOS) + sizeof (UINT8);
+
+ if (Length)
+ {
+- Status = AcpiDmDumpTable (Table->Length,
++ Status = AcpiDmDumpTable (TableLength,
+ sizeof (ACPI_NFIT_SMBIOS) - sizeof (UINT8),
+ SmbiosInfo,
+ Length, AcpiDmTableInfoNfit3a);
+@@ -1230,9 +1238,10 @@ AcpiDmDumpNfit (
+ case ACPI_NFIT_TYPE_FLUSH_ADDRESS:
+
+ Hint = ACPI_CAST_PTR (ACPI_NFIT_FLUSH_ADDRESS, Subtable);
+- for (i = 0; i < Hint->HintCount; i++)
++ HintCount = AcpiUtReadUint16(&Hint->HintCount);
++ for (i = 0; i < HintCount; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + FieldOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + FieldOffset,
+ &Hint->HintAddress[i],
+ sizeof (UINT64), AcpiDmTableInfoNfit6a);
+ if (ACPI_FAILURE (Status))
+@@ -1251,8 +1260,8 @@ AcpiDmDumpNfit (
+ NextSubtable:
+ /* Point to next subtable */
+
+- Offset += Subtable->Length;
+- Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Subtable, Subtable->Length);
++ Offset += SubtableLength;
++ Subtable = ACPI_ADD_PTR (ACPI_NFIT_HEADER, Subtable, SubtableLength);
+ }
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -517,6 +517,7 @@ DtCompileNfit (
+ UINT32 Count;
+ ACPI_NFIT_INTERLEAVE *Interleave = NULL;
+ ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL;
++ UINT16 NfitHeaderType;
+
+
+ /* Main table */
+@@ -550,7 +551,8 @@ DtCompileNfit (
+
+ NfitHeader = ACPI_CAST_PTR (ACPI_NFIT_HEADER, Subtable->Buffer);
+
+- switch (NfitHeader->Type)
++ NfitHeaderType = AcpiUtReadUint16(&NfitHeader->Type);
++ switch (NfitHeaderType)
+ {
+ case ACPI_NFIT_TYPE_SYSTEM_ADDRESS:
+
+@@ -610,7 +612,7 @@ DtCompileNfit (
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPopSubtable ();
+
+- switch (NfitHeader->Type)
++ switch (NfitHeaderType)
+ {
+ case ACPI_NFIT_TYPE_INTERLEAVE:
+
+@@ -636,7 +638,8 @@ DtCompileNfit (
+ Count++;
+ }
+
+- Interleave->LineCount = Count;
++ AcpiUtWriteUint(&Interleave->LineCount, sizeof(UINT32),
++ &Count, sizeof(UINT32));
+ break;
+
+ case ACPI_NFIT_TYPE_SMBIOS:
+@@ -682,6 +685,8 @@ DtCompileNfit (
+ }
+
+ Hint->HintCount = (UINT16) Count;
++ AcpiUtWriteUint(&Hint->HintCount, sizeof(UINT16),
++ &Count, sizeof(UINT32));
+ break;
+
+ default:
diff --git a/0024-Support-SDEV-in-a-big-endian-world.patch b/0024-Support-SDEV-in-a-big-endian-world.patch
new file mode 100644
index 0000000..f6d36bd
--- /dev/null
+++ b/0024-Support-SDEV-in-a-big-endian-world.patch
@@ -0,0 +1,256 @@
+From af44bec6c062a26034a43809d81af2a0ea17343e Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 25 Sep 2020 16:05:59 -0600
+Subject: [PATCH 24/40] Support SDEV in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 50 +++++++++++++++++++-----------------
+ source/compiler/dttable2.c | 52 ++++++++++++++++++++++++++++----------
+ 2 files changed, 65 insertions(+), 37 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1871,17 +1871,18 @@ AcpiDmDumpSdev (
+ ACPI_SDEV_PCIE *Pcie;
+ ACPI_SDEV_NAMESPACE *Namesp;
+ ACPI_DMTABLE_INFO *InfoTable;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_SDEV);
+ UINT16 PathOffset;
+ UINT16 PathLength;
+ UINT16 VendorDataOffset;
+ UINT16 VendorDataLength;
++ UINT16 SubtableLength;
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoSdev);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoSdev);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1890,13 +1891,14 @@ AcpiDmDumpSdev (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_SDEV_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Subtable->Length, AcpiDmTableInfoSdevHdr);
++ SubtableLength = AcpiUtReadUint16(&Subtable->Length);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, AcpiDmTableInfoSdevHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1919,8 +1921,8 @@ AcpiDmDumpSdev (
+ }
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Subtable->Length, InfoTable);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1933,12 +1935,12 @@ AcpiDmDumpSdev (
+ /* Dump the PCIe device ID(s) */
+
+ Namesp = ACPI_CAST_PTR (ACPI_SDEV_NAMESPACE, Subtable);
+- PathOffset = Namesp->DeviceIdOffset;
+- PathLength = Namesp->DeviceIdLength;
++ PathOffset = AcpiUtReadUint16(&Namesp->DeviceIdOffset);
++ PathLength = AcpiUtReadUint16(&Namesp->DeviceIdLength);
+
+ if (PathLength)
+ {
+- Status = AcpiDmDumpTable (Table->Length, 0,
++ Status = AcpiDmDumpTable (TableLength, 0,
+ ACPI_ADD_PTR (UINT8, Namesp, PathOffset),
+ PathLength, AcpiDmTableInfoSdev0a);
+ if (ACPI_FAILURE (Status))
+@@ -1949,14 +1951,14 @@ AcpiDmDumpSdev (
+
+ /* Dump the vendor-specific data */
+
+- VendorDataLength =
+- Namesp->VendorDataLength;
+- VendorDataOffset =
+- Namesp->DeviceIdOffset + Namesp->DeviceIdLength;
++ VendorDataLength = AcpiUtReadUint16(&Namesp->VendorDataLength);
++ VendorDataOffset =
++ AcpiUtReadUint16(&Namesp->DeviceIdOffset) +
++ AcpiUtReadUint16(&Namesp->DeviceIdLength);
+
+ if (VendorDataLength)
+ {
+- Status = AcpiDmDumpTable (Table->Length, 0,
++ Status = AcpiDmDumpTable (TableLength, 0,
+ ACPI_ADD_PTR (UINT8, Namesp, VendorDataOffset),
+ VendorDataLength, AcpiDmTableInfoSdev1b);
+ if (ACPI_FAILURE (Status))
+@@ -1971,12 +1973,12 @@ AcpiDmDumpSdev (
+ /* PCI path substructures */
+
+ Pcie = ACPI_CAST_PTR (ACPI_SDEV_PCIE, Subtable);
+- PathOffset = Pcie->PathOffset;
+- PathLength = Pcie->PathLength;
++ PathOffset = AcpiUtReadUint16(&Pcie->PathOffset);
++ PathLength = AcpiUtReadUint16(&Pcie->PathLength);
+
+ while (PathLength)
+ {
+- Status = AcpiDmDumpTable (Table->Length,
++ Status = AcpiDmDumpTable (TableLength,
+ PathOffset + Offset,
+ ACPI_ADD_PTR (UINT8, Pcie, PathOffset),
+ sizeof (ACPI_SDEV_PCIE_PATH), AcpiDmTableInfoSdev1a);
+@@ -1991,12 +1993,14 @@ AcpiDmDumpSdev (
+
+ /* VendorData */
+
+- VendorDataLength = Pcie->VendorDataLength;
+- VendorDataOffset = Pcie->PathOffset + Pcie->PathLength;
++ VendorDataLength = AcpiUtReadUint16(&Pcie->VendorDataLength);
++ VendorDataOffset =
++ AcpiUtReadUint16(&Pcie->PathOffset) +
++ AcpiUtReadUint16(&Pcie->PathLength);
+
+ if (VendorDataLength)
+ {
+- Status = AcpiDmDumpTable (Table->Length, 0,
++ Status = AcpiDmDumpTable (TableLength, 0,
+ ACPI_ADD_PTR (UINT8, Pcie, VendorDataOffset),
+ VendorDataLength, AcpiDmTableInfoSdev1b);
+ if (ACPI_FAILURE (Status))
+@@ -2013,8 +2017,8 @@ AcpiDmDumpSdev (
+ NextSubtable:
+ /* Point to next subtable */
+
+- Offset += Subtable->Length;
++ Offset += SubtableLength;
+ Subtable = ACPI_ADD_PTR (ACPI_SDEV_HEADER, Subtable,
+- Subtable->Length);
++ SubtableLength);
+ }
+ }
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -1268,6 +1268,7 @@ DtCompileSdev (
+ ACPI_SDEV_PCIE *Pcie = NULL;
+ ACPI_SDEV_NAMESPACE *Namesp = NULL;
+ UINT32 EntryCount;
++ UINT16 Tmp16;
+
+
+ /* Subtables */
+@@ -1289,7 +1290,7 @@ DtCompileSdev (
+ DtPushSubtable (Subtable);
+
+ SdevHeader = ACPI_CAST_PTR (ACPI_SDEV_HEADER, Subtable->Buffer);
+- SdevHeader->Length = (UINT8)(sizeof (ACPI_SDEV_HEADER));
++ SdevHeader->Length = (UINT16) (sizeof (ACPI_SDEV_HEADER));
+
+ switch (SdevHeader->Type)
+ {
+@@ -1345,7 +1346,7 @@ DtCompileSdev (
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+- Namesp->DeviceIdOffset = sizeof (ACPI_SDEV_NAMESPACE);
++ Namesp->DeviceIdOffset = (UINT16) sizeof (ACPI_SDEV_NAMESPACE);
+ Namesp->DeviceIdLength = (UINT16) Subtable->Length;
+
+ /* Append Vendor data */
+@@ -1367,18 +1368,32 @@ DtCompileSdev (
+ ParentTable = DtPeekSubtable ();
+ DtInsertSubtable (ParentTable, Subtable);
+
+- Namesp->VendorDataOffset =
+- Namesp->DeviceIdOffset + Namesp->DeviceIdLength;
+- Namesp->VendorDataLength =
+- (UINT16) Subtable->Length;
++ Namesp->VendorDataOffset =
++ Namesp->DeviceIdOffset +
++ Namesp->DeviceIdLength;
++ Namesp->VendorDataLength = (UINT16) Subtable->Length;
+
+ /* Final size of entire namespace structure */
+
+- SdevHeader->Length = (UINT16)(sizeof(ACPI_SDEV_NAMESPACE) +
+- Subtable->Length + Namesp->DeviceIdLength);
++ SdevHeader->Length = (UINT16)
++ (sizeof(ACPI_SDEV_NAMESPACE) +
++ Subtable->Length +
++ Namesp->DeviceIdLength);
+ }
+ }
+
++ /* Make sure everything is now little-endian */
++ Tmp16 = AcpiUtReadUint16(&SdevHeader->Length);
++ SdevHeader->Length = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Namesp->DeviceIdOffset);
++ Namesp->DeviceIdOffset = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Namesp->DeviceIdLength);
++ Namesp->DeviceIdLength = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Namesp->VendorDataOffset);
++ Namesp->VendorDataOffset = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Namesp->VendorDataLength);
++ Namesp->VendorDataLength = Tmp16;
++
+ break;
+
+ case ACPI_SDEV_TYPE_PCIE_ENDPOINT_DEVICE:
+@@ -1408,9 +1423,9 @@ DtCompileSdev (
+
+ /* Path offset will point immediately after the main subtable */
+
+- Pcie->PathOffset = sizeof (ACPI_SDEV_PCIE);
++ Pcie->PathOffset = sizeof (ACPI_SDEV_PCIE);
+ Pcie->PathLength = (UINT16)
+- (EntryCount * sizeof (ACPI_SDEV_PCIE_PATH));
++ (EntryCount * sizeof (ACPI_SDEV_PCIE_PATH));
+
+ /* Append the Vendor Data last */
+
+@@ -1432,15 +1447,24 @@ DtCompileSdev (
+ DtInsertSubtable (ParentTable, Subtable);
+
+ Pcie->VendorDataOffset =
+- Pcie->PathOffset + Pcie->PathLength;
+- Pcie->VendorDataLength = (UINT16)
+- Subtable->Length;
++ Pcie->PathOffset + Pcie->PathLength;
++ Pcie->VendorDataLength = (UINT16) Subtable->Length;
+ }
+ }
+
+ SdevHeader->Length =
+- sizeof (ACPI_SDEV_PCIE) +
++ sizeof (ACPI_SDEV_PCIE) +
+ Pcie->PathLength + Pcie->VendorDataLength;
++ Tmp16 = AcpiUtReadUint16(&SdevHeader->Length);
++ SdevHeader->Length = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Pcie->PathOffset);
++ Pcie->PathOffset = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Pcie->PathLength);
++ Pcie->PathLength = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Pcie->VendorDataOffset);
++ Pcie->VendorDataOffset = Tmp16;
++ Tmp16 = AcpiUtReadUint16(&Pcie->VendorDataLength);
++ Pcie->VendorDataLength = Tmp16;
+ break;
+
+ default:
diff --git a/0025-Support-HMAT-in-a-big-endian-world.patch b/0025-Support-HMAT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..39ebf62
--- /dev/null
+++ b/0025-Support-HMAT-in-a-big-endian-world.patch
@@ -0,0 +1,278 @@
+From 03425774d2c19874ad4483ec6b7e13c0146e81f7 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 25 Sep 2020 16:56:55 -0600
+Subject: [PATCH 25/40] Support HMAT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump1.c | 70 ++++++++++++++++++++++----------------
+ source/compiler/dttable1.c | 24 ++++++++++---
+ 2 files changed, 59 insertions(+), 35 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump1.c
++++ acpica-unix2-20200925/source/common/dmtbdump1.c
+@@ -1301,37 +1301,45 @@ AcpiDmDumpHmat (
+ UINT32 Length;
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT32 i, j;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
++ UINT16 HmatStructType;
++ UINT32 HmatStructLength;
++ UINT32 InitPDs;
++ UINT32 TgtPDs;
++ UINT16 SMBIOSHandles;
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoHmat);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoHmat);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ Offset = sizeof (ACPI_TABLE_HMAT);
+
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ AcpiOsPrintf ("\n");
+
+ /* Dump HMAT structure header */
+
+ HmatStruct = ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, Table, Offset);
+- if (HmatStruct->Length < sizeof (ACPI_HMAT_STRUCTURE))
++ HmatStructLength = AcpiUtReadUint32(&HmatStruct->Length);
++ if (HmatStructLength < sizeof (ACPI_HMAT_STRUCTURE))
+ {
+ AcpiOsPrintf ("Invalid HMAT structure length\n");
+ return;
+ }
+- Status = AcpiDmDumpTable (Table->Length, Offset, HmatStruct,
+- HmatStruct->Length, AcpiDmTableInfoHmatHdr);
++ Status = AcpiDmDumpTable (TableLength, Offset, HmatStruct,
++ HmatStructLength, AcpiDmTableInfoHmatHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+
+- switch (HmatStruct->Type)
++ HmatStructType = AcpiUtReadUint16(&HmatStruct->Type);
++ switch (HmatStructType)
+ {
+ case ACPI_HMAT_TYPE_ADDRESS_RANGE:
+
+@@ -1354,7 +1362,7 @@ AcpiDmDumpHmat (
+ default:
+
+ AcpiOsPrintf ("\n**** Unknown HMAT structure type 0x%X\n",
+- HmatStruct->Type);
++ HmatStructType);
+
+ /* Attempt to continue */
+
+@@ -1363,13 +1371,13 @@ AcpiDmDumpHmat (
+
+ /* Dump HMAT structure body */
+
+- if (HmatStruct->Length < Length)
++ if (HmatStructLength < Length)
+ {
+ AcpiOsPrintf ("Invalid HMAT structure length\n");
+ return;
+ }
+- Status = AcpiDmDumpTable (Table->Length, Offset, HmatStruct,
+- HmatStruct->Length, InfoTable);
++ Status = AcpiDmDumpTable (TableLength, Offset, HmatStruct,
++ HmatStructLength, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1377,7 +1385,7 @@ AcpiDmDumpHmat (
+
+ /* Dump HMAT structure additionals */
+
+- switch (HmatStruct->Type)
++ switch (HmatStructType)
+ {
+ case ACPI_HMAT_TYPE_LOCALITY:
+
+@@ -1386,15 +1394,16 @@ AcpiDmDumpHmat (
+
+ /* Dump initiator proximity domains */
+
+- if ((UINT32)(HmatStruct->Length - SubtableOffset) <
+- (UINT32)(HmatLocality->NumberOfInitiatorPDs * 4))
++ InitPDs = AcpiUtReadUint32(&HmatLocality->NumberOfInitiatorPDs);
++ if ((UINT32)(HmatStructLength - SubtableOffset) <
++ (UINT32)(InitPDs * 4))
+ {
+ AcpiOsPrintf ("Invalid initiator proximity domain number\n");
+ return;
+ }
+- for (i = 0; i < HmatLocality->NumberOfInitiatorPDs; i++)
++ for (i = 0; i < InitPDs; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
+ 4, AcpiDmTableInfoHmat1a);
+ if (ACPI_FAILURE (Status))
+@@ -1407,15 +1416,16 @@ AcpiDmDumpHmat (
+
+ /* Dump target proximity domains */
+
+- if ((UINT32)(HmatStruct->Length - SubtableOffset) <
+- (UINT32)(HmatLocality->NumberOfTargetPDs * 4))
++ TgtPDs = AcpiUtReadUint32(&HmatLocality->NumberOfTargetPDs);
++ if ((UINT32)(HmatStructLength - SubtableOffset) <
++ (UINT32)(TgtPDs * 4))
+ {
+ AcpiOsPrintf ("Invalid target proximity domain number\n");
+ return;
+ }
+- for (i = 0; i < HmatLocality->NumberOfTargetPDs; i++)
++ for (i = 0; i < TgtPDs; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
+ 4, AcpiDmTableInfoHmat1b);
+ if (ACPI_FAILURE (Status))
+@@ -1428,18 +1438,17 @@ AcpiDmDumpHmat (
+
+ /* Dump latency/bandwidth entris */
+
+- if ((UINT32)(HmatStruct->Length - SubtableOffset) <
+- (UINT32)(HmatLocality->NumberOfInitiatorPDs *
+- HmatLocality->NumberOfTargetPDs * 2))
++ if ((UINT32)(HmatStructLength - SubtableOffset) <
++ (UINT32)(InitPDs * TgtPDs * 2))
+ {
+ AcpiOsPrintf ("Invalid latency/bandwidth entry number\n");
+ return;
+ }
+- for (i = 0; i < HmatLocality->NumberOfInitiatorPDs; i++)
++ for (i = 0; i < InitPDs; i++)
+ {
+- for (j = 0; j < HmatLocality->NumberOfTargetPDs; j++)
++ for (j = 0; j < TgtPDs; j++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
+ 2, AcpiDmTableInfoHmat1c);
+ if (ACPI_FAILURE(Status))
+@@ -1459,15 +1468,16 @@ AcpiDmDumpHmat (
+
+ /* Dump SMBIOS handles */
+
+- if ((UINT32)(HmatStruct->Length - SubtableOffset) <
+- (UINT32)(HmatCache->NumberOfSMBIOSHandles * 2))
++ SMBIOSHandles = AcpiUtReadUint16(&HmatCache->NumberOfSMBIOSHandles);
++ if ((UINT32)(HmatStructLength - SubtableOffset) <
++ (UINT32)(SMBIOSHandles * 2))
+ {
+ AcpiOsPrintf ("Invalid SMBIOS handle number\n");
+ return;
+ }
+- for (i = 0; i < HmatCache->NumberOfSMBIOSHandles; i++)
++ for (i = 0; i < SMBIOSHandles; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + SubtableOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_HMAT_STRUCTURE, HmatStruct, SubtableOffset),
+ 2, AcpiDmTableInfoHmat2a);
+ if (ACPI_FAILURE (Status))
+@@ -1487,6 +1497,6 @@ AcpiDmDumpHmat (
+ NextSubtable:
+ /* Point to next HMAT structure subtable */
+
+- Offset += (HmatStruct->Length);
++ Offset += (HmatStructLength);
+ }
+ }
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -1295,6 +1295,8 @@ DtCompileHmat (
+ UINT32 TgtPDNumber;
+ UINT64 EntryNumber;
+ UINT16 SMBIOSHandleNumber;
++ UINT16 HmatStructType;
++ UINT32 Length;
+
+
+ ParentTable = DtPeekSubtable ();
+@@ -1325,7 +1327,8 @@ DtCompileHmat (
+
+ /* Compile HMAT structure body */
+
+- switch (HmatStruct->Type)
++ HmatStructType = AcpiUtReadUint16(&HmatStruct->Type);
++ switch (HmatStructType)
+ {
+ case ACPI_HMAT_TYPE_ADDRESS_RANGE:
+
+@@ -1358,7 +1361,7 @@ DtCompileHmat (
+
+ /* Compile HMAT structure additionals */
+
+- switch (HmatStruct->Type)
++ switch (HmatStructType)
+ {
+ case ACPI_HMAT_TYPE_LOCALITY:
+
+@@ -1384,7 +1387,7 @@ DtCompileHmat (
+ HmatStruct->Length += Subtable->Length;
+ IntPDNumber++;
+ }
+- HmatLocality->NumberOfInitiatorPDs = IntPDNumber;
++ HmatLocality->NumberOfInitiatorPDs = AcpiUtReadUint32(&IntPDNumber);
+
+ /* Compile target proximity domain list */
+
+@@ -1405,7 +1408,7 @@ DtCompileHmat (
+ HmatStruct->Length += Subtable->Length;
+ TgtPDNumber++;
+ }
+- HmatLocality->NumberOfTargetPDs = TgtPDNumber;
++ HmatLocality->NumberOfTargetPDs = AcpiUtReadUint32(&TgtPDNumber);
+
+ /* Save start of the entries for reporting errors */
+
+@@ -1430,6 +1433,9 @@ DtCompileHmat (
+ HmatStruct->Length += Subtable->Length;
+ EntryNumber++;
+ }
++
++ Length = AcpiUtReadUint32(&HmatStruct->Length);
++ HmatStruct->Length = Length;
+
+ /* Validate number of entries */
+
+@@ -1464,11 +1470,19 @@ DtCompileHmat (
+ HmatStruct->Length += Subtable->Length;
+ SMBIOSHandleNumber++;
+ }
+- HmatCache->NumberOfSMBIOSHandles = SMBIOSHandleNumber;
++ HmatCache->NumberOfSMBIOSHandles =
++ AcpiUtReadUint16(&SMBIOSHandleNumber);
++
++ Length = AcpiUtReadUint32(&HmatStruct->Length);
++ HmatStruct->Length = Length;
++
+ break;
+
+ default:
+
++ Length = AcpiUtReadUint32(&HmatStruct->Length);
++ HmatStruct->Length = Length;
++
+ break;
+ }
+ }
diff --git a/0026-Support-PDTT-in-a-big-endian-world.patch b/0026-Support-PDTT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..5b4269f
--- /dev/null
+++ b/0026-Support-PDTT-in-a-big-endian-world.patch
@@ -0,0 +1,43 @@
+From afaa9043357a3b8adbaa1ea389a62da48f561896 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 25 Sep 2020 17:03:05 -0600
+Subject: [PATCH 26/40] Support PDTT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1385,13 +1385,13 @@ AcpiDmDumpPdtt (
+ {
+ ACPI_STATUS Status;
+ ACPI_PDTT_CHANNEL *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_PDTT);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPdtt);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoPdtt);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1400,10 +1400,10 @@ AcpiDmDumpPdtt (
+ /* Subtables. Currently there is only one type, but can be multiples */
+
+ Subtable = ACPI_ADD_PTR (ACPI_PDTT_CHANNEL, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ sizeof (ACPI_PDTT_CHANNEL), AcpiDmTableInfoPdtt0);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0027-Support-PPTT-in-a-big-endian-world.patch b/0027-Support-PPTT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..a047d45
--- /dev/null
+++ b/0027-Support-PPTT-in-a-big-endian-world.patch
@@ -0,0 +1,104 @@
+From c5d7294c6deb7fe87eac981234d4c484313d5e40 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 25 Sep 2020 17:16:12 -0600
+Subject: [PATCH 27/40] Support PPTT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 15 +++++++++------
+ source/compiler/dttable2.c | 7 +++++--
+ 2 files changed, 14 insertions(+), 8 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1649,6 +1649,8 @@ AcpiDmDumpPptt (
+ UINT32 Offset = sizeof (ACPI_TABLE_FPDT);
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT32 i;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
++ UINT32 NumPrivRes;
+
+
+ /* There is no main table (other than the standard ACPI header) */
+@@ -1656,7 +1658,7 @@ AcpiDmDumpPptt (
+ /* Subtables */
+
+ Offset = sizeof (ACPI_TABLE_HEADER);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ AcpiOsPrintf ("\n");
+
+@@ -1668,7 +1670,7 @@ AcpiDmDumpPptt (
+ AcpiOsPrintf ("Invalid subtable length\n");
+ return;
+ }
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Length, AcpiDmTableInfoPpttHdr);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -1710,7 +1712,7 @@ AcpiDmDumpPptt (
+ AcpiOsPrintf ("Invalid subtable length\n");
+ return;
+ }
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -1726,15 +1728,16 @@ AcpiDmDumpPptt (
+
+ /* Dump SMBIOS handles */
+
++ NumPrivRes = AcpiUtReadUint32(&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 (TableLength, Offset + SubtableOffset,
+ ACPI_ADD_PTR (ACPI_SUBTABLE_HEADER, Subtable, SubtableOffset),
+ 4, AcpiDmTableInfoPptt0a);
+ if (ACPI_FAILURE (Status))
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -1028,6 +1028,7 @@ DtCompilePptt (
+ ACPI_DMTABLE_INFO *InfoTable;
+ DT_FIELD **PFieldList = (DT_FIELD **) List;
+ DT_FIELD *SubtableStart;
++ UINT32 NumPrivRes;
+
+
+ ParentTable = DtPeekSubtable ();
+@@ -1092,7 +1093,7 @@ DtCompilePptt (
+ {
+ /* Compile initiator proximity domain list */
+
+- PpttProcessor->NumberOfPrivResources = 0;
++ NumPrivRes = 0;
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList,
+@@ -1108,8 +1109,10 @@ DtCompilePptt (
+
+ DtInsertSubtable (ParentTable, Subtable);
+ PpttHeader->Length += (UINT8)(Subtable->Length);
+- PpttProcessor->NumberOfPrivResources++;
++ NumPrivRes++;
+ }
++ PpttProcessor->NumberOfPrivResources =
++ AcpiUtReadUint32(&NumPrivRes);
+ }
+ break;
+
diff --git a/0028-Support-PCCT-in-a-big-endian-world.patch b/0028-Support-PCCT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..49607ea
--- /dev/null
+++ b/0028-Support-PCCT-in-a-big-endian-world.patch
@@ -0,0 +1,54 @@
+From 661f59c00e991553fb3f5fe7786eb0e2f640805c Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 25 Sep 2020 17:39:34 -0600
+Subject: [PATCH 28/40] Support PCCT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1286,13 +1286,13 @@ AcpiDmDumpPcct (
+ ACPI_STATUS Status;
+ ACPI_PCCT_SUBSPACE *Subtable;
+ ACPI_DMTABLE_INFO *InfoTable;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_PCCT);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPcct);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoPcct);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1301,12 +1301,12 @@ AcpiDmDumpPcct (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_PCCT_SUBSPACE, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Header.Length, AcpiDmTableInfoPcctHdr);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -1349,7 +1349,7 @@ AcpiDmDumpPcct (
+ }
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Subtable->Header.Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0029-Support-WDAT-in-a-big-endian-world.patch b/0029-Support-WDAT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..3e0661c
--- /dev/null
+++ b/0029-Support-WDAT-in-a-big-endian-world.patch
@@ -0,0 +1,43 @@
+From 520e143b2bacb39032c06a33f61ae05583be6b2a Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Fri, 25 Sep 2020 18:13:20 -0600
+Subject: [PATCH 29/40] Support WDAT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -568,11 +568,12 @@ AcpiDmDumpWdat (
+ ACPI_STATUS Status;
+ UINT32 Offset = sizeof (ACPI_TABLE_WDAT);
+ ACPI_WDAT_ENTRY *Subtable;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoWdat);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoWdat);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -581,12 +582,12 @@ AcpiDmDumpWdat (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_WDAT_ENTRY, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ sizeof (ACPI_WDAT_ENTRY), AcpiDmTableInfoWdat0);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0030-Support-TCPA-in-a-big-endian-world.patch b/0030-Support-TCPA-in-a-big-endian-world.patch
new file mode 100644
index 0000000..4c9780e
--- /dev/null
+++ b/0030-Support-TCPA-in-a-big-endian-world.patch
@@ -0,0 +1,76 @@
+From b2e9a4397077ad56fea5a8b3f9f63ce3be65ae48 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Sun, 27 Sep 2020 12:09:28 -0600
+Subject: [PATCH 30/40] Support TCPA in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 13 ++++++++-----
+ source/compiler/dttable2.c | 4 +++-
+ 2 files changed, 11 insertions(+), 6 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -342,11 +342,13 @@ AcpiDmDumpTcpa (
+ ACPI_TABLE_TCPA_HDR *Subtable = ACPI_ADD_PTR (
+ ACPI_TABLE_TCPA_HDR, Table, Offset);
+ ACPI_STATUS Status;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
++ UINT16 PlatformClass;
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table,
++ Status = AcpiDmDumpTable (TableLength, 0, Table,
+ 0, AcpiDmTableInfoTcpaHdr);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -357,18 +359,19 @@ AcpiDmDumpTcpa (
+ * Examine the PlatformClass field to determine the table type.
+ * Either a client or server table. Only one.
+ */
+- switch (CommonHeader->PlatformClass)
++ PlatformClass = AcpiUtReadUint16(&CommonHeader->PlatformClass);
++ switch (PlatformClass)
+ {
+ case ACPI_TCPA_CLIENT_TABLE:
+
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ Table->Length - Offset, AcpiDmTableInfoTcpaClient);
+ break;
+
+ case ACPI_TCPA_SERVER_TABLE:
+
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Table->Length - Offset, AcpiDmTableInfoTcpaServer);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ TableLength - Offset, AcpiDmTableInfoTcpaServer);
+ break;
+
+ default:
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -1773,6 +1773,7 @@ DtCompileTcpa (
+ ACPI_TABLE_TCPA_HDR *TcpaHeader;
+ DT_SUBTABLE *ParentTable;
+ ACPI_STATUS Status;
++ UINT16 PlatformClass;
+
+
+ /* Compile the main table */
+@@ -1793,7 +1794,8 @@ DtCompileTcpa (
+ */
+ TcpaHeader = ACPI_CAST_PTR (ACPI_TABLE_TCPA_HDR, ParentTable->Buffer);
+
+- switch (TcpaHeader->PlatformClass)
++ PlatformClass = AcpiUtReadUint16(&TcpaHeader->PlatformClass);
++ switch (PlatformClass)
+ {
+ case ACPI_TCPA_CLIENT_TABLE:
+
diff --git a/0031-Support-STAO-in-a-big-endian-world.patch b/0031-Support-STAO-in-a-big-endian-world.patch
new file mode 100644
index 0000000..7ea55bc
--- /dev/null
+++ b/0031-Support-STAO-in-a-big-endian-world.patch
@@ -0,0 +1,40 @@
+From 63fc38478f12b8c8b0d263d25f72ff7538fba2ce Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Mon, 28 Sep 2020 11:49:42 -0600
+Subject: [PATCH 31/40] Support STAO in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -285,14 +285,14 @@ AcpiDmDumpStao (
+ {
+ ACPI_STATUS Status;
+ char *Namepath;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT32 StringLength;
+ UINT32 Offset = sizeof (ACPI_TABLE_STAO);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoStao);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoStao);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -300,7 +300,7 @@ AcpiDmDumpStao (
+
+ /* The rest of the table consists of Namepath strings */
+
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ Namepath = ACPI_ADD_PTR (char, Table, Offset);
+ StringLength = strlen (Namepath) + 1;
diff --git a/0032-Support-SLIC-and-MSDM-in-a-big-endian-world.patch b/0032-Support-SLIC-and-MSDM-in-a-big-endian-world.patch
new file mode 100644
index 0000000..bc20a15
--- /dev/null
+++ b/0032-Support-SLIC-and-MSDM-in-a-big-endian-world.patch
@@ -0,0 +1,27 @@
+From 0455d918688d9d208644d7f5f6f10d6199486e9c Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Mon, 28 Sep 2020 12:49:23 -0600
+Subject: [PATCH 32/40] Support SLIC and MSDM in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -68,9 +68,10 @@ void
+ AcpiDmDumpSlic (
+ ACPI_TABLE_HEADER *Table)
+ {
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+- (void) AcpiDmDumpTable (Table->Length, sizeof (ACPI_TABLE_HEADER), Table,
+- Table->Length - sizeof (*Table), AcpiDmTableInfoSlic);
++ (void) AcpiDmDumpTable (TableLength, sizeof (ACPI_TABLE_HEADER), Table,
++ TableLength - sizeof (*Table), AcpiDmTableInfoSlic);
+ }
+
+
diff --git a/0033-Support-MCFG-in-a-big-endian-world.patch b/0033-Support-MCFG-in-a-big-endian-world.patch
new file mode 100644
index 0000000..f50441b
--- /dev/null
+++ b/0033-Support-MCFG-in-a-big-endian-world.patch
@@ -0,0 +1,50 @@
+From 0fecc447cd64bf9da3345b2912e41e6005eb1011 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Mon, 28 Sep 2020 13:01:18 -0600
+Subject: [PATCH 33/40] Support MCFG in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -769,11 +769,12 @@ AcpiDmDumpMcfg (
+ ACPI_STATUS Status;
+ UINT32 Offset = sizeof (ACPI_TABLE_MCFG);
+ ACPI_MCFG_ALLOCATION *Subtable;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoMcfg);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoMcfg);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -782,17 +783,17 @@ AcpiDmDumpMcfg (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_MCFG_ALLOCATION, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+- if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > Table->Length)
++ if (Offset + sizeof (ACPI_MCFG_ALLOCATION) > TableLength)
+ {
+ AcpiOsPrintf ("Warning: there are %u invalid trailing bytes\n",
+- (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - Table->Length));
++ (UINT32) sizeof (ACPI_MCFG_ALLOCATION) - (Offset - TableLength));
+ return;
+ }
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ sizeof (ACPI_MCFG_ALLOCATION), AcpiDmTableInfoMcfg0);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0034-Support-LPIT-in-a-big-endian-world.patch b/0034-Support-LPIT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..fd68c2a
--- /dev/null
+++ b/0034-Support-LPIT-in-a-big-endian-world.patch
@@ -0,0 +1,46 @@
+From b521edcfceab513a900a000aa462d7f86b65a040 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Mon, 28 Sep 2020 16:49:30 -0600
+Subject: [PATCH 34/40] Support LPIT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -534,7 +534,7 @@ AcpiDmDumpLpit (
+ {
+ ACPI_STATUS Status;
+ ACPI_LPIT_HEADER *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_LPIT);
+ ACPI_DMTABLE_INFO *InfoTable;
+ UINT32 SubtableLength;
+@@ -543,11 +543,11 @@ AcpiDmDumpLpit (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_LPIT_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ sizeof (ACPI_LPIT_HEADER), AcpiDmTableInfoLpitHdr);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -571,7 +571,7 @@ AcpiDmDumpLpit (
+ return;
+ }
+
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
+ SubtableLength, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
diff --git a/0035-Support-PMTT-in-a-big-endian-world.patch b/0035-Support-PMTT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..b6aaee6
--- /dev/null
+++ b/0035-Support-PMTT-in-a-big-endian-world.patch
@@ -0,0 +1,216 @@
+From b55af37d2419fc5ea630774f49b4ed9b724451b3 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Mon, 28 Sep 2020 18:37:04 -0600
+Subject: [PATCH 35/40] Support PMTT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 66 +++++++++++++++++++++-----------------
+ source/compiler/dttable2.c | 5 ++-
+ 2 files changed, 41 insertions(+), 30 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -1442,17 +1442,21 @@ AcpiDmDumpPmtt (
+ ACPI_PMTT_HEADER *MemSubtable;
+ ACPI_PMTT_HEADER *DimmSubtable;
+ ACPI_PMTT_DOMAIN *DomainArray;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT32 Offset = sizeof (ACPI_TABLE_PMTT);
+ UINT32 MemOffset;
+ UINT32 DimmOffset;
+ UINT32 DomainOffset;
+ UINT32 DomainCount;
++ UINT16 SubtableLength;
++ UINT16 MemSubtableLength;
++ UINT16 DimmSubtableLength;
++ UINT16 Tmp16;
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoPmtt);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoPmtt);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1461,13 +1465,14 @@ AcpiDmDumpPmtt (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
+- Subtable->Length, AcpiDmTableInfoPmttHdr);
++ SubtableLength = AcpiUtReadUint16(&Subtable->Length);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, AcpiDmTableInfoPmttHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1485,8 +1490,8 @@ AcpiDmDumpPmtt (
+
+ /* Dump the fixed-length portion of the subtable */
+
+- Status = AcpiDmDumpTable (Length, Offset, Subtable,
+- Subtable->Length, AcpiDmTableInfoPmtt0);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, AcpiDmTableInfoPmtt0);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1498,15 +1503,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) < TableLength) &&
++ (MemOffset < SubtableLength))
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Length,
++ MemSubtableLength = AcpiUtReadUint16(&MemSubtable->Length);
++ Status = AcpiDmDumpTable (TableLength,
+ Offset + MemOffset, MemSubtable,
+- MemSubtable->Length, AcpiDmTableInfoPmttHdr);
++ MemSubtableLength, AcpiDmTableInfoPmttHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1524,9 +1530,9 @@ AcpiDmDumpPmtt (
+
+ /* Dump the fixed-length portion of the controller subtable */
+
+- Status = AcpiDmDumpTable (Length,
++ Status = AcpiDmDumpTable (TableLength,
+ Offset + MemOffset, MemSubtable,
+- MemSubtable->Length, AcpiDmTableInfoPmtt1);
++ MemSubtableLength, AcpiDmTableInfoPmtt1);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1534,16 +1540,17 @@ AcpiDmDumpPmtt (
+
+ /* Walk the variable count of proximity domains */
+
+- DomainCount = ((ACPI_PMTT_CONTROLLER *) MemSubtable)->DomainCount;
++ Tmp16 = ((ACPI_PMTT_CONTROLLER *) MemSubtable)->DomainCount;
++ DomainCount = AcpiUtReadUint16(&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) < TableLength) &&
++ ((MemOffset + DomainOffset) < SubtableLength) &&
+ DomainCount)
+ {
+- Status = AcpiDmDumpTable (Length,
++ Status = AcpiDmDumpTable (TableLength,
+ Offset + MemOffset + DomainOffset, DomainArray,
+ sizeof (ACPI_PMTT_DOMAIN), AcpiDmTableInfoPmtt1a);
+ if (ACPI_FAILURE (Status))
+@@ -1568,15 +1575,16 @@ AcpiDmDumpPmtt (
+ DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER, MemSubtable,
+ DomainOffset);
+
+- while (((Offset + MemOffset + DimmOffset) < Table->Length) &&
+- (DimmOffset < MemSubtable->Length))
++ while (((Offset + MemOffset + DimmOffset) < TableLength) &&
++ (DimmOffset < MemSubtableLength))
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Length,
++ DimmSubtableLength = AcpiUtReadUint16(&DimmSubtable->Length);
++ Status = AcpiDmDumpTable (TableLength,
+ Offset + MemOffset + DimmOffset, DimmSubtable,
+- DimmSubtable->Length, AcpiDmTableInfoPmttHdr);
++ DimmSubtableLength, AcpiDmTableInfoPmttHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1594,9 +1602,9 @@ AcpiDmDumpPmtt (
+
+ /* Dump the fixed-length DIMM subtable */
+
+- Status = AcpiDmDumpTable (Length,
++ Status = AcpiDmDumpTable (TableLength,
+ Offset + MemOffset + DimmOffset, DimmSubtable,
+- DimmSubtable->Length, AcpiDmTableInfoPmtt2);
++ DimmSubtableLength, AcpiDmTableInfoPmtt2);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -1604,23 +1612,23 @@ AcpiDmDumpPmtt (
+
+ /* Point to next DIMM subtable */
+
+- DimmOffset += DimmSubtable->Length;
++ DimmOffset += DimmSubtableLength;
+ DimmSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
+- DimmSubtable, DimmSubtable->Length);
++ DimmSubtable, DimmSubtableLength);
+ }
+
+ /* Point to next Controller subtable */
+
+- MemOffset += MemSubtable->Length;
++ MemOffset += MemSubtableLength;
+ MemSubtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
+- MemSubtable, MemSubtable->Length);
++ MemSubtable, MemSubtableLength);
+ }
+
+ /* Point to next Socket subtable */
+
+- Offset += Subtable->Length;
++ Offset += SubtableLength;
+ Subtable = ACPI_ADD_PTR (ACPI_PMTT_HEADER,
+- Subtable, Subtable->Length);
++ Subtable, SubtableLength);
+ }
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -885,6 +885,7 @@ DtCompilePmtt (
+ ACPI_PMTT_HEADER *PmttHeader;
+ ACPI_PMTT_CONTROLLER *PmttController;
+ UINT16 DomainCount;
++ UINT16 Length;
+ UINT8 PrevType = ACPI_PMTT_TYPE_SOCKET;
+
+
+@@ -929,6 +930,8 @@ DtCompilePmtt (
+ DtInsertSubtable (ParentTable, Subtable);
+ DtPushSubtable (Subtable);
+
++ Length = AcpiUtReadUint16(&PmttHeader->Length);
++ PmttHeader->Length = Length;
+ switch (PmttHeader->Type)
+ {
+ case ACPI_PMTT_TYPE_SOCKET:
+@@ -962,7 +965,7 @@ DtCompilePmtt (
+
+ PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER,
+ (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER)));
+- DomainCount = PmttController->DomainCount;
++ DomainCount = AcpiUtReadUint16(&PmttController->DomainCount);
+
+ while (DomainCount)
+ {
diff --git a/0036-Support-IORT-in-a-big-endian-world.patch b/0036-Support-IORT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..e44456e
--- /dev/null
+++ b/0036-Support-IORT-in-a-big-endian-world.patch
@@ -0,0 +1,365 @@
+From 88d16feb9d6982cc9c09f2ae9b76b26f0d9c96e0 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 30 Sep 2020 17:48:04 -0600
+Subject: [PATCH 36/40] Support IORT in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 73 ++++++++++++++++++++++----------------
+ source/compiler/dttable1.c | 37 ++++++++++---------
+ 2 files changed, 64 insertions(+), 46 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -75,16 +75,19 @@ AcpiDmDumpIort (
+ ACPI_IORT_SMMU *IortSmmu = NULL;
+ UINT32 Offset;
+ UINT32 NodeOffset;
++ UINT32 NodeLength;
+ UINT32 Length;
+ ACPI_DMTABLE_INFO *InfoTable;
+ char *String;
+ UINT32 i;
+ UINT32 MappingByteLength;
++ UINT32 MappingCount;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIort);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoIort);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -95,25 +98,26 @@ AcpiDmDumpIort (
+
+ /* Dump the OptionalPadding (optional) */
+
+- if (Iort->NodeOffset > Offset)
++ NodeOffset = AcpiUtReadUint32(&Iort->NodeOffset);
++ if (NodeOffset > Offset)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset, Table,
+- Iort->NodeOffset - Offset, AcpiDmTableInfoIortPad);
++ Status = AcpiDmDumpTable (TableLength, Offset, Table,
++ NodeOffset - Offset, AcpiDmTableInfoIortPad);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+ }
+ }
+
+- Offset = Iort->NodeOffset;
+- while (Offset < Table->Length)
++ Offset = AcpiUtReadUint32(&Iort->NodeOffset);
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ IortNode = ACPI_ADD_PTR (ACPI_IORT_NODE, Table, Offset);
+ AcpiOsPrintf ("\n");
+ Length = ACPI_OFFSET (ACPI_IORT_NODE, NodeData);
+- Status = AcpiDmDumpTable (Table->Length, Offset,
++ Status = AcpiDmDumpTable (TableLength, Offset,
+ IortNode, Length, AcpiDmTableInfoIortHdr);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -142,7 +146,7 @@ AcpiDmDumpIort (
+ case ACPI_IORT_NODE_PCI_ROOT_COMPLEX:
+
+ InfoTable = AcpiDmTableInfoIort2;
+- Length = IortNode->Length - NodeOffset;
++ Length = AcpiUtReadUint16(&IortNode->Length) - NodeOffset;
+ break;
+
+ case ACPI_IORT_NODE_SMMU:
+@@ -155,13 +159,13 @@ AcpiDmDumpIort (
+ case ACPI_IORT_NODE_SMMU_V3:
+
+ InfoTable = AcpiDmTableInfoIort4;
+- Length = IortNode->Length - NodeOffset;
++ Length = AcpiUtReadUint16(&IortNode->Length) - NodeOffset;
+ break;
+
+ case ACPI_IORT_NODE_PMCG:
+
+ InfoTable = AcpiDmTableInfoIort5;
+- Length = IortNode->Length - NodeOffset;
++ Length = AcpiUtReadUint16(&IortNode->Length) - NodeOffset;
+ break;
+
+ default:
+@@ -171,7 +175,7 @@ AcpiDmDumpIort (
+
+ /* Attempt to continue */
+
+- if (!IortNode->Length)
++ if (!AcpiUtReadUint16(&IortNode->Length))
+ {
+ AcpiOsPrintf ("Invalid zero length IORT node\n");
+ return;
+@@ -182,7 +186,7 @@ AcpiDmDumpIort (
+ /* Dump the node subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
+ Length, InfoTable);
+ if (ACPI_FAILURE (Status))
+@@ -202,9 +206,11 @@ AcpiDmDumpIort (
+
+ if (IortItsGroup)
+ {
+- for (i = 0; i < IortItsGroup->ItsCount; i++)
++ UINT32 ItsCount = AcpiUtReadUint32(&IortItsGroup->ItsCount);
++
++ for (i = 0; i < ItsCount; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
+ 4, AcpiDmTableInfoIort0a);
+ if (ACPI_FAILURE (Status))
+@@ -221,12 +227,14 @@ AcpiDmDumpIort (
+
+ /* Dump the Padding (optional) */
+
+- if (IortNode->Length > NodeOffset)
++ NodeLength = AcpiUtReadUint16(&IortNode->Length);
++ if (NodeLength > NodeOffset)
+ {
+ MappingByteLength =
+- IortNode->MappingCount * sizeof (ACPI_IORT_ID_MAPPING);
+- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
+- Table, IortNode->Length - NodeOffset - MappingByteLength,
++ AcpiUtReadUint32(&IortNode->MappingCount) *
++ sizeof (ACPI_IORT_ID_MAPPING);
++ Status = AcpiDmDumpTable (TableLength, Offset + NodeOffset,
++ Table, NodeLength - NodeOffset - MappingByteLength,
+ AcpiDmTableInfoIort1a);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -243,9 +251,11 @@ AcpiDmDumpIort (
+
+ if (IortSmmu)
+ {
++ UINT32 InterruptCount;
++
+ Length = 2 * sizeof (UINT64);
+- NodeOffset = IortSmmu->GlobalInterruptOffset;
+- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
++ NodeOffset = AcpiUtReadUint32(&IortSmmu->GlobalInterruptOffset);
++ Status = AcpiDmDumpTable (TableLength, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
+ Length, AcpiDmTableInfoIort3a);
+ if (ACPI_FAILURE (Status))
+@@ -253,10 +263,11 @@ AcpiDmDumpIort (
+ return;
+ }
+
+- NodeOffset = IortSmmu->ContextInterruptOffset;
+- for (i = 0; i < IortSmmu->ContextInterruptCount; i++)
++ NodeOffset = AcpiUtReadUint32(&IortSmmu->ContextInterruptOffset);
++ InterruptCount = AcpiUtReadUint32(&IortSmmu->ContextInterruptCount);
++ for (i = 0; i < InterruptCount; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
+ 8, AcpiDmTableInfoIort3b);
+ if (ACPI_FAILURE (Status))
+@@ -267,10 +278,11 @@ AcpiDmDumpIort (
+ NodeOffset += 8;
+ }
+
+- NodeOffset = IortSmmu->PmuInterruptOffset;
+- for (i = 0; i < IortSmmu->PmuInterruptCount; i++)
++ NodeOffset = AcpiUtReadUint32(&IortSmmu->PmuInterruptOffset);
++ InterruptCount = AcpiUtReadUint32(&IortSmmu->PmuInterruptCount);
++ for (i = 0; i < InterruptCount; i++)
+ {
+- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
+ 8, AcpiDmTableInfoIort3c);
+ if (ACPI_FAILURE (Status))
+@@ -290,12 +302,13 @@ AcpiDmDumpIort (
+
+ /* Dump the ID mappings */
+
+- NodeOffset = IortNode->MappingOffset;
+- for (i = 0; i < IortNode->MappingCount; i++)
++ NodeOffset = AcpiUtReadUint32(&IortNode->MappingOffset);
++ MappingCount = AcpiUtReadUint32(&IortNode->MappingCount);
++ for (i = 0; i < MappingCount; i++)
+ {
+ AcpiOsPrintf ("\n");
+ Length = sizeof (ACPI_IORT_ID_MAPPING);
+- Status = AcpiDmDumpTable (Table->Length, Offset + NodeOffset,
++ Status = AcpiDmDumpTable (TableLength, Offset + NodeOffset,
+ ACPI_ADD_PTR (ACPI_IORT_NODE, IortNode, NodeOffset),
+ Length, AcpiDmTableInfoIortMap);
+ if (ACPI_FAILURE (Status))
+@@ -309,7 +322,7 @@ AcpiDmDumpIort (
+ NextSubtable:
+ /* Point to next node subtable */
+
+- Offset += IortNode->Length;
++ Offset += AcpiUtReadUint16(&IortNode->Length);
+ }
+ }
+
+Index: acpica-unix2-20200925/source/compiler/dttable1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable1.c
++++ acpica-unix2-20200925/source/compiler/dttable1.c
+@@ -1516,6 +1516,7 @@ DtCompileIort (
+ ACPI_IORT_NODE *IortNode;
+ ACPI_IORT_ITS_GROUP *IortItsGroup;
+ ACPI_IORT_SMMU *IortSmmu;
++ UINT32 IortNodeOffset;
+ UINT32 NodeNumber;
+ UINT32 NodeLength;
+ UINT32 IdMappingNumber;
+@@ -1548,7 +1549,7 @@ DtCompileIort (
+ * Optionally allows the generic data types to be used for filling
+ * this field.
+ */
+- Iort->NodeOffset = sizeof (ACPI_TABLE_IORT);
++ IortNodeOffset = sizeof (ACPI_TABLE_IORT);
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortPad,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+@@ -1558,7 +1559,7 @@ DtCompileIort (
+ if (Subtable)
+ {
+ DtInsertSubtable (ParentTable, Subtable);
+- Iort->NodeOffset += Subtable->Length;
++ IortNodeOffset += Subtable->Length;
+ }
+ else
+ {
+@@ -1568,8 +1569,9 @@ DtCompileIort (
+ {
+ return (Status);
+ }
+- Iort->NodeOffset += PaddingLength;
++ IortNodeOffset += PaddingLength;
+ }
++ Iort->NodeOffset = AcpiUtReadUint32(&IortNodeOffset);
+
+ NodeNumber = 0;
+ while (*PFieldList)
+@@ -1623,7 +1625,7 @@ DtCompileIort (
+ ItsNumber++;
+ }
+
+- IortItsGroup->ItsCount = ItsNumber;
++ IortItsGroup->ItsCount = AcpiUtReadUint32(&ItsNumber);
+ break;
+
+ case ACPI_IORT_NODE_NAMED_COMPONENT:
+@@ -1657,15 +1659,18 @@ DtCompileIort (
+ }
+ else
+ {
+- if (NodeLength > IortNode->MappingOffset)
++ UINT32 MappingOffset;
++
++ MappingOffset = IortNode->MappingOffset;
++ if (NodeLength > MappingOffset)
+ {
+ return (AE_BAD_DATA);
+ }
+
+- if (NodeLength < IortNode->MappingOffset)
++ if (NodeLength < MappingOffset)
+ {
+ Status = DtCompilePadding (
+- IortNode->MappingOffset - NodeLength,
++ MappingOffset - NodeLength,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -1673,7 +1678,7 @@ DtCompileIort (
+ }
+
+ DtInsertSubtable (ParentTable, Subtable);
+- NodeLength = IortNode->MappingOffset;
++ NodeLength = MappingOffset;
+ }
+ }
+ break;
+@@ -1706,7 +1711,7 @@ DtCompileIort (
+
+ /* Compile global interrupt array */
+
+- IortSmmu->GlobalInterruptOffset = NodeLength;
++ IortSmmu->GlobalInterruptOffset = AcpiUtReadUint32(&NodeLength);
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3a,
+ &Subtable);
+ if (ACPI_FAILURE (Status))
+@@ -1720,7 +1725,7 @@ DtCompileIort (
+ /* Compile context interrupt array */
+
+ ContextIrptNumber = 0;
+- IortSmmu->ContextInterruptOffset = NodeLength;
++ IortSmmu->ContextInterruptOffset = AcpiUtReadUint32(&NodeLength);
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3b,
+@@ -1740,12 +1745,12 @@ DtCompileIort (
+ ContextIrptNumber++;
+ }
+
+- IortSmmu->ContextInterruptCount = ContextIrptNumber;
++ IortSmmu->ContextInterruptCount = AcpiUtReadUint32(&ContextIrptNumber);
+
+ /* Compile PMU interrupt array */
+
+ PmuIrptNumber = 0;
+- IortSmmu->PmuInterruptOffset = NodeLength;
++ IortSmmu->PmuInterruptOffset = AcpiUtReadUint32(&NodeLength);
+ while (*PFieldList)
+ {
+ Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3c,
+@@ -1765,7 +1770,7 @@ DtCompileIort (
+ PmuIrptNumber++;
+ }
+
+- IortSmmu->PmuInterruptCount = PmuIrptNumber;
++ IortSmmu->PmuInterruptCount = AcpiUtReadUint32(&PmuIrptNumber);
+ break;
+
+ case ACPI_IORT_NODE_SMMU_V3:
+@@ -1802,7 +1807,7 @@ DtCompileIort (
+
+ /* Compile Array of ID mappings */
+
+- IortNode->MappingOffset = NodeLength;
++ IortNode->MappingOffset = AcpiUtReadUint32(&NodeLength);
+ IdMappingNumber = 0;
+ while (*PFieldList)
+ {
+@@ -1823,7 +1828,7 @@ DtCompileIort (
+ IdMappingNumber++;
+ }
+
+- IortNode->MappingCount = IdMappingNumber;
++ IortNode->MappingCount = AcpiUtReadUint32(&IdMappingNumber);
+ if (!IdMappingNumber)
+ {
+ IortNode->MappingOffset = 0;
+@@ -1838,7 +1843,7 @@ DtCompileIort (
+ NodeNumber++;
+ }
+
+- Iort->NodeCount = NodeNumber;
++ Iort->NodeCount = AcpiUtReadUint32(&NodeNumber);
+ return (AE_OK);
+ }
+
diff --git a/0037-Support-IVRS-in-a-big-endian-world.patch b/0037-Support-IVRS-in-a-big-endian-world.patch
new file mode 100644
index 0000000..53f8bf2
--- /dev/null
+++ b/0037-Support-IVRS-in-a-big-endian-world.patch
@@ -0,0 +1,96 @@
+From 49b3d77990241c7216412d78e52cf15b3aa6d1ad Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 30 Sep 2020 18:18:07 -0600
+Subject: [PATCH 37/40] Support IVRS in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump2.c | 25 ++++++++++++++-----------
+ 1 file changed, 14 insertions(+), 11 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump2.c
++++ acpica-unix2-20200925/source/common/dmtbdump2.c
+@@ -353,11 +353,13 @@ AcpiDmDumpIvrs (
+ ACPI_IVRS_DE_HEADER *DeviceEntry;
+ ACPI_IVRS_HEADER *Subtable;
+ ACPI_DMTABLE_INFO *InfoTable;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
++ UINT16 SubtableLength;
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoIvrs);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoIvrs);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -366,13 +368,14 @@ AcpiDmDumpIvrs (
+ /* Subtables */
+
+ Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Table, Offset);
+- while (Offset < Table->Length)
++ while (Offset < TableLength)
+ {
+ /* Common subtable header */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Subtable->Length, AcpiDmTableInfoIvrsHdr);
++ SubtableLength = AcpiUtReadUint16(&Subtable->Length);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, AcpiDmTableInfoIvrsHdr);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -404,7 +407,7 @@ AcpiDmDumpIvrs (
+
+ /* Attempt to continue */
+
+- if (!Subtable->Length)
++ if (!SubtableLength)
+ {
+ AcpiOsPrintf ("Invalid zero length subtable\n");
+ return;
+@@ -415,8 +418,8 @@ AcpiDmDumpIvrs (
+ /* Dump the subtable */
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Subtable->Length, InfoTable);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ SubtableLength, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -442,7 +445,7 @@ AcpiDmDumpIvrs (
+ sizeof (ACPI_IVRS_HARDWARE2));
+ }
+
+- while (EntryOffset < (Offset + Subtable->Length))
++ while (EntryOffset < (Offset + SubtableLength))
+ {
+ AcpiOsPrintf ("\n");
+ /*
+@@ -504,7 +507,7 @@ AcpiDmDumpIvrs (
+
+ /* Dump the Device Entry */
+
+- Status = AcpiDmDumpTable (Table->Length, EntryOffset,
++ Status = AcpiDmDumpTable (TableLength, EntryOffset,
+ DeviceEntry, EntryLength, InfoTable);
+ if (ACPI_FAILURE (Status))
+ {
+@@ -520,8 +523,8 @@ AcpiDmDumpIvrs (
+ NextSubtable:
+ /* Point to next subtable */
+
+- Offset += Subtable->Length;
+- Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Subtable, Subtable->Length);
++ Offset += SubtableLength;
++ Subtable = ACPI_ADD_PTR (ACPI_IVRS_HEADER, Subtable, SubtableLength);
+ }
+ }
+
diff --git a/0038-Support-TPM2-in-a-big-endian-world.patch b/0038-Support-TPM2-in-a-big-endian-world.patch
new file mode 100644
index 0000000..b0298bb
--- /dev/null
+++ b/0038-Support-TPM2-in-a-big-endian-world.patch
@@ -0,0 +1,119 @@
+From 1e1129d788087025cf31b0c3babdb9bca01f1c4e Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 30 Sep 2020 18:42:38 -0600
+Subject: [PATCH 38/40] Support TPM2 in a big-endian world
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 18 ++++++++++--------
+ source/compiler/dttable2.c | 8 +++++---
+ 2 files changed, 15 insertions(+), 11 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -409,11 +409,12 @@ AcpiDmDumpTpm2Rev3 (
+ ACPI_TABLE_TPM23 *CommonHeader = ACPI_CAST_PTR (ACPI_TABLE_TPM23, Table);
+ ACPI_TPM23_TRAILER *Subtable = ACPI_ADD_PTR (ACPI_TPM23_TRAILER, Table, Offset);
+ ACPI_STATUS Status;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoTpm23);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoTpm23);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -425,8 +426,8 @@ AcpiDmDumpTpm2Rev3 (
+ {
+ case ACPI_TPM23_ACPI_START_METHOD:
+
+- (void) AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Table->Length - Offset, AcpiDmTableInfoTpm23a);
++ (void) AcpiDmDumpTable (TableLength, Offset, Subtable,
++ TableLength - Offset, AcpiDmTableInfoTpm23a);
+ break;
+
+ default:
+@@ -456,6 +457,7 @@ AcpiDmDumpTpm2 (
+ ACPI_TPM2_TRAILER *Subtable = ACPI_ADD_PTR (ACPI_TPM2_TRAILER, Table, Offset);
+ ACPI_TPM2_ARM_SMC *ArmSubtable;
+ ACPI_STATUS Status;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+
+
+ if (Table->Revision == 3)
+@@ -466,7 +468,7 @@ AcpiDmDumpTpm2 (
+
+ /* Main table */
+
+- Status = AcpiDmDumpTable (Table->Length, 0, Table, 0, AcpiDmTableInfoTpm2);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoTpm2);
+
+ if (ACPI_FAILURE (Status))
+ {
+@@ -474,8 +476,8 @@ AcpiDmDumpTpm2 (
+ }
+
+ AcpiOsPrintf ("\n");
+- Status = AcpiDmDumpTable (Table->Length, Offset, Subtable,
+- Table->Length - Offset, AcpiDmTableInfoTpm2a);
++ Status = AcpiDmDumpTable (TableLength, Offset, Subtable,
++ TableLength - Offset, AcpiDmTableInfoTpm2a);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -490,8 +492,8 @@ AcpiDmDumpTpm2 (
+ Offset += sizeof (ACPI_TPM2_TRAILER);
+
+ AcpiOsPrintf ("\n");
+- (void) AcpiDmDumpTable (Table->Length, Offset, ArmSubtable,
+- Table->Length - Offset, AcpiDmTableInfoTpm211);
++ (void) AcpiDmDumpTable (TableLength, Offset, ArmSubtable,
++ TableLength - Offset, AcpiDmTableInfoTpm211);
+ break;
+
+ default:
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -1904,6 +1904,7 @@ DtCompileTpm2 (
+ DT_SUBTABLE *ParentTable;
+ ACPI_STATUS Status = AE_OK;
+ ACPI_TABLE_HEADER *Header;
++ UINT8 StartMethod;
+
+
+ ParentTable = DtPeekSubtable ();
+@@ -1947,7 +1948,8 @@ DtCompileTpm2 (
+
+ /* Subtable type depends on the StartMethod */
+
+- switch (Tpm2Header->StartMethod)
++ StartMethod = *(UINT8 *)&Tpm2Header->StartMethod;
++ switch (StartMethod)
+ {
+ case ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC:
+
+@@ -1978,7 +1980,7 @@ DtCompileTpm2 (
+ case ACPI_TPM2_RESERVED10:
+
+ AcpiOsPrintf ("\n**** Reserved TPM2 Start Method type 0x%X\n",
+- Tpm2Header->StartMethod);
++ StartMethod);
+ Status = AE_ERROR;
+ break;
+
+@@ -1986,7 +1988,7 @@ DtCompileTpm2 (
+ default:
+
+ AcpiOsPrintf ("\n**** Unknown TPM2 Start Method type 0x%X\n",
+- Tpm2Header->StartMethod);
++ StartMethod);
+ Status = AE_ERROR;
+ break;
+ }
diff --git a/0039-Add-partial-big-endian-support-for-WPBT-tables.patch b/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
new file mode 100644
index 0000000..e5192e5
--- /dev/null
+++ b/0039-Add-partial-big-endian-support-for-WPBT-tables.patch
@@ -0,0 +1,61 @@
+From 9d7f9c8f4ecbee2e621d471a8c4944cebe62947d Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Wed, 30 Sep 2020 18:59:57 -0600
+Subject: [PATCH 39/40] Add partial big-endian support for WPBT tables
+
+There's some weirdness here that at present does not warrant
+further investigation; this is just a really low priority table.
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmtbdump3.c | 8 ++++----
+ source/compiler/dttable2.c | 3 ++-
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmtbdump3.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump3.c
++++ acpica-unix2-20200925/source/common/dmtbdump3.c
+@@ -628,13 +628,13 @@ AcpiDmDumpWpbt (
+ {
+ ACPI_STATUS Status;
+ ACPI_TABLE_WPBT *Subtable;
+- UINT32 Length = Table->Length;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
+ UINT16 ArgumentsLength;
+
+
+ /* Dump the main table */
+
+- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoWpbt);
++ Status = AcpiDmDumpTable (TableLength, 0, Table, 0, AcpiDmTableInfoWpbt);
+ if (ACPI_FAILURE (Status))
+ {
+ return;
+@@ -643,10 +643,10 @@ AcpiDmDumpWpbt (
+ /* Extract the arguments buffer length from the main table */
+
+ Subtable = ACPI_CAST_PTR (ACPI_TABLE_WPBT, Table);
+- ArgumentsLength = Subtable->ArgumentsLength;
++ ArgumentsLength = AcpiUtReadUint16(&Subtable->ArgumentsLength);
+
+ /* Dump the arguments buffer */
+
+- (void) AcpiDmDumpTable (Table->Length, 0, Table, ArgumentsLength,
++ (void) AcpiDmDumpTable (TableLength, 0, Table, ArgumentsLength,
+ AcpiDmTableInfoWpbt0);
+ }
+Index: acpica-unix2-20200925/source/compiler/dttable2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/dttable2.c
++++ acpica-unix2-20200925/source/compiler/dttable2.c
+@@ -2190,7 +2190,8 @@ DtCompileWpbt (
+
+ /* Extract the length of the Arguments buffer, insert into main table */
+
+- Length = (UINT16) Subtable->TotalLength;
++ AcpiUtWriteUint(&Length, sizeof(UINT16),
++ &Subtable->TotalLength, sizeof(UINT32));
+ Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer);
+ Table->ArgumentsLength = Length;
+
diff --git a/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch b/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
new file mode 100644
index 0000000..b5087dc
--- /dev/null
+++ b/0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
@@ -0,0 +1,2682 @@
+From 355bbdd2ecf184e56108a2446244761895f93a62 Mon Sep 17 00:00:00 2001
+From: Al Stone <ahs3(a)redhat.com>
+Date: Thu, 15 Oct 2020 11:35:23 -0600
+Subject: [PATCH 40/40] Support DSDT/SSDT in a big-endian world
+
+NB: this is a very large diff. The problem is that ResourceTemplates
+are treated differently during compilation and disassembly so each of
+the resource types had code that needed to be touched directly.
+
+In general, however, just reading or writing individual AML opcodes
+wasn't that much of a change, and most of it was on the codegen side.
+
+Signed-off-by: Al Stone <ahs3(a)redhat.com>
+---
+ source/common/dmrestag.c | 2 +-
+ source/common/dmtables.c | 17 +-
+ source/common/dmtbdump.c | 3 +-
+ source/compiler/aslcodegen.c | 61 +++++--
+ source/compiler/aslrestype1.c | 44 +++--
+ source/compiler/aslrestype1i.c | 33 ++--
+ source/compiler/aslrestype2.c | 20 ++-
+ source/compiler/aslrestype2d.c | 99 ++++++-----
+ source/compiler/aslrestype2e.c | 90 ++++++----
+ source/compiler/aslrestype2q.c | 81 ++++++---
+ source/compiler/aslrestype2s.c | 181 ++++++++++++++++++---
+ source/compiler/aslrestype2w.c | 94 ++++++-----
+ source/components/disassembler/dmbuffer.c | 2 +-
+ source/components/disassembler/dmopcode.c | 8 +-
+ source/components/disassembler/dmresrc.c | 2 +-
+ source/components/disassembler/dmresrcl.c | 43 +++--
+ source/components/disassembler/dmresrcl2.c | 64 +++++---
+ source/components/disassembler/dmresrcs.c | 18 +-
+ source/components/dispatcher/dsfield.c | 16 +-
+ source/components/namespace/nsaccess.c | 2 +-
+ source/components/namespace/nsnames.c | 2 +-
+ source/components/namespace/nsparse.c | 6 +-
+ source/components/namespace/nsutils.c | 7 +-
+ 23 files changed, 613 insertions(+), 282 deletions(-)
+
+Index: acpica-unix2-20200925/source/common/dmrestag.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmrestag.c
++++ acpica-unix2-20200925/source/common/dmrestag.c
+@@ -1038,7 +1038,7 @@ AcpiDmAddResourcesToNamespace (
+ * NextOp contains the Aml pointer and the Aml length
+ */
+ AcpiUtWalkAmlResources (NULL, (UINT8 *) NextOp->Named.Data,
+- (ACPI_SIZE) NextOp->Common.Value.Integer,
++ (ACPI_SIZE) NextOp->Common.Value.Size,
+ AcpiDmAddResourceToNamespace, (void **) BufferNode);
+ }
+
+Index: acpica-unix2-20200925/source/common/dmtables.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtables.c
++++ acpica-unix2-20200925/source/common/dmtables.c
+@@ -142,6 +142,10 @@ AdCreateTableHeader (
+ ACPI_TABLE_HEADER *Table)
+ {
+ UINT8 Checksum;
++ UINT32 TableLength = AcpiUtReadUint32(&Table->Length);
++ UINT32 OemRevision = AcpiUtReadUint32(&Table->OemRevision);
++ UINT32 CompilerRevision =
++ AcpiUtReadUint32(&Table->AslCompilerRevision);
+
+
+ /* Reset globals for External statements */
+@@ -156,7 +160,7 @@ AdCreateTableHeader (
+
+ AcpiOsPrintf (" * Original Table Header:\n");
+ AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature);
+- AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length);
++ AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", TableLength, TableLength);
+
+ /* Print and validate the revision */
+
+@@ -188,7 +192,7 @@ AdCreateTableHeader (
+
+ AcpiOsPrintf ("\n * Checksum 0x%2.2X", Table->Checksum);
+
+- Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length);
++ Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), TableLength);
+ if (Checksum)
+ {
+ AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X",
+@@ -198,9 +202,9 @@ AdCreateTableHeader (
+ AcpiOsPrintf ("\n");
+ AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId);
+ AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId);
+- AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision);
++ AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", OemRevision, OemRevision);
+ AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId);
+- AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision);
++ AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", CompilerRevision, CompilerRevision);
+ AcpiOsPrintf (" */\n");
+
+ /*
+@@ -221,7 +225,7 @@ AdCreateTableHeader (
+ AcpiOsPrintf (
+ "DefinitionBlock (\"\", \"%4.4s\", %u, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
+ Table->Signature, Table->Revision,
+- Table->OemId, Table->OemTableId, Table->OemRevision);
++ Table->OemId, Table->OemTableId, OemRevision);
+ }
+
+
+@@ -396,7 +400,8 @@ AdParseTable (
+
+ fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature);
+
+- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
++ AmlLength = AcpiUtReadUint32(&Table->Length);
++ AmlLength -= sizeof (ACPI_TABLE_HEADER);
+ AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
+
+ AcpiUtSetIntegerWidth (Table->Revision);
+Index: acpica-unix2-20200925/source/common/dmtbdump.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/common/dmtbdump.c
++++ acpica-unix2-20200925/source/common/dmtbdump.c
+@@ -333,8 +333,7 @@ AcpiDmDumpXsdt (
+ for (i = 0; i < Entries; i++)
+ {
+ AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
+- AcpiOsPrintf ("%8.8X%8.8X\n",
+- ACPI_FORMAT_UINT64 (AcpiUtReadUint64(&Array[i])));
++ AcpiOsPrintf ("%16.16lX\n", AcpiUtReadUint64(&Array[i]));
+ Offset += sizeof (UINT64);
+ }
+ }
+Index: acpica-unix2-20200925/source/compiler/aslcodegen.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslcodegen.c
++++ acpica-unix2-20200925/source/compiler/aslcodegen.c
+@@ -238,6 +238,10 @@ CgWriteAmlOpcode (
+ {
+ UINT8 PkgLenFirstByte;
+ UINT32 i;
++ UINT8 Tmp8;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
++ UINT64 Tmp64;
+ union {
+ UINT16 Opcode;
+ UINT8 OpcodeBytes[2];
+@@ -305,25 +309,26 @@ CgWriteAmlOpcode (
+
+ /* Value is the length to be encoded (Used in field definitions) */
+
+- PkgLen.Len = (UINT32) Op->Asl.Value.Integer;
++ PkgLen.Len = (UINT32) Op->Asl.Value.Integer;
+ break;
+
+ default:
+
+ /* Check for two-byte opcode */
+
++ Tmp16 = AcpiUtReadUint16(&Aml.Opcode);
+ if (Aml.Opcode > 0x00FF)
+ {
+ /* Write the high byte first */
+
+- CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[1], 1);
++ CgLocalWriteAmlData (Op, ((UINT8 *)&Tmp16)+1, 1);
+ }
+
+- CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[0], 1);
++ CgLocalWriteAmlData (Op, (UINT8 *)&Tmp16, 1);
+
+ /* Subtreelength doesn't include length of package length bytes */
+
+- PkgLen.Len = Op->Asl.AmlSubtreeLength + Op->Asl.AmlPkgLenBytes;
++ PkgLen.Len = Op->Asl.AmlSubtreeLength + Op->Asl.AmlPkgLenBytes;
+ break;
+ }
+
+@@ -335,7 +340,8 @@ CgWriteAmlOpcode (
+ {
+ /* Simplest case -- no bytes to follow, just write the count */
+
+- CgLocalWriteAmlData (Op, &PkgLen.LenBytes[0], 1);
++ Tmp8 = (UINT8) PkgLen.Len;
++ CgLocalWriteAmlData (Op, &Tmp8, 1);
+ }
+ else if (Op->Asl.AmlPkgLenBytes != 0)
+ {
+@@ -343,9 +349,10 @@ CgWriteAmlOpcode (
+ * Encode the "bytes to follow" in the first byte, top two bits.
+ * The low-order nybble of the length is in the bottom 4 bits
+ */
++ Tmp8 = (UINT8) PkgLen.Len;
+ PkgLenFirstByte = (UINT8)
+ (((UINT32) (Op->Asl.AmlPkgLenBytes - 1) << 6) |
+- (PkgLen.LenBytes[0] & 0x0F));
++ (Tmp8 & 0x0F));
+
+ CgLocalWriteAmlData (Op, &PkgLenFirstByte, 1);
+
+@@ -359,6 +366,9 @@ CgWriteAmlOpcode (
+ * Now we can write the remaining bytes -
+ * either 1, 2, or 3 bytes
+ */
++ Tmp32 = PkgLen.Len;
++ AcpiUtWriteUint(&PkgLen.Len, Op->Asl.AmlPkgLenBytes,
++ &Tmp32, sizeof(UINT32));
+ for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++)
+ {
+ CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1);
+@@ -370,22 +380,30 @@ CgWriteAmlOpcode (
+ {
+ case AML_BYTE_OP:
+
+- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 1);
++ Tmp64 = 0;
++ AcpiUtWriteUint(&Tmp64, 1, &Op->Asl.Value.Integer, 8);
++ CgLocalWriteAmlData (Op, &Tmp64, 1);
+ break;
+
+ case AML_WORD_OP:
+
+- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 2);
++ Tmp64 = 0;
++ AcpiUtWriteUint(&Tmp64, 2, &Op->Asl.Value.Integer, 8);
++ CgLocalWriteAmlData (Op, &Tmp64, 2);
+ break;
+
+ case AML_DWORD_OP:
+
+- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 4);
++ Tmp64 = 0;
++ AcpiUtWriteUint(&Tmp64, 4, &Op->Asl.Value.Integer, 8);
++ CgLocalWriteAmlData (Op, &Tmp64, 4);
+ break;
+
+ case AML_QWORD_OP:
+
+- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 8);
++ Tmp64 = 0;
++ AcpiUtWriteUint(&Tmp64, 8, &Op->Asl.Value.Integer, 8);
++ CgLocalWriteAmlData (Op, &Tmp64, 8);
+ break;
+
+ case AML_STRING_OP:
+@@ -423,6 +441,7 @@ CgWriteTableHeader (
+ ACPI_PARSE_OBJECT *Child;
+ UINT32 CommentLength;
+ ACPI_COMMENT_NODE *Current;
++ UINT32 Tmp32;
+
+
+ memset (&AslGbl_TableHeader, 0, sizeof (ACPI_TABLE_HEADER));
+@@ -478,7 +497,9 @@ CgWriteTableHeader (
+ /* OEM Revision */
+
+ Child = Child->Asl.Next;
+- AslGbl_TableHeader.OemRevision = (UINT32) Child->Asl.Value.Integer;
++ AcpiUtWriteUint(&Tmp32, sizeof(UINT32),
++ &Child->Asl.Value.Integer, sizeof(Child->Asl.Value.Integer));
++ AslGbl_TableHeader.OemRevision = Tmp32;
+
+ /* Compiler ID */
+
+@@ -486,7 +507,8 @@ CgWriteTableHeader (
+
+ /* Compiler version */
+
+- AslGbl_TableHeader.AslCompilerRevision = ACPI_CA_VERSION;
++ Tmp32 = ACPI_CA_VERSION;
++ AslGbl_TableHeader.AslCompilerRevision = AcpiUtReadUint32(&Tmp32);
+
+ /* Table length. Checksum zero for now, will rewrite later */
+
+@@ -541,6 +563,15 @@ CgWriteTableHeader (
+ AslGbl_TableHeader.Checksum = 0;
+ Op->Asl.FinalAmlOffset = ftell (AslGbl_Files[ASL_FILE_AML_OUTPUT].Handle);
+
++ /*
++ * Adjust the Table length; it will only change when big-endian
++ * but we have to wait until here in case there is arithmetic to
++ * be done on the length before this step in the function
++ */
++
++ Tmp32 = AslGbl_TableHeader.Length;
++ AslGbl_TableHeader.Length = AcpiUtReadUint32(&Tmp32);
++
+ /* Write entire header and clear the table header global */
+
+ CgLocalWriteAmlData (Op, &AslGbl_TableHeader, sizeof (ACPI_TABLE_HEADER));
+@@ -625,6 +656,7 @@ CgWriteNode (
+ ACPI_PARSE_OBJECT *Op)
+ {
+ ASL_RESOURCE_NODE *Rnode;
++ UINT64 Tmp64;
+
+
+ /* Write all comments here. */
+@@ -653,7 +685,10 @@ CgWriteNode (
+ case AML_RAW_DATA_DWORD:
+ case AML_RAW_DATA_QWORD:
+
+- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, Op->Asl.AmlLength);
++ Tmp64 = 0;
++ AcpiUtWriteUint(&Tmp64, Op->Asl.AmlLength,
++ &Op->Asl.Value.Integer, sizeof(UINT64));
++ CgLocalWriteAmlData (Op, &Tmp64, Op->Asl.AmlLength);
+ return;
+
+
+Index: acpica-unix2-20200925/source/compiler/aslrestype1.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype1.c
++++ acpica-unix2-20200925/source/compiler/aslrestype1.c
+@@ -143,6 +143,7 @@ RsDoMemory24Descriptor (
+ ASL_RESOURCE_NODE *Rnode;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -151,7 +152,8 @@ RsDoMemory24Descriptor (
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24;
+- Descriptor->Memory24.ResourceLength = 9;
++ Tmp16 = 9;
++ Descriptor->Memory24.ResourceLength = AcpiUtReadUint16(&Tmp16);
+
+ /* Process all child initialization nodes */
+
+@@ -168,7 +170,8 @@ RsDoMemory24Descriptor (
+
+ case 1: /* Min Address */
+
+- Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory24.Minimum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
+ MinOp = InitializerOp;
+@@ -176,7 +179,8 @@ RsDoMemory24Descriptor (
+
+ case 2: /* Max Address */
+
+- Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory24.Maximum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
+ MaxOp = InitializerOp;
+@@ -184,14 +188,16 @@ RsDoMemory24Descriptor (
+
+ case 3: /* Alignment */
+
+- Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory24.Alignment = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment));
+ break;
+
+ case 4: /* Length */
+
+- Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory24.AddressLength = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
+ LengthOp = InitializerOp;
+@@ -249,6 +255,8 @@ RsDoMemory32Descriptor (
+ ASL_RESOURCE_NODE *Rnode;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -257,7 +265,8 @@ RsDoMemory32Descriptor (
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32;
+- Descriptor->Memory32.ResourceLength = 17;
++ Tmp16 = 17;
++ Descriptor->Memory32.ResourceLength = AcpiUtReadUint16(&Tmp16);
+
+ /* Process all child initialization nodes */
+
+@@ -274,7 +283,8 @@ RsDoMemory32Descriptor (
+
+ case 1: /* Min Address */
+
+- Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory32.Minimum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
+ MinOp = InitializerOp;
+@@ -282,7 +292,8 @@ RsDoMemory32Descriptor (
+
+ case 2: /* Max Address */
+
+- Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory32.Maximum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
+ MaxOp = InitializerOp;
+@@ -290,7 +301,8 @@ RsDoMemory32Descriptor (
+
+ case 3: /* Alignment */
+
+- Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory32.Alignment = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
+ AlignOp = InitializerOp;
+@@ -298,7 +310,8 @@ RsDoMemory32Descriptor (
+
+ case 4: /* Length */
+
+- Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Memory32.AddressLength = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
+ LengthOp = InitializerOp;
+@@ -352,6 +365,8 @@ RsDoMemory32FixedDescriptor (
+ ASL_RESOURCE_NODE *Rnode;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -360,7 +375,8 @@ RsDoMemory32FixedDescriptor (
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32;
+- Descriptor->FixedMemory32.ResourceLength = 9;
++ Tmp16 = 9;
++ Descriptor->FixedMemory32.ResourceLength = AcpiUtReadUint16(&Tmp16);
+
+ /* Process all child initialization nodes */
+
+@@ -377,14 +393,16 @@ RsDoMemory32FixedDescriptor (
+
+ case 1: /* Address */
+
+- Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->FixedMemory32.Address = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address));
+ break;
+
+ case 2: /* Length */
+
+- Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->FixedMemory32.AddressLength = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
+ break;
+Index: acpica-unix2-20200925/source/compiler/aslrestype1i.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype1i.c
++++ acpica-unix2-20200925/source/compiler/aslrestype1i.c
+@@ -199,6 +199,7 @@ RsDoFixedDmaDescriptor (
+ ASL_RESOURCE_NODE *Rnode;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -217,14 +218,16 @@ RsDoFixedDmaDescriptor (
+ {
+ case 0: /* DMA Request Lines [WORD] (_DMA) */
+
+- Descriptor->FixedDma.RequestLines = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->FixedDma.RequestLines = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_DMA,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.RequestLines));
+ break;
+
+ case 1: /* DMA Channel [WORD] (_TYP) */
+
+- Descriptor->FixedDma.Channels = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->FixedDma.Channels = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_DMATYPE,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.Channels));
+ break;
+@@ -275,6 +278,7 @@ RsDoFixedIoDescriptor (
+ ASL_RESOURCE_NODE *Rnode;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -293,8 +297,8 @@ RsDoFixedIoDescriptor (
+ {
+ case 0: /* Base Address */
+
+- Descriptor->FixedIo.Address =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->FixedIo.Address = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
+ AddressOp = InitializerOp;
+@@ -358,6 +362,7 @@ RsDoIoDescriptor (
+ ASL_RESOURCE_NODE *Rnode;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -383,8 +388,8 @@ RsDoIoDescriptor (
+
+ case 1: /* Min Address */
+
+- Descriptor->Io.Minimum =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Io.Minimum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
+ MinOp = InitializerOp;
+@@ -392,8 +397,8 @@ RsDoIoDescriptor (
+
+ case 2: /* Max Address */
+
+- Descriptor->Io.Maximum =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Io.Maximum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
+ MaxOp = InitializerOp;
+@@ -434,10 +439,10 @@ RsDoIoDescriptor (
+ /* Validate the Min/Max/Len/Align values */
+
+ RsSmallAddressCheck (ACPI_RESOURCE_NAME_IO,
+- Descriptor->Io.Minimum,
+- Descriptor->Io.Maximum,
+- Descriptor->Io.AddressLength,
+- Descriptor->Io.Alignment,
++ (UINT32)(AcpiUtReadUint16(&Descriptor->Io.Minimum)),
++ (UINT32)(AcpiUtReadUint16(&Descriptor->Io.Maximum)),
++ (UINT32)Descriptor->Io.AddressLength,
++ (UINT32)Descriptor->Io.Alignment,
+ MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
+
+ return (Rnode);
+@@ -561,7 +566,7 @@ RsDoIrqDescriptor (
+
+ /* Now we can set the channel mask */
+
+- Descriptor->Irq.IrqMask = IrqMask;
++ Descriptor->Irq.IrqMask = AcpiUtReadUint16(&IrqMask);
+ return (Rnode);
+ }
+
+@@ -660,6 +665,6 @@ RsDoIrqNoFlagsDescriptor (
+
+ /* Now we can set the interrupt mask */
+
+- Descriptor->Irq.IrqMask = IrqMask;
++ Descriptor->Irq.IrqMask = AcpiUtReadUint16(&IrqMask);
+ return (Rnode);
+ }
+Index: acpica-unix2-20200925/source/compiler/aslrestype2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2.c
+@@ -77,6 +77,8 @@ RsDoGeneralRegisterDescriptor (
+ ASL_RESOURCE_NODE *Rnode;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT64 Tmp64;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -85,7 +87,8 @@ RsDoGeneralRegisterDescriptor (
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->GenericReg.DescriptorType = ACPI_RESOURCE_NAME_GENERIC_REGISTER;
+- Descriptor->GenericReg.ResourceLength = 12;
++ Tmp16 = 12;
++ Descriptor->GenericReg.ResourceLength = AcpiUtReadUint16(&Tmp16);
+
+ /* Process all child initialization nodes */
+
+@@ -116,7 +119,8 @@ RsDoGeneralRegisterDescriptor (
+
+ case 3: /* Register Address */
+
+- Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer;
++ Tmp64 = InitializerOp->Asl.Value.Integer;
++ Descriptor->GenericReg.Address = AcpiUtReadUint64(&Tmp64);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_ADDRESS,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
+ break;
+@@ -184,6 +188,8 @@ RsDoInterruptDescriptor (
+ BOOLEAN HasResSourceIndex = FALSE;
+ UINT8 ResSourceIndex = 0;
+ UINT8 *ResSourceString = NULL;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -225,7 +231,7 @@ RsDoInterruptDescriptor (
+ * Initial descriptor length -- may be enlarged if there are
+ * optional fields present
+ */
+- Descriptor->ExtendedIrq.ResourceLength = 2; /* Flags and table length byte */
++ Descriptor->ExtendedIrq.ResourceLength = 2; /* Flags and table length byte */
+ Descriptor->ExtendedIrq.InterruptCount = 0;
+
+ Rover = ACPI_CAST_PTR (AML_RESOURCE,
+@@ -333,7 +339,8 @@ RsDoInterruptDescriptor (
+
+ /* Save the integer and move pointer to the next one */
+
+- Rover->DwordItem = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Rover->DwordItem = AcpiUtReadUint32(&Tmp32);
+ Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->DwordItem), 4);
+ Descriptor->ExtendedIrq.InterruptCount++;
+ Descriptor->ExtendedIrq.ResourceLength += 4;
+@@ -384,6 +391,8 @@ RsDoInterruptDescriptor (
+ Descriptor->ExtendedIrq.ResourceLength = (UINT16)
+ (Descriptor->ExtendedIrq.ResourceLength + StringLength);
+ }
++ Tmp16 = Descriptor->ExtendedIrq.ResourceLength;
++ Descriptor->ExtendedIrq.ResourceLength = AcpiUtReadUint16(&Tmp16);
+
+ Rnode->BufferLength =
+ (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) -
+@@ -436,7 +445,8 @@ RsDoVendorLargeDescriptor (
+
+ Descriptor = Rnode->Buffer;
+ Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE;
+- Descriptor->VendorLarge.ResourceLength = (UINT16) i;
++ AcpiUtWriteUint(&Descriptor->VendorLarge.ResourceLength, sizeof(UINT16),
++ &i, sizeof(UINT32));
+
+ /* Point to end-of-descriptor for vendor data */
+
+Index: acpica-unix2-20200925/source/compiler/aslrestype2d.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2d.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2d.c
+@@ -84,6 +84,8 @@ RsDoDwordIoDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -147,8 +149,8 @@ RsDoDwordIoDescriptor (
+
+ case 5: /* Address Granularity */
+
+- Descriptor->Address32.Granularity =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Granularity = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
+ GranOp = InitializerOp;
+@@ -156,8 +158,8 @@ RsDoDwordIoDescriptor (
+
+ case 6: /* Address Min */
+
+- Descriptor->Address32.Minimum =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Minimum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
+ MinOp = InitializerOp;
+@@ -165,8 +167,8 @@ RsDoDwordIoDescriptor (
+
+ case 7: /* Address Max */
+
+- Descriptor->Address32.Maximum =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Maximum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
+ MaxOp = InitializerOp;
+@@ -174,16 +176,16 @@ RsDoDwordIoDescriptor (
+
+ case 8: /* Translation Offset */
+
+- Descriptor->Address32.TranslationOffset =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.TranslationOffset = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
+ break;
+
+ case 9: /* Address Length */
+
+- Descriptor->Address32.AddressLength =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.AddressLength = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
+ LengthOp = InitializerOp;
+@@ -271,11 +273,14 @@ RsDoDwordIoDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->Address32.ResourceLength;
++ Descriptor->Address32.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- (UINT64) Descriptor->Address32.Minimum,
+- (UINT64) Descriptor->Address32.Maximum,
+- (UINT64) Descriptor->Address32.AddressLength,
+- (UINT64) Descriptor->Address32.Granularity,
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Minimum),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Maximum),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.AddressLength),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Granularity),
+ Descriptor->Address32.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+@@ -314,6 +319,8 @@ RsDoDwordMemoryDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -385,8 +392,8 @@ RsDoDwordMemoryDescriptor (
+
+ case 6: /* Address Granularity */
+
+- Descriptor->Address32.Granularity =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Granularity = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
+ GranOp = InitializerOp;
+@@ -394,8 +401,8 @@ RsDoDwordMemoryDescriptor (
+
+ case 7: /* Min Address */
+
+- Descriptor->Address32.Minimum =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Minimum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
+ MinOp = InitializerOp;
+@@ -403,8 +410,8 @@ RsDoDwordMemoryDescriptor (
+
+ case 8: /* Max Address */
+
+- Descriptor->Address32.Maximum =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Maximum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
+ MaxOp = InitializerOp;
+@@ -412,16 +419,16 @@ RsDoDwordMemoryDescriptor (
+
+ case 9: /* Translation Offset */
+
+- Descriptor->Address32.TranslationOffset =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.TranslationOffset = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
+ break;
+
+ case 10: /* Address Length */
+
+- Descriptor->Address32.AddressLength =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.AddressLength = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
+ LengthOp = InitializerOp;
+@@ -506,11 +513,14 @@ RsDoDwordMemoryDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->Address32.ResourceLength;
++ Descriptor->Address32.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- (UINT64) Descriptor->Address32.Minimum,
+- (UINT64) Descriptor->Address32.Maximum,
+- (UINT64) Descriptor->Address32.AddressLength,
+- (UINT64) Descriptor->Address32.Granularity,
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Minimum),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Maximum),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.AddressLength),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Granularity),
+ Descriptor->Address32.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+@@ -549,6 +559,8 @@ RsDoDwordSpaceDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -616,8 +628,8 @@ RsDoDwordSpaceDescriptor (
+
+ case 6: /* Address Granularity */
+
+- Descriptor->Address32.Granularity =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Granularity = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
+ GranOp = InitializerOp;
+@@ -625,8 +637,8 @@ RsDoDwordSpaceDescriptor (
+
+ case 7: /* Min Address */
+
+- Descriptor->Address32.Minimum =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Minimum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
+ MinOp = InitializerOp;
+@@ -634,8 +646,8 @@ RsDoDwordSpaceDescriptor (
+
+ case 8: /* Max Address */
+
+- Descriptor->Address32.Maximum =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.Maximum = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
+ MaxOp = InitializerOp;
+@@ -643,16 +655,16 @@ RsDoDwordSpaceDescriptor (
+
+ case 9: /* Translation Offset */
+
+- Descriptor->Address32.TranslationOffset =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.TranslationOffset = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
+ break;
+
+ case 10: /* Address Length */
+
+- Descriptor->Address32.AddressLength =
+- (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address32.AddressLength = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
+ LengthOp = InitializerOp;
+@@ -723,11 +735,14 @@ RsDoDwordSpaceDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->Address32.ResourceLength;
++ Descriptor->Address32.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- (UINT64) Descriptor->Address32.Minimum,
+- (UINT64) Descriptor->Address32.Maximum,
+- (UINT64) Descriptor->Address32.AddressLength,
+- (UINT64) Descriptor->Address32.Granularity,
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Minimum),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Maximum),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.AddressLength),
++ (UINT64) AcpiUtReadUint32(&Descriptor->Address32.Granularity),
+ Descriptor->Address32.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+Index: acpica-unix2-20200925/source/compiler/aslrestype2e.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2e.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2e.c
+@@ -80,6 +80,7 @@ RsDoExtendedIoDescriptor (
+ UINT16 StringLength = 0;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -139,7 +140,8 @@ RsDoExtendedIoDescriptor (
+
+ case 5: /* Address Granularity */
+
+- Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Granularity =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
+ GranOp = InitializerOp;
+@@ -147,7 +149,8 @@ RsDoExtendedIoDescriptor (
+
+ case 6: /* Address Min */
+
+- Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Minimum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
+ MinOp = InitializerOp;
+@@ -155,7 +158,8 @@ RsDoExtendedIoDescriptor (
+
+ case 7: /* Address Max */
+
+- Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Maximum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
+ MaxOp = InitializerOp;
+@@ -163,14 +167,16 @@ RsDoExtendedIoDescriptor (
+
+ case 8: /* Translation Offset */
+
+- Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.TranslationOffset =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
+ break;
+
+ case 9: /* Address Length */
+
+- Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.AddressLength =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
+ LengthOp = InitializerOp;
+@@ -178,7 +184,8 @@ RsDoExtendedIoDescriptor (
+
+ case 10: /* Type-Specific Attributes */
+
+- Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.TypeSpecific =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
+ break;
+@@ -213,11 +220,14 @@ RsDoExtendedIoDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->ExtAddress64.ResourceLength;
++ Descriptor->ExtAddress64.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- Descriptor->ExtAddress64.Minimum,
+- Descriptor->ExtAddress64.Maximum,
+- Descriptor->ExtAddress64.AddressLength,
+- Descriptor->ExtAddress64.Granularity,
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Minimum),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Maximum),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.AddressLength),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Granularity),
+ Descriptor->ExtAddress64.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+@@ -253,6 +263,7 @@ RsDoExtendedMemoryDescriptor (
+ UINT16 StringLength = 0;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -319,7 +330,8 @@ RsDoExtendedMemoryDescriptor (
+
+ case 6: /* Address Granularity */
+
+- Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Granularity =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
+ GranOp = InitializerOp;
+@@ -327,7 +339,8 @@ RsDoExtendedMemoryDescriptor (
+
+ case 7: /* Min Address */
+
+- Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Minimum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
+ MinOp = InitializerOp;
+@@ -335,7 +348,8 @@ RsDoExtendedMemoryDescriptor (
+
+ case 8: /* Max Address */
+
+- Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Maximum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
+ MaxOp = InitializerOp;
+@@ -343,14 +357,16 @@ RsDoExtendedMemoryDescriptor (
+
+ case 9: /* Translation Offset */
+
+- Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.TranslationOffset =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
+ break;
+
+ case 10: /* Address Length */
+
+- Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.AddressLength =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
+ LengthOp = InitializerOp;
+@@ -358,7 +374,8 @@ RsDoExtendedMemoryDescriptor (
+
+ case 11: /* Type-Specific Attributes */
+
+- Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.TypeSpecific =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
+ break;
+@@ -394,11 +411,14 @@ RsDoExtendedMemoryDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->ExtAddress64.ResourceLength;
++ Descriptor->ExtAddress64.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- Descriptor->ExtAddress64.Minimum,
+- Descriptor->ExtAddress64.Maximum,
+- Descriptor->ExtAddress64.AddressLength,
+- Descriptor->ExtAddress64.Granularity,
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Minimum),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Maximum),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.AddressLength),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Granularity),
+ Descriptor->ExtAddress64.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+@@ -434,6 +454,7 @@ RsDoExtendedSpaceDescriptor (
+ UINT16 StringLength = 0;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -497,7 +518,8 @@ RsDoExtendedSpaceDescriptor (
+
+ case 6: /* Address Granularity */
+
+- Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Granularity =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
+ GranOp = InitializerOp;
+@@ -505,7 +527,8 @@ RsDoExtendedSpaceDescriptor (
+
+ case 7: /* Min Address */
+
+- Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Minimum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
+ MinOp = InitializerOp;
+@@ -513,7 +536,8 @@ RsDoExtendedSpaceDescriptor (
+
+ case 8: /* Max Address */
+
+- Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.Maximum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
+ MaxOp = InitializerOp;
+@@ -521,14 +545,16 @@ RsDoExtendedSpaceDescriptor (
+
+ case 9: /* Translation Offset */
+
+- Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.TranslationOffset =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
+ break;
+
+ case 10: /* Address Length */
+
+- Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.AddressLength =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
+ LengthOp = InitializerOp;
+@@ -536,7 +562,8 @@ RsDoExtendedSpaceDescriptor (
+
+ case 11: /* Type-Specific Attributes */
+
+- Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
++ Descriptor->ExtAddress64.TypeSpecific =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
+ break;
+@@ -557,11 +584,14 @@ RsDoExtendedSpaceDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->ExtAddress64.ResourceLength;
++ Descriptor->ExtAddress64.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- Descriptor->ExtAddress64.Minimum,
+- Descriptor->ExtAddress64.Maximum,
+- Descriptor->ExtAddress64.AddressLength,
+- Descriptor->ExtAddress64.Granularity,
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Minimum),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Maximum),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.AddressLength),
++ AcpiUtReadUint64(&Descriptor->ExtAddress64.Granularity),
+ Descriptor->ExtAddress64.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+Index: acpica-unix2-20200925/source/compiler/aslrestype2q.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2q.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2q.c
+@@ -84,6 +84,7 @@ RsDoQwordIoDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -147,7 +148,8 @@ RsDoQwordIoDescriptor (
+
+ case 5: /* Address Granularity */
+
+- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Granularity =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
+ GranOp = InitializerOp;
+@@ -155,7 +157,8 @@ RsDoQwordIoDescriptor (
+
+ case 6: /* Address Min */
+
+- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Minimum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
+ MinOp = InitializerOp;
+@@ -163,7 +166,8 @@ RsDoQwordIoDescriptor (
+
+ case 7: /* Address Max */
+
+- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Maximum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
+ MaxOp = InitializerOp;
+@@ -171,14 +175,16 @@ RsDoQwordIoDescriptor (
+
+ case 8: /* Translation Offset */
+
+- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.TranslationOffset =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
+ break;
+
+ case 9: /* Address Length */
+
+- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.AddressLength =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
+ LengthOp = InitializerOp;
+@@ -262,11 +268,14 @@ RsDoQwordIoDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->Address64.ResourceLength;
++ Descriptor->Address64.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- Descriptor->Address64.Minimum,
+- Descriptor->Address64.Maximum,
+- Descriptor->Address64.AddressLength,
+- Descriptor->Address64.Granularity,
++ AcpiUtReadUint64(&Descriptor->Address64.Minimum),
++ AcpiUtReadUint64(&Descriptor->Address64.Maximum),
++ AcpiUtReadUint64(&Descriptor->Address64.AddressLength),
++ AcpiUtReadUint64(&Descriptor->Address64.Granularity),
+ Descriptor->Address64.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+@@ -305,6 +314,7 @@ RsDoQwordMemoryDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -375,7 +385,8 @@ RsDoQwordMemoryDescriptor (
+
+ case 6: /* Address Granularity */
+
+- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Granularity =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
+ GranOp = InitializerOp;
+@@ -383,7 +394,8 @@ RsDoQwordMemoryDescriptor (
+
+ case 7: /* Min Address */
+
+- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Minimum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
+ MinOp = InitializerOp;
+@@ -391,7 +403,8 @@ RsDoQwordMemoryDescriptor (
+
+ case 8: /* Max Address */
+
+- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Maximum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
+ MaxOp = InitializerOp;
+@@ -399,14 +412,16 @@ RsDoQwordMemoryDescriptor (
+
+ case 9: /* Translation Offset */
+
+- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.TranslationOffset =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
+ break;
+
+ case 10: /* Address Length */
+
+- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.AddressLength =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
+ LengthOp = InitializerOp;
+@@ -491,11 +506,14 @@ RsDoQwordMemoryDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->Address64.ResourceLength;
++ Descriptor->Address64.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- Descriptor->Address64.Minimum,
+- Descriptor->Address64.Maximum,
+- Descriptor->Address64.AddressLength,
+- Descriptor->Address64.Granularity,
++ AcpiUtReadUint64(&Descriptor->Address64.Minimum),
++ AcpiUtReadUint64(&Descriptor->Address64.Maximum),
++ AcpiUtReadUint64(&Descriptor->Address64.AddressLength),
++ AcpiUtReadUint64(&Descriptor->Address64.Granularity),
+ Descriptor->Address64.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+@@ -534,6 +552,7 @@ RsDoQwordSpaceDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -601,7 +620,8 @@ RsDoQwordSpaceDescriptor (
+
+ case 6: /* Address Granularity */
+
+- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Granularity =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
+ GranOp = InitializerOp;
+@@ -609,7 +629,8 @@ RsDoQwordSpaceDescriptor (
+
+ case 7: /* Min Address */
+
+- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Minimum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
+ MinOp = InitializerOp;
+@@ -617,7 +638,8 @@ RsDoQwordSpaceDescriptor (
+
+ case 8: /* Max Address */
+
+- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.Maximum =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
+ MaxOp = InitializerOp;
+@@ -625,14 +647,16 @@ RsDoQwordSpaceDescriptor (
+
+ case 9: /* Translation Offset */
+
+- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.TranslationOffset =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
+ break;
+
+ case 10: /* Address Length */
+
+- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
++ Descriptor->Address64.AddressLength =
++ AcpiUtReadUint64(&InitializerOp->Asl.Value.Integer);
+ RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
+ LengthOp = InitializerOp;
+@@ -702,11 +726,14 @@ RsDoQwordSpaceDescriptor (
+
+ /* Validate the Min/Max/Len/Gran values */
+
++ Tmp16 = Descriptor->Address64.ResourceLength;
++ Descriptor->Address64.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ RsLargeAddressCheck (
+- Descriptor->Address64.Minimum,
+- Descriptor->Address64.Maximum,
+- Descriptor->Address64.AddressLength,
+- Descriptor->Address64.Granularity,
++ AcpiUtReadUint64(&Descriptor->Address64.Minimum),
++ AcpiUtReadUint64(&Descriptor->Address64.Maximum),
++ AcpiUtReadUint64(&Descriptor->Address64.AddressLength),
++ AcpiUtReadUint64(&Descriptor->Address64.Granularity),
+ Descriptor->Address64.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
+Index: acpica-unix2-20200925/source/compiler/aslrestype2s.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2s.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2s.c
+@@ -343,6 +343,7 @@ RsDoGpioIntDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 PinCount = 0;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -485,7 +486,8 @@ RsDoGpioIntDescriptor (
+ * (implies resource source must immediately follow the pin list.)
+ * Name: _PIN
+ */
+- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ *InterruptList = AcpiUtReadUint16(&Tmp16);
+ InterruptList++;
+ PinCount++;
+
+@@ -518,6 +520,27 @@ RsDoGpioIntDescriptor (
+
+ MpSaveGpioInfo (Info->MappingOp, Descriptor,
+ PinCount, PinList, ResourceSource);
++
++ /* correct endian-ness issues */
++ Tmp16 = Descriptor->Gpio.ResourceLength;
++ Descriptor->Gpio.ResourceLength = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.Flags;
++ Descriptor->Gpio.Flags = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.IntFlags;
++ Descriptor->Gpio.IntFlags = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.DriveStrength;
++ Descriptor->Gpio.DriveStrength = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.DebounceTimeout;
++ Descriptor->Gpio.DebounceTimeout = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.PinTableOffset;
++ Descriptor->Gpio.PinTableOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.ResSourceOffset;
++ Descriptor->Gpio.ResSourceOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.VendorOffset;
++ Descriptor->Gpio.VendorOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.VendorLength;
++ Descriptor->Gpio.VendorLength = AcpiUtReadUint16(&Tmp16);
++
+ return (Rnode);
+ }
+
+@@ -552,6 +575,7 @@ RsDoGpioIoDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 PinCount = 0;
+ UINT32 i;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -691,7 +715,8 @@ RsDoGpioIoDescriptor (
+ * (implies resource source must immediately follow the pin list.)
+ * Name: _PIN
+ */
+- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ *InterruptList = AcpiUtReadUint16(&Tmp16);
+ InterruptList++;
+ PinCount++;
+
+@@ -724,6 +749,27 @@ RsDoGpioIoDescriptor (
+
+ MpSaveGpioInfo (Info->MappingOp, Descriptor,
+ PinCount, PinList, ResourceSource);
++
++ /* correct endian-ness issues */
++ Tmp16 = Descriptor->Gpio.ResourceLength;
++ Descriptor->Gpio.ResourceLength = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.Flags;
++ Descriptor->Gpio.Flags = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.IntFlags;
++ Descriptor->Gpio.IntFlags = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.DriveStrength;
++ Descriptor->Gpio.DriveStrength = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.DebounceTimeout;
++ Descriptor->Gpio.DebounceTimeout = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.PinTableOffset;
++ Descriptor->Gpio.PinTableOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.ResSourceOffset;
++ Descriptor->Gpio.ResSourceOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.VendorOffset;
++ Descriptor->Gpio.VendorOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->Gpio.VendorLength;
++ Descriptor->Gpio.VendorLength = AcpiUtReadUint16(&Tmp16);
++
+ return (Rnode);
+ }
+
+@@ -754,6 +800,8 @@ RsDoI2cSerialBusDescriptor (
+ UINT16 DescriptorSize;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -781,7 +829,8 @@ RsDoI2cSerialBusDescriptor (
+ Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION;
+ Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION;
+ Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE;
+- Descriptor->I2cSerialBus.TypeDataLength = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength;
++ Tmp16 = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength;
++ Descriptor->I2cSerialBus.TypeDataLength = AcpiUtReadUint16(&Tmp16);
+
+ if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_I2C_SERIALBUS_V2)
+ {
+@@ -801,7 +850,8 @@ RsDoI2cSerialBusDescriptor (
+ {
+ case 0: /* Slave Address [WORD] (_ADR) */
+
+- Descriptor->I2cSerialBus.SlaveAddress = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->I2cSerialBus.SlaveAddress = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.SlaveAddress));
+ break;
+@@ -815,7 +865,8 @@ RsDoI2cSerialBusDescriptor (
+
+ case 2: /* Connection Speed [DWORD] (_SPE) */
+
+- Descriptor->I2cSerialBus.ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->I2cSerialBus.ConnectionSpeed = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.ConnectionSpeed));
+ break;
+@@ -913,6 +964,8 @@ RsDoSpiSerialBusDescriptor (
+ UINT16 DescriptorSize;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -935,12 +988,13 @@ RsDoSpiSerialBusDescriptor (
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+- Descriptor->SpiSerialBus.ResourceLength = DescriptorSize;
++ Descriptor->SpiSerialBus.ResourceLength = AcpiUtReadUint16(&DescriptorSize);
+ Descriptor->SpiSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS;
+ Descriptor->SpiSerialBus.RevisionId = AML_RESOURCE_SPI_REVISION;
+ Descriptor->SpiSerialBus.TypeRevisionId = AML_RESOURCE_SPI_TYPE_REVISION;
+ Descriptor->SpiSerialBus.Type = AML_RESOURCE_SPI_SERIALBUSTYPE;
+- Descriptor->SpiSerialBus.TypeDataLength = AML_RESOURCE_SPI_MIN_DATA_LEN + VendorLength;
++ Tmp16 = AML_RESOURCE_SPI_MIN_DATA_LEN + VendorLength;
++ Descriptor->SpiSerialBus.TypeDataLength = AcpiUtReadUint16(&Tmp16);
+
+ if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_SPI_SERIALBUS_V2)
+ {
+@@ -961,7 +1015,8 @@ RsDoSpiSerialBusDescriptor (
+ {
+ case 0: /* Device Selection [WORD] (_ADR) */
+
+- Descriptor->SpiSerialBus.DeviceSelection = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->SpiSerialBus.DeviceSelection = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.DeviceSelection));
+ break;
+@@ -996,7 +1051,8 @@ RsDoSpiSerialBusDescriptor (
+
+ case 5: /* Connection Speed [DWORD] (_SPE) */
+
+- Descriptor->SpiSerialBus.ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->SpiSerialBus.ConnectionSpeed = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.ConnectionSpeed));
+ break;
+@@ -1101,6 +1157,8 @@ RsDoUartSerialBusDescriptor (
+ UINT16 DescriptorSize;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -1123,12 +1181,13 @@ RsDoUartSerialBusDescriptor (
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+- Descriptor->UartSerialBus.ResourceLength = DescriptorSize;
++ Descriptor->UartSerialBus.ResourceLength = AcpiUtReadUint16(&DescriptorSize);
+ Descriptor->UartSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS;
+ Descriptor->UartSerialBus.RevisionId = AML_RESOURCE_UART_REVISION;
+ Descriptor->UartSerialBus.TypeRevisionId = AML_RESOURCE_UART_TYPE_REVISION;
+ Descriptor->UartSerialBus.Type = AML_RESOURCE_UART_SERIALBUSTYPE;
+- Descriptor->UartSerialBus.TypeDataLength = AML_RESOURCE_UART_MIN_DATA_LEN + VendorLength;
++ Tmp16 = AML_RESOURCE_UART_MIN_DATA_LEN + VendorLength;
++ Descriptor->UartSerialBus.TypeDataLength = AcpiUtReadUint16(&Tmp16);
+
+ if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_UART_SERIALBUS_V2)
+ {
+@@ -1148,7 +1207,8 @@ RsDoUartSerialBusDescriptor (
+ {
+ case 0: /* Connection Speed (Baud Rate) [DWORD] (_SPE) */
+
+- Descriptor->UartSerialBus.DefaultBaudRate = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->UartSerialBus.DefaultBaudRate = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.DefaultBaudRate));
+ break;
+@@ -1197,14 +1257,16 @@ RsDoUartSerialBusDescriptor (
+
+ case 7: /* Rx Buffer Size [WORD] (_RXL) */
+
+- Descriptor->UartSerialBus.RxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->UartSerialBus.RxFifoSize = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_RX,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.RxFifoSize));
+ break;
+
+ case 8: /* Tx Buffer Size [WORD] (_TXL) */
+
+- Descriptor->UartSerialBus.TxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->UartSerialBus.TxFifoSize = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_TX,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TxFifoSize));
+ break;
+@@ -1308,6 +1370,7 @@ RsDoPinFunctionDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 PinCount = 0;
+ UINT32 i;
++ UINT16 Tmp16;
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ CurrentByteOffset = Info->CurrentByteOffset;
+@@ -1331,7 +1394,7 @@ RsDoPinFunctionDescriptor (
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+- Descriptor->PinFunction.ResourceLength = DescriptorSize;
++ Descriptor->PinFunction.ResourceLength = AcpiUtReadUint16(&DescriptorSize);
+ Descriptor->PinFunction.DescriptorType = ACPI_RESOURCE_NAME_PIN_FUNCTION;
+ Descriptor->PinFunction.RevisionId = AML_RESOURCE_PIN_FUNCTION_REVISION;
+
+@@ -1371,7 +1434,8 @@ RsDoPinFunctionDescriptor (
+
+ case 2: /* Function Number [WORD] (_FUN) */
+
+- Descriptor->PinFunction.FunctionNumber = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->PinFunction.FunctionNumber = AcpiUtReadUint16(&Tmp16);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_FUNCTION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (PinFunction.FunctionNumber));
+ break;
+@@ -1419,6 +1483,12 @@ RsDoPinFunctionDescriptor (
+ {
+ Descriptor->PinFunction.VendorLength = VendorLength;
+ }
++ Tmp16 = (UINT16) ACPI_PTR_DIFF (VendorData, Descriptor);
++ Descriptor->PinFunction.VendorOffset = AcpiUtReadUint16(&Tmp16);
++
++ Tmp16 = Descriptor->PinFunction.VendorLength;
++ Descriptor->PinFunction.VendorLength = AcpiUtReadUint16(&Tmp16);
++
+ break;
+
+ default:
+@@ -1430,7 +1500,8 @@ RsDoPinFunctionDescriptor (
+ * (implies resource source must immediately follow the pin list.)
+ * Name: _PIN
+ */
+- *PinList = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ *PinList = AcpiUtReadUint16(&Tmp16);
+ PinList++;
+ PinCount++;
+
+@@ -1461,6 +1532,13 @@ RsDoPinFunctionDescriptor (
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
++ /* correct the endian-ness of the values */
++ Tmp16 = Descriptor->PinFunction.PinTableOffset;
++ Descriptor->PinFunction.PinTableOffset = AcpiUtReadUint16(&Tmp16);
++
++ Tmp16 = Descriptor->PinFunction.ResSourceOffset;
++ Descriptor->PinFunction.ResSourceOffset = AcpiUtReadUint16(&Tmp16);
++
+ return (Rnode);
+ }
+
+@@ -1494,6 +1572,8 @@ RsDoPinConfigDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 PinCount = 0;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ CurrentByteOffset = Info->CurrentByteOffset;
+@@ -1517,7 +1597,7 @@ RsDoPinConfigDescriptor (
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+- Descriptor->PinConfig.ResourceLength = DescriptorSize;
++ Descriptor->PinConfig.ResourceLength = AcpiUtReadUint16(&DescriptorSize);
+ Descriptor->PinConfig.DescriptorType = ACPI_RESOURCE_NAME_PIN_CONFIG;
+ Descriptor->PinConfig.RevisionId = AML_RESOURCE_PIN_CONFIG_REVISION;
+
+@@ -1571,7 +1651,8 @@ RsDoPinConfigDescriptor (
+
+ case 2: /* Pin Config Value [DWORD] (_VAL) */
+
+- Descriptor->PinConfig.PinConfigValue = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->PinConfig.PinConfigValue = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_PINCONFIG_VALUE,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (PinConfig.PinConfigValue));
+ break;
+@@ -1630,7 +1711,8 @@ RsDoPinConfigDescriptor (
+ * (implies resource source must immediately follow the pin list.)
+ * Name: _PIN
+ */
+- *PinList = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ *PinList = AcpiUtReadUint16(&Tmp16);
+ PinList++;
+ PinCount++;
+
+@@ -1661,6 +1743,16 @@ RsDoPinConfigDescriptor (
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
++ /* correct the endianness if needed */
++ Tmp16 = Descriptor->PinConfig.PinTableOffset;
++ Descriptor->PinConfig.PinTableOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinConfig.ResSourceOffset;
++ Descriptor->PinConfig.ResSourceOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinConfig.VendorOffset;
++ Descriptor->PinConfig.VendorOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinConfig.VendorLength;
++ Descriptor->PinConfig.VendorLength = AcpiUtReadUint16(&Tmp16);
++
+ return (Rnode);
+ }
+
+@@ -1694,6 +1786,7 @@ RsDoPinGroupDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 PinCount = 0;
+ UINT32 i;
++ UINT16 Tmp16;
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ CurrentByteOffset = Info->CurrentByteOffset;
+@@ -1717,7 +1810,7 @@ RsDoPinGroupDescriptor (
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+- Descriptor->PinGroup.ResourceLength = DescriptorSize;
++ Descriptor->PinGroup.ResourceLength = AcpiUtReadUint16(&DescriptorSize);
+ Descriptor->PinGroup.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP;
+ Descriptor->PinGroup.RevisionId = AML_RESOURCE_PIN_GROUP_REVISION;
+
+@@ -1784,7 +1877,8 @@ RsDoPinGroupDescriptor (
+ * (implies resource source must immediately follow the pin list.)
+ * Name: _PIN
+ */
+- *PinList = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ *PinList = AcpiUtReadUint16(&Tmp16);
+ PinList++;
+ PinCount++;
+
+@@ -1815,6 +1909,16 @@ RsDoPinGroupDescriptor (
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
++ /* correct enddianness as needed */
++ Tmp16 = Descriptor->PinGroup.PinTableOffset;
++ Descriptor->PinGroup.PinTableOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroup.LabelOffset;
++ Descriptor->PinGroup.LabelOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroup.VendorOffset;
++ Descriptor->PinGroup.VendorOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroup.VendorLength;
++ Descriptor->PinGroup.VendorLength = AcpiUtReadUint16(&Tmp16);
++
+ return (Rnode);
+ }
+
+@@ -1847,6 +1951,7 @@ RsDoPinGroupFunctionDescriptor (
+ UINT16 DescriptorSize;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ CurrentByteOffset = Info->CurrentByteOffset;
+@@ -1870,7 +1975,7 @@ RsDoPinGroupFunctionDescriptor (
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+- Descriptor->PinGroupFunction.ResourceLength = DescriptorSize;
++ Descriptor->PinGroupFunction.ResourceLength = AcpiUtReadUint16(&DescriptorSize);
+ Descriptor->PinGroupFunction.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION;
+ Descriptor->PinGroupFunction.RevisionId = AML_RESOURCE_PIN_GROUP_FUNCTION_REVISION;
+
+@@ -1902,7 +2007,8 @@ RsDoPinGroupFunctionDescriptor (
+
+ case 1: /* Function Number [WORD] */
+
+- Descriptor->PinGroupFunction.FunctionNumber = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->PinGroupFunction.FunctionNumber = AcpiUtReadUint16(&Tmp16);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_FUNCTION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (PinGroupFunction.FunctionNumber));
+ break;
+@@ -1961,6 +2067,16 @@ RsDoPinGroupFunctionDescriptor (
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
++ /* correct enddianness as needed */
++ Tmp16 = Descriptor->PinGroupFunction.ResSourceOffset;
++ Descriptor->PinGroupFunction.ResSourceOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroupFunction.ResSourceLabelOffset;
++ Descriptor->PinGroupFunction.ResSourceLabelOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroupFunction.VendorOffset;
++ Descriptor->PinGroupFunction.VendorOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroupFunction.VendorLength;
++ Descriptor->PinGroupFunction.VendorLength = AcpiUtReadUint16(&Tmp16);
++
+ return (Rnode);
+ }
+
+@@ -1993,6 +2109,8 @@ RsDoPinGroupConfigDescriptor (
+ UINT16 DescriptorSize;
+ UINT32 CurrentByteOffset;
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+ CurrentByteOffset = Info->CurrentByteOffset;
+@@ -2016,7 +2134,7 @@ RsDoPinGroupConfigDescriptor (
+ sizeof (AML_RESOURCE_LARGE_HEADER));
+
+ Descriptor = Rnode->Buffer;
+- Descriptor->PinGroupConfig.ResourceLength = DescriptorSize;
++ Descriptor->PinGroupConfig.ResourceLength = AcpiUtReadUint16(&DescriptorSize);
+ Descriptor->PinGroupConfig.DescriptorType = ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG;
+ Descriptor->PinGroupConfig.RevisionId = AML_RESOURCE_PIN_GROUP_CONFIG_REVISION;
+
+@@ -2069,7 +2187,8 @@ RsDoPinGroupConfigDescriptor (
+
+ case 2: /* Pin Config Value [DWORD] (_VAL) */
+
+- Descriptor->PinGroupConfig.PinConfigValue = (UINT32) InitializerOp->Asl.Value.Integer;
++ Tmp32 = (UINT32) InitializerOp->Asl.Value.Integer;
++ Descriptor->PinGroupConfig.PinConfigValue = AcpiUtReadUint32(&Tmp32);
+ RsCreateDwordField (InitializerOp, ACPI_RESTAG_PINCONFIG_VALUE,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (PinGroupConfig.PinConfigValue));
+ break;
+@@ -2130,5 +2249,15 @@ RsDoPinGroupConfigDescriptor (
+ InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
+ }
+
++ /* correct enddianness as needed */
++ Tmp16 = Descriptor->PinGroupConfig.ResSourceOffset;
++ Descriptor->PinGroupConfig.ResSourceOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroupConfig.ResSourceLabelOffset;
++ Descriptor->PinGroupConfig.ResSourceLabelOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroupConfig.VendorOffset;
++ Descriptor->PinGroupConfig.VendorOffset = AcpiUtReadUint16(&Tmp16);
++ Tmp16 = Descriptor->PinGroupConfig.VendorLength;
++ Descriptor->PinGroupConfig.VendorLength = AcpiUtReadUint16(&Tmp16);
++
+ return (Rnode);
+ }
+Index: acpica-unix2-20200925/source/compiler/aslrestype2w.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/compiler/aslrestype2w.c
++++ acpica-unix2-20200925/source/compiler/aslrestype2w.c
+@@ -84,6 +84,7 @@ RsDoWordIoDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -147,7 +148,8 @@ RsDoWordIoDescriptor (
+
+ case 5: /* Address Granularity */
+
+- Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Granularity = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
+ GranOp = InitializerOp;
+@@ -155,7 +157,8 @@ RsDoWordIoDescriptor (
+
+ case 6: /* Address Min */
+
+- Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Minimum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
+ MinOp = InitializerOp;
+@@ -163,7 +166,8 @@ RsDoWordIoDescriptor (
+
+ case 7: /* Address Max */
+
+- Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Maximum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
+ MaxOp = InitializerOp;
+@@ -171,14 +175,16 @@ RsDoWordIoDescriptor (
+
+ case 8: /* Translation Offset */
+
+- Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.TranslationOffset = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
+ break;
+
+ case 9: /* Address Length */
+
+- Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.AddressLength = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
+ LengthOp = InitializerOp;
+@@ -263,13 +269,17 @@ RsDoWordIoDescriptor (
+ /* Validate the Min/Max/Len/Gran values */
+
+ RsLargeAddressCheck (
+- (UINT64) Descriptor->Address16.Minimum,
+- (UINT64) Descriptor->Address16.Maximum,
+- (UINT64) Descriptor->Address16.AddressLength,
+- (UINT64) Descriptor->Address16.Granularity,
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Minimum),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Maximum),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.AddressLength),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Granularity),
+ Descriptor->Address16.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
++ /* correct enddianness */
++ Tmp16 = Descriptor->Address16.ResourceLength;
++ Descriptor->Address16.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
+ OptionIndex + StringLength;
+ return (Rnode);
+@@ -305,6 +315,7 @@ RsDoWordBusNumberDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -361,8 +372,8 @@ RsDoWordBusNumberDescriptor (
+
+ case 4: /* Address Granularity */
+
+- Descriptor->Address16.Granularity =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Granularity = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
+ GranOp = InitializerOp;
+@@ -370,8 +381,8 @@ RsDoWordBusNumberDescriptor (
+
+ case 5: /* Min Address */
+
+- Descriptor->Address16.Minimum =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Minimum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
+ MinOp = InitializerOp;
+@@ -379,8 +390,8 @@ RsDoWordBusNumberDescriptor (
+
+ case 6: /* Max Address */
+
+- Descriptor->Address16.Maximum =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Maximum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
+ MaxOp = InitializerOp;
+@@ -388,16 +399,16 @@ RsDoWordBusNumberDescriptor (
+
+ case 7: /* Translation Offset */
+
+- Descriptor->Address16.TranslationOffset =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.TranslationOffset = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
+ break;
+
+ case 8: /* Address Length */
+
+- Descriptor->Address16.AddressLength =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.AddressLength = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
+ LengthOp = InitializerOp;
+@@ -468,13 +479,17 @@ RsDoWordBusNumberDescriptor (
+ /* Validate the Min/Max/Len/Gran values */
+
+ RsLargeAddressCheck (
+- (UINT64) Descriptor->Address16.Minimum,
+- (UINT64) Descriptor->Address16.Maximum,
+- (UINT64) Descriptor->Address16.AddressLength,
+- (UINT64) Descriptor->Address16.Granularity,
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Minimum),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Maximum),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.AddressLength),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Granularity),
+ Descriptor->Address16.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
++ /* correct enddianness */
++ Tmp16 = Descriptor->Address16.ResourceLength;
++ Descriptor->Address16.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
+ OptionIndex + StringLength;
+ return (Rnode);
+@@ -510,6 +525,7 @@ RsDoWordSpaceDescriptor (
+ UINT32 CurrentByteOffset;
+ UINT32 i;
+ BOOLEAN ResSourceIndex = FALSE;
++ UINT16 Tmp16;
+
+
+ InitializerOp = Info->DescriptorTypeOp->Asl.Child;
+@@ -577,8 +593,8 @@ RsDoWordSpaceDescriptor (
+
+ case 6: /* Address Granularity */
+
+- Descriptor->Address16.Granularity =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Granularity = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
+ GranOp = InitializerOp;
+@@ -586,8 +602,8 @@ RsDoWordSpaceDescriptor (
+
+ case 7: /* Min Address */
+
+- Descriptor->Address16.Minimum =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Minimum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
+ MinOp = InitializerOp;
+@@ -595,8 +611,8 @@ RsDoWordSpaceDescriptor (
+
+ case 8: /* Max Address */
+
+- Descriptor->Address16.Maximum =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.Maximum = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
+ MaxOp = InitializerOp;
+@@ -604,16 +620,16 @@ RsDoWordSpaceDescriptor (
+
+ case 9: /* Translation Offset */
+
+- Descriptor->Address16.TranslationOffset =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.TranslationOffset = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
+ break;
+
+ case 10: /* Address Length */
+
+- Descriptor->Address16.AddressLength =
+- (UINT16) InitializerOp->Asl.Value.Integer;
++ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
++ Descriptor->Address16.AddressLength = AcpiUtReadUint16(&Tmp16);
+ RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
+ CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
+ LengthOp = InitializerOp;
+@@ -684,13 +700,17 @@ RsDoWordSpaceDescriptor (
+ /* Validate the Min/Max/Len/Gran values */
+
+ RsLargeAddressCheck (
+- (UINT64) Descriptor->Address16.Minimum,
+- (UINT64) Descriptor->Address16.Maximum,
+- (UINT64) Descriptor->Address16.AddressLength,
+- (UINT64) Descriptor->Address16.Granularity,
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Minimum),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Maximum),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.AddressLength),
++ (UINT64) AcpiUtReadUint16(&Descriptor->Address16.Granularity),
+ Descriptor->Address16.Flags,
+ MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
+
++ /* correct enddianness */
++ Tmp16 = Descriptor->Address16.ResourceLength;
++ Descriptor->Address16.ResourceLength = AcpiUtReadUint16(&Tmp16);
++
+ Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
+ OptionIndex + StringLength;
+ return (Rnode);
+Index: acpica-unix2-20200925/source/components/disassembler/dmbuffer.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmbuffer.c
++++ acpica-unix2-20200925/source/components/disassembler/dmbuffer.c
+@@ -204,7 +204,7 @@ AcpiDmByteList (
+
+
+ ByteData = Op->Named.Data;
+- ByteCount = (UINT32) Op->Common.Value.Integer;
++ ByteCount = (UINT32) Op->Common.Value.Size;
+
+ /*
+ * The byte list belongs to a buffer, and can be produced by either
+Index: acpica-unix2-20200925/source/components/disassembler/dmopcode.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmopcode.c
++++ acpica-unix2-20200925/source/components/disassembler/dmopcode.c
+@@ -882,23 +882,23 @@ AcpiDmDisassembleOneOp (
+
+ case AML_INT_NAMEDFIELD_OP:
+
+- Length = AcpiDmDumpName (Op->Named.Name);
++ Length = AcpiDmDumpName (AcpiUtReadUint32(&Op->Named.Name));
+
+ AcpiOsPrintf (",");
+ ASL_CV_PRINT_ONE_COMMENT (Op, AML_NAMECOMMENT, NULL, 0);
+ AcpiOsPrintf ("%*.s %u", (unsigned) (5 - Length), " ",
+- (UINT32) Op->Common.Value.Integer);
++ (UINT32) Op->Common.Value.Size);
+
+ AcpiDmCommaIfFieldMember (Op);
+
+- Info->BitOffset += (UINT32) Op->Common.Value.Integer;
++ Info->BitOffset += (UINT32) Op->Common.Value.Size;
+ break;
+
+ case AML_INT_RESERVEDFIELD_OP:
+
+ /* Offset() -- Must account for previous offsets */
+
+- Offset = (UINT32) Op->Common.Value.Integer;
++ Offset = (UINT32) Op->Common.Value.Size;
+ Info->BitOffset += Offset;
+
+ if (Info->BitOffset % 8 == 0)
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrc.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrc.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrc.c
+@@ -417,7 +417,7 @@ AcpiDmIsResourceTemplate (
+ return (AE_TYPE);
+ }
+
+- DeclaredBufferLength = NextOp->Common.Value.Size;
++ DeclaredBufferLength = NextOp->Common.Value.Integer;
+
+ /* Get the length of the raw initialization byte list */
+
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcl.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrcl.c
+@@ -141,6 +141,8 @@ AcpiDmMemoryFields (
+ UINT32 Level)
+ {
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
+
+
+ for (i = 0; i < 4; i++)
+@@ -151,14 +153,16 @@ AcpiDmMemoryFields (
+ {
+ case 16:
+
+- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
+- AcpiDmMemoryNames[i]);
++ Tmp16 = ACPI_CAST_PTR (UINT16, Source)[i];
++ AcpiDmDumpInteger16 (AcpiUtReadUint16(&Tmp16),
++ AcpiDmMemoryNames[i]);
+ break;
+
+ case 32:
+
+- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
+- AcpiDmMemoryNames[i]);
++ Tmp32 = ACPI_CAST_PTR (UINT32, Source)[i];
++ AcpiDmDumpInteger32 (AcpiUtReadUint32(&Tmp32),
++ AcpiDmMemoryNames[i]);
+ break;
+
+ default:
+@@ -190,6 +194,9 @@ AcpiDmAddressFields (
+ UINT32 Level)
+ {
+ UINT32 i;
++ UINT16 Tmp16;
++ UINT32 Tmp32;
++ UINT64 Tmp64;
+
+
+ AcpiOsPrintf ("\n");
+@@ -202,20 +209,23 @@ AcpiDmAddressFields (
+ {
+ case 16:
+
+- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
+- AcpiDmAddressNames[i]);
++ Tmp16 = ACPI_CAST_PTR (UINT16, Source)[i];
++ AcpiDmDumpInteger16 (AcpiUtReadUint16(&Tmp16),
++ AcpiDmAddressNames[i]);
+ break;
+
+ case 32:
+
+- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
+- AcpiDmAddressNames[i]);
++ Tmp32 = ACPI_CAST_PTR (UINT32, Source)[i];
++ AcpiDmDumpInteger32 (AcpiUtReadUint32(&Tmp32),
++ AcpiDmAddressNames[i]);
+ break;
+
+ case 64:
+
+- AcpiDmDumpInteger64 (ACPI_CAST_PTR (UINT64, Source)[i],
+- AcpiDmAddressNames[i]);
++ Tmp64 = ACPI_CAST_PTR (UINT64, Source)[i];
++ AcpiDmDumpInteger64 (AcpiUtReadUint64(&Tmp64),
++ AcpiDmAddressNames[i]);
+ break;
+
+ default:
+@@ -749,7 +759,7 @@ AcpiDmExtendedDescriptor (
+ /* Extra field for this descriptor only */
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger64 (Resource->ExtAddress64.TypeSpecific,
++ AcpiDmDumpInteger64 (AcpiUtReadUint64(&Resource->ExtAddress64.TypeSpecific),
+ "Type-Specific Attributes");
+
+ /* Insert a descriptor name */
+@@ -876,11 +886,11 @@ AcpiDmFixedMemory32Descriptor (
+ AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]);
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger32 (Resource->FixedMemory32.Address,
++ AcpiDmDumpInteger32 (AcpiUtReadUint32(&Resource->FixedMemory32.Address),
+ "Address Base");
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength,
++ AcpiDmDumpInteger32 (AcpiUtReadUint32(&Resource->FixedMemory32.AddressLength),
+ "Address Length");
+
+ /* Insert a descriptor name */
+@@ -926,7 +936,8 @@ AcpiDmGenericRegisterDescriptor (
+ AcpiDmDumpInteger8 (Resource->GenericReg.BitOffset, "Bit Offset");
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger64 (Resource->GenericReg.Address, "Address");
++ AcpiDmDumpInteger64 (AcpiUtReadUint64(&Resource->GenericReg.Address),
++ "Address");
+
+ /* Optional field for ACPI 3.0 */
+
+@@ -989,7 +1000,7 @@ AcpiDmInterruptDescriptor (
+ AcpiDmResourceSource (Resource,
+ sizeof (AML_RESOURCE_EXTENDED_IRQ) +
+ ((UINT32) Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32),
+- Resource->ExtendedIrq.ResourceLength);
++ AcpiUtReadUint16(&Resource->ExtendedIrq.ResourceLength));
+
+ /* Insert a descriptor name */
+
+@@ -1004,7 +1015,7 @@ AcpiDmInterruptDescriptor (
+ {
+ AcpiDmIndent (Level + 1);
+ AcpiOsPrintf ("0x%8.8X,\n",
+- (UINT32) Resource->ExtendedIrq.Interrupts[i]);
++ AcpiUtReadUint32(&Resource->ExtendedIrq.Interrupts[i]));
+ }
+
+ AcpiDmIndent (Level);
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcl2.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrcl2.c
+@@ -191,15 +191,19 @@ AcpiDmGpioCommon (
+ char *DeviceName = NULL;
+ UINT32 PinCount;
+ UINT32 i;
++ UINT16 ResSourceOffset;
++ UINT16 VendorOffset;
++ UINT16 VendorLength;
+
+
+ /* ResourceSource, ResourceSourceIndex, ResourceType */
+
+ AcpiDmIndent (Level + 1);
+- if (Resource->Gpio.ResSourceOffset)
++ ResSourceOffset = AcpiUtReadUint16(&Resource->Gpio.ResSourceOffset);
++ if (ResSourceOffset)
+ {
+ DeviceName = ACPI_ADD_PTR (char,
+- Resource, Resource->Gpio.ResSourceOffset),
++ Resource, ResSourceOffset),
+ AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
+ }
+
+@@ -215,15 +219,15 @@ AcpiDmGpioCommon (
+
+ /* Dump the vendor data */
+
+- if (Resource->Gpio.VendorOffset)
++ VendorOffset = AcpiUtReadUint16(&Resource->Gpio.VendorOffset);
++ VendorLength = AcpiUtReadUint16(&Resource->Gpio.VendorLength);
++ if (VendorOffset)
+ {
+ AcpiOsPrintf ("\n");
+ AcpiDmIndent (Level + 1);
+- VendorData = ACPI_ADD_PTR (UINT8, Resource,
+- Resource->Gpio.VendorOffset);
++ VendorData = ACPI_ADD_PTR (UINT8, Resource, VendorOffset);
+
+- AcpiDmDumpRawDataBuffer (VendorData,
+- Resource->Gpio.VendorLength, Level);
++ AcpiDmDumpRawDataBuffer (VendorData, VendorLength, Level);
+ }
+
+ AcpiOsPrintf (")\n");
+@@ -233,17 +237,21 @@ AcpiDmGpioCommon (
+ AcpiDmIndent (Level + 1);
+ AcpiOsPrintf ("{ // Pin list\n");
+
++ PinCount = (UINT32) AcpiUtReadUint16(&Resource->Gpio.ResSourceOffset);
++ PinCount -= (UINT32) AcpiUtReadUint16(&Resource->Gpio.PinTableOffset);
++ PinCount /= sizeof (UINT16);
++
+ PinCount = ((UINT32) (Resource->Gpio.ResSourceOffset -
+ Resource->Gpio.PinTableOffset)) /
+ sizeof (UINT16);
+
+ PinList = (UINT16 *) ACPI_ADD_PTR (char, Resource,
+- Resource->Gpio.PinTableOffset);
++ AcpiUtReadUint16(&Resource->Gpio.PinTableOffset));
+
+ for (i = 0; i < PinCount; i++)
+ {
+ AcpiDmIndent (Level + 2);
+- AcpiOsPrintf ("0x%4.4X%s\n", PinList[i],
++ AcpiOsPrintf ("0x%4.4X%s\n", AcpiUtReadUint16(&(PinList[i])),
+ ((i + 1) < PinCount) ? "," : "");
+ }
+
+@@ -299,7 +307,8 @@ AcpiDmGpioIntDescriptor (
+ {
+ AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.PinConfig);
+ }
+- AcpiOsPrintf ("0x%4.4X,\n", Resource->Gpio.DebounceTimeout);
++ AcpiOsPrintf ("0x%4.4X,\n",
++ AcpiUtReadUint16(&Resource->Gpio.DebounceTimeout));
+
+ /* Dump the GpioInt/GpioIo common portion of the descriptor */
+
+@@ -350,8 +359,8 @@ AcpiDmGpioIoDescriptor (
+
+ /* DebounceTimeout, DriveStrength, IoRestriction */
+
+- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DebounceTimeout);
+- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DriveStrength);
++ AcpiOsPrintf ("0x%4.4X, ", AcpiUtReadUint16(&Resource->Gpio.DebounceTimeout));
++ AcpiOsPrintf ("0x%4.4X, ", AcpiUtReadUint16(&Resource->Gpio.DriveStrength));
+ AcpiOsPrintf ("%s,\n",
+ AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Resource->Gpio.IntFlags)]);
+
+@@ -434,6 +443,9 @@ AcpiDmPinFunctionDescriptor (
+ char *DeviceName = NULL;
+ UINT32 PinCount;
+ UINT32 i;
++ UINT16 ResSourceOffset;
++ UINT16 VendorOffset;
++ UINT16 VendorLength;
+
+ AcpiDmIndent (Level);
+ AcpiOsPrintf ("PinFunction (%s, ",
+@@ -451,12 +463,14 @@ AcpiDmPinFunctionDescriptor (
+
+ /* FunctionNumber */
+
+- AcpiOsPrintf ("0x%4.4X, ", Resource->PinFunction.FunctionNumber);
++ AcpiOsPrintf ("0x%4.4X, ",
++ AcpiUtReadUint16(&Resource->PinFunction.FunctionNumber));
+
+- if (Resource->PinFunction.ResSourceOffset)
++ ResSourceOffset = AcpiUtReadUint16(&Resource->PinFunction.ResSourceOffset);
++ if (ResSourceOffset)
+ {
+ DeviceName = ACPI_ADD_PTR (char,
+- Resource, Resource->PinFunction.ResSourceOffset),
++ Resource, ResSourceOffset),
+ AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
+ }
+
+@@ -476,15 +490,15 @@ AcpiDmPinFunctionDescriptor (
+
+ /* Dump the vendor data */
+
+- if (Resource->PinFunction.VendorLength)
++ VendorOffset = AcpiUtReadUint16(&Resource->PinFunction.VendorOffset);
++ VendorLength = AcpiUtReadUint16(&Resource->PinFunction.VendorLength);
++ if (VendorLength)
+ {
+ AcpiOsPrintf ("\n");
+ AcpiDmIndent (Level + 1);
+- VendorData = ACPI_ADD_PTR (UINT8, Resource,
+- Resource->PinFunction.VendorOffset);
++ VendorData = ACPI_ADD_PTR (UINT8, Resource, VendorOffset);
+
+- AcpiDmDumpRawDataBuffer (VendorData,
+- Resource->PinFunction.VendorLength, Level);
++ AcpiDmDumpRawDataBuffer (VendorData, VendorLength, Level);
+ }
+
+ AcpiOsPrintf (")\n");
+@@ -495,17 +509,17 @@ AcpiDmPinFunctionDescriptor (
+
+ AcpiOsPrintf ("{ // Pin list\n");
+
+- PinCount = ((UINT32) (Resource->PinFunction.ResSourceOffset -
+- Resource->PinFunction.PinTableOffset)) /
+- sizeof (UINT16);
++ PinCount = AcpiUtReadUint16(&Resource->PinFunction.ResSourceOffset);
++ PinCount -= AcpiUtReadUint16(&Resource->PinFunction.PinTableOffset);
++ PinCount /= sizeof (UINT16);
+
+ PinList = (UINT16 *) ACPI_ADD_PTR (char, Resource,
+- Resource->PinFunction.PinTableOffset);
++ AcpiUtReadUint16(&Resource->PinFunction.PinTableOffset));
+
+ for (i = 0; i < PinCount; i++)
+ {
+ AcpiDmIndent (Level + 2);
+- AcpiOsPrintf ("0x%4.4X%s\n", PinList[i],
++ AcpiOsPrintf ("0x%4.4X%s\n", AcpiUtReadUint16(&(PinList[i])),
+ ((i + 1) < PinCount) ? "," : "");
+ }
+
+Index: acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/disassembler/dmresrcs.c
++++ acpica-unix2-20200925/source/components/disassembler/dmresrcs.c
+@@ -93,7 +93,7 @@ AcpiDmIrqDescriptor (
+ AcpiOsPrintf (")\n");
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmBitList (Resource->Irq.IrqMask);
++ AcpiDmBitList (AcpiUtReadUint16(&Resource->Irq.IrqMask));
+ }
+
+
+@@ -161,8 +161,8 @@ AcpiDmFixedDmaDescriptor (
+
+ AcpiDmIndent (Level);
+ AcpiOsPrintf ("FixedDMA (0x%4.4X, 0x%4.4X, ",
+- Resource->FixedDma.RequestLines,
+- Resource->FixedDma.Channels);
++ AcpiUtReadUint16(&Resource->FixedDma.RequestLines),
++ AcpiUtReadUint16(&Resource->FixedDma.Channels));
+
+ if (Resource->FixedDma.Width <= 5)
+ {
+@@ -210,10 +210,12 @@ AcpiDmIoDescriptor (
+ AcpiGbl_IoDecode [ACPI_GET_1BIT_FLAG (Resource->Io.Flags)]);
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger16 (Resource->Io.Minimum, "Range Minimum");
++ AcpiDmDumpInteger16 (AcpiUtReadUint16(&Resource->Io.Minimum),
++ "Range Minimum");
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger16 (Resource->Io.Maximum, "Range Maximum");
++ AcpiDmDumpInteger16 (AcpiUtReadUint16(&Resource->Io.Maximum),
++ "Range Maximum");
+
+ AcpiDmIndent (Level + 1);
+ AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment");
+@@ -256,10 +258,12 @@ AcpiDmFixedIoDescriptor (
+ AcpiOsPrintf ("FixedIO (\n");
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger16 (Resource->FixedIo.Address, "Address");
++ AcpiDmDumpInteger16 (AcpiUtReadUint16(&Resource->FixedIo.Address),
++ "Address");
+
+ AcpiDmIndent (Level + 1);
+- AcpiDmDumpInteger8 (Resource->FixedIo.AddressLength, "Length");
++ AcpiDmDumpInteger8 (AcpiUtReadUint16(&Resource->FixedIo.AddressLength),
++ "Length");
+
+ /* Insert a descriptor name */
+
+Index: acpica-unix2-20200925/source/components/dispatcher/dsfield.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/dispatcher/dsfield.c
++++ acpica-unix2-20200925/source/components/dispatcher/dsfield.c
+@@ -336,6 +336,8 @@ AcpiDsGetFieldNames (
+ char *NamePath;
+ #endif
+
++ char TmpName[ACPI_NAMESEG_SIZE+1];
++
+
+ ACPI_FUNCTION_TRACE_PTR (DsGetFieldNames, Info);
+
+@@ -442,14 +444,17 @@ AcpiDsGetFieldNames (
+
+ /* Lookup the name, it should already exist */
+
++ memset(TmpName, 0, ACPI_NAMESEG_SIZE+1);
++ AcpiUtWriteUint(TmpName, ACPI_NAMESEG_SIZE,
++ &Arg->Named.Name, ACPI_NAMESEG_SIZE);
+ Status = AcpiNsLookup (WalkState->ScopeInfo,
+- (char *) &Arg->Named.Name, Info->FieldType,
++ TmpName, Info->FieldType,
+ ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE,
+ WalkState, &Info->FieldNode);
+ if (ACPI_FAILURE (Status))
+ {
+ ACPI_ERROR_NAMESPACE (WalkState->ScopeInfo,
+- (char *) &Arg->Named.Name, Status);
++ TmpName, Status);
+ return_ACPI_STATUS (Status);
+ }
+ else
+@@ -703,8 +708,13 @@ AcpiDsInitFieldObjects (
+ */
+ if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
+ {
++ char Tmp[ACPI_NAMESEG_SIZE+1];
++
++ memset(&Tmp, 0, ACPI_NAMESEG_SIZE+1);
++ AcpiUtWriteUint(&Tmp, ACPI_NAMESEG_SIZE,
++ &Arg->Named.Name, ACPI_NAMESEG_SIZE);
+ Status = AcpiNsLookup (WalkState->ScopeInfo,
+- (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1,
++ Tmp, Type, ACPI_IMODE_LOAD_PASS1,
+ Flags, WalkState, &Node);
+ if (ACPI_FAILURE (Status))
+ {
+Index: acpica-unix2-20200925/source/components/namespace/nsaccess.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsaccess.c
++++ acpica-unix2-20200925/source/components/namespace/nsaccess.c
+@@ -645,7 +645,7 @@ AcpiNsLookup (
+
+ /* Extract one ACPI name from the front of the pathname */
+
+- ACPI_MOVE_32_TO_32 (&SimpleName, Path);
++ ACPI_COPY_NAMESEG (&SimpleName, Path);
+
+ /* Try to find the single (4 character) ACPI name */
+
+Index: acpica-unix2-20200925/source/components/namespace/nsnames.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsnames.c
++++ acpica-unix2-20200925/source/components/namespace/nsnames.c
+@@ -300,7 +300,7 @@ AcpiNsBuildNormalizedPath (
+ ACPI_PATH_PUT8(FullPath, PathSize, AML_DUAL_NAME_PREFIX, Length);
+ }
+
+- ACPI_MOVE_32_TO_32 (Name, &NextNode->Name);
++ ACPI_COPY_NAMESEG (Name, &NextNode->Name);
+ DoNoTrailing = NoTrailing;
+ for (i = 0; i < 4; i++)
+ {
+Index: acpica-unix2-20200925/source/components/namespace/nsparse.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsparse.c
++++ acpica-unix2-20200925/source/components/namespace/nsparse.c
+@@ -203,6 +203,7 @@ AcpiNsOneCompleteParse (
+ ACPI_WALK_STATE *WalkState;
+ ACPI_TABLE_HEADER *Table;
+ ACPI_OWNER_ID OwnerId;
++ UINT32 TableLength;
+
+
+ ACPI_FUNCTION_TRACE (NsOneCompleteParse);
+@@ -216,13 +217,14 @@ AcpiNsOneCompleteParse (
+
+ /* Table must consist of at least a complete header */
+
+- if (Table->Length < sizeof (ACPI_TABLE_HEADER))
++ TableLength = AcpiUtReadUint32(&Table->Length);
++ if (TableLength < sizeof (ACPI_TABLE_HEADER))
+ {
+ return_ACPI_STATUS (AE_BAD_HEADER);
+ }
+
+ AmlStart = (UINT8 *) Table + sizeof (ACPI_TABLE_HEADER);
+- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
++ AmlLength = TableLength - sizeof (ACPI_TABLE_HEADER);
+
+ Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
+ if (ACPI_FAILURE (Status))
+Index: acpica-unix2-20200925/source/components/namespace/nsutils.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/namespace/nsutils.c
++++ acpica-unix2-20200925/source/components/namespace/nsutils.c
+@@ -272,7 +272,6 @@ AcpiNsBuildInternalName (
+ const char *ExternalName = Info->NextExternalChar;
+ char *Result = NULL;
+ UINT32 i;
+- char TmpSeg[ACPI_NAMESEG_SIZE+1];
+
+
+ ACPI_FUNCTION_TRACE (NsBuildInternalName);
+@@ -336,7 +335,6 @@ AcpiNsBuildInternalName (
+
+ for (; NumSegments; NumSegments--)
+ {
+- memset(TmpSeg, 0, ACPI_NAMESEG_SIZE+1);
+ for (i = 0; i < ACPI_NAMESEG_SIZE; i++)
+ {
+ if (ACPI_IS_PATH_SEPARATOR (*ExternalName) ||
+@@ -344,17 +342,16 @@ AcpiNsBuildInternalName (
+ {
+ /* Pad the segment with underscore(s) if segment is short */
+
+- TmpSeg[i] = '_';
++ Result[i] = '_';
+ }
+ else
+ {
+ /* Convert the character to uppercase and save it */
+
+- TmpSeg[i] = (char) toupper ((int) *ExternalName);
++ Result[i] = (char) toupper ((int) *ExternalName);
+ ExternalName++;
+ }
+ }
+- AcpiUtWriteUint(Result, ACPI_NAMESEG_SIZE, TmpSeg, ACPI_NAMESEG_SIZE);
+
+ /* Now we must have a path separator, or the pathname is bad */
+
diff --git a/OPT_LDFLAGS.patch b/OPT_LDFLAGS.patch
index 610d66d..de12ce1 100644
--- a/OPT_LDFLAGS.patch
+++ b/OPT_LDFLAGS.patch
@@ -1,7 +1,7 @@
-Index: acpica-unix2-20200528/generate/unix/Makefile.config
+Index: acpica-unix2-20200925/generate/unix/Makefile.config
===================================================================
---- acpica-unix2-20200528.orig/generate/unix/Makefile.config
-+++ acpica-unix2-20200528/generate/unix/Makefile.config
+--- acpica-unix2-20200925.orig/generate/unix/Makefile.config
++++ acpica-unix2-20200925/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.
diff --git a/acpica-tools.spec b/acpica-tools.spec
index ad94d67..7123e29 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -50,7 +50,7 @@ Patch22: 0023-Support-NFIT-in-a-big-endian-world.patch
Patch23: 0024-Support-SDEV-in-a-big-endian-world.patch
Patch24: 0025-Support-HMAT-in-a-big-endian-world.patch
Patch25: 0026-Support-PDTT-in-a-big-endian-world.patch
-Patch25: 0027-Support-PPTT-in-a-big-endian-world.patch
+Patch26: 0027-Support-PPTT-in-a-big-endian-world.patch
Patch27: 0028-Support-PCCT-in-a-big-endian-world.patch
Patch28: 0029-Support-WDAT-in-a-big-endian-world.patch
Patch29: 0030-Support-TCPA-in-a-big-endian-world.patch
@@ -65,25 +65,26 @@ Patch37: 0038-Support-TPM2-in-a-big-endian-world.patch
Patch38: 0039-Add-partial-big-endian-support-for-WPBT-tables.patch
Patch39: 0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
-# other miscellaneous patch
-Patch40: unaligned.patch
-Patch41: OPT_LDFLAGS.patch
-Patch42: int-format.patch
-Patch43: f23-harden.patch
-Patch44: template.patch
-Patch45: ppc64le.patch
-Patch46: arm7hl.patch
-Patch47: simple-64bit.patch
-Patch48: mips-be-fix.patch
-Patch49: cve-2017-13693.patch
-Patch50: cve-2017-13694.patch
-Patch51: cve-2017-13695.patch
-Patch52: str-trunc-warn.patch
-Patch53: ptr-cast.patch
-Patch54: aslcodegen.patch
-Patch55: facp.patch
-Patch56: armv7-str-fixes.patch
-Patch57: dbtest.patch
+# other miscellaneous patches
+Patch100: unaligned.patch
+Patch101: OPT_LDFLAGS.patch
+Patch102: int-format.patch
+Patch103: f23-harden.patch
+Patch104: template.patch
+Patch105: arm7hl.patch
+Patch106: simple-64bit.patch
+Patch107: mips-be-fix.patch
+Patch108: cve-2017-13693.patch
+Patch109: cve-2017-13694.patch
+Patch110: cve-2017-13695.patch
+Patch111: str-trunc-warn.patch
+Patch112: ptr-cast.patch
+Patch113: facp.patch
+Patch114: armv7-str-fixes.patch
+Patch115: dbtest.patch
+%ifarch i686 armv7hl
+Patch116: ull-32bit.patch
+%endif
BuildRequires: bison patchutils flex gcc
@@ -132,65 +133,68 @@ This version of the tools is being released under GPLv2 license.
%setup -q -n acpica-unix2-%{version}
gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
-# apply all the patches
-%patch0
-%patch1
-%patch2
-%patch3
-%patch4
-%patch5
-%patch6
-%patch7
-%patch8
-%patch9
-%patch10
-%patch11
-%patch12
-%patch13
-%patch14
-%patch15
-%patch16
-%patch17
-%patch18
-%patch19
-%patch20
-%patch21
-%patch22
-%patch23
-%patch24
-%patch25
-%patch26
-%patch27
-%patch28
-%patch29
-%patch30
-%patch31
-%patch32
-%patch33
-%patch34
-%patch35
-%patch36
-%patch37
-%patch38
-%patch39
-%patch40
-%patch41
-%patch42
-%patch43
-%patch44
-%patch45
-%patch46
-%patch47
-%patch48
-%patch49
-%patch50
-%patch51
-%patch52
-%patch53
-%patch54
-%patch55
-%patch56
-%patch57
+# apply the big-endian patches
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+
+# apply the remaining patches
+%patch100 -p1
+%patch101 -p1
+%patch102 -p1
+%patch103 -p1
+%patch104 -p1
+%patch105 -p1
+%patch106 -p1
+%patch107 -p1
+%patch108 -p1
+%patch109 -p1
+%patch110 -p1
+%patch111 -p1
+%patch112 -p1
+%patch113 -p1
+%patch114 -p1
+%patch115 -p1
+%ifarch i686 armv7hl
+%patch116 -p1
+%endif
cp -p %{SOURCE2} README.Fedora
cp -p %{SOURCE3} iasl.1
@@ -306,11 +310,13 @@ fi
%changelog
-* Thu Oct 15 2020 Al Stone <ahs3(a)redhat.com> - 20200925-1
+* Mon Oct 19 2020 Al Stone <ahs3(a)redhat.com> - 20200925-1
- Update to 20200925 source tree
-- Completely revamp the old big-endian patches (maintainability was the goal)
-- The acpinames command has been deprecated upstrean; acpiexec provides
- replacement functionality
+- Completely revamp the old big-endian patches (maintainability was the goal).
+ This results in a much larger patch set, but each patch is more clearly used
+ for a specific purpose.
+- The acpinames command has been deprecated upstream; acpiexec provides
+ replacement functionality.
* Fri Jul 31 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 20200430-3
- Second attempt - Rebuilt for
diff --git a/arm7hl.patch b/arm7hl.patch
index 75abf45..bcac21f 100644
--- a/arm7hl.patch
+++ b/arm7hl.patch
@@ -1,8 +1,8 @@
-Index: acpica-unix-20191018/source/include/acmacros.h
+Index: acpica-unix2-20200925/source/include/acmacros.h
===================================================================
---- acpica-unix-20191018.orig/source/include/acmacros.h
-+++ acpica-unix-20191018/source/include/acmacros.h
-@@ -178,6 +178,8 @@
+--- acpica-unix2-20200925.orig/source/include/acmacros.h
++++ acpica-unix2-20200925/source/include/acmacros.h
+@@ -163,6 +163,8 @@
/* 16-bit source, 16/32/64 destination */
@@ -11,7 +11,7 @@ Index: acpica-unix-20191018/source/include/acmacros.h
#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 @@
+@@ -182,6 +184,7 @@
/* 64-bit source, 16/32/64 destination */
diff --git a/armv7-str-fixes.patch b/armv7-str-fixes.patch
index 4de8226..fdc2434 100644
--- a/armv7-str-fixes.patch
+++ b/armv7-str-fixes.patch
@@ -1,7 +1,8 @@
-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 @@
+Index: acpica-unix2-20200925/source/include/actypes.h
+===================================================================
+--- acpica-unix2-20200925.orig/source/include/actypes.h
++++ acpica-unix2-20200925/source/include/actypes.h
+@@ -561,7 +561,7 @@ typedef UINT64
#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))
diff --git a/aslcodegen.patch b/aslcodegen.patch
deleted file mode 100644
index 2e2854e..0000000
--- a/aslcodegen.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-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(a)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);
diff --git a/big-endian-dmtbdump.patch b/big-endian-dmtbdump.patch
deleted file mode 100644
index fed81c1..0000000
--- a/big-endian-dmtbdump.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-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);
- }
diff --git a/big-endian-dmtbdump1.patch b/big-endian-dmtbdump1.patch
deleted file mode 100644
index ba37c6f..0000000
--- a/big-endian-dmtbdump1.patch
+++ /dev/null
@@ -1,637 +0,0 @@
-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:
-
diff --git a/big-endian-dmtbdump2.patch b/big-endian-dmtbdump2.patch
deleted file mode 100644
index 0997b5b..0000000
--- a/big-endian-dmtbdump2.patch
+++ /dev/null
@@ -1,887 +0,0 @@
-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))
- {
diff --git a/big-endian-dmtbdump3.patch b/big-endian-dmtbdump3.patch
deleted file mode 100644
index 4daf79c..0000000
--- a/big-endian-dmtbdump3.patch
+++ /dev/null
@@ -1,250 +0,0 @@
-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);
- }
diff --git a/big-endian-v2.patch b/big-endian-v2.patch
deleted file mode 100644
index 807e534..0000000
--- a/big-endian-v2.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-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(a)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);
- }
diff --git a/big-endian-v3.patch b/big-endian-v3.patch
deleted file mode 100644
index 93ef67d..0000000
--- a/big-endian-v3.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-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 |
diff --git a/big-endian.patch b/big-endian.patch
deleted file mode 100644
index 284bc46..0000000
--- a/big-endian.patch
+++ /dev/null
@@ -1,4693 +0,0 @@
-Big-endian support
-
-This is a combined patch that folds all of the past and present changes
-for big-endian support into a single patch, hopefully eliminating any sort
-of redundancy but also capturing all such changes in a single location.
-
-To date, this has been critical for the s390x architecture only.
-
-Signed-off-by: Al Stone <ahs3(a)redhat.com>
-
-Index: acpica-unix2-20200528/source/compiler/aslcodegen.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslcodegen.c
-+++ acpica-unix2-20200528/source/compiler/aslcodegen.c
-@@ -237,16 +237,12 @@ CgWriteAmlOpcode (
- ACPI_PARSE_OBJECT *Op)
- {
- UINT8 PkgLenFirstByte;
-- UINT32 i;
-- union {
-- UINT16 Opcode;
-- UINT8 OpcodeBytes[2];
-- } Aml;
-- union {
-- UINT32 Len;
-- UINT8 LenBytes[4];
-- } PkgLen;
--
-+ UINT8 Byte;
-+ UINT16 Word;
-+ UINT32 DWord;
-+ UINT64 QWord;
-+ UINT16 AmlOpcode;
-+ UINT32 PkgLen;
-
- /* We expect some DEFAULT_ARGs, just ignore them */
-
-@@ -279,51 +275,52 @@ CgWriteAmlOpcode (
-
- /* Special opcodes for within a field definition */
-
-- Aml.Opcode = AML_FIELD_OFFSET_OP;
-+ AmlOpcode = AML_FIELD_OFFSET_OP;
- break;
-
- case AML_INT_ACCESSFIELD_OP:
-
-- Aml.Opcode = AML_FIELD_ACCESS_OP;
-+ AmlOpcode = AML_FIELD_ACCESS_OP;
- break;
-
- case AML_INT_CONNECTION_OP:
-
-- Aml.Opcode = AML_FIELD_CONNECTION_OP;
-+ AmlOpcode = AML_FIELD_CONNECTION_OP;
- break;
-
- default:
-
-- Aml.Opcode = Op->Asl.AmlOpcode;
-+ AmlOpcode = Op->Asl.AmlOpcode;
- break;
- }
-
-
-- switch (Aml.Opcode)
-+ switch (AmlOpcode)
- {
- case AML_PACKAGE_LENGTH:
-
- /* Value is the length to be encoded (Used in field definitions) */
-
-- PkgLen.Len = (UINT32) Op->Asl.Value.Integer;
-+ PkgLen = (UINT32) Op->Asl.Value.Integer;
- break;
-
- default:
-
- /* Check for two-byte opcode */
-
-- if (Aml.Opcode > 0x00FF)
-+ if (AmlOpcode > 0x00FF)
- {
- /* Write the high byte first */
--
-- CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[1], 1);
-+ Byte = ACPI_HIBYTE(AmlOpcode);
-+ CgLocalWriteAmlData (Op, &Byte, 1);
- }
-
-- CgLocalWriteAmlData (Op, &Aml.OpcodeBytes[0], 1);
-+ Byte = ACPI_LOBYTE(AmlOpcode);
-+ CgLocalWriteAmlData (Op, &Byte, 1);
-
- /* Subtreelength doesn't include length of package length bytes */
-
-- PkgLen.Len = Op->Asl.AmlSubtreeLength + Op->Asl.AmlPkgLenBytes;
-+ PkgLen = Op->Asl.AmlSubtreeLength + Op->Asl.AmlPkgLenBytes;
- break;
- }
-
-@@ -334,8 +331,8 @@ CgWriteAmlOpcode (
- if (Op->Asl.AmlPkgLenBytes == 1)
- {
- /* Simplest case -- no bytes to follow, just write the count */
--
-- CgLocalWriteAmlData (Op, &PkgLen.LenBytes[0], 1);
-+ Byte = ACPI_LOBYTE(PkgLen);
-+ CgLocalWriteAmlData (Op, &Byte, 1);
- }
- else if (Op->Asl.AmlPkgLenBytes != 0)
- {
-@@ -345,7 +342,7 @@ CgWriteAmlOpcode (
- */
- PkgLenFirstByte = (UINT8)
- (((UINT32) (Op->Asl.AmlPkgLenBytes - 1) << 6) |
-- (PkgLen.LenBytes[0] & 0x0F));
-+ (PkgLen & 0x0F));
-
- CgLocalWriteAmlData (Op, &PkgLenFirstByte, 1);
-
-@@ -353,39 +350,47 @@ CgWriteAmlOpcode (
- * Shift the length over by the 4 bits we just stuffed
- * in the first byte
- */
-- PkgLen.Len >>= 4;
-+ PkgLen >>= 4;
-
- /*
- * Now we can write the remaining bytes -
- * either 1, 2, or 3 bytes
- */
-- for (i = 0; i < (UINT32) (Op->Asl.AmlPkgLenBytes - 1); i++)
-+ Byte = ACPI_LOBYTE(PkgLen);
-+ CgLocalWriteAmlData (Op, &Byte, 1);
-+ if (Op->Asl.AmlPkgLenBytes >= 3)
-+ {
-+ Byte = ACPI_HIBYTE(PkgLen);
-+ CgLocalWriteAmlData (Op, &Byte, 1);
-+ }
-+ if (Op->Asl.AmlPkgLenBytes >= 4)
- {
-- CgLocalWriteAmlData (Op, &PkgLen.LenBytes[i], 1);
-+ Byte = ACPI_LOBYTE(ACPI_HIWORD(PkgLen));
-+ CgLocalWriteAmlData (Op, &Byte, 1);
- }
- }
- }
-
-- switch (Aml.Opcode)
-+ switch (AmlOpcode)
- {
- case AML_BYTE_OP:
--
-- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 1);
-+ Byte = (UINT8) Op->Asl.Value.Integer;
-+ CgLocalWriteAmlData (Op, &Byte, 1);
- break;
-
- case AML_WORD_OP:
--
-- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 2);
-+ ACPI_MOVE_64_TO_16(&Word, &Op->Asl.Value.Integer);
-+ CgLocalWriteAmlData (Op, &Word, 2);
- break;
-
- case AML_DWORD_OP:
--
-- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 4);
-+ ACPI_MOVE_64_TO_32(&DWord, &Op->Asl.Value.Integer);
-+ CgLocalWriteAmlData (Op, &DWord, 4);
- break;
-
- case AML_QWORD_OP:
--
-- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, 8);
-+ ACPI_MOVE_64_TO_64(&QWord, &Op->Asl.Value.Integer);
-+ CgLocalWriteAmlData (Op, &QWord, 8);
- break;
-
- case AML_STRING_OP:
-@@ -421,6 +426,7 @@ CgWriteTableHeader (
- ACPI_PARSE_OBJECT *Op)
- {
- ACPI_PARSE_OBJECT *Child;
-+ UINT32 DWord;
- UINT32 CommentLength;
- ACPI_COMMENT_NODE *Current;
-
-@@ -478,7 +484,7 @@ CgWriteTableHeader (
- /* OEM Revision */
-
- Child = Child->Asl.Next;
-- AslGbl_TableHeader.OemRevision = (UINT32) Child->Asl.Value.Integer;
-+ ACPI_MOVE_64_TO_32(&AslGbl_TableHeader.OemRevision, &Child->Asl.Value.Integer);
-
- /* Compiler ID */
-
-@@ -486,12 +492,13 @@ CgWriteTableHeader (
-
- /* Compiler version */
-
-- AslGbl_TableHeader.AslCompilerRevision = ACPI_CA_VERSION;
-+ DWord = ACPI_CA_VERSION;
-+ ACPI_MOVE_32_TO_32(&AslGbl_TableHeader.AslCompilerRevision, &DWord);
-
- /* Table length. Checksum zero for now, will rewrite later */
-
-- AslGbl_TableHeader.Length = sizeof (ACPI_TABLE_HEADER) +
-- Op->Asl.AmlSubtreeLength;
-+ DWord = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
-+ ACPI_MOVE_32_TO_32(&AslGbl_TableHeader.Length, &DWord);
-
- /* Calculate the comment lengths for this definition block parseOp */
-
-@@ -625,7 +632,10 @@ CgWriteNode (
- ACPI_PARSE_OBJECT *Op)
- {
- ASL_RESOURCE_NODE *Rnode;
--
-+ UINT8 Byte;
-+ UINT16 Word;
-+ UINT32 DWord;
-+ UINT64 QWord;
-
- /* Write all comments here. */
-
-@@ -649,13 +659,24 @@ CgWriteNode (
- switch (Op->Asl.AmlOpcode)
- {
- case AML_RAW_DATA_BYTE:
-+ Byte = (UINT8) Op->Asl.Value.Integer;
-+ CgLocalWriteAmlData (Op, &Byte, 1);
-+ return;
-+
- case AML_RAW_DATA_WORD:
-- case AML_RAW_DATA_DWORD:
-- case AML_RAW_DATA_QWORD:
-+ ACPI_MOVE_64_TO_16(&Word, &Op->Asl.Value.Integer);
-+ CgLocalWriteAmlData (Op, &Word, 2);
-+ return;
-
-- CgLocalWriteAmlData (Op, &Op->Asl.Value.Integer, Op->Asl.AmlLength);
-+ case AML_RAW_DATA_DWORD:
-+ ACPI_MOVE_64_TO_32(&DWord, &Op->Asl.Value.Integer);
-+ CgLocalWriteAmlData (Op, &DWord, 4);
- return;
-
-+ case AML_RAW_DATA_QWORD:
-+ ACPI_MOVE_64_TO_64(&QWord, &Op->Asl.Value.Integer);
-+ CgLocalWriteAmlData (Op, &QWord, 8);
-+ return;
-
- case AML_RAW_DATA_BUFFER:
-
-Index: acpica-unix2-20200528/source/compiler/aslopcodes.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslopcodes.c
-+++ acpica-unix2-20200528/source/compiler/aslopcodes.c
-@@ -485,6 +485,7 @@ OpcDoUnicode (
- UINT32 i;
- UINT8 *AsciiString;
- UINT16 *UnicodeString;
-+ UINT16 UChar;
- ACPI_PARSE_OBJECT *BufferLengthOp;
-
-
-@@ -511,7 +512,8 @@ OpcDoUnicode (
-
- for (i = 0; i < Count; i++)
- {
-- UnicodeString[i] = (UINT16) AsciiString[i];
-+ UChar = (UINT16) AsciiString[i];
-+ ACPI_MOVE_16_TO_16(&UnicodeString[i], &UChar);
- }
-
- /*
-Index: acpica-unix2-20200528/source/compiler/aslrestype1.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype1.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype1.c
-@@ -142,6 +142,11 @@ RsDoMemory24Descriptor (
- ACPI_PARSE_OBJECT *LengthOp = NULL;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 CurrentByteOffset;
-+ UINT16 Minimum = 0;
-+ UINT16 Maximum = 0;
-+ UINT16 AddressLength = 0;
-+ UINT16 Alignment = 0;
-+ UINT16 ResourceLength;
- UINT32 i;
-
-
-@@ -151,7 +156,8 @@ RsDoMemory24Descriptor (
-
- Descriptor = Rnode->Buffer;
- Descriptor->Memory24.DescriptorType = ACPI_RESOURCE_NAME_MEMORY24;
-- Descriptor->Memory24.ResourceLength = 9;
-+ ResourceLength = 9;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Memory24.ResourceLength, &ResourceLength);
-
- /* Process all child initialization nodes */
-
-@@ -168,7 +174,7 @@ RsDoMemory24Descriptor (
-
- case 1: /* Min Address */
-
-- Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
- MinOp = InitializerOp;
-@@ -176,7 +182,7 @@ RsDoMemory24Descriptor (
-
- case 2: /* Max Address */
-
-- Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
- MaxOp = InitializerOp;
-@@ -184,14 +190,14 @@ RsDoMemory24Descriptor (
-
- case 3: /* Alignment */
-
-- Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment));
- break;
-
- case 4: /* Length */
-
-- Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
- LengthOp = InitializerOp;
-@@ -214,12 +220,17 @@ RsDoMemory24Descriptor (
- /* Validate the Min/Max/Len/Align values (Alignment==0 means 64K) */
-
- RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY24,
-- Descriptor->Memory24.Minimum,
-- Descriptor->Memory24.Maximum,
-- Descriptor->Memory24.AddressLength,
-- Descriptor->Memory24.Alignment,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Alignment,
- MinOp, MaxOp, LengthOp, NULL, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Memory24.Minimum, &Minimum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Memory24.Maximum, &Maximum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Memory24.AddressLength, &AddressLength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Memory24.Alignment, &Alignment);
-+
- return (Rnode);
- }
-
-@@ -248,6 +259,11 @@ RsDoMemory32Descriptor (
- ACPI_PARSE_OBJECT *AlignOp = NULL;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 CurrentByteOffset;
-+ UINT32 Minimum = 0;
-+ UINT32 Maximum = 0;
-+ UINT32 AddressLength = 0;
-+ UINT32 Alignment = 0;
-+ UINT16 ResourceLength;
- UINT32 i;
-
-
-@@ -257,7 +273,8 @@ RsDoMemory32Descriptor (
-
- Descriptor = Rnode->Buffer;
- Descriptor->Memory32.DescriptorType = ACPI_RESOURCE_NAME_MEMORY32;
-- Descriptor->Memory32.ResourceLength = 17;
-+ ResourceLength = 17;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Memory32.ResourceLength, &ResourceLength);
-
- /* Process all child initialization nodes */
-
-@@ -274,7 +291,7 @@ RsDoMemory32Descriptor (
-
- case 1: /* Min Address */
-
-- Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
- MinOp = InitializerOp;
-@@ -282,7 +299,7 @@ RsDoMemory32Descriptor (
-
- case 2: /* Max Address */
-
-- Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
- MaxOp = InitializerOp;
-@@ -290,7 +307,7 @@ RsDoMemory32Descriptor (
-
- case 3: /* Alignment */
-
-- Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
-+ Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
- AlignOp = InitializerOp;
-@@ -298,7 +315,7 @@ RsDoMemory32Descriptor (
-
- case 4: /* Length */
-
-- Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
- LengthOp = InitializerOp;
-@@ -321,12 +338,17 @@ RsDoMemory32Descriptor (
- /* Validate the Min/Max/Len/Align values */
-
- RsSmallAddressCheck (ACPI_RESOURCE_NAME_MEMORY32,
-- Descriptor->Memory32.Minimum,
-- Descriptor->Memory32.Maximum,
-- Descriptor->Memory32.AddressLength,
-- Descriptor->Memory32.Alignment,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Alignment,
- MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_32_TO_32(&Descriptor->Memory32.Minimum, &Minimum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Memory32.Maximum, &Maximum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Memory32.AddressLength, &AddressLength);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Memory32.Alignment, &Alignment);
-+
- return (Rnode);
- }
-
-@@ -351,6 +373,7 @@ RsDoMemory32FixedDescriptor (
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 CurrentByteOffset;
-+ UINT16 ResourceLength;
- UINT32 i;
-
-
-@@ -360,7 +383,8 @@ RsDoMemory32FixedDescriptor (
-
- Descriptor = Rnode->Buffer;
- Descriptor->FixedMemory32.DescriptorType = ACPI_RESOURCE_NAME_FIXED_MEMORY32;
-- Descriptor->FixedMemory32.ResourceLength = 9;
-+ ResourceLength = 9;
-+ ACPI_MOVE_16_TO_16(&Descriptor->FixedMemory32.ResourceLength, &ResourceLength);
-
- /* Process all child initialization nodes */
-
-@@ -377,14 +401,16 @@ RsDoMemory32FixedDescriptor (
-
- case 1: /* Address */
-
-- Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer;
-+ ACPI_MOVE_64_TO_32(&Descriptor->FixedMemory32.Address,
-+ &InitializerOp->Asl.Value.Integer);
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address));
- break;
-
- case 2: /* Length */
-
-- Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
-+ ACPI_MOVE_64_TO_32(&Descriptor->FixedMemory32.AddressLength,
-+ &InitializerOp->Asl.Value.Integer);
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
- break;
-Index: acpica-unix2-20200528/source/compiler/aslrestype1i.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype1i.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype1i.c
-@@ -198,6 +198,8 @@ RsDoFixedDmaDescriptor (
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 CurrentByteOffset;
-+ UINT16 RequestLines = 0;
-+ UINT16 Channels = 0;
- UINT32 i;
-
-
-@@ -217,14 +219,14 @@ RsDoFixedDmaDescriptor (
- {
- case 0: /* DMA Request Lines [WORD] (_DMA) */
-
-- Descriptor->FixedDma.RequestLines = (UINT16) InitializerOp->Asl.Value.Integer;
-+ RequestLines = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_DMA,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.RequestLines));
- break;
-
- case 1: /* DMA Channel [WORD] (_TYP) */
-
-- Descriptor->FixedDma.Channels = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Channels = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_DMATYPE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedDma.Channels));
- break;
-@@ -249,6 +251,9 @@ RsDoFixedDmaDescriptor (
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->FixedDma.RequestLines, &RequestLines);
-+ ACPI_MOVE_16_TO_16(&Descriptor->FixedDma.Channels, &Channels);
-+
- return (Rnode);
- }
-
-@@ -274,6 +279,7 @@ RsDoFixedIoDescriptor (
- ACPI_PARSE_OBJECT *AddressOp = NULL;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 CurrentByteOffset;
-+ UINT16 Address = 0;
- UINT32 i;
-
-
-@@ -293,8 +299,7 @@ RsDoFixedIoDescriptor (
- {
- case 0: /* Base Address */
-
-- Descriptor->FixedIo.Address =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Address = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
- AddressOp = InitializerOp;
-@@ -324,11 +329,13 @@ RsDoFixedIoDescriptor (
-
- /* Error checks */
-
-- if (Descriptor->FixedIo.Address > 0x03FF)
-+ if (Address > 0x03FF)
- {
- AslError (ASL_WARNING, ASL_MSG_ISA_ADDRESS, AddressOp, NULL);
- }
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->FixedIo.Address, &Address);
-+
- return (Rnode);
- }
-
-@@ -357,6 +364,8 @@ RsDoIoDescriptor (
- ACPI_PARSE_OBJECT *AlignOp = NULL;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 CurrentByteOffset;
-+ UINT16 Minimum = 0;
-+ UINT16 Maximum = 0;
- UINT32 i;
-
-
-@@ -383,8 +392,7 @@ RsDoIoDescriptor (
-
- case 1: /* Min Address */
-
-- Descriptor->Io.Minimum =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
- MinOp = InitializerOp;
-@@ -392,8 +400,7 @@ RsDoIoDescriptor (
-
- case 2: /* Max Address */
-
-- Descriptor->Io.Maximum =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
- MaxOp = InitializerOp;
-@@ -434,12 +441,15 @@ RsDoIoDescriptor (
- /* Validate the Min/Max/Len/Align values */
-
- RsSmallAddressCheck (ACPI_RESOURCE_NAME_IO,
-- Descriptor->Io.Minimum,
-- Descriptor->Io.Maximum,
-+ Minimum,
-+ Maximum,
- Descriptor->Io.AddressLength,
- Descriptor->Io.Alignment,
- MinOp, MaxOp, LengthOp, AlignOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Io.Minimum, &Minimum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Io.Maximum, &Maximum);
-+
- return (Rnode);
- }
-
-@@ -559,9 +569,9 @@ RsDoIrqDescriptor (
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-- /* Now we can set the channel mask */
-+ /* Now we can set the interrupt mask */
-
-- Descriptor->Irq.IrqMask = IrqMask;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Irq.IrqMask, &IrqMask);
- return (Rnode);
- }
-
-@@ -660,6 +670,6 @@ RsDoIrqNoFlagsDescriptor (
-
- /* Now we can set the interrupt mask */
-
-- Descriptor->Irq.IrqMask = IrqMask;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Irq.IrqMask, &IrqMask);
- return (Rnode);
- }
-Index: acpica-unix2-20200528/source/compiler/aslrestype2.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype2.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype2.c
-@@ -76,6 +76,7 @@ RsDoGeneralRegisterDescriptor (
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
- UINT32 CurrentByteOffset;
-+ UINT16 ResourceLength;
- UINT32 i;
-
-
-@@ -85,7 +86,9 @@ RsDoGeneralRegisterDescriptor (
-
- Descriptor = Rnode->Buffer;
- Descriptor->GenericReg.DescriptorType = ACPI_RESOURCE_NAME_GENERIC_REGISTER;
-- Descriptor->GenericReg.ResourceLength = 12;
-+ ResourceLength = 12;
-+ ACPI_MOVE_16_TO_16(&Descriptor->GenericReg.ResourceLength,
-+ &ResourceLength);
-
- /* Process all child initialization nodes */
-
-@@ -95,35 +98,52 @@ RsDoGeneralRegisterDescriptor (
- {
- case 0: /* Address space */
-
-+ /*
- Descriptor->GenericReg.AddressSpaceId = (UINT8) InitializerOp->Asl.Value.Integer;
-+ */
-+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.AddressSpaceId,
-+ &InitializerOp->Asl.Value.Integer);
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ADDRESSSPACE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.AddressSpaceId));
- break;
-
- case 1: /* Register Bit Width */
-
-+ /*
- Descriptor->GenericReg.BitWidth = (UINT8) InitializerOp->Asl.Value.Integer;
-+ */
-+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.BitWidth,
-+ &InitializerOp->Asl.Value.Integer);
- RsCreateByteField (InitializerOp, ACPI_RESTAG_REGISTERBITWIDTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.BitWidth));
- break;
-
- case 2: /* Register Bit Offset */
-
-+ /*
- Descriptor->GenericReg.BitOffset = (UINT8) InitializerOp->Asl.Value.Integer;
-+ */
-+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.BitOffset,
-+ &InitializerOp->Asl.Value.Integer);
- RsCreateByteField (InitializerOp, ACPI_RESTAG_REGISTERBITOFFSET,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.BitOffset));
- break;
-
- case 3: /* Register Address */
-
-- Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer;
-+ ACPI_MOVE_64_TO_64(&Descriptor->GenericReg.Address,
-+ &InitializerOp->Asl.Value.Integer);
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_ADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
- break;
-
- case 4: /* Access Size (ACPI 3.0) */
-
-+ /*
- Descriptor->GenericReg.AccessSize = (UINT8) InitializerOp->Asl.Value.Integer;
-+ */
-+ ACPI_MOVE_64_TO_8(&Descriptor->GenericReg.AccessSize,
-+ &InitializerOp->Asl.Value.Integer);
- RsCreateByteField (InitializerOp, ACPI_RESTAG_ACCESSSIZE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.AccessSize));
-
-@@ -177,6 +197,7 @@ RsDoInterruptDescriptor (
- AML_RESOURCE *Rover = NULL;
- ACPI_PARSE_OBJECT *InitializerOp;
- ASL_RESOURCE_NODE *Rnode;
-+ UINT16 ResourceLength = 0;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 CurrentByteOffset;
-@@ -225,7 +246,7 @@ RsDoInterruptDescriptor (
- * Initial descriptor length -- may be enlarged if there are
- * optional fields present
- */
-- Descriptor->ExtendedIrq.ResourceLength = 2; /* Flags and table length byte */
-+ ResourceLength = 2; /* Flags and table length byte */
- Descriptor->ExtendedIrq.InterruptCount = 0;
-
- Rover = ACPI_CAST_PTR (AML_RESOURCE,
-@@ -333,10 +354,11 @@ RsDoInterruptDescriptor (
-
- /* Save the integer and move pointer to the next one */
-
-- Rover->DwordItem = (UINT32) InitializerOp->Asl.Value.Integer;
-+ ACPI_MOVE_64_TO_32(&Rover->DwordItem,
-+ &InitializerOp->Asl.Value.Integer);
- Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->DwordItem), 4);
- Descriptor->ExtendedIrq.InterruptCount++;
-- Descriptor->ExtendedIrq.ResourceLength += 4;
-+ ResourceLength += 4;
-
- /* Case 7: First interrupt number in list */
-
-@@ -372,7 +394,7 @@ RsDoInterruptDescriptor (
- {
- Rover->ByteItem = ResSourceIndex;
- Rover = ACPI_ADD_PTR (AML_RESOURCE, &(Rover->ByteItem), 1);
-- Descriptor->ExtendedIrq.ResourceLength += 1;
-+ ResourceLength += 1;
- }
-
- /* Add optional ResSource string if present */
-@@ -381,14 +403,15 @@ RsDoInterruptDescriptor (
- {
- strcpy ((char *) Rover, (char *) ResSourceString);
-
-- Descriptor->ExtendedIrq.ResourceLength = (UINT16)
-- (Descriptor->ExtendedIrq.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
- }
-
- Rnode->BufferLength =
- (ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]) -
- ASL_RESDESC_OFFSET (ExtendedIrq.DescriptorType))
- + OptionIndex + StringLength;
-+ ACPI_MOVE_16_TO_16(&Descriptor->ExtendedIrq.ResourceLength,
-+ &ResourceLength);
- return (Rnode);
- }
-
-@@ -436,7 +459,7 @@ RsDoVendorLargeDescriptor (
-
- Descriptor = Rnode->Buffer;
- Descriptor->VendorLarge.DescriptorType = ACPI_RESOURCE_NAME_VENDOR_LARGE;
-- Descriptor->VendorLarge.ResourceLength = (UINT16) i;
-+ ACPI_MOVE_32_TO_16(&Descriptor->VendorLarge.ResourceLength, &i);
-
- /* Point to end-of-descriptor for vendor data */
-
-Index: acpica-unix2-20200528/source/compiler/aslrestype2d.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype2d.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype2d.c
-@@ -79,7 +79,13 @@ RsDoDwordIoDescriptor (
- ACPI_PARSE_OBJECT *GranOp = NULL;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 StringLength = 0;
-+ UINT16 ResourceLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT32 Minimum = 0;
-+ UINT32 Maximum = 0;
-+ UINT32 AddressLength = 0;
-+ UINT32 Granularity = 0;
-+ UINT32 TranslationOffset = 0;
- UINT8 *OptionalFields;
- UINT32 CurrentByteOffset;
- UINT32 i;
-@@ -102,8 +108,7 @@ RsDoDwordIoDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
-- Descriptor->Address32.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS32) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS32) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -147,8 +152,7 @@ RsDoDwordIoDescriptor (
-
- case 5: /* Address Granularity */
-
-- Descriptor->Address32.Granularity =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Granularity = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
- GranOp = InitializerOp;
-@@ -156,8 +160,7 @@ RsDoDwordIoDescriptor (
-
- case 6: /* Address Min */
-
-- Descriptor->Address32.Minimum =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
- MinOp = InitializerOp;
-@@ -165,8 +168,7 @@ RsDoDwordIoDescriptor (
-
- case 7: /* Address Max */
-
-- Descriptor->Address32.Maximum =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
- MaxOp = InitializerOp;
-@@ -174,16 +176,14 @@ RsDoDwordIoDescriptor (
-
- case 8: /* Translation Offset */
-
-- Descriptor->Address32.TranslationOffset =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
-- Descriptor->Address32.AddressLength =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
- LengthOp = InitializerOp;
-@@ -197,7 +197,7 @@ RsDoDwordIoDescriptor (
-
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address32.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -211,8 +211,7 @@ RsDoDwordIoDescriptor (
- {
- /* Found a valid ResourceSource */
-
-- Descriptor->Address32.ResourceLength = (UINT16)
-- (Descriptor->Address32.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -272,13 +271,20 @@ RsDoDwordIoDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- (UINT64) Descriptor->Address32.Minimum,
-- (UINT64) Descriptor->Address32.Maximum,
-- (UINT64) Descriptor->Address32.AddressLength,
-- (UINT64) Descriptor->Address32.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address32.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address32.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Minimum, &Minimum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Maximum, &Maximum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.AddressLength, &AddressLength);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Granularity, &Granularity);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
- OptionIndex + StringLength;
- return (Rnode);
-@@ -310,7 +316,13 @@ RsDoDwordMemoryDescriptor (
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
-+ UINT16 ResourceLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT32 Minimum = 0;
-+ UINT32 Maximum = 0;
-+ UINT32 AddressLength = 0;
-+ UINT32 Granularity = 0;
-+ UINT32 TranslationOffset = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-@@ -332,11 +344,9 @@ RsDoDwordMemoryDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
-- Descriptor->Address32.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS32) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS32) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
--
- /* Process all child initialization nodes */
-
- for (i = 0; InitializerOp; i++)
-@@ -385,8 +395,7 @@ RsDoDwordMemoryDescriptor (
-
- case 6: /* Address Granularity */
-
-- Descriptor->Address32.Granularity =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Granularity = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
- GranOp = InitializerOp;
-@@ -394,8 +403,7 @@ RsDoDwordMemoryDescriptor (
-
- case 7: /* Min Address */
-
-- Descriptor->Address32.Minimum =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
- MinOp = InitializerOp;
-@@ -403,8 +411,7 @@ RsDoDwordMemoryDescriptor (
-
- case 8: /* Max Address */
-
-- Descriptor->Address32.Maximum =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
- MaxOp = InitializerOp;
-@@ -412,16 +419,14 @@ RsDoDwordMemoryDescriptor (
-
- case 9: /* Translation Offset */
-
-- Descriptor->Address32.TranslationOffset =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
-- Descriptor->Address32.AddressLength =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
- LengthOp = InitializerOp;
-@@ -433,7 +438,7 @@ RsDoDwordMemoryDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address32.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -445,8 +450,8 @@ RsDoDwordMemoryDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address32.ResourceLength = (UINT16)
-- (Descriptor->Address32.ResourceLength + StringLength);
-+
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -507,13 +512,20 @@ RsDoDwordMemoryDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- (UINT64) Descriptor->Address32.Minimum,
-- (UINT64) Descriptor->Address32.Maximum,
-- (UINT64) Descriptor->Address32.AddressLength,
-- (UINT64) Descriptor->Address32.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address32.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address32.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Minimum, &Minimum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Maximum, &Maximum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.AddressLength, &AddressLength);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Granularity, &Granularity);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
- OptionIndex + StringLength;
- return (Rnode);
-@@ -545,7 +557,13 @@ RsDoDwordSpaceDescriptor (
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
-+ UINT16 ResourceLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT32 Minimum = 0;
-+ UINT32 Maximum = 0;
-+ UINT32 AddressLength = 0;
-+ UINT32 Granularity = 0;
-+ UINT32 TranslationOffset = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-@@ -566,8 +584,7 @@ RsDoDwordSpaceDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS32);
-- Descriptor->Address32.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS32) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS32) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -616,8 +633,7 @@ RsDoDwordSpaceDescriptor (
-
- case 6: /* Address Granularity */
-
-- Descriptor->Address32.Granularity =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Granularity = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
- GranOp = InitializerOp;
-@@ -625,8 +641,7 @@ RsDoDwordSpaceDescriptor (
-
- case 7: /* Min Address */
-
-- Descriptor->Address32.Minimum =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
- MinOp = InitializerOp;
-@@ -634,8 +649,7 @@ RsDoDwordSpaceDescriptor (
-
- case 8: /* Max Address */
-
-- Descriptor->Address32.Maximum =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
- MaxOp = InitializerOp;
-@@ -643,16 +657,14 @@ RsDoDwordSpaceDescriptor (
-
- case 9: /* Translation Offset */
-
-- Descriptor->Address32.TranslationOffset =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
-- Descriptor->Address32.AddressLength =
-- (UINT32) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
- LengthOp = InitializerOp;
-@@ -664,7 +676,7 @@ RsDoDwordSpaceDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address32.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -676,8 +688,7 @@ RsDoDwordSpaceDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address32.ResourceLength = (UINT16)
-- (Descriptor->Address32.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -724,13 +735,20 @@ RsDoDwordSpaceDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- (UINT64) Descriptor->Address32.Minimum,
-- (UINT64) Descriptor->Address32.Maximum,
-- (UINT64) Descriptor->Address32.AddressLength,
-- (UINT64) Descriptor->Address32.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address32.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address32.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Minimum, &Minimum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Maximum, &Maximum);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.AddressLength, &AddressLength);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.Granularity, &Granularity);
-+ ACPI_MOVE_32_TO_32(&Descriptor->Address32.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS32) +
- OptionIndex + StringLength;
- return (Rnode);
-Index: acpica-unix2-20200528/source/compiler/aslrestype2e.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype2e.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype2e.c
-@@ -78,6 +78,13 @@ RsDoExtendedIoDescriptor (
- ACPI_PARSE_OBJECT *GranOp = NULL;
- ASL_RESOURCE_NODE *Rnode;
- UINT16 StringLength = 0;
-+ UINT16 ResourceLength = 0;
-+ UINT64 Minimum = 0;
-+ UINT64 Maximum = 0;
-+ UINT64 AddressLength = 0;
-+ UINT64 Granularity = 0;
-+ UINT64 TranslationOffset = 0;
-+ UINT64 TypeSpecific = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
-
-@@ -94,9 +101,10 @@ RsDoExtendedIoDescriptor (
- Descriptor->ExtAddress64.ResourceType = ACPI_ADDRESS_TYPE_IO_RANGE;
- Descriptor->ExtAddress64.RevisionID = AML_RESOURCE_EXTENDED_ADDRESS_REVISION;
-
-- Descriptor->ExtAddress64.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-+ ACPI_MOVE_16_TO_16(&Descriptor->ExtAddress64.ResourceLength,
-+ &ResourceLength);
-
- /* Process all child initialization nodes */
-
-@@ -139,7 +147,7 @@ RsDoExtendedIoDescriptor (
-
- case 5: /* Address Granularity */
-
-- Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
-+ Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
- GranOp = InitializerOp;
-@@ -147,7 +155,7 @@ RsDoExtendedIoDescriptor (
-
- case 6: /* Address Min */
-
-- Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
-+ Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
- MinOp = InitializerOp;
-@@ -155,7 +163,7 @@ RsDoExtendedIoDescriptor (
-
- case 7: /* Address Max */
-
-- Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
-+ Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
- MaxOp = InitializerOp;
-@@ -163,14 +171,14 @@ RsDoExtendedIoDescriptor (
-
- case 8: /* Translation Offset */
-
-- Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
-- Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
-+ AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
- LengthOp = InitializerOp;
-@@ -178,7 +186,7 @@ RsDoExtendedIoDescriptor (
-
- case 10: /* Type-Specific Attributes */
-
-- Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
-+ TypeSpecific = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
- CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
- break;
-@@ -214,13 +222,20 @@ RsDoExtendedIoDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- Descriptor->ExtAddress64.Minimum,
-- Descriptor->ExtAddress64.Maximum,
-- Descriptor->ExtAddress64.AddressLength,
-- Descriptor->ExtAddress64.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->ExtAddress64.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Minimum, &Minimum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Maximum, &Maximum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.AddressLength, &AddressLength);
-+ ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.Granularity, &Granularity);
-+ ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TranslationOffset, &TranslationOffset);
-+ ACPI_MOVE_64_TO_64(&Descriptor->ExtAddress64.TypeSpecific, &TypeSpecific);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_EXTENDED_ADDRESS64) +
- StringLength;
- return (Rnode);
-Index: acpica-unix2-20200528/source/compiler/aslrestype2q.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype2q.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype2q.c
-@@ -80,7 +80,13 @@ RsDoQwordIoDescriptor (
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
-+ UINT16 ResourceLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT64 Minimum = 0;
-+ UINT64 Maximum = 0;
-+ UINT64 AddressLength = 0;
-+ UINT64 Granularity = 0;
-+ UINT64 TranslationOffset = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-@@ -102,8 +108,7 @@ RsDoQwordIoDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
-- Descriptor->Address64.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS64) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -147,7 +152,7 @@ RsDoQwordIoDescriptor (
-
- case 5: /* Address Granularity */
-
-- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
-+ Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
- GranOp = InitializerOp;
-@@ -155,7 +160,7 @@ RsDoQwordIoDescriptor (
-
- case 6: /* Address Min */
-
-- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
-+ Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
- MinOp = InitializerOp;
-@@ -163,7 +168,7 @@ RsDoQwordIoDescriptor (
-
- case 7: /* Address Max */
-
-- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
-+ Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
- MaxOp = InitializerOp;
-@@ -171,14 +176,14 @@ RsDoQwordIoDescriptor (
-
- case 8: /* Translation Offset */
-
-- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
-- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
-+ AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
- LengthOp = InitializerOp;
-@@ -190,7 +195,7 @@ RsDoQwordIoDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address64.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -202,8 +207,7 @@ RsDoQwordIoDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address64.ResourceLength = (UINT16)
-- (Descriptor->Address64.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -263,13 +267,20 @@ RsDoQwordIoDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- Descriptor->Address64.Minimum,
-- Descriptor->Address64.Maximum,
-- Descriptor->Address64.AddressLength,
-- Descriptor->Address64.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address64.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address64.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Minimum, &Minimum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Maximum, &Maximum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.AddressLength, &AddressLength);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Granularity, &Granularity);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
- OptionIndex + StringLength;
- return (Rnode);
-@@ -301,7 +312,13 @@ RsDoQwordMemoryDescriptor (
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
-+ UINT16 ResourceLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT64 Minimum = 0;
-+ UINT64 Maximum = 0;
-+ UINT64 AddressLength = 0;
-+ UINT64 Granularity = 0;
-+ UINT64 TranslationOffset = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-@@ -323,8 +340,7 @@ RsDoQwordMemoryDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
-- Descriptor->Address64.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS64) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -375,7 +391,7 @@ RsDoQwordMemoryDescriptor (
-
- case 6: /* Address Granularity */
-
-- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
-+ Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
- GranOp = InitializerOp;
-@@ -383,7 +399,7 @@ RsDoQwordMemoryDescriptor (
-
- case 7: /* Min Address */
-
-- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
-+ Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
- MinOp = InitializerOp;
-@@ -391,7 +407,7 @@ RsDoQwordMemoryDescriptor (
-
- case 8: /* Max Address */
-
-- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
-+ Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
- MaxOp = InitializerOp;
-@@ -399,14 +415,14 @@ RsDoQwordMemoryDescriptor (
-
- case 9: /* Translation Offset */
-
-- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
-- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
-+ AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
- LengthOp = InitializerOp;
-@@ -418,7 +434,7 @@ RsDoQwordMemoryDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address64.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -430,8 +446,7 @@ RsDoQwordMemoryDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address64.ResourceLength = (UINT16)
-- (Descriptor->Address64.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -492,13 +507,20 @@ RsDoQwordMemoryDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- Descriptor->Address64.Minimum,
-- Descriptor->Address64.Maximum,
-- Descriptor->Address64.AddressLength,
-- Descriptor->Address64.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address64.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address64.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Minimum, &Minimum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Maximum, &Maximum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.AddressLength, &AddressLength);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Granularity, &Granularity);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
- OptionIndex + StringLength;
- return (Rnode);
-@@ -530,9 +552,15 @@ RsDoQwordSpaceDescriptor (
- ASL_RESOURCE_NODE *Rnode;
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
-+ UINT16 ResourceLength = 0;
- UINT32 OptionIndex = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
-+ UINT64 Minimum = 0;
-+ UINT64 Maximum = 0;
-+ UINT64 AddressLength = 0;
-+ UINT64 Granularity = 0;
-+ UINT64 TranslationOffset = 0;
- BOOLEAN ResSourceIndex = FALSE;
-
-
-@@ -551,8 +579,7 @@ RsDoQwordSpaceDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS64);
-- Descriptor->Address64.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS64) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS64) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -601,7 +628,7 @@ RsDoQwordSpaceDescriptor (
-
- case 6: /* Address Granularity */
-
-- Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
-+ Granularity = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
- GranOp = InitializerOp;
-@@ -609,7 +636,7 @@ RsDoQwordSpaceDescriptor (
-
- case 7: /* Min Address */
-
-- Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
-+ Minimum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
- MinOp = InitializerOp;
-@@ -617,7 +644,7 @@ RsDoQwordSpaceDescriptor (
-
- case 8: /* Max Address */
-
-- Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
-+ Maximum = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
- MaxOp = InitializerOp;
-@@ -625,14 +652,14 @@ RsDoQwordSpaceDescriptor (
-
- case 9: /* Translation Offset */
-
-- Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
-- Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
-+ AddressLength = InitializerOp->Asl.Value.Integer;
- RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
- LengthOp = InitializerOp;
-@@ -644,7 +671,7 @@ RsDoQwordSpaceDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address64.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -656,8 +683,7 @@ RsDoQwordSpaceDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address64.ResourceLength = (UINT16)
-- (Descriptor->Address64.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -703,13 +729,20 @@ RsDoQwordSpaceDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- Descriptor->Address64.Minimum,
-- Descriptor->Address64.Maximum,
-- Descriptor->Address64.AddressLength,
-- Descriptor->Address64.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address64.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address64.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Minimum, &Minimum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Maximum, &Maximum);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.AddressLength, &AddressLength);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.Granularity, &Granularity);
-+ ACPI_MOVE_64_TO_64(&Descriptor->Address64.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS64) +
- OptionIndex + StringLength;
- return (Rnode);
-Index: acpica-unix2-20200528/source/compiler/aslrestype2s.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype2s.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype2s.c
-@@ -340,9 +340,14 @@ RsDoGpioIntDescriptor (
- UINT16 VendorLength;
- UINT16 InterruptLength;
- UINT16 DescriptorSize;
-+ UINT16 IntFlags = 0;
-+ UINT16 DebounceTimeout = 0;
-+ UINT16 Flags = 0;
- UINT32 CurrentByteOffset;
- UINT32 PinCount = 0;
- UINT32 i;
-+ UINT16 Tmp16;
-+ UINT16 Val16;
-
-
- InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -367,7 +372,7 @@ RsDoGpioIntDescriptor (
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- Descriptor = Rnode->Buffer;
-- Descriptor->Gpio.ResourceLength = DescriptorSize;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResourceLength, &DescriptorSize);
- Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO;
- Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION;
- Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_INT;
-@@ -382,11 +387,11 @@ RsDoGpioIntDescriptor (
-
- /* Setup offsets within the descriptor */
-
-- Descriptor->Gpio.PinTableOffset = (UINT16)
-- ACPI_PTR_DIFF (InterruptList, Descriptor);
-+ Tmp16 = (UINT16) ACPI_PTR_DIFF (InterruptList, Descriptor);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.PinTableOffset, &Tmp16);
-
-- Descriptor->Gpio.ResSourceOffset = (UINT16)
-- ACPI_PTR_DIFF (ResourceSource, Descriptor);
-+ Tmp16 = (UINT16) ACPI_PTR_DIFF (ResourceSource, Descriptor);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResSourceOffset, &Tmp16);
-
- /* Process all child initialization nodes */
-
-@@ -396,21 +401,21 @@ RsDoGpioIntDescriptor (
- {
- case 0: /* Interrupt Mode - edge/level [Flag] (_MOD) */
-
-- RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 0, 0);
-+ RsSetFlagBits16 (&IntFlags, InitializerOp, 0, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 0);
- break;
-
- case 1: /* Interrupt Polarity - Active high/low [Flags] (_POL) */
-
-- RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 1, 0);
-+ RsSetFlagBits16 (&IntFlags, InitializerOp, 1, 0);
- RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_POLARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 1, 2);
- break;
-
- case 2: /* Share Type - Default: exclusive (0) [Flags] (_SHR) */
-
-- RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 3, 0);
-+ RsSetFlagBits16 (&IntFlags, InitializerOp, 3, 0);
- RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3, 2);
- break;
-@@ -424,7 +429,7 @@ RsDoGpioIntDescriptor (
-
- case 4: /* Debounce Timeout [WORD] (_DBT) */
-
-- Descriptor->Gpio.DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
-+ DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_DEBOUNCETIME,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DebounceTimeout));
- break;
-@@ -451,7 +456,7 @@ RsDoGpioIntDescriptor (
-
- case 7: /* Resource Usage (consumer/producer) */
-
-- RsSetFlagBits16 (&Descriptor->Gpio.Flags, InitializerOp, 0, 1);
-+ RsSetFlagBits16 (&Flags, InitializerOp, 0, 1);
- break;
-
- case 8: /* Resource Tag (Descriptor Name) */
-@@ -466,13 +471,14 @@ RsDoGpioIntDescriptor (
- * This field is required in order to calculate the length
- * of the ResourceSource at runtime.
- */
-- Descriptor->Gpio.VendorOffset = (UINT16)
-- ACPI_PTR_DIFF (VendorData, Descriptor);
-+ Tmp16 = (UINT16) ACPI_PTR_DIFF (VendorData, Descriptor);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorOffset, &Tmp16);
-
- if (RsGetVendorData (InitializerOp, VendorData,
-- (CurrentByteOffset + Descriptor->Gpio.VendorOffset)))
-+ (CurrentByteOffset + Tmp16)))
- {
-- Descriptor->Gpio.VendorLength = VendorLength;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorLength,
-+ &VendorLength);
- }
- break;
-
-@@ -485,7 +491,9 @@ RsDoGpioIntDescriptor (
- * (implies resource source must immediately follow the pin list.)
- * Name: _PIN
- */
-- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
-+ ACPI_MOVE_16_TO_16(&Val16, &Tmp16);
-+ *InterruptList = Val16;
- InterruptList++;
- PinCount++;
-
-@@ -507,8 +515,10 @@ RsDoGpioIntDescriptor (
-
- /* Create a named field at the start of the list */
-
-- RsCreateWordField (InitializerOp, ACPI_RESTAG_PIN,
-- CurrentByteOffset + Descriptor->Gpio.PinTableOffset);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Descriptor->Gpio.PinTableOffset);
-+ Tmp16 += CurrentByteOffset;
-+ ACPI_MOVE_16_TO_16(&Val16, &Tmp16);
-+ RsCreateWordField (InitializerOp, ACPI_RESTAG_PIN, Val16);
- }
- break;
- }
-@@ -516,6 +526,10 @@ RsDoGpioIntDescriptor (
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.IntFlags, &IntFlags);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.DebounceTimeout, &DebounceTimeout);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.Flags, &Flags);
-+
- MpSaveGpioInfo (Info->MappingOp, Descriptor,
- PinCount, PinList, ResourceSource);
- return (Rnode);
-@@ -549,9 +563,15 @@ RsDoGpioIoDescriptor (
- UINT16 VendorLength;
- UINT16 InterruptLength;
- UINT16 DescriptorSize;
-+ UINT16 IntFlags = 0;
-+ UINT16 DebounceTimeout = 0;
-+ UINT16 DriveStrength = 0;
-+ UINT16 Flags = 0;
- UINT32 CurrentByteOffset;
- UINT32 PinCount = 0;
- UINT32 i;
-+ UINT16 Tmp16;
-+ UINT16 Val16;
-
-
- InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -576,7 +596,7 @@ RsDoGpioIoDescriptor (
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- Descriptor = Rnode->Buffer;
-- Descriptor->Gpio.ResourceLength = DescriptorSize;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResourceLength, &DescriptorSize);
- Descriptor->Gpio.DescriptorType = ACPI_RESOURCE_NAME_GPIO;
- Descriptor->Gpio.RevisionId = AML_RESOURCE_GPIO_REVISION;
- Descriptor->Gpio.ConnectionType = AML_RESOURCE_GPIO_TYPE_IO;
-@@ -590,11 +610,11 @@ RsDoGpioIoDescriptor (
-
- /* Setup offsets within the descriptor */
-
-- Descriptor->Gpio.PinTableOffset = (UINT16)
-- ACPI_PTR_DIFF (InterruptList, Descriptor);
-+ Tmp16 = (UINT16) ACPI_PTR_DIFF (InterruptList, Descriptor);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.PinTableOffset, &Tmp16);
-
-- Descriptor->Gpio.ResSourceOffset = (UINT16)
-- ACPI_PTR_DIFF (ResourceSource, Descriptor);
-+ Tmp16 = (UINT16) ACPI_PTR_DIFF (ResourceSource, Descriptor);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.ResSourceOffset, &Tmp16);
-
- /* Process all child initialization nodes */
-
-@@ -604,7 +624,7 @@ RsDoGpioIoDescriptor (
- {
- case 0: /* Share Type [Flags] (_SHR) */
-
-- RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 3, 0);
-+ RsSetFlagBits16 (&IntFlags, InitializerOp, 3, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_INTERRUPTSHARE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 3);
- break;
-@@ -618,21 +638,21 @@ RsDoGpioIoDescriptor (
-
- case 2: /* Debounce Timeout [WORD] (_DBT) */
-
-- Descriptor->Gpio.DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
-+ DebounceTimeout = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_DEBOUNCETIME,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DebounceTimeout));
- break;
-
- case 3: /* Drive Strength [WORD] (_DRS) */
-
-- Descriptor->Gpio.DriveStrength = (UINT16) InitializerOp->Asl.Value.Integer;
-+ DriveStrength = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_DRIVESTRENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.DriveStrength));
- break;
-
- case 4: /* I/O Restriction [Flag] (_IOR) */
-
-- RsSetFlagBits16 (&Descriptor->Gpio.IntFlags, InitializerOp, 0, 0);
-+ RsSetFlagBits16 (&IntFlags, InitializerOp, 0, 0);
- RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_IORESTRICTION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Gpio.IntFlags), 0, 2);
- break;
-@@ -658,7 +678,7 @@ RsDoGpioIoDescriptor (
-
- case 7: /* Resource Usage (consumer/producer) */
-
-- RsSetFlagBits16 (&Descriptor->Gpio.Flags, InitializerOp, 0, 1);
-+ RsSetFlagBits16 (&Flags, InitializerOp, 0, 1);
- break;
-
- case 8: /* Resource Tag (Descriptor Name) */
-@@ -672,13 +692,14 @@ RsDoGpioIoDescriptor (
- * This field is required in order to calculate the length
- * of the ResourceSource at runtime.
- */
-- Descriptor->Gpio.VendorOffset = (UINT16)
-- ACPI_PTR_DIFF (VendorData, Descriptor);
-+ Tmp16 = (UINT16) ACPI_PTR_DIFF (VendorData, Descriptor);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorOffset, &Tmp16);
-
- if (RsGetVendorData (InitializerOp, VendorData,
- (CurrentByteOffset + Descriptor->Gpio.VendorOffset)))
- {
-- Descriptor->Gpio.VendorLength = VendorLength;
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.VendorLength,
-+ &VendorLength);
- }
- break;
-
-@@ -691,7 +712,9 @@ RsDoGpioIoDescriptor (
- * (implies resource source must immediately follow the pin list.)
- * Name: _PIN
- */
-- *InterruptList = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Tmp16 = (UINT16) InitializerOp->Asl.Value.Integer;
-+ ACPI_MOVE_16_TO_16(&Val16, &Tmp16);
-+ *InterruptList = Val16;
- InterruptList++;
- PinCount++;
-
-@@ -722,6 +745,11 @@ RsDoGpioIoDescriptor (
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.IntFlags, &IntFlags);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.DebounceTimeout, &DebounceTimeout);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.DriveStrength, &DriveStrength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Gpio.Flags, &Flags);
-+
- MpSaveGpioInfo (Info->MappingOp, Descriptor,
- PinCount, PinList, ResourceSource);
- return (Rnode);
-@@ -752,8 +780,12 @@ RsDoI2cSerialBusDescriptor (
- UINT16 ResSourceLength;
- UINT16 VendorLength;
- UINT16 DescriptorSize;
-+ UINT16 SlaveAddress = 0;
-+ UINT32 ConnectionSpeed = 0;
-+ UINT16 TypeSpecificFlags = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
-+ UINT16 Tmp16;
-
-
- InitializerOp = Info->DescriptorTypeOp->Asl.Child;
-@@ -776,12 +808,14 @@ RsDoI2cSerialBusDescriptor (
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- Descriptor = Rnode->Buffer;
-- Descriptor->I2cSerialBus.ResourceLength = DescriptorSize;
-+ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.ResourceLength,
-+ &DescriptorSize);
- Descriptor->I2cSerialBus.DescriptorType = ACPI_RESOURCE_NAME_SERIAL_BUS;
- Descriptor->I2cSerialBus.RevisionId = AML_RESOURCE_I2C_REVISION;
- Descriptor->I2cSerialBus.TypeRevisionId = AML_RESOURCE_I2C_TYPE_REVISION;
- Descriptor->I2cSerialBus.Type = AML_RESOURCE_I2C_SERIALBUSTYPE;
-- Descriptor->I2cSerialBus.TypeDataLength = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength;
-+ Tmp16 = AML_RESOURCE_I2C_MIN_DATA_LEN + VendorLength;
-+ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.TypeDataLength, &Tmp16);
-
- if (Info->DescriptorTypeOp->Asl.ParseOpcode == PARSEOP_I2C_SERIALBUS_V2)
- {
-@@ -801,7 +835,7 @@ RsDoI2cSerialBusDescriptor (
- {
- case 0: /* Slave Address [WORD] (_ADR) */
-
-- Descriptor->I2cSerialBus.SlaveAddress = (UINT16) InitializerOp->Asl.Value.Integer;
-+ SlaveAddress = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.SlaveAddress));
- break;
-@@ -815,14 +849,14 @@ RsDoI2cSerialBusDescriptor (
-
- case 2: /* Connection Speed [DWORD] (_SPE) */
-
-- Descriptor->I2cSerialBus.ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
-+ ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
- CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.ConnectionSpeed));
- break;
-
- case 3: /* Addressing Mode [Flag] (_MOD) */
-
-- RsSetFlagBits16 (&Descriptor->I2cSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
-+ RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 0, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (I2cSerialBus.TypeSpecificFlags), 0);
- break;
-@@ -882,6 +916,9 @@ RsDoI2cSerialBusDescriptor (
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.SlaveAddress, &SlaveAddress);
-+ ACPI_MOVE_32_TO_32(&Descriptor->I2cSerialBus.ConnectionSpeed, &ConnectionSpeed);
-+ ACPI_MOVE_16_TO_16(&Descriptor->I2cSerialBus.TypeSpecificFlags, &TypeSpecificFlags);
- MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
- return (Rnode);
- }
-@@ -911,6 +948,9 @@ RsDoSpiSerialBusDescriptor (
- UINT16 ResSourceLength;
- UINT16 VendorLength;
- UINT16 DescriptorSize;
-+ UINT16 DeviceSelection = 0;
-+ UINT32 ConnectionSpeed = 0;
-+ UINT16 TypeSpecificFlags = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
-
-@@ -961,21 +1001,21 @@ RsDoSpiSerialBusDescriptor (
- {
- case 0: /* Device Selection [WORD] (_ADR) */
-
-- Descriptor->SpiSerialBus.DeviceSelection = (UINT16) InitializerOp->Asl.Value.Integer;
-+ DeviceSelection = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_ADDRESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.DeviceSelection));
- break;
-
- case 1: /* Device Polarity [Flag] (_DPL) */
-
-- RsSetFlagBits16 (&Descriptor->SpiSerialBus.TypeSpecificFlags, InitializerOp, 1, 0);
-+ RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 1, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_DEVICEPOLARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 1);
- break;
-
- case 2: /* Wire Mode [Flag] (_MOD) */
-
-- RsSetFlagBits16 (&Descriptor->SpiSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
-+ RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 0, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_MODE,
- CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.TypeSpecificFlags), 0);
- break;
-@@ -996,7 +1036,7 @@ RsDoSpiSerialBusDescriptor (
-
- case 5: /* Connection Speed [DWORD] (_SPE) */
-
-- Descriptor->SpiSerialBus.ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
-+ ConnectionSpeed = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
- CurrentByteOffset + ASL_RESDESC_OFFSET (SpiSerialBus.ConnectionSpeed));
- break;
-@@ -1070,6 +1110,10 @@ RsDoSpiSerialBusDescriptor (
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->SpiSerialBus.DeviceSelection, &DeviceSelection);
-+ ACPI_MOVE_32_TO_32(&Descriptor->SpiSerialBus.ConnectionSpeed, &ConnectionSpeed);
-+ ACPI_MOVE_16_TO_16(&Descriptor->SpiSerialBus.TypeSpecificFlags, &TypeSpecificFlags);
-+
- MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
- return (Rnode);
- }
-@@ -1099,6 +1143,10 @@ RsDoUartSerialBusDescriptor (
- UINT16 ResSourceLength;
- UINT16 VendorLength;
- UINT16 DescriptorSize;
-+ UINT32 DefaultBaudRate = 0;
-+ UINT16 TypeSpecificFlags = 0;
-+ UINT16 RxFifoSize = 0;
-+ UINT16 TxFifoSize = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
-
-@@ -1148,21 +1196,21 @@ RsDoUartSerialBusDescriptor (
- {
- case 0: /* Connection Speed (Baud Rate) [DWORD] (_SPE) */
-
-- Descriptor->UartSerialBus.DefaultBaudRate = (UINT32) InitializerOp->Asl.Value.Integer;
-+ DefaultBaudRate = (UINT32) InitializerOp->Asl.Value.Integer;
- RsCreateDwordField (InitializerOp, ACPI_RESTAG_SPEED,
- CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.DefaultBaudRate));
- break;
-
- case 1: /* Bits Per Byte [Flags] (_LEN) */
-
-- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 4, 3);
-+ RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 4, 3);
- RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 4, 3);
- break;
-
- case 2: /* Stop Bits [Flags] (_STB) */
-
-- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 2, 1);
-+ RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 2, 1);
- RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_STOPBITS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 2, 2);
- break;
-@@ -1176,7 +1224,7 @@ RsDoUartSerialBusDescriptor (
-
- case 4: /* Endianness [Flag] (_END) */
-
-- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 7, 0);
-+ RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 7, 0);
- RsCreateBitField (InitializerOp, ACPI_RESTAG_ENDIANNESS,
- CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 7);
- break;
-@@ -1190,21 +1238,21 @@ RsDoUartSerialBusDescriptor (
-
- case 6: /* Flow Control [Flags] (_FLC) */
-
-- RsSetFlagBits16 (&Descriptor->UartSerialBus.TypeSpecificFlags, InitializerOp, 0, 0);
-+ RsSetFlagBits16 (&TypeSpecificFlags, InitializerOp, 0, 0);
- RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_FLOWCONTROL,
- CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TypeSpecificFlags), 0, 2);
- break;
-
- case 7: /* Rx Buffer Size [WORD] (_RXL) */
-
-- Descriptor->UartSerialBus.RxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
-+ RxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_RX,
- CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.RxFifoSize));
- break;
-
- case 8: /* Tx Buffer Size [WORD] (_TXL) */
-
-- Descriptor->UartSerialBus.TxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
-+ TxFifoSize = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH_TX,
- CurrentByteOffset + ASL_RESDESC_OFFSET (UartSerialBus.TxFifoSize));
- break;
-@@ -1274,6 +1322,11 @@ RsDoUartSerialBusDescriptor (
- InitializerOp = RsCompleteNodeAndGetNext (InitializerOp);
- }
-
-+ ACPI_MOVE_32_TO_32(&Descriptor->UartSerialBus.DefaultBaudRate, &DefaultBaudRate);
-+ ACPI_MOVE_16_TO_16(&Descriptor->UartSerialBus.TypeSpecificFlags, &TypeSpecificFlags);
-+ ACPI_MOVE_16_TO_16(&Descriptor->UartSerialBus.RxFifoSize, &RxFifoSize);
-+ ACPI_MOVE_16_TO_16(&Descriptor->UartSerialBus.TxFifoSize, &TxFifoSize);
-+
- MpSaveSerialInfo (Info->MappingOp, Descriptor, ResourceSource);
- return (Rnode);
- }
-Index: acpica-unix2-20200528/source/compiler/aslrestype2w.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslrestype2w.c
-+++ acpica-unix2-20200528/source/compiler/aslrestype2w.c
-@@ -81,6 +81,12 @@ RsDoWordIoDescriptor (
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT16 ResourceLength = 0;
-+ UINT16 Minimum = 0;
-+ UINT16 Maximum = 0;
-+ UINT16 AddressLength = 0;
-+ UINT16 Granularity = 0;
-+ UINT16 TranslationOffset = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-@@ -102,8 +108,7 @@ RsDoWordIoDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
-- Descriptor->Address16.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS16) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS16) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -147,7 +152,7 @@ RsDoWordIoDescriptor (
-
- case 5: /* Address Granularity */
-
-- Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
- GranOp = InitializerOp;
-@@ -155,7 +160,7 @@ RsDoWordIoDescriptor (
-
- case 6: /* Address Min */
-
-- Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
- MinOp = InitializerOp;
-@@ -163,7 +168,7 @@ RsDoWordIoDescriptor (
-
- case 7: /* Address Max */
-
-- Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
- MaxOp = InitializerOp;
-@@ -171,14 +176,14 @@ RsDoWordIoDescriptor (
-
- case 8: /* Translation Offset */
-
-- Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
- break;
-
- case 9: /* Address Length */
-
-- Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
- LengthOp = InitializerOp;
-@@ -190,7 +195,7 @@ RsDoWordIoDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address16.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -202,8 +207,7 @@ RsDoWordIoDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address16.ResourceLength = (UINT16)
-- (Descriptor->Address16.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -263,13 +267,20 @@ RsDoWordIoDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- (UINT64) Descriptor->Address16.Minimum,
-- (UINT64) Descriptor->Address16.Maximum,
-- (UINT64) Descriptor->Address16.AddressLength,
-- (UINT64) Descriptor->Address16.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address16.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Minimum, &Minimum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Maximum, &Maximum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.AddressLength, &AddressLength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Granularity, &Granularity);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
- OptionIndex + StringLength;
- return (Rnode);
-@@ -302,6 +313,12 @@ RsDoWordBusNumberDescriptor (
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT16 ResourceLength = 0;
-+ UINT16 Minimum = 0;
-+ UINT16 Maximum = 0;
-+ UINT16 AddressLength = 0;
-+ UINT16 Granularity = 0;
-+ UINT16 TranslationOffset = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-@@ -323,8 +340,7 @@ RsDoWordBusNumberDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
-- Descriptor->Address16.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS16) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS16) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -361,8 +377,7 @@ RsDoWordBusNumberDescriptor (
-
- case 4: /* Address Granularity */
-
-- Descriptor->Address16.Granularity =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
- GranOp = InitializerOp;
-@@ -370,8 +385,7 @@ RsDoWordBusNumberDescriptor (
-
- case 5: /* Min Address */
-
-- Descriptor->Address16.Minimum =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
- MinOp = InitializerOp;
-@@ -379,8 +393,7 @@ RsDoWordBusNumberDescriptor (
-
- case 6: /* Max Address */
-
-- Descriptor->Address16.Maximum =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
- MaxOp = InitializerOp;
-@@ -388,16 +401,14 @@ RsDoWordBusNumberDescriptor (
-
- case 7: /* Translation Offset */
-
-- Descriptor->Address16.TranslationOffset =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
- break;
-
- case 8: /* Address Length */
-
-- Descriptor->Address16.AddressLength =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
- LengthOp = InitializerOp;
-@@ -409,7 +420,7 @@ RsDoWordBusNumberDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address16.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -421,8 +432,7 @@ RsDoWordBusNumberDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address16.ResourceLength = (UINT16)
-- (Descriptor->Address16.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -468,13 +478,20 @@ RsDoWordBusNumberDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- (UINT64) Descriptor->Address16.Minimum,
-- (UINT64) Descriptor->Address16.Maximum,
-- (UINT64) Descriptor->Address16.AddressLength,
-- (UINT64) Descriptor->Address16.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address16.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Minimum, &Minimum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Maximum, &Maximum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.AddressLength, &AddressLength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Granularity, &Granularity);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
- OptionIndex + StringLength;
- return (Rnode);
-@@ -507,6 +524,12 @@ RsDoWordSpaceDescriptor (
- UINT8 *OptionalFields;
- UINT16 StringLength = 0;
- UINT32 OptionIndex = 0;
-+ UINT16 Minimum = 0;
-+ UINT16 Maximum = 0;
-+ UINT16 AddressLength = 0;
-+ UINT16 Granularity = 0;
-+ UINT16 TranslationOffset = 0;
-+ UINT16 ResourceLength = 0;
- UINT32 CurrentByteOffset;
- UINT32 i;
- BOOLEAN ResSourceIndex = FALSE;
-@@ -527,8 +550,7 @@ RsDoWordSpaceDescriptor (
- * optional fields present
- */
- OptionalFields = ((UINT8 *) Descriptor) + sizeof (AML_RESOURCE_ADDRESS16);
-- Descriptor->Address16.ResourceLength = (UINT16)
-- (sizeof (AML_RESOURCE_ADDRESS16) -
-+ ResourceLength = (UINT16) (sizeof (AML_RESOURCE_ADDRESS16) -
- sizeof (AML_RESOURCE_LARGE_HEADER));
-
- /* Process all child initialization nodes */
-@@ -577,8 +599,7 @@ RsDoWordSpaceDescriptor (
-
- case 6: /* Address Granularity */
-
-- Descriptor->Address16.Granularity =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
- GranOp = InitializerOp;
-@@ -586,8 +607,7 @@ RsDoWordSpaceDescriptor (
-
- case 7: /* Min Address */
-
-- Descriptor->Address16.Minimum =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
- MinOp = InitializerOp;
-@@ -595,8 +615,7 @@ RsDoWordSpaceDescriptor (
-
- case 8: /* Max Address */
-
-- Descriptor->Address16.Maximum =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
- MaxOp = InitializerOp;
-@@ -604,16 +623,14 @@ RsDoWordSpaceDescriptor (
-
- case 9: /* Translation Offset */
-
-- Descriptor->Address16.TranslationOffset =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
- break;
-
- case 10: /* Address Length */
-
-- Descriptor->Address16.AddressLength =
-- (UINT16) InitializerOp->Asl.Value.Integer;
-+ AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
- RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
- CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
- LengthOp = InitializerOp;
-@@ -625,7 +642,7 @@ RsDoWordSpaceDescriptor (
- {
- OptionalFields[0] = (UINT8) InitializerOp->Asl.Value.Integer;
- OptionIndex++;
-- Descriptor->Address16.ResourceLength++;
-+ ResourceLength++;
- ResSourceIndex = TRUE;
- }
- break;
-@@ -637,8 +654,7 @@ RsDoWordSpaceDescriptor (
- {
- if (StringLength)
- {
-- Descriptor->Address16.ResourceLength = (UINT16)
-- (Descriptor->Address16.ResourceLength + StringLength);
-+ ResourceLength = (UINT16) (ResourceLength + StringLength);
-
- strcpy ((char *)
- &OptionalFields[OptionIndex],
-@@ -684,13 +700,20 @@ RsDoWordSpaceDescriptor (
- /* Validate the Min/Max/Len/Gran values */
-
- RsLargeAddressCheck (
-- (UINT64) Descriptor->Address16.Minimum,
-- (UINT64) Descriptor->Address16.Maximum,
-- (UINT64) Descriptor->Address16.AddressLength,
-- (UINT64) Descriptor->Address16.Granularity,
-+ Minimum,
-+ Maximum,
-+ AddressLength,
-+ Granularity,
- Descriptor->Address16.Flags,
- MinOp, MaxOp, LengthOp, GranOp, Info->DescriptorTypeOp);
-
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.ResourceLength, &ResourceLength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Minimum, &Minimum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Maximum, &Maximum);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.AddressLength, &AddressLength);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.Granularity, &Granularity);
-+ ACPI_MOVE_16_TO_16(&Descriptor->Address16.TranslationOffset, &TranslationOffset);
-+
- Rnode->BufferLength = sizeof (AML_RESOURCE_ADDRESS16) +
- OptionIndex + StringLength;
- return (Rnode);
-Index: acpica-unix2-20200528/source/include/acmacros.h
-===================================================================
---- acpica-unix2-20200528.orig/source/include/acmacros.h
-+++ acpica-unix2-20200528/source/include/acmacros.h
-@@ -98,9 +98,12 @@
- ((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\
- ((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];}
-
--/* 32-bit source, 16/32/64 destination */
-+/* 32-bit source, 8/16/32/64 destination */
-
--#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
-+#define ACPI_MOVE_32_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];}
-+
-+#define ACPI_MOVE_32_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];\
-+ (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[2];}
-
- #define ACPI_MOVE_32_TO_32(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[3];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[2];\
-@@ -113,11 +116,17 @@
- ((UINT8 *)(void *)(d))[6] = ((UINT8 *)(void *)(s))[1];\
- ((UINT8 *)(void *)(d))[7] = ((UINT8 *)(void *)(s))[0];}
-
--/* 64-bit source, 16/32/64 destination */
-+/* 64-bit source, 8/16/32/64 destination */
-
--#define ACPI_MOVE_64_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
-+#define ACPI_MOVE_64_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];}
-
--#define ACPI_MOVE_64_TO_32(d, s) ACPI_MOVE_32_TO_32(d, s) /* Truncate to 32 */
-+#define ACPI_MOVE_64_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\
-+ (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];}
-+
-+#define ACPI_MOVE_64_TO_32(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\
-+ (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];\
-+ (( UINT8 *)(void *)(d))[2] = ((UINT8 *)(void *)(s))[5];\
-+ (( UINT8 *)(void *)(d))[3] = ((UINT8 *)(void *)(s))[4];}
-
- #define ACPI_MOVE_64_TO_64(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[7];\
- (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[6];\
-@@ -136,20 +145,26 @@
-
- /* The hardware supports unaligned transfers, just do the little-endian move */
-
--/* 16-bit source, 16/32/64 destination */
-+/* 16-bit source, 8/16/32/64 destination */
-
-+#define ACPI_MOVE_16_TO_8(d, s) *(UINT8 *)(void *)(d) = *(UINT16 *)(void *)(s)
- #define ACPI_MOVE_16_TO_16(d, s) *(UINT16 *)(void *)(d) = *(UINT16 *)(void *)(s)
- #define ACPI_MOVE_16_TO_32(d, s) *(UINT32 *)(void *)(d) = *(UINT16 *)(void *)(s)
- #define ACPI_MOVE_16_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT16 *)(void *)(s)
-
--/* 32-bit source, 16/32/64 destination */
-+/* 32-bit source, 8/16/32/64 destination */
-+
-+#define ACPI_MOVE_32_TO_8(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];}
-+
-+#define ACPI_MOVE_32_TO_16(d, s) {(( UINT8 *)(void *)(d))[0] = ((UINT8 *)(void *)(s))[0];\
-+ (( UINT8 *)(void *)(d))[1] = ((UINT8 *)(void *)(s))[1];}
-
--#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
- #define ACPI_MOVE_32_TO_32(d, s) *(UINT32 *)(void *)(d) = *(UINT32 *)(void *)(s)
- #define ACPI_MOVE_32_TO_64(d, s) *(UINT64 *)(void *)(d) = *(UINT32 *)(void *)(s)
-
--/* 64-bit source, 16/32/64 destination */
-+/* 64-bit source, 8/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) *(UINT64 *)(void *)(d) = *(UINT64 *)(void *)(s)
-@@ -169,7 +184,9 @@
- #define ACPI_MOVE_16_TO_32(d, s) {(*(UINT32 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);}
- #define ACPI_MOVE_16_TO_64(d, s) {(*(UINT64 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);}
-
--/* 32-bit source, 16/32/64 destination */
-+/* 32-bit source, 8/16/32/64 destination */
-+
-+#define ACPI_MOVE_32_TO_8(d, s) ACPI_MOVE_16_TO_8(d, s) /* Truncate to 8 */
-
- #define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
-
-Index: acpica-unix2-20200528/source/include/platform/aclinux.h
-===================================================================
---- acpica-unix2-20200528.orig/source/include/platform/aclinux.h
-+++ acpica-unix2-20200528/source/include/platform/aclinux.h
-@@ -198,6 +198,7 @@
-
- #ifdef ACPI_USE_STANDARD_HEADERS
- #include <unistd.h>
-+#include <endian.h>
- #endif
-
- /* Define/disable kernel-specific declarators */
-@@ -232,6 +233,10 @@
- #define __cdecl
- #endif
-
-+#if defined(__PPC64__) || defined(__s390x__)
-+#define ACPI_BIG_ENDIAN
-+#endif
-+
- #endif /* __KERNEL__ */
-
- #endif /* __ACLINUX_H__ */
-Index: acpica-unix2-20200528/source/compiler/aslanalyze.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslanalyze.c
-+++ acpica-unix2-20200528/source/compiler/aslanalyze.c
-@@ -469,7 +469,7 @@ ApCheckForGpeNameConflict (
-
- /* Need a null-terminated string version of NameSeg */
-
-- ACPI_MOVE_32_TO_32 (Name, Op->Asl.NameSeg);
-+ ACPI_COPY_NAMESEG (Name, Op->Asl.NameSeg);
- Name[ACPI_NAMESEG_SIZE] = 0;
-
- /*
-@@ -496,7 +496,7 @@ ApCheckForGpeNameConflict (
- * We are now sure we have an _Lxx or _Exx.
- * Create the target name that would cause collision (Flip E/L)
- */
-- ACPI_MOVE_32_TO_32 (Target, Name);
-+ ACPI_COPY_NAMESEG (Target, Name);
-
- /* Inject opposite letter ("L" versus "E") */
-
-Index: acpica-unix2-20200528/source/compiler/asllookup.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/asllookup.c
-+++ acpica-unix2-20200528/source/compiler/asllookup.c
-@@ -119,6 +119,7 @@ LkIsObjectUsed (
- {
- ACPI_NAMESPACE_NODE *Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE, ObjHandle);
- ACPI_NAMESPACE_NODE *Next;
-+ ACPI_NAME_UNION tmp, tmp2;
- ASL_METHOD_LOCAL *MethodLocals;
- ASL_METHOD_LOCAL *MethodArgs;
- UINT32 i;
-@@ -175,7 +176,8 @@ LkIsObjectUsed (
- * We ignore the predefined methods since often, not
- * all arguments are needed or used.
- */
-- if ((Node->Name.Ascii[0] != '_') &&
-+ ACPI_MOVE_32_TO_32(&tmp.Ascii, Node->Name.Ascii);
-+ if ((tmp.Ascii[0] != '_') &&
- (!(MethodArgs[i].Flags & ASL_ARG_REFERENCED)))
- {
- sprintf (AslGbl_MsgBuffer, "Arg%u", i);
-@@ -228,8 +230,10 @@ LkIsObjectUsed (
- * Issue a remark even if it is a reserved name (starts
- * with an underscore).
- */
-+ ACPI_MOVE_32_TO_32(&tmp.Ascii, Node->Name.Ascii);
-+ ACPI_MOVE_32_TO_32(&tmp2.Ascii, Next->Name.Ascii);
- sprintf (AslGbl_MsgBuffer, "Name [%4.4s] is within a method [%4.4s]",
-- Node->Name.Ascii, Next->Name.Ascii);
-+ tmp.Ascii, tmp2.Ascii);
- AslError (ASL_REMARK, ASL_MSG_NOT_REFERENCED,
- LkGetNameOp (Node->Op), AslGbl_MsgBuffer);
- return (AE_OK);
-Index: acpica-unix2-20200528/source/compiler/aslmain.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslmain.c
-+++ acpica-unix2-20200528/source/compiler/aslmain.c
-@@ -101,18 +101,6 @@ main (
-
- signal (SIGINT, AslSignalHandler);
-
-- /*
-- * Big-endian machines are not currently supported. ACPI tables must
-- * be little-endian, and support for big-endian machines needs to
-- * be implemented.
-- */
-- if (UtIsBigEndianMachine ())
-- {
-- fprintf (stderr,
-- "iASL is not currently supported on big-endian machines.\n");
-- return (-1);
-- }
--
- AcpiOsInitialize ();
- ACPI_DEBUG_INITIALIZE (); /* For debug version only */
-
-Index: acpica-unix2-20200528/source/common/acfileio.c
-===================================================================
---- acpica-unix2-20200528.orig/source/common/acfileio.c
-+++ acpica-unix2-20200528/source/common/acfileio.c
-@@ -280,6 +280,7 @@ AcGetOneTableFromFile (
- ACPI_TABLE_HEADER *Table;
- INT32 Count;
- long TableOffset;
-+ UINT32 TableLen;
-
-
- *ReturnTable = NULL;
-@@ -319,7 +320,8 @@ AcGetOneTableFromFile (
-
- /* Allocate a buffer for the entire table */
-
-- Table = AcpiOsAllocate ((ACPI_SIZE) TableHeader.Length);
-+ ACPI_MOVE_32_TO_32(&TableLen, &TableHeader.Length);
-+ Table = AcpiOsAllocate ((ACPI_SIZE) TableLen);
- if (!Table)
- {
- return (AE_NO_MEMORY);
-@@ -329,13 +331,13 @@ AcGetOneTableFromFile (
-
- fseek (File, TableOffset, SEEK_SET);
-
-- Count = fread (Table, 1, TableHeader.Length, File);
-+ Count = fread (Table, 1, TableLen, File);
-
- /*
- * Checks for data table headers happen later in the execution. Only verify
- * for Aml tables at this point in the code.
- */
-- if (GetOnlyAmlTables && Count != (INT32) TableHeader.Length)
-+ if (GetOnlyAmlTables && Count != TableLen)
- {
- Status = AE_ERROR;
- goto ErrorExit;
-@@ -343,7 +345,7 @@ AcGetOneTableFromFile (
-
- /* Validate the checksum (just issue a warning) */
-
-- Status = AcpiTbVerifyChecksum (Table, TableHeader.Length);
-+ Status = AcpiTbVerifyChecksum (Table, TableLen);
- if (ACPI_FAILURE (Status))
- {
- Status = AcCheckTextModeCorruption (Table);
-@@ -435,6 +437,7 @@ AcValidateTableHeader (
- ACPI_SIZE Actual;
- long OriginalOffset;
- UINT32 FileSize;
-+ UINT32 TableLength;
- UINT32 i;
-
-
-@@ -464,11 +467,12 @@ AcValidateTableHeader (
- /* Validate table length against bytes remaining in the file */
-
- FileSize = CmGetFileSize (File);
-- if (TableHeader.Length > (UINT32) (FileSize - TableOffset))
-+ ACPI_MOVE_32_TO_32(&TableLength, &TableHeader.Length);
-+ if (TableLength > (UINT32) (FileSize - TableOffset))
- {
- fprintf (stderr, "Table [%4.4s] is too long for file - "
- "needs: 0x%.2X, remaining in file: 0x%.2X\n",
-- TableHeader.Signature, TableHeader.Length,
-+ TableHeader.Signature, TableLength,
- (UINT32) (FileSize - TableOffset));
- return (AE_BAD_HEADER);
- }
-Index: acpica-unix2-20200528/source/common/dmtable.c
-===================================================================
---- acpica-unix2-20200528.orig/source/common/dmtable.c
-+++ acpica-unix2-20200528/source/common/dmtable.c
-@@ -551,7 +551,7 @@ AcpiDmDumpDataTable (
- */
- if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_FACS))
- {
-- Length = Table->Length;
-+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoFacs);
- if (ACPI_FAILURE (Status))
- {
-@@ -565,13 +565,14 @@ AcpiDmDumpDataTable (
- else if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_S3PT))
- {
- Length = AcpiDmDumpS3pt (Table);
-+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
- }
- else
- {
- /*
- * All other tables must use the common ACPI table header, dump it now
- */
-- Length = Table->Length;
-+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
- Status = AcpiDmDumpTable (Length, 0, Table, 0, AcpiDmTableInfoHeader);
- if (ACPI_FAILURE (Status))
- {
-@@ -782,6 +783,7 @@ AcpiDmDumpTable (
- BOOLEAN LastOutputBlankLine = FALSE;
- ACPI_STATUS Status;
- char RepairedName[8];
-+ UINT16 Val16;
-
-
- if (!Info)
-@@ -1178,8 +1180,9 @@ AcpiDmDumpTable (
- /* Checksum, display and validate */
-
- AcpiOsPrintf ("%2.2X", *Target);
-- Temp8 = AcpiDmGenerateChecksum (Table,
-- ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length,
-+ ACPI_MOVE_32_TO_32(&Temp32,
-+ &ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Length);
-+ Temp8 = AcpiDmGenerateChecksum (Table, Temp32,
- ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum);
-
- if (Temp8 != ACPI_CAST_PTR (ACPI_TABLE_HEADER, Table)->Checksum)
-@@ -1244,14 +1247,14 @@ AcpiDmDumpTable (
-
- /* DMAR subtable types */
-
-- Temp16 = ACPI_GET16 (Target);
-+ Val16 = ACPI_GET16 (Target);
-+ ACPI_MOVE_16_TO_16(&Temp16, &Val16);
- if (Temp16 > ACPI_DMAR_TYPE_RESERVED)
- {
- Temp16 = ACPI_DMAR_TYPE_RESERVED;
- }
-
-- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
-- AcpiDmDmarSubnames[Temp16]);
-+ AcpiOsPrintf (UINT16_FORMAT, Temp16, AcpiDmDmarSubnames[Temp16]);
- break;
-
- case ACPI_DMT_DMAR_SCOPE:
-@@ -1342,14 +1345,14 @@ AcpiDmDumpTable (
-
- /* HEST subtable types */
-
-- Temp16 = ACPI_GET16 (Target);
-+ Val16 = ACPI_GET16 (Target);
-+ ACPI_MOVE_16_TO_16(&Temp16, &Val16);
- if (Temp16 > ACPI_HEST_TYPE_RESERVED)
- {
- Temp16 = ACPI_HEST_TYPE_RESERVED;
- }
-
-- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
-- AcpiDmHestSubnames[Temp16]);
-+ AcpiOsPrintf (UINT16_FORMAT, Temp16, AcpiDmHestSubnames[Temp16]);
- break;
-
- case ACPI_DMT_HESTNTFY:
-@@ -1429,13 +1432,14 @@ AcpiDmDumpTable (
-
- /* NFIT subtable types */
-
-- Temp16 = ACPI_GET16 (Target);
-+ Val16 = ACPI_GET16 (Target);
-+ ACPI_MOVE_16_TO_16(&Temp16, &Val16);
- if (Temp16 > ACPI_NFIT_TYPE_RESERVED)
- {
- Temp16 = ACPI_NFIT_TYPE_RESERVED;
- }
-
-- AcpiOsPrintf (UINT16_FORMAT, ACPI_GET16 (Target),
-+ AcpiOsPrintf (UINT16_FORMAT, Temp16,
- AcpiDmNfitSubnames[Temp16]);
- break;
-
-Index: acpica-unix2-20200528/source/common/dmtables.c
-===================================================================
---- acpica-unix2-20200528.orig/source/common/dmtables.c
-+++ acpica-unix2-20200528/source/common/dmtables.c
-@@ -142,7 +142,9 @@ AdCreateTableHeader (
- ACPI_TABLE_HEADER *Table)
- {
- UINT8 Checksum;
--
-+ UINT32 TableLen;
-+ UINT32 OemRev;
-+ UINT32 CompilerRev;
-
- /* Reset globals for External statements */
-
-@@ -154,9 +156,10 @@ AdCreateTableHeader (
- */
- AdDisassemblerHeader (Filename, ACPI_IS_AML_TABLE);
-
-+ ACPI_MOVE_32_TO_32(&TableLen, &Table->Length);
- AcpiOsPrintf (" * Original Table Header:\n");
- AcpiOsPrintf (" * Signature \"%4.4s\"\n", Table->Signature);
-- AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", Table->Length, Table->Length);
-+ AcpiOsPrintf (" * Length 0x%8.8X (%u)\n", TableLen, TableLen);
-
- /* Print and validate the revision */
-
-@@ -188,7 +191,7 @@ AdCreateTableHeader (
-
- AcpiOsPrintf ("\n * Checksum 0x%2.2X", Table->Checksum);
-
-- Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), Table->Length);
-+ Checksum = AcpiTbChecksum (ACPI_CAST_PTR (UINT8, Table), TableLen);
- if (Checksum)
- {
- AcpiOsPrintf (" **** Incorrect checksum, should be 0x%2.2X",
-@@ -198,9 +201,11 @@ AdCreateTableHeader (
- AcpiOsPrintf ("\n");
- AcpiOsPrintf (" * OEM ID \"%.6s\"\n", Table->OemId);
- AcpiOsPrintf (" * OEM Table ID \"%.8s\"\n", Table->OemTableId);
-- AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", Table->OemRevision, Table->OemRevision);
-+ ACPI_MOVE_32_TO_32(&OemRev, &Table->OemRevision);
-+ AcpiOsPrintf (" * OEM Revision 0x%8.8X (%u)\n", OemRev, OemRev);
- AcpiOsPrintf (" * Compiler ID \"%.4s\"\n", Table->AslCompilerId);
-- AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", Table->AslCompilerRevision, Table->AslCompilerRevision);
-+ ACPI_MOVE_32_TO_32(&CompilerRev, &Table->AslCompilerRevision);
-+ AcpiOsPrintf (" * Compiler Version 0x%8.8X (%u)\n", CompilerRev, CompilerRev);
- AcpiOsPrintf (" */\n");
-
- /*
-@@ -221,7 +226,7 @@ AdCreateTableHeader (
- AcpiOsPrintf (
- "DefinitionBlock (\"\", \"%4.4s\", %u, \"%.6s\", \"%.8s\", 0x%8.8X)\n",
- Table->Signature, Table->Revision,
-- Table->OemId, Table->OemTableId, Table->OemRevision);
-+ Table->OemId, Table->OemTableId, OemRev);
- }
-
-
-@@ -396,7 +401,8 @@ AdParseTable (
-
- fprintf (stderr, "Pass 1 parse of [%4.4s]\n", (char *) Table->Signature);
-
-- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
-+ ACPI_MOVE_32_TO_32(&AmlLength, &Table->Length);
-+ AmlLength -= sizeof (ACPI_TABLE_HEADER);
- AmlStart = ((UINT8 *) Table + sizeof (ACPI_TABLE_HEADER));
-
- AcpiUtSetIntegerWidth (Table->Revision);
-Index: acpica-unix2-20200528/source/compiler/dtfield.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/dtfield.c
-+++ acpica-unix2-20200528/source/compiler/dtfield.c
-@@ -361,7 +361,27 @@ DtCompileInteger (
- DtError (ASL_ERROR, ASL_MSG_INTEGER_SIZE, Field, AslGbl_MsgBuffer);
- }
-
-- memcpy (Buffer, &Value, ByteLength);
-+ switch (ByteLength) {
-+ case 1:
-+ ACPI_MOVE_64_TO_8(Buffer, &Value);
-+ break;
-+
-+ case 2:
-+ ACPI_MOVE_64_TO_16(Buffer, &Value);
-+ break;
-+
-+ case 4:
-+ ACPI_MOVE_64_TO_32(Buffer, &Value);
-+ break;
-+
-+ case 8:
-+ ACPI_MOVE_64_TO_64(Buffer, &Value);
-+ break;
-+
-+ default:
-+ memcpy (Buffer, &Value, ByteLength);
-+ break;
-+ }
- return;
- }
-
-Index: acpica-unix2-20200528/source/compiler/dtsubtable.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/dtsubtable.c
-+++ acpica-unix2-20200528/source/compiler/dtsubtable.c
-@@ -378,6 +378,21 @@ DtSetSubtableLength (
- return;
- }
-
-- memcpy (Subtable->LengthField, &Subtable->TotalLength,
-- Subtable->SizeOfLengthField);
-+ switch(Subtable->SizeOfLengthField) {
-+ case 1:
-+ ACPI_MOVE_32_TO_8(Subtable->LengthField, &Subtable->TotalLength);
-+ break;
-+
-+ case 2:
-+ ACPI_MOVE_32_TO_16(Subtable->LengthField, &Subtable->TotalLength);
-+ break;
-+
-+ case 4:
-+ ACPI_MOVE_32_TO_32(Subtable->LengthField, &Subtable->TotalLength);
-+ break;
-+
-+ default:
-+ memcpy (Subtable->LengthField, &Subtable->TotalLength,
-+ Subtable->SizeOfLengthField);
-+ }
- }
-Index: acpica-unix2-20200528/source/compiler/dttable1.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/dttable1.c
-+++ acpica-unix2-20200528/source/compiler/dttable1.c
-@@ -281,6 +281,8 @@ DtCompileCsrt (
- DT_FIELD **PFieldList = (DT_FIELD **) List;
- UINT32 DescriptorCount;
- UINT32 GroupLength;
-+ ACPI_CSRT_GROUP *Pgrp;
-+ UINT32 Tmp32;
-
-
- /* Subtables (Resource Groups) */
-@@ -299,12 +301,20 @@ DtCompileCsrt (
-
- /* Compute the number of resource descriptors */
-
-+ /*
- GroupLength =
- (ACPI_CAST_PTR (ACPI_CSRT_GROUP,
- Subtable->Buffer))->Length -
- (ACPI_CAST_PTR (ACPI_CSRT_GROUP,
- Subtable->Buffer))->SharedInfoLength -
- sizeof (ACPI_CSRT_GROUP);
-+ */
-+ Pgrp = ACPI_CAST_PTR(ACPI_CSRT_GROUP, Subtable->Buffer);
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Pgrp->Length);
-+ GroupLength = Tmp32;
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Pgrp->SharedInfoLength);
-+ GroupLength -= Tmp32;
-+ GroupLength -= sizeof (ACPI_CSRT_GROUP);
-
- DescriptorCount = (GroupLength /
- sizeof (ACPI_CSRT_DESCRIPTOR));
-@@ -392,6 +402,8 @@ DtCompileDbg2 (
- ACPI_DBG2_DEVICE *DeviceInfo;
- UINT16 CurrentOffset;
- UINT32 i;
-+ UINT16 Tmp16;
-+ UINT32 Tmp32;
-
-
- /* Main table */
-@@ -408,10 +420,11 @@ DtCompileDbg2 (
- /* Main table fields */
-
- Dbg2Header = ACPI_CAST_PTR (ACPI_DBG2_HEADER, Subtable->Buffer);
-- Dbg2Header->InfoOffset = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF (
-+ Tmp32 = sizeof (ACPI_TABLE_HEADER) + ACPI_PTR_DIFF (
- ACPI_ADD_PTR (UINT8, Dbg2Header, sizeof (ACPI_DBG2_HEADER)), Dbg2Header);
-+ ACPI_MOVE_32_TO_32(&Dbg2Header->InfoOffset, &Tmp32);
-
-- SubtableCount = Dbg2Header->InfoCount;
-+ ACPI_MOVE_32_TO_32(&SubtableCount, &Dbg2Header->InfoCount);
- DtPushSubtable (Subtable);
-
- /* Process all Device Information subtables (Count = InfoCount) */
-@@ -438,7 +451,7 @@ DtCompileDbg2 (
-
- /* BaseAddressRegister GAS array (Required, size is RegisterCount) */
-
-- DeviceInfo->BaseAddressOffset = CurrentOffset;
-+ ACPI_MOVE_16_TO_16(&DeviceInfo->BaseAddressOffset, &CurrentOffset);
- for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Addr,
-@@ -454,7 +467,7 @@ DtCompileDbg2 (
-
- /* AddressSize array (Required, size = RegisterCount) */
-
-- DeviceInfo->AddressSizeOffset = CurrentOffset;
-+ ACPI_MOVE_16_TO_16(&DeviceInfo->AddressSizeOffset, &CurrentOffset);
- for (i = 0; *PFieldList && (i < DeviceInfo->RegisterCount); i++)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Size,
-@@ -470,7 +483,7 @@ DtCompileDbg2 (
-
- /* NamespaceString device identifier (Required, size = NamePathLength) */
-
-- DeviceInfo->NamepathOffset = CurrentOffset;
-+ ACPI_MOVE_16_TO_16(&DeviceInfo->NamepathOffset, &CurrentOffset);
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoDbg2Name,
- &Subtable);
- if (ACPI_FAILURE (Status))
-@@ -480,8 +493,9 @@ DtCompileDbg2 (
-
- /* Update the device info header */
-
-- DeviceInfo->NamepathLength = (UINT16) Subtable->Length;
-- CurrentOffset += (UINT16) DeviceInfo->NamepathLength;
-+ ACPI_MOVE_32_TO_16(&DeviceInfo->NamepathLength, &Subtable->Length);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &DeviceInfo->NamepathLength);
-+ CurrentOffset += Tmp16;
- DtInsertSubtable (ParentTable, Subtable);
-
- /* OemData - Variable-length data (Optional, size = OemDataLength) */
-@@ -508,8 +522,8 @@ DtCompileDbg2 (
-
- if (Subtable && Subtable->Length)
- {
-- DeviceInfo->OemDataOffset = CurrentOffset;
-- DeviceInfo->OemDataLength = (UINT16) Subtable->Length;
-+ ACPI_MOVE_16_TO_16(&DeviceInfo->OemDataOffset, &CurrentOffset);
-+ ACPI_MOVE_32_TO_16(&DeviceInfo->OemDataLength, &Subtable->Length);
-
- DtInsertSubtable (ParentTable, Subtable);
- }
-@@ -549,6 +563,8 @@ DtCompileDmar (
- ACPI_DMAR_DEVICE_SCOPE *DmarDeviceScope;
- UINT32 DeviceScopeLength;
- UINT32 PciPathLength;
-+ UINT16 Tmp16;
-+ UINT16 HdrType;
-
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmar, &Subtable);
-@@ -578,8 +594,11 @@ DtCompileDmar (
- DtPushSubtable (Subtable);
-
- DmarHeader = ACPI_CAST_PTR (ACPI_DMAR_HEADER, Subtable->Buffer);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &DmarHeader->Length);
-+ DmarHeader->Length = Tmp16;
-
-- switch (DmarHeader->Type)
-+ ACPI_MOVE_16_TO_16(&HdrType, &DmarHeader->Type);
-+ switch (HdrType)
- {
- case ACPI_DMAR_TYPE_HARDWARE_UNIT:
-
-@@ -626,8 +645,8 @@ DtCompileDmar (
- /*
- * Optional Device Scope subtables
- */
-- if ((DmarHeader->Type == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
-- (DmarHeader->Type == ACPI_DMAR_TYPE_NAMESPACE))
-+ if ((HdrType == ACPI_DMAR_TYPE_HARDWARE_AFFINITY) ||
-+ (HdrType == ACPI_DMAR_TYPE_NAMESPACE))
- {
- /* These types do not support device scopes */
-
-@@ -637,7 +656,7 @@ DtCompileDmar (
-
- DtPushSubtable (Subtable);
- DeviceScopeLength = DmarHeader->Length - Subtable->Length -
-- ParentTable->Length;
-+ ParentTable->Length;
- while (DeviceScopeLength)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoDmarScope,
-@@ -762,7 +781,7 @@ DtCompileDrtm (
- Count++;
- }
-
-- DrtmVtl->ValidatedTableCount = Count;
-+ ACPI_MOVE_32_TO_32(&DrtmVtl->ValidatedTableCount, &Count);
- DtPopSubtable ();
- ParentTable = DtPeekSubtable ();
-
-@@ -800,7 +819,7 @@ DtCompileDrtm (
- Count++;
- }
-
-- DrtmRl->ResourceCount = Count;
-+ ACPI_MOVE_32_TO_32(&DrtmRl->ResourceCount, &Count);
- DtPopSubtable ();
- ParentTable = DtPeekSubtable ();
-
-@@ -895,6 +914,7 @@ DtCompileGtdt (
- ACPI_DMTABLE_INFO *InfoTable;
- UINT32 GtCount;
- ACPI_TABLE_HEADER *Header;
-+ ACPI_GTDT_TIMER_BLOCK *TimerBlock;
-
-
- ParentTable = DtPeekSubtable ();
-@@ -982,8 +1002,9 @@ DtCompileGtdt (
- DtPushSubtable (Subtable);
- ParentTable = DtPeekSubtable ();
-
-- GtCount = (ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
-- Subtable->Buffer - sizeof(ACPI_GTDT_HEADER)))->TimerCount;
-+ TimerBlock = ACPI_CAST_PTR (ACPI_GTDT_TIMER_BLOCK,
-+ Subtable->Buffer - sizeof(ACPI_GTDT_HEADER));
-+ ACPI_MOVE_32_TO_32(&GtCount, &TimerBlock->TimerCount);
-
- while (GtCount)
- {
-@@ -1036,6 +1057,7 @@ DtCompileFpdt (
- ACPI_DMTABLE_INFO *InfoTable;
- DT_FIELD **PFieldList = (DT_FIELD **) List;
- DT_FIELD *SubtableStart;
-+ UINT16 HdrType;
-
-
- while (*PFieldList)
-@@ -1054,7 +1076,8 @@ DtCompileFpdt (
-
- FpdtHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer);
-
-- switch (FpdtHeader->Type)
-+ ACPI_MOVE_16_TO_16(&HdrType, &FpdtHeader->Type);
-+ switch (HdrType)
- {
- case ACPI_FPDT_TYPE_BOOT:
-
-@@ -1112,6 +1135,7 @@ DtCompileHest (
- ACPI_DMTABLE_INFO *InfoTable;
- UINT16 Type;
- UINT32 BankCount;
-+ UINT16 Tmp16;
-
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoHest,
-@@ -1129,8 +1153,9 @@ DtCompileHest (
- /* Get subtable type */
-
- SubtableStart = *PFieldList;
-- DtCompileInteger ((UINT8 *) &Type, *PFieldList, 2, 0);
-+ DtCompileInteger ((UINT8 *) &Tmp16, *PFieldList, 2, 0);
-
-+ ACPI_MOVE_16_TO_16(&Type, &Tmp16);
- switch (Type)
- {
- case ACPI_HEST_TYPE_IA32_CHECK:
-@@ -1480,11 +1505,13 @@ DtCompileIort (
- ACPI_IORT_SMMU *IortSmmu;
- UINT32 NodeNumber;
- UINT32 NodeLength;
-+ UINT32 NodeOffset;
- UINT32 IdMappingNumber;
- UINT32 ItsNumber;
- UINT32 ContextIrptNumber;
- UINT32 PmuIrptNumber;
- UINT32 PaddingLength;
-+ UINT32 MappingOffset;
-
-
- ParentTable = DtPeekSubtable ();
-@@ -1510,7 +1537,7 @@ DtCompileIort (
- * Optionally allows the generic data types to be used for filling
- * this field.
- */
-- Iort->NodeOffset = sizeof (ACPI_TABLE_IORT);
-+ NodeOffset = sizeof (ACPI_TABLE_IORT);
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoIortPad,
- &Subtable);
- if (ACPI_FAILURE (Status))
-@@ -1520,7 +1547,7 @@ DtCompileIort (
- if (Subtable)
- {
- DtInsertSubtable (ParentTable, Subtable);
-- Iort->NodeOffset += Subtable->Length;
-+ NodeOffset += Subtable->Length;
- }
- else
- {
-@@ -1530,8 +1557,9 @@ DtCompileIort (
- {
- return (Status);
- }
-- Iort->NodeOffset += PaddingLength;
-+ NodeOffset += PaddingLength;
- }
-+ ACPI_MOVE_32_TO_32(&Iort->NodeOffset, &NodeOffset);
-
- NodeNumber = 0;
- while (*PFieldList)
-@@ -1585,7 +1613,7 @@ DtCompileIort (
- ItsNumber++;
- }
-
-- IortItsGroup->ItsCount = ItsNumber;
-+ ACPI_MOVE_32_TO_32(&IortItsGroup->ItsCount, &ItsNumber);
- break;
-
- case ACPI_IORT_NODE_NAMED_COMPONENT:
-@@ -1619,15 +1647,16 @@ DtCompileIort (
- }
- else
- {
-- if (NodeLength > IortNode->MappingOffset)
-+ ACPI_MOVE_32_TO_32(&MappingOffset, &IortNode->MappingOffset);
-+ if (NodeLength > MappingOffset)
- {
- return (AE_BAD_DATA);
- }
-
-- if (NodeLength < IortNode->MappingOffset)
-+ if (NodeLength < MappingOffset)
- {
- Status = DtCompilePadding (
-- IortNode->MappingOffset - NodeLength,
-+ MappingOffset - NodeLength,
- &Subtable);
- if (ACPI_FAILURE (Status))
- {
-@@ -1635,7 +1664,8 @@ DtCompileIort (
- }
-
- DtInsertSubtable (ParentTable, Subtable);
-- NodeLength = IortNode->MappingOffset;
-+ ACPI_MOVE_32_TO_32(&MappingOffset, &IortNode->MappingOffset);
-+ NodeLength = MappingOffset;
- }
- }
- break;
-@@ -1668,7 +1698,7 @@ DtCompileIort (
-
- /* Compile global interrupt array */
-
-- IortSmmu->GlobalInterruptOffset = NodeLength;
-+ ACPI_MOVE_32_TO_32(&IortSmmu->GlobalInterruptOffset, &NodeLength);
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3a,
- &Subtable);
- if (ACPI_FAILURE (Status))
-@@ -1682,7 +1712,7 @@ DtCompileIort (
- /* Compile context interrupt array */
-
- ContextIrptNumber = 0;
-- IortSmmu->ContextInterruptOffset = NodeLength;
-+ ACPI_MOVE_32_TO_32(&IortSmmu->ContextInterruptOffset, &NodeLength);
- while (*PFieldList)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3b,
-@@ -1702,12 +1732,12 @@ DtCompileIort (
- ContextIrptNumber++;
- }
-
-- IortSmmu->ContextInterruptCount = ContextIrptNumber;
-+ ACPI_MOVE_32_TO_32(&IortSmmu->ContextInterruptCount, &ContextIrptNumber);
-
- /* Compile PMU interrupt array */
-
- PmuIrptNumber = 0;
-- IortSmmu->PmuInterruptOffset = NodeLength;
-+ ACPI_MOVE_32_TO_32(&IortSmmu->PmuInterruptOffset, &NodeLength);
- while (*PFieldList)
- {
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoIort3c,
-@@ -1727,7 +1757,7 @@ DtCompileIort (
- PmuIrptNumber++;
- }
-
-- IortSmmu->PmuInterruptCount = PmuIrptNumber;
-+ ACPI_MOVE_32_TO_32(&IortSmmu->PmuInterruptCount, &PmuIrptNumber);
- break;
-
- case ACPI_IORT_NODE_SMMU_V3:
-@@ -1764,7 +1794,7 @@ DtCompileIort (
-
- /* Compile Array of ID mappings */
-
-- IortNode->MappingOffset = NodeLength;
-+ ACPI_MOVE_32_TO_32(&IortNode->MappingOffset, &NodeLength);
- IdMappingNumber = 0;
- while (*PFieldList)
- {
-@@ -1785,7 +1815,7 @@ DtCompileIort (
- IdMappingNumber++;
- }
-
-- IortNode->MappingCount = IdMappingNumber;
-+ ACPI_MOVE_32_TO_32(&IortNode->MappingCount, &IdMappingNumber);
- if (!IdMappingNumber)
- {
- IortNode->MappingOffset = 0;
-@@ -1800,7 +1830,7 @@ DtCompileIort (
- NodeNumber++;
- }
-
-- Iort->NodeCount = NodeNumber;
-+ ACPI_MOVE_32_TO_32(&Iort->NodeCount, &NodeNumber);
- return (AE_OK);
- }
-
-Index: acpica-unix2-20200528/source/compiler/dttable2.c
-===================================================================
---- acpica-unix2-20200528.orig/source/compiler/dttable2.c
-+++ acpica-unix2-20200528/source/compiler/dttable2.c
-@@ -345,7 +345,7 @@ DtCompileMpst (
- DtPushSubtable (Subtable);
-
- MpstChannelInfo = ACPI_CAST_PTR (ACPI_MPST_CHANNEL, Subtable->Buffer);
-- SubtableCount = MpstChannelInfo->PowerNodeCount;
-+ ACPI_MOVE_16_TO_16(&SubtableCount, &MpstChannelInfo->PowerNodeCount);
-
- while (*PFieldList && SubtableCount)
- {
-@@ -363,8 +363,8 @@ DtCompileMpst (
- DtPushSubtable (Subtable);
-
- MpstPowerNode = ACPI_CAST_PTR (ACPI_MPST_POWER_NODE, Subtable->Buffer);
-- PowerStateCount = MpstPowerNode->NumPowerStates;
-- ComponentCount = MpstPowerNode->NumPhysicalComponents;
-+ ACPI_MOVE_32_TO_32(&PowerStateCount, &MpstPowerNode->NumPowerStates);
-+ ACPI_MOVE_32_TO_32(&ComponentCount, &MpstPowerNode->NumPhysicalComponents);
-
- ParentTable = DtPeekSubtable ();
-
-@@ -517,6 +517,7 @@ DtCompileNfit (
- UINT32 Count;
- ACPI_NFIT_INTERLEAVE *Interleave = NULL;
- ACPI_NFIT_FLUSH_ADDRESS *Hint = NULL;
-+ UINT16 SubType;
-
-
- /* Main table */
-@@ -550,7 +551,8 @@ DtCompileNfit (
-
- NfitHeader = ACPI_CAST_PTR (ACPI_NFIT_HEADER, Subtable->Buffer);
-
-- switch (NfitHeader->Type)
-+ ACPI_MOVE_16_TO_16(&SubType, &NfitHeader->Type);
-+ switch (SubType)
- {
- case ACPI_NFIT_TYPE_SYSTEM_ADDRESS:
-
-@@ -610,7 +612,7 @@ DtCompileNfit (
- DtInsertSubtable (ParentTable, Subtable);
- DtPopSubtable ();
-
-- switch (NfitHeader->Type)
-+ switch (SubType)
- {
- case ACPI_NFIT_TYPE_INTERLEAVE:
-
-@@ -636,7 +638,7 @@ DtCompileNfit (
- Count++;
- }
-
-- Interleave->LineCount = Count;
-+ ACPI_MOVE_32_TO_32(&Interleave->LineCount, &Count);
- break;
-
- case ACPI_NFIT_TYPE_SMBIOS:
-@@ -681,7 +683,7 @@ DtCompileNfit (
- Count++;
- }
-
-- Hint->HintCount = (UINT16) Count;
-+ ACPI_MOVE_32_TO_16(&Hint->HintCount, &Count);
- break;
-
- default:
-@@ -957,7 +959,7 @@ DtCompilePmtt (
-
- PmttController = ACPI_CAST_PTR (ACPI_PMTT_CONTROLLER,
- (Subtable->Buffer - sizeof (ACPI_PMTT_HEADER)));
-- DomainCount = PmttController->DomainCount;
-+ ACPI_MOVE_16_TO_16(&DomainCount, &PmttController->DomainCount);
-
- while (DomainCount)
- {
-@@ -1177,6 +1179,7 @@ DtCompileS3pt (
- DT_SUBTABLE *ParentTable;
- ACPI_DMTABLE_INFO *InfoTable;
- DT_FIELD *SubtableStart;
-+ UINT16 HdrType;
-
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoS3pt,
-@@ -1204,7 +1207,8 @@ DtCompileS3pt (
-
- S3ptHeader = ACPI_CAST_PTR (ACPI_FPDT_HEADER, Subtable->Buffer);
-
-- switch (S3ptHeader->Type)
-+ ACPI_MOVE_16_TO_16(&HdrType, &S3ptHeader->Type);
-+ switch (HdrType)
- {
- case ACPI_S3PT_TYPE_RESUME:
-
-@@ -1517,6 +1521,7 @@ DtCompileSlit (
- UINT32 Localities;
- UINT32 LocalityListLength;
- UINT8 *LocalityBuffer;
-+ UINT32 Tmp;
-
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoSlit,
-@@ -1529,7 +1534,8 @@ DtCompileSlit (
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-
-- Localities = *ACPI_CAST_PTR (UINT32, Subtable->Buffer);
-+ Tmp = *ACPI_CAST_PTR (UINT32, Subtable->Buffer);
-+ ACPI_MOVE_32_TO_32(&Localities, &Tmp);
- LocalityBuffer = UtLocalCalloc (Localities);
- LocalityListLength = 0;
-
-@@ -1741,6 +1747,7 @@ DtCompileTcpa (
- ACPI_TABLE_TCPA_HDR *TcpaHeader;
- DT_SUBTABLE *ParentTable;
- ACPI_STATUS Status;
-+ UINT16 PlatClass;
-
-
- /* Compile the main table */
-@@ -1761,7 +1768,8 @@ DtCompileTcpa (
- */
- TcpaHeader = ACPI_CAST_PTR (ACPI_TABLE_TCPA_HDR, ParentTable->Buffer);
-
-- switch (TcpaHeader->PlatformClass)
-+ ACPI_MOVE_16_TO_16(&PlatClass, &TcpaHeader->PlatformClass);
-+ switch (PlatClass)
- {
- case ACPI_TCPA_CLIENT_TABLE:
-
-@@ -1809,6 +1817,7 @@ DtCompileTpm2Rev3 (
- ACPI_TABLE_TPM23 *Tpm23Header;
- DT_SUBTABLE *ParentTable;
- ACPI_STATUS Status = AE_OK;
-+ UINT32 Tmp32;
-
-
- Status = DtCompileTable (PFieldList, AcpiDmTableInfoTpm23,
-@@ -1820,7 +1829,8 @@ DtCompileTpm2Rev3 (
-
- /* Subtable type depends on the StartMethod */
-
-- switch (Tpm23Header->StartMethod)
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Tpm23Header->StartMethod);
-+ switch (Tmp32)
- {
- case ACPI_TPM23_ACPI_START_METHOD:
-
-@@ -1867,6 +1877,7 @@ DtCompileTpm2 (
- DT_SUBTABLE *ParentTable;
- ACPI_STATUS Status = AE_OK;
- ACPI_TABLE_HEADER *Header;
-+ UINT32 Tmp32;
-
-
- ParentTable = DtPeekSubtable ();
-@@ -1910,7 +1921,8 @@ DtCompileTpm2 (
-
- /* Subtable type depends on the StartMethod */
-
-- switch (Tpm2Header->StartMethod)
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Tpm2Header->StartMethod);
-+ switch (Tmp32)
- {
- case ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC:
-
-@@ -2126,6 +2138,9 @@ DtCompileWpbt (
- ACPI_TABLE_WPBT *Table;
- ACPI_STATUS Status;
- UINT16 Length;
-+ UINT16 Tmp16;
-+ UINT16 *Ptr16;
-+ UINT32 ii;
-
-
- /* Compile the main table */
-@@ -2153,7 +2168,16 @@ DtCompileWpbt (
-
- Length = (UINT16) Subtable->TotalLength;
- Table = ACPI_CAST_PTR (ACPI_TABLE_WPBT, ParentTable->Buffer);
-- Table->ArgumentsLength = Length;
-+ ACPI_MOVE_16_TO_16(&Table->ArgumentsLength, &Length);
-+
-+ /* The arguments are in Unicode, so make sure the byte order is correct */
-+ Ptr16 = (UINT16 *)Subtable->Buffer;
-+ for (ii = 0; ii < Length; ii++)
-+ {
-+ ACPI_MOVE_16_TO_16(&Tmp16, Ptr16);
-+ *Ptr16 = Tmp16;
-+ Ptr16++;
-+ }
-
- ParentTable = DtPeekSubtable ();
- DtInsertSubtable (ParentTable, Subtable);
-Index: acpica-unix2-20200528/source/components/disassembler/dmbuffer.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/disassembler/dmbuffer.c
-+++ acpica-unix2-20200528/source/components/disassembler/dmbuffer.c
-@@ -204,7 +204,7 @@ AcpiDmByteList (
-
-
- ByteData = Op->Named.Data;
-- ByteCount = (UINT32) Op->Common.Value.Integer;
-+ ByteCount = (UINT32) Op->Common.Value.Size;
-
- /*
- * The byte list belongs to a buffer, and can be produced by either
-@@ -308,7 +308,8 @@ AcpiDmIsUuidBuffer (
- /* Extract the byte list info */
-
- ByteData = NextOp->Named.Data;
-- ByteCount = (UINT32) NextOp->Common.Value.Integer;
-+ /* ByteCount = (UINT32) NextOp->Common.Value.Integer; */
-+ ByteCount = (UINT32) NextOp->Common.Value.Size;
-
- /* Byte count must be exactly 16 */
-
-@@ -432,7 +433,8 @@ AcpiDmIsUnicodeBuffer (
- /* Extract the byte list info */
-
- ByteData = NextOp->Named.Data;
-- ByteCount = (UINT32) NextOp->Common.Value.Integer;
-+ /* ByteCount = (UINT32) NextOp->Common.Value.Integer; */
-+ ByteCount = (UINT32) NextOp->Common.Value.Size;
- WordCount = ACPI_DIV_2 (ByteCount);
-
- /*
-@@ -869,19 +871,22 @@ AcpiDmUnicode (
- UINT32 WordCount;
- UINT32 i;
- int OutputValue;
-+ UINT16 Tmp16;
-
-
- /* Extract the buffer info as a WORD buffer */
-
- WordData = ACPI_CAST_PTR (UINT16, Op->Named.Data);
-- WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Integer));
-+ WordCount = ACPI_DIV_2 (((UINT32) Op->Common.Value.Size));
-
- /* Write every other byte as an ASCII character */
-
- AcpiOsPrintf ("\"");
- for (i = 0; i < (WordCount - 1); i++)
- {
-- OutputValue = (int) WordData[i];
-+ /* OutputValue = (int) WordData[i]; */
-+ ACPI_MOVE_16_TO_16(&Tmp16, &WordData[i]);
-+ OutputValue = (int) Tmp16;
-
- /* Handle values that must be escaped */
-
-@@ -990,16 +995,18 @@ AcpiDmCheckForHardwareId (
- ACPI_PARSE_OBJECT *Op)
- {
- UINT32 Name;
-+ UINT32 TmpName;
- ACPI_PARSE_OBJECT *NextOp;
-
-
- /* Get the NameSegment */
-
-- Name = AcpiPsGetName (Op);
-- if (!Name)
-+ TmpName = AcpiPsGetName (Op);
-+ if (!TmpName)
- {
- return;
- }
-+ ACPI_MOVE_32_TO_32(&Name, &TmpName);
-
- NextOp = AcpiPsGetDepthNext (NULL, Op);
- if (!NextOp)
-Index: acpica-unix2-20200528/source/components/disassembler/dmopcode.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/disassembler/dmopcode.c
-+++ acpica-unix2-20200528/source/components/disassembler/dmopcode.c
-@@ -244,6 +244,7 @@ AcpiDmPredefinedDescription (
- char *NameString;
- int LastCharIsDigit;
- int LastCharsAreHex;
-+ char TmpName[ACPI_NAMESEG_SIZE + 1];
-
-
- if (!Op)
-@@ -261,7 +262,9 @@ AcpiDmPredefinedDescription (
-
- /* Predefined name must start with an underscore */
-
-- NameString = ACPI_CAST_PTR (char, &Op->Named.Name);
-+ memset(TmpName, 0, ACPI_NAMESEG_SIZE + 1);
-+ ACPI_MOVE_32_TO_32(TmpName, &Op->Named.Name);
-+ NameString = TmpName;
- if (NameString[0] != '_')
- {
- return;
-@@ -880,25 +883,29 @@ AcpiDmDisassembleOneOp (
- AcpiDmNamestring (Op->Common.Value.Name);
- break;
-
-- case AML_INT_NAMEDFIELD_OP:
-+ case AML_INT_NAMEDFIELD_OP: {
-
-- Length = AcpiDmDumpName (Op->Named.Name);
-+ UINT32 TmpName;
-+
-+ ACPI_MOVE_32_TO_32(&TmpName, &Op->Named.Name);
-+ Length = AcpiDmDumpName (TmpName);
-
- AcpiOsPrintf (",");
- ASL_CV_PRINT_ONE_COMMENT (Op, AML_NAMECOMMENT, NULL, 0);
- AcpiOsPrintf ("%*.s %u", (unsigned) (5 - Length), " ",
-- (UINT32) Op->Common.Value.Integer);
-+ (UINT32) Op->Common.Value.Size);
-
- AcpiDmCommaIfFieldMember (Op);
-
-- Info->BitOffset += (UINT32) Op->Common.Value.Integer;
-+ Info->BitOffset += (UINT32) Op->Common.Value.Size;
- break;
-+ }
-
- case AML_INT_RESERVEDFIELD_OP:
-
- /* Offset() -- Must account for previous offsets */
-
-- Offset = (UINT32) Op->Common.Value.Integer;
-+ Offset = Op->Common.Value.Size;
- Info->BitOffset += Offset;
-
- if (Info->BitOffset % 8 == 0)
-@@ -942,10 +949,15 @@ AcpiDmDisassembleOneOp (
-
- if (Child->Common.AmlOpcode == AML_INT_BYTELIST_OP)
- {
-+ /* UINT64 Tmp64; */
-+
- AcpiOsPrintf ("\n");
-
- Aml = Child->Named.Data;
-+ /*
- Length = (UINT32) Child->Common.Value.Integer;
-+ */
-+ Length = (UINT32) Child->Common.Value.Size;
-
- Info->Level += 1;
- Info->MappingOp = Op;
-Index: acpica-unix2-20200528/source/components/disassembler/dmresrcl.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/disassembler/dmresrcl.c
-+++ acpica-unix2-20200528/source/components/disassembler/dmresrcl.c
-@@ -141,7 +141,8 @@ AcpiDmMemoryFields (
- UINT32 Level)
- {
- UINT32 i;
--
-+ UINT16 Tmp16;
-+ UINT32 Tmp32;
-
- for (i = 0; i < 4; i++)
- {
-@@ -151,14 +152,14 @@ AcpiDmMemoryFields (
- {
- case 16:
-
-- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
-- AcpiDmMemoryNames[i]);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &(ACPI_CAST_PTR (UINT16, Source)[i]));
-+ AcpiDmDumpInteger16 (Tmp16, AcpiDmMemoryNames[i]);
- break;
-
- case 32:
-
-- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
-- AcpiDmMemoryNames[i]);
-+ ACPI_MOVE_32_TO_32(&Tmp32, &(ACPI_CAST_PTR (UINT32, Source)[i]));
-+ AcpiDmDumpInteger32 (Tmp32, AcpiDmMemoryNames[i]);
- break;
-
- default:
-@@ -190,7 +191,9 @@ AcpiDmAddressFields (
- UINT32 Level)
- {
- UINT32 i;
--
-+ UINT16 Tmp16;
-+ UINT32 Tmp32;
-+ UINT64 Tmp64;
-
- AcpiOsPrintf ("\n");
-
-@@ -202,20 +205,20 @@ AcpiDmAddressFields (
- {
- case 16:
-
-- AcpiDmDumpInteger16 (ACPI_CAST_PTR (UINT16, Source)[i],
-- AcpiDmAddressNames[i]);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &(ACPI_CAST_PTR (UINT16, Source)[i]));
-+ AcpiDmDumpInteger16 (Tmp16, AcpiDmAddressNames[i]);
- break;
-
- case 32:
-
-- AcpiDmDumpInteger32 (ACPI_CAST_PTR (UINT32, Source)[i],
-- AcpiDmAddressNames[i]);
-+ ACPI_MOVE_32_TO_32(&Tmp32, &(ACPI_CAST_PTR (UINT32, Source)[i]));
-+ AcpiDmDumpInteger32 (Tmp32, AcpiDmAddressNames[i]);
- break;
-
- case 64:
-
-- AcpiDmDumpInteger64 (ACPI_CAST_PTR (UINT64, Source)[i],
-- AcpiDmAddressNames[i]);
-+ ACPI_MOVE_64_TO_64(&Tmp64, &(ACPI_CAST_PTR (UINT64, Source)[i]));
-+ AcpiDmDumpInteger64 (Tmp64, AcpiDmAddressNames[i]);
- break;
-
- default:
-@@ -868,6 +871,7 @@ AcpiDmFixedMemory32Descriptor (
- UINT32 Length,
- UINT32 Level)
- {
-+ UINT32 Tmp;
-
- /* Dump name and read/write flag */
-
-@@ -876,12 +880,12 @@ AcpiDmFixedMemory32Descriptor (
- AcpiGbl_RwDecode [ACPI_GET_1BIT_FLAG (Resource->FixedMemory32.Flags)]);
-
- AcpiDmIndent (Level + 1);
-- AcpiDmDumpInteger32 (Resource->FixedMemory32.Address,
-- "Address Base");
-+ ACPI_MOVE_32_TO_32(&Tmp, &Resource->FixedMemory32.Address);
-+ AcpiDmDumpInteger32 (Tmp, "Address Base");
-
- AcpiDmIndent (Level + 1);
-- AcpiDmDumpInteger32 (Resource->FixedMemory32.AddressLength,
-- "Address Length");
-+ ACPI_MOVE_32_TO_32(&Tmp, &Resource->FixedMemory32.AddressLength);
-+ AcpiDmDumpInteger32 (Tmp, "Address Length");
-
- /* Insert a descriptor name */
-
-@@ -913,6 +917,7 @@ AcpiDmGenericRegisterDescriptor (
- UINT32 Length,
- UINT32 Level)
- {
-+ UINT64 Tmp64;
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Register (");
-@@ -926,7 +931,9 @@ AcpiDmGenericRegisterDescriptor (
- AcpiDmDumpInteger8 (Resource->GenericReg.BitOffset, "Bit Offset");
-
- AcpiDmIndent (Level + 1);
-- AcpiDmDumpInteger64 (Resource->GenericReg.Address, "Address");
-+ /* AcpiDmDumpInteger64 (Resource->GenericReg.Address, "Address"); */
-+ ACPI_MOVE_64_TO_64(&Tmp64, &Resource->GenericReg.Address);
-+ AcpiDmDumpInteger64 (Tmp64, "Address");
-
- /* Optional field for ACPI 3.0 */
-
-@@ -972,7 +979,7 @@ AcpiDmInterruptDescriptor (
- UINT32 Level)
- {
- UINT32 i;
--
-+ UINT16 Tmp16;
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("Interrupt (%s, %s, %s, %s, ",
-@@ -986,10 +993,11 @@ AcpiDmInterruptDescriptor (
- * list. Must compute length based on length of the list. First xrupt
- * is included in the struct (reason for -1 below)
- */
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->ExtendedIrq.ResourceLength);
- AcpiDmResourceSource (Resource,
- sizeof (AML_RESOURCE_EXTENDED_IRQ) +
- ((UINT32) Resource->ExtendedIrq.InterruptCount - 1) * sizeof (UINT32),
-- Resource->ExtendedIrq.ResourceLength);
-+ Tmp16);
-
- /* Insert a descriptor name */
-
-@@ -1002,9 +1010,12 @@ AcpiDmInterruptDescriptor (
- AcpiOsPrintf ("{\n");
- for (i = 0; i < Resource->ExtendedIrq.InterruptCount; i++)
- {
-+ UINT32 Tmp32, Val32;
-+
- AcpiDmIndent (Level + 1);
-- AcpiOsPrintf ("0x%8.8X,\n",
-- (UINT32) Resource->ExtendedIrq.Interrupts[i]);
-+ Val32 = (UINT32) Resource->ExtendedIrq.Interrupts[i];
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Val32);
-+ AcpiOsPrintf ("0x%8.8X,\n", Tmp32);
- }
-
- AcpiDmIndent (Level);
-Index: acpica-unix2-20200528/source/components/disassembler/dmresrcl2.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/disassembler/dmresrcl2.c
-+++ acpica-unix2-20200528/source/components/disassembler/dmresrcl2.c
-@@ -191,22 +191,24 @@ AcpiDmGpioCommon (
- char *DeviceName = NULL;
- UINT32 PinCount;
- UINT32 i;
-+ UINT16 Tmp16;
-
-
- /* ResourceSource, ResourceSourceIndex, ResourceType */
-
- AcpiDmIndent (Level + 1);
-- if (Resource->Gpio.ResSourceOffset)
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.ResSourceOffset);
-+ if (Tmp16)
- {
-- DeviceName = ACPI_ADD_PTR (char,
-- Resource, Resource->Gpio.ResSourceOffset),
-+ DeviceName = ACPI_ADD_PTR (char, Resource, Tmp16),
- AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
- }
-
- AcpiOsPrintf (", ");
- AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.ResSourceIndex);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.Flags);
- AcpiOsPrintf ("%s, ",
-- AcpiGbl_ConsumeDecode [ACPI_GET_1BIT_FLAG (Resource->Gpio.Flags)]);
-+ AcpiGbl_ConsumeDecode [ACPI_GET_1BIT_FLAG (Tmp16)]);
-
- /* Insert a descriptor name */
-
-@@ -215,15 +217,16 @@ AcpiDmGpioCommon (
-
- /* Dump the vendor data */
-
-- if (Resource->Gpio.VendorOffset)
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.VendorOffset);
-+ if (Tmp16)
- {
- AcpiOsPrintf ("\n");
- AcpiDmIndent (Level + 1);
-- VendorData = ACPI_ADD_PTR (UINT8, Resource,
-- Resource->Gpio.VendorOffset);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.VendorOffset);
-+ VendorData = ACPI_ADD_PTR (UINT8, Resource, Tmp16);
-
-- AcpiDmDumpRawDataBuffer (VendorData,
-- Resource->Gpio.VendorLength, Level);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.VendorLength);
-+ AcpiDmDumpRawDataBuffer (VendorData, Tmp16, Level);
- }
-
- AcpiOsPrintf (")\n");
-@@ -233,17 +236,25 @@ AcpiDmGpioCommon (
- AcpiDmIndent (Level + 1);
- AcpiOsPrintf ("{ // Pin list\n");
-
-+ /*
- PinCount = ((UINT32) (Resource->Gpio.ResSourceOffset -
- Resource->Gpio.PinTableOffset)) /
- sizeof (UINT16);
-+ */
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.ResSourceOffset);
-+ PinCount = (UINT32) Tmp16;
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.PinTableOffset);
-+ PinCount -= (UINT32) Tmp16;
-+ PinCount /= sizeof (UINT16);
-
-- PinList = (UINT16 *) ACPI_ADD_PTR (char, Resource,
-- Resource->Gpio.PinTableOffset);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.PinTableOffset);
-+ PinList = (UINT16 *) ACPI_ADD_PTR (char, Resource, Tmp16);
-
- for (i = 0; i < PinCount; i++)
- {
- AcpiDmIndent (Level + 2);
-- AcpiOsPrintf ("0x%4.4X%s\n", PinList[i],
-+ ACPI_MOVE_16_TO_16(&Tmp16, &PinList[i]);
-+ AcpiOsPrintf ("0x%4.4X%s\n", Tmp16,
- ((i + 1) < PinCount) ? "," : "");
- }
-
-@@ -277,16 +288,18 @@ AcpiDmGpioIntDescriptor (
- UINT32 Length,
- UINT32 Level)
- {
-+ UINT16 Tmp16;
-
- /* Dump the GpioInt-specific portion of the descriptor */
-
- /* EdgeLevel, ActiveLevel, Shared */
-
- AcpiDmIndent (Level);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.IntFlags);
- AcpiOsPrintf ("GpioInt (%s, %s, %s, ",
-- AcpiGbl_HeDecode [ACPI_GET_1BIT_FLAG (Resource->Gpio.IntFlags)],
-- AcpiGbl_LlDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 1)],
-- AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 3)]);
-+ AcpiGbl_HeDecode [ACPI_GET_1BIT_FLAG (Tmp16)],
-+ AcpiGbl_LlDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 1)],
-+ AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 3)]);
-
- /* PinConfig, DebounceTimeout */
-
-@@ -299,7 +312,8 @@ AcpiDmGpioIntDescriptor (
- {
- AcpiOsPrintf ("0x%2.2X, ", Resource->Gpio.PinConfig);
- }
-- AcpiOsPrintf ("0x%4.4X,\n", Resource->Gpio.DebounceTimeout);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.DebounceTimeout);
-+ AcpiOsPrintf ("0x%4.4X,\n", Tmp16);
-
- /* Dump the GpioInt/GpioIo common portion of the descriptor */
-
-@@ -329,14 +343,16 @@ AcpiDmGpioIoDescriptor (
- UINT32 Length,
- UINT32 Level)
- {
-+ UINT16 Tmp16;
-
- /* Dump the GpioIo-specific portion of the descriptor */
-
- /* Shared, PinConfig */
-
- AcpiDmIndent (Level);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.IntFlags);
- AcpiOsPrintf ("GpioIo (%s, ",
-- AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Resource->Gpio.IntFlags, 3)]);
-+ AcpiGbl_ShrDecode [ACPI_EXTRACT_2BIT_FLAG (Tmp16, 3)]);
-
- if (Resource->Gpio.PinConfig <= 3)
- {
-@@ -350,10 +366,13 @@ AcpiDmGpioIoDescriptor (
-
- /* DebounceTimeout, DriveStrength, IoRestriction */
-
-- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DebounceTimeout);
-- AcpiOsPrintf ("0x%4.4X, ", Resource->Gpio.DriveStrength);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.DebounceTimeout);
-+ AcpiOsPrintf ("0x%4.4X, ", Tmp16);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.DriveStrength);
-+ AcpiOsPrintf ("0x%4.4X, ", Tmp16);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Gpio.IntFlags);
- AcpiOsPrintf ("%s,\n",
-- AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Resource->Gpio.IntFlags)]);
-+ AcpiGbl_IorDecode [ACPI_GET_2BIT_FLAG (Tmp16)]);
-
- /* Dump the GpioInt/GpioIo common portion of the descriptor */
-
-@@ -533,6 +552,7 @@ AcpiDmDumpSerialBusVendorData (
- {
- UINT8 *VendorData;
- UINT32 VendorLength;
-+ UINT16 Tmp16;
-
-
- /* Get the (optional) vendor data and length */
-@@ -541,8 +561,8 @@ AcpiDmDumpSerialBusVendorData (
- {
- case AML_RESOURCE_I2C_SERIALBUSTYPE:
-
-- VendorLength = Resource->CommonSerialBus.TypeDataLength -
-- AML_RESOURCE_I2C_MIN_DATA_LEN;
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength);
-+ VendorLength = Tmp16 - AML_RESOURCE_I2C_MIN_DATA_LEN;
-
- VendorData = ACPI_ADD_PTR (UINT8, Resource,
- sizeof (AML_RESOURCE_I2C_SERIALBUS));
-@@ -550,8 +570,8 @@ AcpiDmDumpSerialBusVendorData (
-
- case AML_RESOURCE_SPI_SERIALBUSTYPE:
-
-- VendorLength = Resource->CommonSerialBus.TypeDataLength -
-- AML_RESOURCE_SPI_MIN_DATA_LEN;
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength);
-+ VendorLength = Tmp16 - AML_RESOURCE_SPI_MIN_DATA_LEN;
-
- VendorData = ACPI_ADD_PTR (UINT8, Resource,
- sizeof (AML_RESOURCE_SPI_SERIALBUS));
-@@ -559,8 +579,8 @@ AcpiDmDumpSerialBusVendorData (
-
- case AML_RESOURCE_UART_SERIALBUSTYPE:
-
-- VendorLength = Resource->CommonSerialBus.TypeDataLength -
-- AML_RESOURCE_UART_MIN_DATA_LEN;
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength);
-+ VendorLength = Tmp16 - AML_RESOURCE_UART_MIN_DATA_LEN;
-
- VendorData = ACPI_ADD_PTR (UINT8, Resource,
- sizeof (AML_RESOURCE_UART_SERIALBUS));
-@@ -601,24 +621,29 @@ AcpiDmI2cSerialBusDescriptor (
- {
- UINT32 ResourceSourceOffset;
- char *DeviceName;
-+ UINT16 Tmp16;
-+ UINT32 Tmp32;
-
-
- /* SlaveAddress, SlaveMode, ConnectionSpeed, AddressingMode */
-
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->I2cSerialBus.SlaveAddress);
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Resource->I2cSerialBus.ConnectionSpeed);
- AcpiDmIndent (Level);
- AcpiOsPrintf ("I2cSerialBusV2 (0x%4.4X, %s, 0x%8.8X,\n",
-- Resource->I2cSerialBus.SlaveAddress,
-+ Tmp16,
- AcpiGbl_SmDecode [ACPI_GET_1BIT_FLAG (Resource->I2cSerialBus.Flags)],
-- Resource->I2cSerialBus.ConnectionSpeed);
-+ Tmp32);
-
- AcpiDmIndent (Level + 1);
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->I2cSerialBus.TypeSpecificFlags);
- AcpiOsPrintf ("%s, ",
-- AcpiGbl_AmDecode [ACPI_GET_1BIT_FLAG (Resource->I2cSerialBus.TypeSpecificFlags)]);
-+ AcpiGbl_AmDecode [ACPI_GET_1BIT_FLAG (Tmp16)]);
-
- /* ResourceSource is a required field */
-
-- ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) +
-- Resource->CommonSerialBus.TypeDataLength;
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->CommonSerialBus.TypeDataLength);
-+ ResourceSourceOffset = sizeof (AML_RESOURCE_COMMON_SERIALBUS) + Tmp16;
-
- DeviceName = ACPI_ADD_PTR (char, Resource, ResourceSourceOffset);
- AcpiUtPrintString (DeviceName, ACPI_UINT16_MAX);
-Index: acpica-unix2-20200528/source/components/disassembler/dmresrcs.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/disassembler/dmresrcs.c
-+++ acpica-unix2-20200528/source/components/disassembler/dmresrcs.c
-@@ -72,6 +72,7 @@ AcpiDmIrqDescriptor (
- UINT32 Length,
- UINT32 Level)
- {
-+ UINT16 Tmp;
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("%s (",
-@@ -93,7 +94,8 @@ AcpiDmIrqDescriptor (
- AcpiOsPrintf (")\n");
-
- AcpiDmIndent (Level + 1);
-- AcpiDmBitList (Resource->Irq.IrqMask);
-+ ACPI_MOVE_16_TO_16(&Tmp, &Resource->Irq.IrqMask);
-+ AcpiDmBitList (Tmp);
- }
-
-
-@@ -204,16 +206,19 @@ AcpiDmIoDescriptor (
- UINT32 Length,
- UINT32 Level)
- {
-+ UINT16 Tmp16;
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("IO (%s,\n",
- AcpiGbl_IoDecode [ACPI_GET_1BIT_FLAG (Resource->Io.Flags)]);
-
- AcpiDmIndent (Level + 1);
-- AcpiDmDumpInteger16 (Resource->Io.Minimum, "Range Minimum");
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Io.Minimum);
-+ AcpiDmDumpInteger16 (Tmp16, "Range Minimum");
-
- AcpiDmIndent (Level + 1);
-- AcpiDmDumpInteger16 (Resource->Io.Maximum, "Range Maximum");
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->Io.Maximum);
-+ AcpiDmDumpInteger16 (Tmp16, "Range Maximum");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger8 (Resource->Io.Alignment, "Alignment");
-@@ -251,12 +256,14 @@ AcpiDmFixedIoDescriptor (
- UINT32 Length,
- UINT32 Level)
- {
-+ UINT16 Tmp16;
-
- AcpiDmIndent (Level);
- AcpiOsPrintf ("FixedIO (\n");
-
- AcpiDmIndent (Level + 1);
-- AcpiDmDumpInteger16 (Resource->FixedIo.Address, "Address");
-+ ACPI_MOVE_16_TO_16(&Tmp16, &Resource->FixedIo.Address);
-+ AcpiDmDumpInteger16 (Tmp16, "Address");
-
- AcpiDmIndent (Level + 1);
- AcpiDmDumpInteger8 (Resource->FixedIo.AddressLength, "Length");
-Index: acpica-unix2-20200528/source/components/dispatcher/dsfield.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/dispatcher/dsfield.c
-+++ acpica-unix2-20200528/source/components/dispatcher/dsfield.c
-@@ -329,6 +329,7 @@ AcpiDsGetFieldNames (
- ACPI_STATUS Status;
- UINT64 Position;
- ACPI_PARSE_OBJECT *Child;
-+ UINT32 TmpName;
-
- #ifdef ACPI_EXEC_APP
- ACPI_OPERAND_OBJECT *ResultDesc;
-@@ -442,10 +443,17 @@ AcpiDsGetFieldNames (
-
- /* Lookup the name, it should already exist */
-
-+ ACPI_MOVE_32_TO_32(&TmpName, &Arg->Named.Name);
-+ Status = AcpiNsLookup (WalkState->ScopeInfo,
-+ (char *) &TmpName, Info->FieldType,
-+ ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE,
-+ WalkState, &Info->FieldNode);
-+ /*
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- (char *) &Arg->Named.Name, Info->FieldType,
- ACPI_IMODE_EXECUTE, ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Info->FieldNode);
-+ */
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (WalkState->ScopeInfo,
-@@ -703,9 +711,17 @@ AcpiDsInitFieldObjects (
- */
- if (Arg->Common.AmlOpcode == AML_INT_NAMEDFIELD_OP)
- {
-+ UINT32 TmpName;
-+
-+ ACPI_MOVE_32_TO_32(&TmpName, &Arg->Named.Name);
-+ Status = AcpiNsLookup (WalkState->ScopeInfo,
-+ (char *) &TmpName, Type, ACPI_IMODE_LOAD_PASS1,
-+ Flags, WalkState, &Node);
-+ /*
- Status = AcpiNsLookup (WalkState->ScopeInfo,
- (char *) &Arg->Named.Name, Type, ACPI_IMODE_LOAD_PASS1,
- Flags, WalkState, &Node);
-+ */
- if (ACPI_FAILURE (Status))
- {
- ACPI_ERROR_NAMESPACE (WalkState->ScopeInfo,
-Index: acpica-unix2-20200528/source/components/events/evgpeblk.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/events/evgpeblk.c
-+++ acpica-unix2-20200528/source/components/events/evgpeblk.c
-@@ -380,6 +380,7 @@ AcpiEvCreateGpeBlock (
- ACPI_STATUS Status;
- ACPI_GPE_BLOCK_INFO *GpeBlock;
- ACPI_GPE_WALK_INFO WalkInfo;
-+ char Name[ACPI_NAMESEG_SIZE + 1];
-
-
- ACPI_FUNCTION_TRACE (EvCreateGpeBlock);
-@@ -400,7 +401,7 @@ AcpiEvCreateGpeBlock (
-
- /* Initialize the new GPE block */
-
-- GpeBlock->Address = Address;
-+ ACPI_MOVE_64_TO_64(&GpeBlock->Address, &Address);
- GpeBlock->SpaceId = SpaceId;
- GpeBlock->Node = GpeDevice;
- GpeBlock->GpeCount = (UINT16) (RegisterCount * ACPI_GPE_REGISTER_WIDTH);
-@@ -449,11 +450,13 @@ AcpiEvCreateGpeBlock (
- (*ReturnGpeBlock) = GpeBlock;
- }
-
-+ memset(&Name, 0, ACPI_NAMESEG_SIZE + 1);
-+ ACPI_MOVE_32_TO_32(&Name, &GpeDevice->Name.Ascii);
- ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
- " Initialized GPE %02X to %02X [%4.4s] %u regs on interrupt 0x%X%s\n",
- (UINT32) GpeBlock->BlockBaseNumber,
- (UINT32) (GpeBlock->BlockBaseNumber + (GpeBlock->GpeCount - 1)),
-- GpeDevice->Name.Ascii, GpeBlock->RegisterCount, InterruptNumber,
-+ Name, GpeBlock->RegisterCount, InterruptNumber,
- InterruptNumber == AcpiGbl_FADT.SciInterrupt ? " (SCI)" : ""));
-
- /* Update global count of currently available GPEs */
-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
-@@ -197,7 +197,7 @@ AcpiHwValidateRegister (
- * Address must not be null. A null address also indicates an optional
- * ACPI register that is not supported, so no error message.
- */
-- ACPI_MOVE_64_TO_64 (Address, &Reg->Address);
-+ *Address = Reg->Address;
- if (!(*Address))
- {
- return (AE_BAD_ADDRESS);
-Index: acpica-unix2-20200528/source/components/hardware/hwvalid.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/hardware/hwvalid.c
-+++ acpica-unix2-20200528/source/components/hardware/hwvalid.c
-@@ -135,6 +135,8 @@ AcpiHwValidateIoRequest (
- UINT32 ByteWidth;
- ACPI_IO_ADDRESS LastAddress;
- const ACPI_PORT_INFO *PortInfo;
-+ UINT64 Max16;
-+ UINT64 Tmp64;
-
-
- ACPI_FUNCTION_TRACE (HwValidateIoRequest);
-@@ -162,7 +164,10 @@ AcpiHwValidateIoRequest (
-
- /* Maximum 16-bit address in I/O space */
-
-- if (LastAddress > ACPI_UINT16_MAX)
-+ Max16 = (UINT64) ACPI_UINT16_MAX;
-+ ACPI_MOVE_64_TO_64(&Tmp64, &Max16);
-+
-+ if ((UINT64)LastAddress > Tmp64)
- {
- ACPI_ERROR ((AE_INFO,
- "Illegal I/O port address/length above 64K: %8.8X%8.8X/0x%X",
-Index: acpica-unix2-20200528/source/components/namespace/nsaccess.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/namespace/nsaccess.c
-+++ acpica-unix2-20200528/source/components/namespace/nsaccess.c
-@@ -349,6 +349,7 @@ AcpiNsLookup (
- UINT32 SearchParentFlag = ACPI_NS_SEARCH_PARENT;
- UINT32 LocalFlags;
- ACPI_INTERPRETER_MODE LocalInterpreterMode;
-+ UINT32 Tmp32;
-
-
- ACPI_FUNCTION_TRACE (NsLookup);
-@@ -758,9 +759,10 @@ AcpiNsLookup (
- {
- /* Complain about a type mismatch */
-
-+ ACPI_MOVE_32_TO_32(&Tmp32, &SimpleName);
- ACPI_WARNING ((AE_INFO,
- "NsLookup: Type mismatch on %4.4s (%s), searching for (%s)",
-- ACPI_CAST_PTR (char, &SimpleName),
-+ ACPI_CAST_PTR (char, &Tmp32),
- AcpiUtGetTypeName (ThisNode->Type),
- AcpiUtGetTypeName (TypeToCheckFor)));
- }
-Index: acpica-unix2-20200528/source/components/namespace/nsparse.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/namespace/nsparse.c
-+++ acpica-unix2-20200528/source/components/namespace/nsparse.c
-@@ -216,13 +216,14 @@ AcpiNsOneCompleteParse (
-
- /* Table must consist of at least a complete header */
-
-- if (Table->Length < sizeof (ACPI_TABLE_HEADER))
-+ ACPI_MOVE_32_TO_32(&AmlLength, &Table->Length);
-+ if (AmlLength < sizeof (ACPI_TABLE_HEADER))
- {
- return_ACPI_STATUS (AE_BAD_HEADER);
- }
-
- AmlStart = (UINT8 *) Table + sizeof (ACPI_TABLE_HEADER);
-- AmlLength = Table->Length - sizeof (ACPI_TABLE_HEADER);
-+ AmlLength -= sizeof (ACPI_TABLE_HEADER);
-
- Status = AcpiTbGetOwnerId (TableIndex, &OwnerId);
- if (ACPI_FAILURE (Status))
-Index: acpica-unix2-20200528/source/components/tables/tbdata.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbdata.c
-+++ acpica-unix2-20200528/source/components/tables/tbdata.c
-@@ -552,6 +552,7 @@ AcpiTbVerifyTempTable (
- UINT32 *TableIndex)
- {
- ACPI_STATUS Status = AE_OK;
-+ UINT32 Length;
-
-
- ACPI_FUNCTION_TRACE (TbVerifyTempTable);
-@@ -581,7 +582,8 @@ AcpiTbVerifyTempTable (
- {
- /* Verify the checksum */
-
-- Status = AcpiTbVerifyChecksum (TableDesc->Pointer, TableDesc->Length);
-+ ACPI_MOVE_32_TO_32(&Length, &TableDesc->Length);
-+ Status = AcpiTbVerifyChecksum (TableDesc->Pointer, Length);
- if (ACPI_FAILURE (Status))
- {
- ACPI_EXCEPTION ((AE_INFO, AE_NO_MEMORY,
-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
-@@ -424,18 +424,20 @@ AcpiTbCreateLocalFadt (
- ACPI_TABLE_HEADER *Table,
- UINT32 Length)
- {
-+ UINT32 Tmp32;
-
- /*
- * Check if the FADT is larger than the largest table that we expect
- * (typically the current ACPI specification version). If so, truncate
- * the table, and issue a warning.
- */
-- if (Length > sizeof (ACPI_TABLE_FADT))
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Length);
-+ if (Tmp32 > sizeof (ACPI_TABLE_FADT))
- {
- ACPI_BIOS_WARNING ((AE_INFO,
- "FADT (revision %u) is longer than %s length, "
- "truncating length %u to %u",
-- Table->Revision, ACPI_FADT_CONFORMANCE, Length,
-+ Table->Revision, ACPI_FADT_CONFORMANCE, Tmp32,
- (UINT32) sizeof (ACPI_TABLE_FADT)));
- }
-
-@@ -446,7 +448,7 @@ AcpiTbCreateLocalFadt (
- /* Copy the original FADT, up to sizeof (ACPI_TABLE_FADT) */
-
- memcpy (&AcpiGbl_FADT, Table,
-- ACPI_MIN (Length, sizeof (ACPI_TABLE_FADT)));
-+ ACPI_MIN (Tmp32, sizeof (ACPI_TABLE_FADT)));
-
- /* Take a copy of the Hardware Reduced flag */
-
-@@ -520,6 +522,8 @@ AcpiTbConvertFadt (
- UINT8 Length;
- UINT8 Flags;
- UINT32 i;
-+ UINT32 Tmp32;
-+ UINT64 Tmp64;
-
-
- /*
-@@ -533,7 +537,8 @@ AcpiTbConvertFadt (
- * Note: The FADT revision value is unreliable. Only the length can be
- * trusted.
- */
-- if (AcpiGbl_FADT.Header.Length <= ACPI_FADT_V2_SIZE)
-+ ACPI_MOVE_32_TO_32(&Tmp32, &AcpiGbl_FADT.Header.Length);
-+ if (Tmp32 <= ACPI_FADT_V2_SIZE)
- {
- AcpiGbl_FADT.PreferredProfile = 0;
- AcpiGbl_FADT.PstateControl = 0;
-@@ -546,14 +551,15 @@ AcpiTbConvertFadt (
- * current FADT version as defined by the ACPI specification.
- * Thus, we will have a common FADT internally.
- */
-- AcpiGbl_FADT.Header.Length = sizeof (ACPI_TABLE_FADT);
-+ Tmp32 = sizeof (ACPI_TABLE_FADT);
-+ ACPI_MOVE_32_TO_32(&AcpiGbl_FADT.Header.Length, &Tmp32);
-
- /*
- * Expand the 32-bit DSDT addresses to 64-bit as necessary.
- * Later ACPICA code will always use the X 64-bit field.
- */
-- AcpiGbl_FADT.XDsdt = AcpiTbSelectAddress ("DSDT",
-- AcpiGbl_FADT.Dsdt, AcpiGbl_FADT.XDsdt);
-+ Tmp64 = AcpiTbSelectAddress ("DSDT", AcpiGbl_FADT.Dsdt, AcpiGbl_FADT.XDsdt);
-+ ACPI_MOVE_64_TO_64(&AcpiGbl_FADT.XDsdt, &Tmp64);
-
- /* If Hardware Reduced flag is set, we are all done */
-
-@@ -614,7 +620,9 @@ AcpiTbConvertFadt (
- {
- if (Address64->Address)
- {
-- if (Address64->Address != (UINT64) Address32)
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Address32);
-+ ACPI_MOVE_64_TO_64(&Tmp64, &Address64->Address);
-+ if (Tmp64 != (UINT64) Tmp32)
- {
- /* Address mismatch */
-
-@@ -655,9 +663,11 @@ AcpiTbConvertFadt (
- */
- if (!Address64->Address || AcpiGbl_Use32BitFadtAddresses)
- {
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Address32); /* back to host order */
-+ Tmp64 = (UINT64) Tmp32; /* promote only */
- AcpiTbInitGenericAddress (Address64,
- ACPI_ADR_SPACE_SYSTEM_IO, Length,
-- (UINT64) Address32, Name, Flags);
-+ Tmp64, Name, Flags);
- }
- }
-
-@@ -780,10 +790,14 @@ AcpiTbSetupFadtRegisters (
-
- if (Source64->Address)
- {
-+ UINT64 Tmp64, Addr64;
-+
-+ ACPI_MOVE_64_TO_64(&Tmp64, &Source64->Address);
-+ Tmp64 += (FadtPmInfoTable[i].RegisterNum * Pm1RegisterByteWidth);
-+ ACPI_MOVE_64_TO_64(&Addr64, &Tmp64);
- AcpiTbInitGenericAddress (FadtPmInfoTable[i].Target,
- Source64->SpaceId, Pm1RegisterByteWidth,
-- Source64->Address +
-- (FadtPmInfoTable[i].RegisterNum * Pm1RegisterByteWidth),
-+ Addr64,
- "PmRegisters", 0);
- }
- }
-Index: acpica-unix2-20200528/source/components/tables/tbfind.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbfind.c
-+++ acpica-unix2-20200528/source/components/tables/tbfind.c
-@@ -108,8 +108,11 @@ AcpiTbFindTable (
- (void) AcpiUtAcquireMutex (ACPI_MTX_TABLES);
- for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
- {
-+ UINT32 Tmp32;
-+
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Header.Signature);
- if (memcmp (&(AcpiGbl_RootTableList.Tables[i].Signature),
-- Header.Signature, ACPI_NAMESEG_SIZE))
-+ &Tmp32, ACPI_NAMESEG_SIZE))
- {
- /* Not the requested table */
-
-Index: acpica-unix2-20200528/source/components/tables/tbprint.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbprint.c
-+++ acpica-unix2-20200528/source/components/tables/tbprint.c
-@@ -143,15 +143,18 @@ AcpiTbPrintTableHeader (
- ACPI_TABLE_HEADER *Header)
- {
- ACPI_TABLE_HEADER LocalHeader;
-+ UINT32 Len;
-+ UINT32 OemRev;
-+ UINT32 CompilerRev;
-
-
- if (ACPI_COMPARE_NAMESEG (Header->Signature, ACPI_SIG_FACS))
- {
- /* FACS only has signature and length fields */
-
-+ ACPI_MOVE_32_TO_32(&Len, &Header->Length);
- ACPI_INFO (("%-4.4s 0x%8.8X%8.8X %06X",
-- Header->Signature, ACPI_FORMAT_UINT64 (Address),
-- Header->Length));
-+ Header->Signature, ACPI_FORMAT_UINT64 (Address), Len));
- }
- else if (ACPI_VALIDATE_RSDP_SIG (Header->Signature))
- {
-@@ -174,13 +177,16 @@ AcpiTbPrintTableHeader (
-
- AcpiTbCleanupTableHeader (&LocalHeader, Header);
-
-+ ACPI_MOVE_32_TO_32(&Len, &LocalHeader.Length);
-+ ACPI_MOVE_32_TO_32(&OemRev, &LocalHeader.OemRevision);
-+ ACPI_MOVE_32_TO_32(&CompilerRev, &LocalHeader.AslCompilerRevision);
- ACPI_INFO ((
- "%-4.4s 0x%8.8X%8.8X"
- " %06X (v%.2d %-6.6s %-8.8s %08X %-4.4s %08X)",
- LocalHeader.Signature, ACPI_FORMAT_UINT64 (Address),
-- LocalHeader.Length, LocalHeader.Revision, LocalHeader.OemId,
-- LocalHeader.OemTableId, LocalHeader.OemRevision,
-- LocalHeader.AslCompilerId, LocalHeader.AslCompilerRevision));
-+ Len, LocalHeader.Revision, LocalHeader.OemId,
-+ LocalHeader.OemTableId, OemRev,
-+ LocalHeader.AslCompilerId, CompilerRev));
- }
- }
-
-Index: acpica-unix2-20200528/source/components/tables/tbutils.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbutils.c
-+++ acpica-unix2-20200528/source/components/tables/tbutils.c
-@@ -238,7 +238,7 @@ AcpiTbGetRootTableEntry (
- * 64-bit platform, XSDT: Move (unaligned) 64-bit to local,
- * return 64-bit
- */
-- ACPI_MOVE_64_TO_64 (&Address64, TableEntry);
-+ Address64 = (UINT64) TableEntry;
-
- #if ACPI_MACHINE_WIDTH == 32
- if (Address64 > ACPI_UINT32_MAX)
-@@ -251,7 +251,8 @@ AcpiTbGetRootTableEntry (
- ACPI_FORMAT_UINT64 (Address64)));
- }
- #endif
-- return ((ACPI_PHYSICAL_ADDRESS) (Address64));
-+ return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
-+ UINT64, Address64)));
- }
- }
-
-@@ -287,6 +288,7 @@ AcpiTbParseRootTable (
- UINT8 *TableEntry;
- ACPI_STATUS Status;
- UINT32 TableIndex;
-+ UINT32 Tmp32;
-
-
- ACPI_FUNCTION_TRACE (TbParseRootTable);
-@@ -345,7 +347,7 @@ AcpiTbParseRootTable (
- * Validate length of the table, and map entire table.
- * Minimum length table must contain at least one entry.
- */
-- Length = Table->Length;
-+ ACPI_MOVE_32_TO_32(&Length, &Table->Length);
- AcpiOsUnmapMemory (Table, sizeof (ACPI_TABLE_HEADER));
-
- if (Length < (sizeof (ACPI_TABLE_HEADER) + TableEntrySize))
-@@ -372,7 +374,7 @@ AcpiTbParseRootTable (
-
- /* Get the number of entries and pointer to first entry */
-
-- TableCount = (UINT32) ((Table->Length - sizeof (ACPI_TABLE_HEADER)) /
-+ TableCount = (UINT32) ((Length - sizeof (ACPI_TABLE_HEADER)) /
- TableEntrySize);
- TableEntry = ACPI_ADD_PTR (UINT8, Table, sizeof (ACPI_TABLE_HEADER));
-
-@@ -394,10 +396,10 @@ AcpiTbParseRootTable (
- Status = AcpiTbInstallStandardTable (Address,
- ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL, FALSE, TRUE, &TableIndex);
-
-+ ACPI_MOVE_32_TO_32(&Tmp32,
-+ &AcpiGbl_RootTableList.Tables[TableIndex].Signature);
- if (ACPI_SUCCESS (Status) &&
-- ACPI_COMPARE_NAMESEG (
-- &AcpiGbl_RootTableList.Tables[TableIndex].Signature,
-- ACPI_SIG_FADT))
-+ ACPI_COMPARE_NAMESEG (&Tmp32, ACPI_SIG_FADT))
- {
- AcpiGbl_FadtIndex = TableIndex;
- AcpiTbParseFadt ();
-Index: acpica-unix2-20200528/source/components/tables/tbxface.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbxface.c
-+++ acpica-unix2-20200528/source/components/tables/tbxface.c
-@@ -293,8 +293,11 @@ AcpiGetTableHeader (
-
- for (i = 0, j = 0; i < AcpiGbl_RootTableList.CurrentTableCount; i++)
- {
-+ UINT32 Tmp32;
-+
-+ ACPI_MOVE_32_TO_32(&Tmp32, (UINT32 *)Signature);
- if (!ACPI_COMPARE_NAMESEG (
-- &(AcpiGbl_RootTableList.Tables[i].Signature), Signature))
-+ &(AcpiGbl_RootTableList.Tables[i].Signature), &Tmp32))
- {
- continue;
- }
-Index: acpica-unix2-20200528/source/components/tables/tbxfload.c
-===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbxfload.c
-+++ acpica-unix2-20200528/source/components/tables/tbxfload.c
-@@ -153,6 +153,7 @@ AcpiTbLoadNamespace (
- ACPI_TABLE_DESC *Table;
- UINT32 TablesLoaded = 0;
- UINT32 TablesFailed = 0;
-+ UINT32 Tmp32;
-
-
- ACPI_FUNCTION_TRACE (TbLoadNamespace);
-@@ -166,8 +167,9 @@ AcpiTbLoadNamespace (
- */
- Table = &AcpiGbl_RootTableList.Tables[AcpiGbl_DsdtIndex];
-
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Table->Signature.Ascii);
- if (!AcpiGbl_RootTableList.CurrentTableCount ||
-- !ACPI_COMPARE_NAMESEG (Table->Signature.Ascii, ACPI_SIG_DSDT) ||
-+ !ACPI_COMPARE_NAMESEG (&Tmp32, ACPI_SIG_DSDT) ||
- ACPI_FAILURE (AcpiTbValidateTable (Table)))
- {
- Status = AE_NO_ACPI_TABLES;
-Index: acpica-unix2-20200528/source/tools/acpiexec/aetables.c
-===================================================================
---- acpica-unix2-20200528.orig/source/tools/acpiexec/aetables.c
-+++ acpica-unix2-20200528/source/tools/acpiexec/aetables.c
-@@ -146,21 +146,25 @@ AeInitializeTableHeader (
- char *Signature,
- UINT32 Length)
- {
-+ UINT16 Tmp16;
-+ UINT32 Tmp32;
-
- ACPI_COPY_NAMESEG (Header->Signature, Signature);
-- Header->Length = Length;
-+ ACPI_MOVE_32_TO_32(&Header->Length, &Length);
-
-- Header->OemRevision = 0x1001;
-+ Tmp16 = 0x1001;
-+ ACPI_MOVE_16_TO_16(&Header->OemRevision, &Tmp16);
- memcpy (Header->OemId, "Intel ", ACPI_OEM_ID_SIZE);
- memcpy (Header->OemTableId, "AcpiExec", ACPI_OEM_TABLE_ID_SIZE);
- ACPI_COPY_NAMESEG (Header->AslCompilerId, "INTL");
-- Header->AslCompilerRevision = ACPI_CA_VERSION;
-+ Tmp32 = ACPI_CA_VERSION;
-+ ACPI_MOVE_32_TO_32(&Header->AslCompilerRevision, &Tmp32);
-
- /* Set the checksum, must set to zero first */
-
- Header->Checksum = 0;
- Header->Checksum = (UINT8) -AcpiTbChecksum (
-- (void *) Header, Header->Length);
-+ (void *) Header, Length);
- }
-
-
-@@ -188,6 +192,7 @@ AeBuildLocalTables (
- ACPI_NEW_TABLE_DESC *NextTable;
- UINT32 NextIndex;
- ACPI_TABLE_FADT *ExternalFadt = NULL;
-+ UINT32 Tmp32;
-
-
- /*
-@@ -374,6 +379,8 @@ AeBuildLocalTables (
- }
- else
- {
-+ UINT64 Tmp64;
-+
- /*
- * Build a local FADT so we can test the hardware/event init
- */
-@@ -385,34 +392,44 @@ AeBuildLocalTables (
- LocalFADT.Facs = 0;
-
- LocalFADT.XDsdt = DsdtAddress;
-- LocalFADT.XFacs = ACPI_PTR_TO_PHYSADDR (&LocalFACS);
-+ Tmp64 = ACPI_PTR_TO_PHYSADDR (&LocalFACS);
-+ ACPI_MOVE_64_TO_64(&LocalFADT.XFacs, &Tmp64);
-
- /* Miscellaneous FADT fields */
-
- LocalFADT.Gpe0BlockLength = 0x20;
-- LocalFADT.Gpe0Block = 0x00003210;
-+ Tmp32 = 0x00003210;
-+ ACPI_MOVE_32_TO_32(&LocalFADT.Gpe0Block, &Tmp32);
-
- LocalFADT.Gpe1BlockLength = 0x20;
-- LocalFADT.Gpe1Block = 0x0000BA98;
-+ Tmp32 = 0x0000BA98;
-+ ACPI_MOVE_32_TO_32(&LocalFADT.Gpe1Block, &Tmp32);
- LocalFADT.Gpe1Base = 0x80;
-
- LocalFADT.Pm1EventLength = 4;
-- LocalFADT.Pm1aEventBlock = 0x00001aaa;
-- LocalFADT.Pm1bEventBlock = 0x00001bbb;
-+ Tmp32 = 0x00001aaa;
-+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm1aEventBlock, &Tmp32);
-+ Tmp32 = 0x00001bbb;
-+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm1bEventBlock, &Tmp32);
-
- LocalFADT.Pm1ControlLength = 2;
-- LocalFADT.Pm1aControlBlock = 0xB0;
-+ Tmp32 = 0xB0;
-+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm1aControlBlock, &Tmp32);
-
- LocalFADT.PmTimerLength = 4;
-- LocalFADT.PmTimerBlock = 0xA0;
-+ Tmp32 = 0xA0;
-+ ACPI_MOVE_32_TO_32(&LocalFADT.PmTimerBlock, &Tmp32);
-
-- LocalFADT.Pm2ControlBlock = 0xC0;
-+ Tmp32 = 0xC0;
-+ ACPI_MOVE_32_TO_32(&LocalFADT.Pm2ControlBlock, &Tmp32);
- LocalFADT.Pm2ControlLength = 1;
-
- /* Setup one example X-64 GAS field */
-
- LocalFADT.XPm1bEventBlock.SpaceId = ACPI_ADR_SPACE_SYSTEM_IO;
-- LocalFADT.XPm1bEventBlock.Address = LocalFADT.Pm1bEventBlock;
-+ ACPI_MOVE_32_TO_32(&Tmp32, &LocalFADT.Pm1bEventBlock);
-+ Tmp64 = (UINT64)Tmp32;
-+ ACPI_MOVE_64_TO_64(&LocalFADT.XPm1bEventBlock.Address, &Tmp64);
- LocalFADT.XPm1bEventBlock.BitWidth = (UINT8)
- ACPI_MUL_8 (LocalFADT.Pm1EventLength);
- }
-@@ -425,13 +442,17 @@ AeBuildLocalTables (
- memset (&LocalFACS, 0, sizeof (ACPI_TABLE_FACS));
- ACPI_COPY_NAMESEG (LocalFACS.Signature, ACPI_SIG_FACS);
-
-- LocalFACS.Length = sizeof (ACPI_TABLE_FACS);
-- LocalFACS.GlobalLock = 0x11AA0011;
-+ Tmp32 = sizeof (ACPI_TABLE_FACS);
-+ ACPI_MOVE_32_TO_32(&LocalFACS.Length, &Tmp32);
-+ Tmp32 = 0x11AA0011;
-+ ACPI_MOVE_32_TO_32(&LocalFACS.GlobalLock, &Tmp32);
-
- /* Build the optional local tables */
-
- if (AcpiGbl_LoadTestTables)
- {
-+ UINT32 Tmp32;
-+
- /*
- * Build a fake table [TEST] so that we make sure that the
- * ACPICA core ignores it
-@@ -440,11 +461,12 @@ AeBuildLocalTables (
- ACPI_COPY_NAMESEG (LocalTEST.Signature, "TEST");
-
- LocalTEST.Revision = 1;
-- LocalTEST.Length = sizeof (ACPI_TABLE_HEADER);
-+ Tmp32 = sizeof (ACPI_TABLE_HEADER);
-+ ACPI_MOVE_32_TO_32(&LocalTEST.Length, &Tmp32);
-
- LocalTEST.Checksum = 0;
- LocalTEST.Checksum = (UINT8) -AcpiTbChecksum (
-- (void *) &LocalTEST, LocalTEST.Length);
-+ (void *) &LocalTEST, Tmp32);
-
- /*
- * Build a fake table with a bad signature [BAD!] so that we make
-@@ -454,11 +476,12 @@ AeBuildLocalTables (
- ACPI_COPY_NAMESEG (LocalBADTABLE.Signature, "BAD!");
-
- LocalBADTABLE.Revision = 1;
-- LocalBADTABLE.Length = sizeof (ACPI_TABLE_HEADER);
-+ Tmp32 = sizeof (ACPI_TABLE_HEADER);
-+ ACPI_MOVE_32_TO_32(&LocalBADTABLE.Length, &Tmp32);
-
- LocalBADTABLE.Checksum = 0;
- LocalBADTABLE.Checksum = (UINT8) -AcpiTbChecksum (
-- (void *) &LocalBADTABLE, LocalBADTABLE.Length);
-+ (void *) &LocalBADTABLE, Tmp32);
- }
-
- return (AE_OK);
-Index: acpica-unix2-20200528/source/common/dmswitch.c
-===================================================================
---- acpica-unix2-20200528.orig/source/common/dmswitch.c
-+++ acpica-unix2-20200528/source/common/dmswitch.c
-@@ -88,13 +88,15 @@ AcpiDmProcessSwitch (
- ACPI_PARSE_OBJECT_LIST *Current;
- ACPI_PARSE_OBJECT_LIST *Previous;
- BOOLEAN FoundTemp = FALSE;
-+ UINT32 Tmp32;
-
-
- switch (Op->Common.AmlOpcode)
- {
- case AML_NAME_OP:
-
-- Temp = (char *) (&Op->Named.Name);
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Op->Named.Name);
-+ Temp = (char *) (&Tmp32);
-
- if (!strncmp(Temp, "_T_", 3))
- {
-@@ -138,7 +140,10 @@ AcpiDmProcessSwitch (
- {
- /* Note, if we get here Temp is not NULL */
-
-- if (!strncmp(Temp, (char *) (&Current->Op->Named.Name), 4))
-+ ACPI_MOVE_32_TO_32(&Tmp32, &Current->Op->Named.Name);
-+
-+ /* if (!strncmp(Temp, (char *) (&Current->Op->Named.Name), 4)) */
-+ if (!strncmp(Temp, (char *) &Tmp32, 4))
- {
- /* Match found. Ignore disassembly */
-
diff --git a/converterSample.asl.result b/converterSample.asl.result
index 47c532c..064ef5f 100644
--- a/converterSample.asl.result
+++ b/converterSample.asl.result
@@ -1,12 +1,27 @@
+converterSample.asl 15: Name (b, 5)
+Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (B___)
+
+converterSample.asl 16: Name(p008, Package()
+Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (P008)
+
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 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (B___)
+
converterSample.asl 48: Name(b,0);
Remark 2089 - Object is not referenced ^ (Name [B___] is within a method [MAIN])
+converterSample.asl 53: Name (a,
+Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (A___)
+
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 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (A1__)
+
converterSample.asl 68: Name (a1, 0x04)
Remark 2089 - Object is not referenced ^ (Name [A1__] is within a method [SCOP])
@@ -23,4 +38,4 @@ 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
+Compilation successful. 0 Errors, 0 Warnings, 10 Remarks, 10 Optimizations
diff --git a/cve-2017-13693.patch b/cve-2017-13693.patch
index b0af7a6..fcda493 100644
--- a/cve-2017-13693.patch
+++ b/cve-2017-13693.patch
@@ -63,10 +63,10 @@ Github-Location: https://github.com/acpica/acpica/pull/295/commits/987a3b5cf7175
source/components/dispatcher/dsutils.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
-Index: acpica-unix-20191018/source/components/dispatcher/dsutils.c
+Index: acpica-unix2-20200925/source/components/dispatcher/dsutils.c
===================================================================
---- acpica-unix-20191018.orig/source/components/dispatcher/dsutils.c
-+++ acpica-unix-20191018/source/components/dispatcher/dsutils.c
+--- acpica-unix2-20200925.orig/source/components/dispatcher/dsutils.c
++++ acpica-unix2-20200925/source/components/dispatcher/dsutils.c
@@ -759,6 +759,8 @@ AcpiDsCreateOperands (
ACPI_PARSE_OBJECT *Arguments[ACPI_OBJ_NUM_OPERANDS];
UINT32 ArgCount = 0;
diff --git a/cve-2017-13694.patch b/cve-2017-13694.patch
index 8d582e0..40c1c08 100644
--- a/cve-2017-13694.patch
+++ b/cve-2017-13694.patch
@@ -130,10 +130,10 @@ Github-Location: https://github.com/acpica/acpica/pull/278/commits/4a0243ecb4c94
source/components/parser/psobject.c | 44 ++++++++++++++-----------------------
1 file changed, 16 insertions(+), 28 deletions(-)
-Index: acpica-unix-20191018/source/components/parser/psobject.c
+Index: acpica-unix2-20200925/source/components/parser/psobject.c
===================================================================
---- acpica-unix-20191018.orig/source/components/parser/psobject.c
-+++ acpica-unix-20191018/source/components/parser/psobject.c
+--- acpica-unix2-20200925.orig/source/components/parser/psobject.c
++++ acpica-unix2-20200925/source/components/parser/psobject.c
@@ -707,7 +707,8 @@ AcpiPsCompleteFinalOp (
ACPI_PARSE_OBJECT *Op,
ACPI_STATUS Status)
diff --git a/cve-2017-13695.patch b/cve-2017-13695.patch
index 5f77aaf..f521a16 100644
--- a/cve-2017-13695.patch
+++ b/cve-2017-13695.patch
@@ -67,10 +67,10 @@ Github-Location: https://github.com/acpica/acpica/pull/296/commits/37f2c716f2c6a
source/components/namespace/nseval.c | 10 ++++++++++
1 file changed, 10 insertions(+)
-Index: acpica-unix-20191018/source/components/namespace/nseval.c
+Index: acpica-unix2-20200925/source/components/namespace/nseval.c
===================================================================
---- acpica-unix-20191018.orig/source/components/namespace/nseval.c
-+++ acpica-unix-20191018/source/components/namespace/nseval.c
+--- acpica-unix2-20200925.orig/source/components/namespace/nseval.c
++++ acpica-unix2-20200925/source/components/namespace/nseval.c
@@ -329,6 +329,16 @@ AcpiNsEvaluate (
Info->ReturnObject = NULL;
}
diff --git a/dbtest.patch b/dbtest.patch
index eb8086e..6cf7f28 100644
--- a/dbtest.patch
+++ b/dbtest.patch
@@ -4,10 +4,11 @@ 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 @@
+Index: acpica-unix2-20200925/source/components/debugger/dbtest.c
+===================================================================
+--- acpica-unix2-20200925.orig/source/components/debugger/dbtest.c
++++ acpica-unix2-20200925/source/components/debugger/dbtest.c
+@@ -719,9 +719,10 @@ AcpiDbTestStringType (
ACPI_OBJECT *Temp1 = NULL;
ACPI_OBJECT *Temp2 = NULL;
ACPI_OBJECT *Temp3 = NULL;
@@ -19,7 +20,7 @@ diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica
/* Read the original value */
-@@ -737,6 +738,9 @@
+@@ -737,6 +738,9 @@ AcpiDbTestStringType (
/* Write a new value */
@@ -29,7 +30,7 @@ diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica
WriteValue.Type = ACPI_TYPE_STRING;
WriteValue.String.Length = strlen (ValueToWrite);
WriteValue.String.Pointer = ValueToWrite;
-@@ -790,6 +794,7 @@
+@@ -790,6 +794,7 @@ Exit:
if (Temp1) {AcpiOsFree (Temp1);}
if (Temp2) {AcpiOsFree (Temp2);}
if (Temp3) {AcpiOsFree (Temp3);}
diff --git a/f23-harden.patch b/f23-harden.patch
index 5e80d46..e1fbbbd 100644
--- a/f23-harden.patch
+++ b/f23-harden.patch
@@ -8,10 +8,10 @@ From: Al Stone <ahs3(a)redhat.com>
generate/unix/iasl/Makefile | 13 +++++++------
2 files changed, 9 insertions(+), 6 deletions(-)
-Index: acpica-unix2-20200528/generate/unix/Makefile.config
+Index: acpica-unix2-20200925/generate/unix/Makefile.config
===================================================================
---- acpica-unix2-20200528.orig/generate/unix/Makefile.config
-+++ acpica-unix2-20200528/generate/unix/Makefile.config
+--- acpica-unix2-20200925.orig/generate/unix/Makefile.config
++++ acpica-unix2-20200925/generate/unix/Makefile.config
@@ -189,6 +189,8 @@ ifneq ($(NOFORTIFY),TRUE)
OPT_CFLAGS += -D_FORTIFY_SOURCE=2
endif
@@ -21,11 +21,11 @@ Index: acpica-unix2-20200528/generate/unix/Makefile.config
CFLAGS += \
-D$(ACPI_HOST)\
-D_GNU_SOURCE\
-Index: acpica-unix2-20200528/generate/unix/iasl/Makefile
+Index: acpica-unix2-20200925/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
+--- acpica-unix2-20200925.orig/generate/unix/iasl/Makefile
++++ acpica-unix2-20200925/generate/unix/iasl/Makefile
+@@ -359,34 +359,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.
#
diff --git a/facp.patch b/facp.patch
index a8e9fe9..1d7ffee 100644
--- a/facp.patch
+++ b/facp.patch
@@ -13,10 +13,10 @@ Signed-off-by: Al Stone <ahs3(a)redhat.com>
source/common/dmtbinfo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: acpica-unix2-20200528/source/common/dmtbinfo.c
+Index: acpica-unix2-20200925/source/common/dmtbinfo.c
===================================================================
---- acpica-unix2-20200528.orig/source/common/dmtbinfo.c
-+++ acpica-unix2-20200528/source/common/dmtbinfo.c
+--- acpica-unix2-20200925.orig/source/common/dmtbinfo.c
++++ acpica-unix2-20200925/source/common/dmtbinfo.c
@@ -184,7 +184,7 @@ ACPI_DMTABLE_INFO AcpiDmTableI
ACPI_DMTABLE_INFO AcpiDmTableInfoFadt1[] =
{
diff --git a/gcc9.patch b/gcc9.patch
deleted file mode 100644
index cd190a6..0000000
--- a/gcc9.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-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 */
-
diff --git a/grammar.asl.result b/grammar.asl.result
index 19f6e2e..97fae9a 100644
--- a/grammar.asl.result
+++ b/grammar.asl.result
@@ -40,6 +40,12 @@ Warning 3055 - ^ Invalid Hex/Octal Escape - Non-
grammar.asl 523: NAME (ESC2, "abcdefg\000hijklmn")
Warning 3055 - ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
+grammar.asl 552: IRQNoFlags(xxxt){3,4,10,11}
+Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (XXXT)
+
+grammar.asl 566: Name(Bxxx,0xFFFFFFFF)
+Remark 2182 - ^ At least one lower case letter found in NameSeg, ASL is case insensitive - converting to upper case (BXXX)
+
grammar.asl 620: RCIV (Subtract (Arg0, 1))
Remark 2098 - ^ Recursive method call (RCIV)
@@ -581,4 +587,4 @@ 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
+Compilation successful. 6 Errors, 93 Warnings, 94 Remarks, 1106 Optimizations
diff --git a/int-format.patch b/int-format.patch
index 5cbb5c3..f98906b 100644
--- a/int-format.patch
+++ b/int-format.patch
@@ -21,10 +21,10 @@ From: Al Stone <ahs3(a)redhat.com>
source/components/utilities/utownerid.c | 2 +-
18 files changed, 28 insertions(+), 28 deletions(-)
-Index: acpica-unix2-20200528/source/compiler/aslerror.c
+Index: acpica-unix2-20200925/source/compiler/aslerror.c
===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslerror.c
-+++ acpica-unix2-20200528/source/compiler/aslerror.c
+--- acpica-unix2-20200925.orig/source/compiler/aslerror.c
++++ acpica-unix2-20200925/source/compiler/aslerror.c
@@ -917,7 +917,7 @@ AslLogNewError (
AslGbl_ExceptionCount[ModifiedLevel]++;
if (!AslGbl_IgnoreErrors && AslGbl_ExceptionCount[ASL_ERROR] > ASL_MAX_ERROR_COUNT)
@@ -34,10 +34,10 @@ Index: acpica-unix2-20200528/source/compiler/aslerror.c
AslGbl_SourceLine = 0;
AslGbl_NextError = AslGbl_ErrorLog;
-Index: acpica-unix2-20200528/source/compiler/aslopt.c
+Index: acpica-unix2-20200925/source/compiler/aslopt.c
===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslopt.c
-+++ acpica-unix2-20200528/source/compiler/aslopt.c
+--- acpica-unix2-20200925.orig/source/compiler/aslopt.c
++++ acpica-unix2-20200925/source/compiler/aslopt.c
@@ -583,7 +583,7 @@ OptOptimizeNamePath (
}
@@ -47,11 +47,11 @@ Index: acpica-unix2-20200528/source/compiler/aslopt.c
Op->Asl.LogicalLineNumber,
AcpiPsGetOpcodeName (Op->Common.Parent->Common.AmlOpcode),
AcpiPsGetOpcodeName (Op->Common.AmlOpcode)));
-Index: acpica-unix2-20200528/source/compiler/aslprepkg.c
+Index: acpica-unix2-20200925/source/compiler/aslprepkg.c
===================================================================
---- acpica-unix2-20200528.orig/source/compiler/aslprepkg.c
-+++ acpica-unix2-20200528/source/compiler/aslprepkg.c
-@@ -309,7 +309,7 @@ ApCheckPackage (
+--- acpica-unix2-20200925.orig/source/compiler/aslprepkg.c
++++ acpica-unix2-20200925/source/compiler/aslprepkg.c
+@@ -320,7 +320,7 @@ ApCheckPackage (
if (Count & 1)
{
@@ -60,11 +60,11 @@ Index: acpica-unix2-20200528/source/compiler/aslprepkg.c
Predefined->Info.Name, Count);
AslError (ASL_ERROR, ASL_MSG_RESERVED_PACKAGE_LENGTH,
-Index: acpica-unix2-20200528/source/components/debugger/dbexec.c
+Index: acpica-unix2-20200925/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 (
+--- acpica-unix2-20200925.orig/source/components/debugger/dbexec.c
++++ acpica-unix2-20200925/source/components/debugger/dbexec.c
+@@ -231,7 +231,7 @@ AcpiDbExecuteMethod (
ACPI_ERROR ((AE_INFO,
"Possible buffer overflow within AML Debugger "
"buffer (size 0x%X needed 0x%X)",
@@ -73,10 +73,10 @@ Index: acpica-unix2-20200528/source/components/debugger/dbexec.c
}
}
-Index: acpica-unix2-20200528/source/components/dispatcher/dsmthdat.c
+Index: acpica-unix2-20200925/source/components/dispatcher/dsmthdat.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/dispatcher/dsmthdat.c
-+++ acpica-unix2-20200528/source/components/dispatcher/dsmthdat.c
+--- acpica-unix2-20200925.orig/source/components/dispatcher/dsmthdat.c
++++ acpica-unix2-20200925/source/components/dispatcher/dsmthdat.c
@@ -291,7 +291,7 @@ AcpiDsMethodDataGetNode (
if (Index > ACPI_METHOD_MAX_LOCAL)
{
@@ -95,10 +95,10 @@ Index: acpica-unix2-20200528/source/components/dispatcher/dsmthdat.c
Index, ACPI_METHOD_MAX_ARG));
return_ACPI_STATUS (AE_AML_INVALID_INDEX);
}
-Index: acpica-unix2-20200528/source/components/dispatcher/dsutils.c
+Index: acpica-unix2-20200925/source/components/dispatcher/dsutils.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/dispatcher/dsutils.c
-+++ acpica-unix2-20200528/source/components/dispatcher/dsutils.c
+--- acpica-unix2-20200925.orig/source/components/dispatcher/dsutils.c
++++ acpica-unix2-20200925/source/components/dispatcher/dsutils.c
@@ -786,7 +786,7 @@ AcpiDsCreateOperands (
}
@@ -108,10 +108,10 @@ Index: acpica-unix2-20200528/source/components/dispatcher/dsutils.c
WalkState->NumOperands, ArgCount, Index));
/* Create the interpreter arguments, in reverse order */
-Index: acpica-unix2-20200528/source/components/dispatcher/dswscope.c
+Index: acpica-unix2-20200925/source/components/dispatcher/dswscope.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/dispatcher/dswscope.c
-+++ acpica-unix2-20200528/source/components/dispatcher/dswscope.c
+--- acpica-unix2-20200925.orig/source/components/dispatcher/dswscope.c
++++ acpica-unix2-20200925/source/components/dispatcher/dswscope.c
@@ -149,7 +149,7 @@ AcpiDsScopeStackPush (
WalkState->ScopeDepth++;
@@ -130,10 +130,10 @@ Index: acpica-unix2-20200528/source/components/dispatcher/dswscope.c
(UINT32) WalkState->ScopeDepth,
AcpiUtGetNodeName (ScopeInfo->Scope.Node),
AcpiUtGetTypeName (ScopeInfo->Common.Value)));
-Index: acpica-unix2-20200528/source/components/events/evgpe.c
+Index: acpica-unix2-20200925/source/components/events/evgpe.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/events/evgpe.c
-+++ acpica-unix2-20200528/source/components/events/evgpe.c
+--- acpica-unix2-20200925.orig/source/components/events/evgpe.c
++++ acpica-unix2-20200925/source/components/events/evgpe.c
@@ -488,7 +488,7 @@ AcpiEvGpeDetect (
"Ignore disabled registers for GPE %02X-%02X: "
"RunEnable=%02X, WakeEnable=%02X\n",
@@ -143,10 +143,10 @@ Index: acpica-unix2-20200528/source/components/events/evgpe.c
GpeRegisterInfo->EnableForRun,
GpeRegisterInfo->EnableForWake));
continue;
-Index: acpica-unix2-20200528/source/components/executer/exdump.c
+Index: acpica-unix2-20200925/source/components/executer/exdump.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/executer/exdump.c
-+++ acpica-unix2-20200528/source/components/executer/exdump.c
+--- acpica-unix2-20200925.orig/source/components/executer/exdump.c
++++ acpica-unix2-20200925/source/components/executer/exdump.c
@@ -678,7 +678,7 @@ AcpiExDumpOperand (
if (Depth > 0)
{
@@ -156,10 +156,10 @@ Index: acpica-unix2-20200528/source/components/executer/exdump.c
}
else
{
-Index: acpica-unix2-20200528/source/components/executer/exfldio.c
+Index: acpica-unix2-20200925/source/components/executer/exfldio.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/executer/exfldio.c
-+++ acpica-unix2-20200528/source/components/executer/exfldio.c
+--- acpica-unix2-20200925.orig/source/components/executer/exfldio.c
++++ acpica-unix2-20200925/source/components/executer/exfldio.c
@@ -681,8 +681,8 @@ AcpiExWriteWithUpdateRule (
ACPI_ERROR ((AE_INFO,
@@ -171,10 +171,10 @@ Index: acpica-unix2-20200528/source/components/executer/exfldio.c
return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
}
}
-Index: acpica-unix2-20200528/source/components/executer/exnames.c
+Index: acpica-unix2-20200925/source/components/executer/exnames.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/executer/exnames.c
-+++ acpica-unix2-20200528/source/components/executer/exnames.c
+--- acpica-unix2-20200925.orig/source/components/executer/exnames.c
++++ acpica-unix2-20200925/source/components/executer/exnames.c
@@ -237,7 +237,7 @@ AcpiExNameSegment (
*/
ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
@@ -193,10 +193,10 @@ Index: acpica-unix2-20200528/source/components/executer/exnames.c
}
*InAmlAddress = ACPI_CAST_PTR (UINT8, AmlAddress);
-Index: acpica-unix2-20200528/source/components/hardware/hwregs.c
+Index: acpica-unix2-20200925/source/components/hardware/hwregs.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/hardware/hwregs.c
-+++ acpica-unix2-20200528/source/components/hardware/hwregs.c
+--- acpica-unix2-20200925.orig/source/components/hardware/hwregs.c
++++ acpica-unix2-20200925/source/components/hardware/hwregs.c
@@ -460,7 +460,7 @@ AcpiHwClearAcpiStatus (
@@ -206,10 +206,10 @@ Index: acpica-unix2-20200528/source/components/hardware/hwregs.c
ACPI_FORMAT_UINT64 (AcpiGbl_XPm1aStatus.Address)));
LockFlags = AcpiOsAcquireLock (AcpiGbl_HardwareLock);
-Index: acpica-unix2-20200528/source/components/tables/tbfadt.c
+Index: acpica-unix2-20200925/source/components/tables/tbfadt.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbfadt.c
-+++ acpica-unix2-20200528/source/components/tables/tbfadt.c
+--- acpica-unix2-20200925.orig/source/components/tables/tbfadt.c
++++ acpica-unix2-20200925/source/components/tables/tbfadt.c
@@ -233,7 +233,7 @@ AcpiTbInitGenericAddress (
if (!(Flags & ACPI_FADT_GPE_REGISTER))
{
@@ -219,7 +219,7 @@ Index: acpica-unix2-20200528/source/components/tables/tbfadt.c
"to convert to GAS struct - 255 bits max, truncating",
RegisterName, ByteWidth, (ByteWidth * 8)));
}
-@@ -304,7 +304,7 @@ AcpiTbSelectAddress (
+@@ -303,7 +303,7 @@ AcpiTbSelectAddress (
ACPI_BIOS_WARNING ((AE_INFO,
"32/64X %s address mismatch in FADT: "
@@ -228,7 +228,7 @@ Index: acpica-unix2-20200528/source/components/tables/tbfadt.c
RegisterName, Address32, ACPI_FORMAT_UINT64 (Address64),
AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
-@@ -628,7 +628,7 @@ AcpiTbConvertFadt (
+@@ -631,7 +631,7 @@ AcpiTbConvertFadt (
ACPI_BIOS_WARNING ((AE_INFO,
"32/64X address mismatch in FADT/%s: "
@@ -237,10 +237,10 @@ Index: acpica-unix2-20200528/source/components/tables/tbfadt.c
Name, Address32,
ACPI_FORMAT_UINT64 (Address64->Address),
AcpiGbl_Use32BitFadtAddresses ? 32 : 64));
-Index: acpica-unix2-20200528/source/components/tables/tbxfroot.c
+Index: acpica-unix2-20200925/source/components/tables/tbxfroot.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/tables/tbxfroot.c
-+++ acpica-unix2-20200528/source/components/tables/tbxfroot.c
+--- acpica-unix2-20200925.orig/source/components/tables/tbxfroot.c
++++ acpica-unix2-20200925/source/components/tables/tbxfroot.c
@@ -177,7 +177,7 @@ AcpiFindRootPointer (
{
ACPI_ERROR ((AE_INFO,
@@ -268,10 +268,10 @@ Index: acpica-unix2-20200528/source/components/tables/tbxfroot.c
return_ACPI_STATUS (AE_NO_MEMORY);
}
-Index: acpica-unix2-20200528/source/components/utilities/utownerid.c
+Index: acpica-unix2-20200925/source/components/utilities/utownerid.c
===================================================================
---- acpica-unix2-20200528.orig/source/components/utilities/utownerid.c
-+++ acpica-unix2-20200528/source/components/utilities/utownerid.c
+--- acpica-unix2-20200925.orig/source/components/utilities/utownerid.c
++++ acpica-unix2-20200925/source/components/utilities/utownerid.c
@@ -237,7 +237,7 @@ AcpiUtReleaseOwnerId (
else
{
diff --git a/mips-be-fix.patch b/mips-be-fix.patch
index 0e7fa91..485fb77 100644
--- a/mips-be-fix.patch
+++ b/mips-be-fix.patch
@@ -1,8 +1,8 @@
-Index: acpica-unix-20191018/source/compiler/aslparseop.c
+Index: acpica-unix2-20200925/source/compiler/aslparseop.c
===================================================================
---- acpica-unix-20191018.orig/source/compiler/aslparseop.c
-+++ acpica-unix-20191018/source/compiler/aslparseop.c
-@@ -283,7 +283,16 @@ TrCreateValuedLeafOp (
+--- acpica-unix2-20200925.orig/source/compiler/aslparseop.c
++++ acpica-unix2-20200925/source/compiler/aslparseop.c
+@@ -285,7 +285,16 @@ TrCreateValuedLeafOp (
Op = TrAllocateOp (ParseOpcode);
@@ -20,18 +20,3 @@ Index: acpica-unix-20191018/source/compiler/aslparseop.c
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__ */
-
diff --git a/ppc64le.patch b/ppc64le.patch
deleted file mode 100644
index 228f9d9..0000000
--- a/ppc64le.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-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__ */
-
diff --git a/ptr-cast.patch b/ptr-cast.patch
index d052057..8f32d8c 100644
--- a/ptr-cast.patch
+++ b/ptr-cast.patch
@@ -1,12 +1,12 @@
-Index: acpica-unix-20191018/source/components/tables/tbutils.c
+Index: acpica-unix2-20200925/source/components/tables/tbutils.c
===================================================================
---- acpica-unix-20191018.orig/source/components/tables/tbutils.c
-+++ acpica-unix-20191018/source/components/tables/tbutils.c
+--- acpica-unix2-20200925.orig/source/components/tables/tbutils.c
++++ acpica-unix2-20200925/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;
+- ACPI_MOVE_64_TO_64 (&Address64, TableEntry);
#if ACPI_MACHINE_WIDTH == 32
+ UINT32 Tmp32 = (UINT32) TableEntry;
@@ -15,7 +15,7 @@ Index: acpica-unix-20191018/source/components/tables/tbutils.c
if (Address64 > ACPI_UINT32_MAX)
{
/* Will truncate 64-bit address to 32 bits, issue warning */
-@@ -250,9 +252,15 @@ AcpiTbGetRootTableEntry (
+@@ -250,8 +252,14 @@ AcpiTbGetRootTableEntry (
" truncating",
ACPI_FORMAT_UINT64 (Address64)));
}
@@ -26,17 +26,16 @@ Index: acpica-unix-20191018/source/components/tables/tbutils.c
+#else
+ Address64 = (UINT64) TableEntry;
+
- return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
- UINT64, Address64)));
+ return ((ACPI_PHYSICAL_ADDRESS) (Address64));
+#endif
}
}
-Index: acpica-unix-20191018/source/compiler/aslparseop.c
+Index: acpica-unix2-20200925/source/compiler/aslparseop.c
===================================================================
---- acpica-unix-20191018.orig/source/compiler/aslparseop.c
-+++ acpica-unix-20191018/source/compiler/aslparseop.c
-@@ -287,7 +287,11 @@ TrCreateValuedLeafOp (
+--- acpica-unix2-20200925.orig/source/compiler/aslparseop.c
++++ acpica-unix2-20200925/source/compiler/aslparseop.c
+@@ -289,7 +289,11 @@ TrCreateValuedLeafOp (
ParseOpcode == PARSEOP_NAMESEG ||
ParseOpcode == PARSEOP_STRING_LITERAL)
{
diff --git a/simple-64bit.patch b/simple-64bit.patch
index 80c771f..aeead35 100644
--- a/simple-64bit.patch
+++ b/simple-64bit.patch
@@ -3,17 +3,18 @@ Description: Stop listing all 64bit architectures
64bit architectures.
Author: Adrian Bunk <bunk(a)debian.org>
-Index: acpica-unix-20191018/source/include/platform/aclinux.h
+Index: acpica-unix2-20200925/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 @@
+--- acpica-unix2-20200925.orig/source/include/platform/aclinux.h
++++ acpica-unix2-20200925/source/include/platform/aclinux.h
+@@ -215,10 +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__)
+- defined(__s390x__) ||\
+- (defined(__riscv) && (defined(__LP64__) || defined(_LP64)))
+#if defined(__LP64__)
#define ACPI_MACHINE_WIDTH 64
#define COMPILER_DEPENDENT_INT64 long
diff --git a/str-trunc-warn.patch b/str-trunc-warn.patch
index 763ae68..1355b0c 100644
--- a/str-trunc-warn.patch
+++ b/str-trunc-warn.patch
@@ -1,7 +1,7 @@
-Index: acpica-unix-20200214/source/compiler/aslanalyze.c
+Index: acpica-unix2-20200925/source/compiler/aslanalyze.c
===================================================================
---- acpica-unix-20200214.orig/source/compiler/aslanalyze.c
-+++ acpica-unix-20200214/source/compiler/aslanalyze.c
+--- acpica-unix2-20200925.orig/source/compiler/aslanalyze.c
++++ acpica-unix2-20200925/source/compiler/aslanalyze.c
@@ -358,11 +358,16 @@ AnCheckMethodReturnValue (
*/
if (ThisNodeBtype != 0)
@@ -21,10 +21,10 @@ Index: acpica-unix-20200214/source/compiler/aslanalyze.c
}
}
-Index: acpica-unix-20200214/source/compiler/aslpredef.c
+Index: acpica-unix2-20200925/source/compiler/aslpredef.c
===================================================================
---- acpica-unix-20200214.orig/source/compiler/aslpredef.c
-+++ acpica-unix-20200214/source/compiler/aslpredef.c
+--- acpica-unix2-20200925.orig/source/compiler/aslpredef.c
++++ acpica-unix2-20200925/source/compiler/aslpredef.c
@@ -159,14 +159,19 @@ ApCheckForPredefinedMethod (
if (MethodInfo->NumReturnNoValue &&
ThisName->Info.ExpectedBtypes)
@@ -84,10 +84,10 @@ Index: acpica-unix-20200214/source/compiler/aslpredef.c
return (AE_TYPE);
}
-Index: acpica-unix-20200214/source/compiler/aslwalks.c
+Index: acpica-unix2-20200925/source/compiler/aslwalks.c
===================================================================
---- acpica-unix-20200214.orig/source/compiler/aslwalks.c
-+++ acpica-unix-20200214/source/compiler/aslwalks.c
+--- acpica-unix2-20200925.orig/source/compiler/aslwalks.c
++++ acpica-unix2-20200925/source/compiler/aslwalks.c
@@ -515,15 +515,19 @@ AnOperandTypecheckWalkEnd (
else if (!CommonBtypes)
{
diff --git a/template.patch b/template.patch
index 662216a..408541a 100644
--- a/template.patch
+++ b/template.patch
@@ -7,10 +7,10 @@ From: Al Stone <ahs3(a)redhat.com>
tests/templates/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: acpica-unix-20191018/tests/templates/Makefile
+Index: acpica-unix2-20200925/tests/templates/Makefile
===================================================================
---- acpica-unix-20191018.orig/tests/templates/Makefile
-+++ acpica-unix-20191018/tests/templates/Makefile
+--- acpica-unix2-20200925.orig/tests/templates/Makefile
++++ acpica-unix2-20200925/tests/templates/Makefile
@@ -26,7 +26,7 @@ $(aml_obj): %.aml: %.asl
diff --git a/ull-32bit.patch b/ull-32bit.patch
new file mode 100644
index 0000000..0568e11
--- /dev/null
+++ b/ull-32bit.patch
@@ -0,0 +1,12 @@
+diff -Naur acpica-unix2-20200925.orig/source/common/dmtbdump.c acpica-unix2-20200925/source/common/dmtbdump.c
+--- acpica-unix2-20200925.orig/source/common/dmtbdump.c 2020-10-16 18:33:41.108600489 -0600
++++ acpica-unix2-20200925/source/common/dmtbdump.c 2020-10-16 18:35:01.970316862 -0600
+@@ -333,7 +333,7 @@
+ for (i = 0; i < Entries; i++)
+ {
+ AcpiDmLineHeader2 (Offset, sizeof (UINT64), "ACPI Table Address", i);
+- AcpiOsPrintf ("%16.16lX\n", AcpiUtReadUint64(&Array[i]));
++ AcpiOsPrintf ("%16.16llX\n", AcpiUtReadUint64(&Array[i]));
+ Offset += sizeof (UINT64);
+ }
+ }
diff --git a/unaligned.patch b/unaligned.patch
index f1f35a0..6d3f9c6 100644
--- a/unaligned.patch
+++ b/unaligned.patch
@@ -14,10 +14,10 @@ Signed-off-by: Paolo Bonzini <pbonzini(a)redhat.com>
source/include/actypes.h | 26 +++++++++++++-------------
3 files changed, 32 insertions(+), 21 deletions(-)
-Index: acpica-unix-20191018/source/components/executer/exoparg2.c
+Index: acpica-unix2-20200925/source/components/executer/exoparg2.c
===================================================================
---- acpica-unix-20191018.orig/source/components/executer/exoparg2.c
-+++ acpica-unix-20191018/source/components/executer/exoparg2.c
+--- acpica-unix2-20200925.orig/source/components/executer/exoparg2.c
++++ acpica-unix2-20200925/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;
@@ -58,10 +58,10 @@ Index: acpica-unix-20191018/source/components/executer/exoparg2.c
break;
case AML_CONCATENATE_OP: /* Concatenate (Data1, Data2, Result) */
-Index: acpica-unix-20191018/source/include/actypes.h
+Index: acpica-unix2-20200925/source/include/actypes.h
===================================================================
---- acpica-unix-20191018.orig/source/include/actypes.h
-+++ acpica-unix-20191018/source/include/actypes.h
+--- acpica-unix2-20200925.orig/source/include/actypes.h
++++ acpica-unix2-20200925/source/include/actypes.h
@@ -143,6 +143,19 @@ typedef COMPILER_DEPENDENT_INT64
*/
#define ACPI_THREAD_ID UINT64
commit f9e9c6154d94616f56abe71120587c8f9fd85edb
Author: Al Stone <ahs3(a)redhat.com>
Date: Thu Oct 15 15:21:20 2020 -0600
The acpinames command has been deprecated upstream
Remove the command and the man page. Functionality replacing acpinames
is now found in acpiexec.
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 7997d0c..9b16719 100644
--- a/.gitignore
+++ b/.gitignore
@@ -135,3 +135,5 @@ series
/acpitests-unix-20200528.tar.gz
/acpica-unix2-20200717.tar.gz
/acpitests-unix-20200717.tar.gz
+/acpica-unix2-20200925.tar.gz
+/acpitests-unix-20200925.tar.gz
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 6ae42c3..ad94d67 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -1,5 +1,5 @@
Name: acpica-tools
-Version: 20200717
+Version: 20200925
Release: 1%{?dist}
Summary: ACPICA tools for the development and debug of ACPI tables
@@ -14,7 +14,6 @@ Source4: acpibin.1
Source5: acpidump.1
Source6: acpiexec.1
Source7: acpihelp.1
-Source8: acpinames.1
Source9: acpisrc.1
Source10: acpixtract.1
Source11: acpiexamples.1
@@ -24,31 +23,67 @@ 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
+# the big-endian patch set
+Patch0: 0001-Add-in-basic-infrastructure-for-big-endian-support.patch
+Patch1: 0002-Modify-utility-functions-to-be-endian-agnostic.patch
+Patch2: 0003-Always-display-table-header-content-in-human-readabl.patch
+Patch3: 0004-Re-enable-support-for-big-endian-machines.patch
+Patch4: 0005-Support-MADT-aka-APIC-in-a-big-endian-world.patch
+Patch5: 0006-Support-ASF-tables-in-a-big-endian-world.patch
+Patch6: 0007-Support-CPEP-tables-in-a-big-endian-world.patch
+Patch7: 0008-Support-DBG2-table-in-a-big-endian-world.patch
+Patch8: 0009-Support-DMAR-in-a-big-endian-world.patch
+Patch9: 0010-Support-DRTM-in-a-big-endian-world.patch
+Patch10: 0011-Support-EINJ-in-a-big-endian-world.patch
+Patch11: 0012-Support-ERST-in-a-big-endian-world.patch
+Patch12: 0013-Support-FADT-aka-FACP-in-a-big-endian-world.patch
+Patch13: 0014-Support-most-FPDTs-in-a-big-endian-world.patch
+Patch14: 0015-Support-GTDT-in-a-big-endian-world.patch
+Patch15: 0016-Support-HEST-in-a-big-endian-world.patch
+Patch16: 0017-Support-RSDT-RSD-PTR-in-a-big-endian-world.patch
+Patch17: 0018-Support-XSDT-in-a-big-endian-world.patch
+Patch18: 0019-Support-SRAT-in-a-big-endian-world.patch
+Patch19: 0020-Support-SLIT-in-a-big-endian-world.patch
+Patch20: 0021-Support-MSCT-in-a-big-endian-world.patch
+Patch21: 0022-Support-MPST-in-a-big-endian-world.patch
+Patch22: 0023-Support-NFIT-in-a-big-endian-world.patch
+Patch23: 0024-Support-SDEV-in-a-big-endian-world.patch
+Patch24: 0025-Support-HMAT-in-a-big-endian-world.patch
+Patch25: 0026-Support-PDTT-in-a-big-endian-world.patch
+Patch25: 0027-Support-PPTT-in-a-big-endian-world.patch
+Patch27: 0028-Support-PCCT-in-a-big-endian-world.patch
+Patch28: 0029-Support-WDAT-in-a-big-endian-world.patch
+Patch29: 0030-Support-TCPA-in-a-big-endian-world.patch
+Patch30: 0031-Support-STAO-in-a-big-endian-world.patch
+Patch31: 0032-Support-SLIC-and-MSDM-in-a-big-endian-world.patch
+Patch32: 0033-Support-MCFG-in-a-big-endian-world.patch
+Patch33: 0034-Support-LPIT-in-a-big-endian-world.patch
+Patch34: 0035-Support-PMTT-in-a-big-endian-world.patch
+Patch35: 0036-Support-IORT-in-a-big-endian-world.patch
+Patch36: 0037-Support-IVRS-in-a-big-endian-world.patch
+Patch37: 0038-Support-TPM2-in-a-big-endian-world.patch
+Patch38: 0039-Add-partial-big-endian-support-for-WPBT-tables.patch
+Patch39: 0040-Support-DSDT-SSDT-in-a-big-endian-world.patch
+
+# other miscellaneous patch
+Patch40: unaligned.patch
+Patch41: OPT_LDFLAGS.patch
+Patch42: int-format.patch
+Patch43: f23-harden.patch
+Patch44: template.patch
+Patch45: ppc64le.patch
+Patch46: arm7hl.patch
+Patch47: simple-64bit.patch
+Patch48: mips-be-fix.patch
+Patch49: cve-2017-13693.patch
+Patch50: cve-2017-13694.patch
+Patch51: cve-2017-13695.patch
+Patch52: str-trunc-warn.patch
+Patch53: ptr-cast.patch
+Patch54: aslcodegen.patch
+Patch55: facp.patch
+Patch56: armv7-str-fixes.patch
+Patch57: dbtest.patch
BuildRequires: bison patchutils flex gcc
@@ -86,7 +121,6 @@ are installed:
-- 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
@@ -98,33 +132,65 @@ This version of the tools is being released under GPLv2 license.
%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
+# apply all the patches
+%patch0
+%patch1
+%patch2
+%patch3
+%patch4
+%patch5
+%patch6
+%patch7
+%patch8
+%patch9
+%patch10
+%patch11
+%patch12
+%patch13
+%patch14
+%patch15
+%patch16
+%patch17
+%patch18
+%patch19
+%patch20
+%patch21
+%patch22
+%patch23
+%patch24
+%patch25
+%patch26
+%patch27
+%patch28
+%patch29
+%patch30
+%patch31
+%patch32
+%patch33
+%patch34
+%patch35
+%patch36
+%patch37
+%patch38
+%patch39
+%patch40
+%patch41
+%patch42
+%patch43
+%patch44
+%patch45
+%patch46
+%patch47
+%patch48
+%patch49
+%patch50
+%patch51
+%patch52
+%patch53
+%patch54
+%patch55
+%patch56
+%patch57
cp -p %{SOURCE2} README.Fedora
cp -p %{SOURCE3} iasl.1
@@ -132,7 +198,6 @@ 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
@@ -241,6 +306,12 @@ fi
%changelog
+* Thu Oct 15 2020 Al Stone <ahs3(a)redhat.com> - 20200925-1
+- Update to 20200925 source tree
+- Completely revamp the old big-endian patches (maintainability was the goal)
+- The acpinames command has been deprecated upstrean; acpiexec provides
+ replacement functionality
+
* Fri Jul 31 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 20200430-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
diff --git a/acpinames.1 b/acpinames.1
deleted file mode 100644
index 315d235..0000000
--- a/acpinames.1
+++ /dev/null
@@ -1,49 +0,0 @@
-.\" 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(a)intel.com>.
-.PP
-This manual page was written by Al Stone <ahs3(a)redhat.com> for the
-Fedora project (but may be used by others).
diff --git a/sources b/sources
index 93122b8..3e65507 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (acpica-unix2-20200717.tar.gz) = d477911d9dded34e887f77f396d84b85334b66983d3104ba8ee0ade09186abacfceec9ecec96fa6fce886da5fe0d187c2cdeed62cca467cdae049e2fe011391a
-SHA512 (acpitests-unix-20200717.tar.gz) = 02c6674cbb2d98f783f25c71b1f391713de6fb3b56e5b57de9a7ccba0927453be4db8aea513e6e7ad491fcf3a0b2c14fefe8a2b82877a2ae01ea1d7832d36844
+SHA512 (acpica-unix2-20200925.tar.gz) = e5009e6f38b145019406b2d237247f3063372bcd006371501991f338f974bf441c3de3162f5b800ff5f6eed4ab267ef4b715b2256cc9a6ae0a787eb0d0a24c68
+SHA512 (acpitests-unix-20200925.tar.gz) = 6b633b71aced285478cde2f044848b1b748f5dc0d7d9a968610f4036e21b26541c7e0cfe49c4e6298ae1c041b8a575f7969b1f2a50dbe5af88e8ffaccfd82e96
commit 97b38e48de60dcda464ba13c4571a9669a887813
Author: Al Stone <ahs3(a)redhat.com>
Date: Sun Sep 13 16:37:40 2020 -0600
Remove faulty patch from build
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/acpica-tools.spec b/acpica-tools.spec
index a5124d0..6ae42c3 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -48,7 +48,7 @@ Patch20: aslcodegen.patch
Patch21: facp.patch
Patch24: armv7-str-fixes.patch
Patch25: dbtest.patch
-Patch27: big-endian-v3.patch
+#Patch27: big-endian-v3.patch
BuildRequires: bison patchutils flex gcc
@@ -124,7 +124,7 @@ gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
%patch21 -p1 -b .facp
%patch24 -p1 -b .armv7-str-fixes
%patch25 -p1 -b .dbtest
-%patch27 -p1 -b .big-endian-v3
+#%patch27 -p1 -b .big-endian-v3
cp -p %{SOURCE2} README.Fedora
cp -p %{SOURCE3} iasl.1
commit 6337b475f00a21e629606bd28b18141d2730b05d
Author: Al Stone <ahs3(a)redhat.com>
Date: Sun Sep 13 15:49:37 2020 -0600
Update expected test result
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/grammar.asl.result b/grammar.asl.result
index c4b9c48..19f6e2e 100644
--- a/grammar.asl.result
+++ b/grammar.asl.result
@@ -133,21 +133,12 @@ Warning 3038 - ^ Truncating 64-bit constant
grammar.asl 1396: if (LNotEqual (Local0, 0x1234567887654321))
Warning 3038 - Truncating 64-bit constant found in 32-bit table ^
-grammar.asl 1411: Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
-Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\FLDX)
-
-grammar.asl 1418: Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
-Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\FLDX)
-
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 1451: Field (OPR2, 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 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)
@@ -331,9 +322,6 @@ Warning 3175 - ^ Static OperationRegion shoul
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 4694: Field (RAM, ByteAcc, NoLock, Preserve)
-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)
@@ -343,15 +331,6 @@ Warning 3141 - ^ Missing dependency (Device object requires a
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 5118: Field (RAM, DwordAcc, NoLock, Preserve)
-Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX4.MADM)
-
-grammar.asl 5123: Field (RAM, ByteAcc, NoLock, Preserve)
-Remark 2173 - ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\IDX4.MADM)
-
-grammar.asl 5159: Field (RAM, ByteAcc, NoLock, Preserve)
-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)
@@ -602,4 +581,4 @@ 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, 99 Remarks, 1106 Optimizations
+Compilation successful. 6 Errors, 93 Warnings, 92 Remarks, 1106 Optimizations
commit 02a30e0c2ee5cb59b8cefaec5b82f005e78c655d
Author: Al Stone <ahs3(a)redhat.com>
Date: Sun Sep 13 15:33:00 2020 -0600
Correct bad date in changelog
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 1c5f6dc..a5124d0 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -248,7 +248,7 @@ fi
* Mon Jul 27 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 20200430-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-* Thu Jun 8 2020 Al Stone <ahs3(a)redhat.com> - 202004306-1
+* Mon Jun 8 2020 Al Stone <ahs3(a)redhat.com> - 202004306-1
- Update to 202004306 source tree, including patch refreshes
* Wed Apr 1 2020 Al Stone <ahs3(a)redhat.com> - 20200326-1
commit 335268930f1d7dbc2caf36ddd8ca4c11cfae24d0
Author: Al Stone <ahs3(a)redhat.com>
Date: Sun Sep 13 15:30:34 2020 -0600
Update to 20200717 upstream source
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 5ce6dab..7997d0c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -133,3 +133,5 @@ series
/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
diff --git a/acpica-tools.spec b/acpica-tools.spec
index a0d0b26..1c5f6dc 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -1,5 +1,5 @@
Name: acpica-tools
-Version: 20200528
+Version: 20200717
Release: 1%{?dist}
Summary: ACPICA tools for the development and debug of ACPI tables
diff --git a/sources b/sources
index 4c6cff9..93122b8 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (acpica-unix2-20200528.tar.gz) = e1a924c2e50e84deaa409da1323dec3307aefb130a8d88e5414e29999a670ba1cd63f6c3a0efdbdb3a2423d9023b5adad4d4136d8cf5bbd66affe20c747f39bb
-SHA512 (acpitests-unix-20200528.tar.gz) = 9c4d25a8e2a358ee2251b47cff759a76c653cc89894fc6dc91cb765d0340f67abdee8f44b0e47397c2507ab6e10a2b40bb6169befcdd3384ff010bdbfdd58518
+SHA512 (acpica-unix2-20200717.tar.gz) = d477911d9dded34e887f77f396d84b85334b66983d3104ba8ee0ade09186abacfceec9ecec96fa6fce886da5fe0d187c2cdeed62cca467cdae049e2fe011391a
+SHA512 (acpitests-unix-20200717.tar.gz) = 02c6674cbb2d98f783f25c71b1f391713de6fb3b56e5b57de9a7ccba0927453be4db8aea513e6e7ad491fcf3a0b2c14fefe8a2b82877a2ae01ea1d7832d36844
commit 19a9c691f50a09b063e35cda130e771d104a74ef
Author: Al Stone <ahs3(a)redhat.com>
Date: Sun Sep 13 15:27:09 2020 -0600
Update to 2020528 upstream source
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/.gitignore b/.gitignore
index 2e7eaf7..5ce6dab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -131,3 +131,5 @@ series
/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
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 5ca9de6..a0d0b26 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -1,6 +1,6 @@
Name: acpica-tools
-Version: 20200430
-Release: 3%{?dist}
+Version: 20200528
+Release: 1%{?dist}
Summary: ACPICA tools for the development and debug of ACPI tables
License: GPLv2
diff --git a/sources b/sources
index 400e9a2..4c6cff9 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (acpica-unix2-20200430.tar.gz) = e6af40eba35ae2cee976267c1cccbdbe70ef038e217ffd4335585d0ffba323b50703546cb0b32d10ffc90ba7f90f6df9a34170155d7256b9fffdd7859b40cd11
-SHA512 (acpitests-unix-20200430.tar.gz) = f0c660f1dda45b89633da47d23b3c13b3865414bfa8b12af137d7d4de0e7ccb690aeee9c5fbe480801b5dc921c96af80054608d381a47637893d82d3a003467d
+SHA512 (acpica-unix2-20200528.tar.gz) = e1a924c2e50e84deaa409da1323dec3307aefb130a8d88e5414e29999a670ba1cd63f6c3a0efdbdb3a2423d9023b5adad4d4136d8cf5bbd66affe20c747f39bb
+SHA512 (acpitests-unix-20200528.tar.gz) = 9c4d25a8e2a358ee2251b47cff759a76c653cc89894fc6dc91cb765d0340f67abdee8f44b0e47397c2507ab6e10a2b40bb6169befcdd3384ff010bdbfdd58518
commit 4188296ae35d15e002bf8ecae83f03963a71fa4d
Author: Al Stone <ahs3(a)redhat.com>
Date: Sun Sep 13 15:25:15 2020 -0600
Merge in some changelog and spec file updates
Signed-off-by: Al Stone <ahs3(a)redhat.com>
diff --git a/acpica-tools.spec b/acpica-tools.spec
index 6c5de80..5ca9de6 100644
--- a/acpica-tools.spec
+++ b/acpica-tools.spec
@@ -48,7 +48,7 @@ Patch20: aslcodegen.patch
Patch21: facp.patch
Patch24: armv7-str-fixes.patch
Patch25: dbtest.patch
-#Patch27: big-endian-v3.patch
+Patch27: big-endian-v3.patch
BuildRequires: bison patchutils flex gcc
@@ -124,7 +124,7 @@ gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
%patch21 -p1 -b .facp
%patch24 -p1 -b .armv7-str-fixes
%patch25 -p1 -b .dbtest
-#%patch27 -p1 -b .big-endian-v3
+%patch27 -p1 -b .big-endian-v3
cp -p %{SOURCE2} README.Fedora
cp -p %{SOURCE3} iasl.1
diff --git a/big-endian-v3.patch b/big-endian-v3.patch
index e3db4f6..93ef67d 100644
--- a/big-endian-v3.patch
+++ b/big-endian-v3.patch
@@ -104,26 +104,6 @@ diff -Naur acpica-unix2-20200214.orig/source/compiler/dttable2.c acpica-unix2-20
}
break;
-diff -Naur acpica-unix2-20200214.orig/source/compiler/aslxref.c acpica-unix2-20200214/source/compiler/aslxref.c
---- acpica-unix2-20200214.orig/source/compiler/aslxref.c 2020-02-14 10:33:53.000000000 -0700
-+++ acpica-unix2-20200214/source/compiler/aslxref.c 2020-02-26 13:21:43.973602232 -0700
-@@ -547,8 +547,14 @@
- */
- AslGbl_NsLookupCount++;
-
-- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ObjectType,
-- ACPI_IMODE_EXECUTE, Flags, WalkState, &Node);
-+ {
-+ UINT32 Tmp32;
-+
-+ ACPI_MOVE_32_TO_32(&Tmp32, Path);
-+
-+ Status = AcpiNsLookup (WalkState->ScopeInfo, (char *)&Tmp32, ObjectType,
-+ ACPI_IMODE_EXECUTE, Flags, WalkState, &Node);
-+ }
- if (ACPI_FAILURE (Status))
- {
- if (Status == AE_NOT_FOUND)
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
3 years, 5 months
Architecture specific change in rpms/wangle.git
by githook-noreply@fedoraproject.org
The package rpms/wangle.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/wangle.git/commit/?id=da1009ec073....
Change:
+ExcludeArch: s390x
Thanks.
Full change:
============
commit da1009ec073e8f58acdbfea192599462df16d0a2
Author: Michel Alexandre Salim <salimma(a)fedoraproject.org>
Date: Thu Oct 29 10:12:06 2020 -0700
Initial import
Signed-off-by: Michel Alexandre Salim <salimma(a)fedoraproject.org>
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..633129e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/wangle-v2020.10.26.00.tar.gz
diff --git a/sources b/sources
new file mode 100644
index 0000000..742b310
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (wangle-v2020.10.26.00.tar.gz) = 151615ad87a3f59eaecd2f0eadae02a82f10b9719da17af8c2416cc288967171723691a5e6106eb98e6caa0c220060d7a8091f7f5dd895e3f07592c7b36a7f60
diff --git a/wangle-2020.10.26.00-allow_overriding_version.patch b/wangle-2020.10.26.00-allow_overriding_version.patch
new file mode 100644
index 0000000..ad4e785
--- /dev/null
+++ b/wangle-2020.10.26.00-allow_overriding_version.patch
@@ -0,0 +1,47 @@
+From 101e328981ddc7c7c6601f9cbb7eb9b2de38ef79 Mon Sep 17 00:00:00 2001
+From: Michel Salim <michel(a)fb.com>
+Date: Mon, 26 Oct 2020 17:25:45 -0700
+Subject: [PATCH] Allow overriding version
+
+Summary:
+Upstream doesn't currently guarantee ABI stability, we want to let
+downstream distributions override the version themselves when they
+update Wangle.
+
+Differential Revision: D24551628
+
+fbshipit-source-id: 75ccf4aed41bfa097f6d7c15af9b4e893468e8ba
+---
+ wangle/CMakeLists.txt | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/wangle/CMakeLists.txt b/wangle/CMakeLists.txt
+index 8df7c76f..4d3ee858 100644
+--- a/wangle/CMakeLists.txt
++++ b/wangle/CMakeLists.txt
+@@ -14,7 +14,15 @@
+
+ cmake_minimum_required(VERSION 3.0.2)
+
+-project("wangle" VERSION 1.0.0 LANGUAGES CXX C)
++if (NOT DEFINED PACKAGE_VERSION)
++ set(PACKAGE_VERSION "1.0.0")
++endif()
++
++if (NOT DEFINED SO_VERSION)
++ set(SO_VERSION 1)
++endif()
++
++project("wangle" VERSION ${PACKAGE_VERSION} LANGUAGES CXX C)
+
+ if (NOT DEFINED CPACK_GENERATOR)
+ set(CPACK_GENERATOR "RPM")
+@@ -145,7 +153,7 @@ endif()
+
+ if (BUILD_SHARED_LIBS)
+ set_target_properties(wangle
+- PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1)
++ PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${SO_VERSION})
+ endif()
+
+ target_include_directories(
diff --git a/wangle.spec b/wangle.spec
new file mode 100644
index 0000000..e996cfd
--- /dev/null
+++ b/wangle.spec
@@ -0,0 +1,79 @@
+# Tests are not currently passing
+%bcond_with tests
+
+Name: wangle
+Version: 2020.10.26.00
+Release: 2%{?dist}
+Summary: Framework for building services in a consistent/modular/composable way
+
+License: ASL 2.0
+URL: https://github.com/facebook/wangle
+Source0: %{url}/releases/download/v%{version}/%{name}-v%{version}.tar.gz
+Patch0: %{url}/commit/101e328981ddc7c7c6601f9cbb7eb9b2de38ef79.patch#/%{name}-%{version}-allow_overriding_version.patch
+
+# Folly is known not to work on big-endian CPUs
+# https://bugzilla.redhat.com/show_bug.cgi?id=1892807
+ExcludeArch: s390x
+
+BuildRequires: cmake
+BuildRequires: gcc-c++
+# Library dependencies
+BuildRequires: fizz-devel
+BuildRequires: folly-devel
+
+%description
+Wangle is a library that makes it easy to build protocols, application clients,
+and application servers.
+
+It's like Netty + Finagle smooshed together, but in C++.
+
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains libraries and header files for
+developing applications that use %{name}.
+
+
+%prep
+%autosetup -c -p1
+
+
+%build
+%cmake wangle \
+ -DCMAKE_INSTALL_DIR=%{_libdir}/cmake/%{name} \
+ -DPACKAGE_VERSION=%{version} \
+ -DSO_VERSION=%{version}
+%cmake_build
+
+
+%install
+%cmake_install
+find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
+
+
+%if %{with tests}
+%check
+%ctest
+%endif
+
+
+%files
+%license LICENSE
+%{_libdir}/*.so.*
+
+%files devel
+%doc CONTRIBUTING.md README.md tutorial.md
+%{_includedir}/*
+%{_libdir}/*.so
+%{_libdir}/cmake/%{name}
+
+
+%changelog
+* Wed Oct 28 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-2
+- Add ExcludeArch on s390x due to dependency on folly
+
+* Mon Oct 26 2020 Michel Alexandre Salim <salimma(a)fedoraproject.org> - 2020.10.26.00-1
+- Initial package
3 years, 5 months