diff options
Diffstat (limited to 'emulators/qemu-devel/files/extra-patch-sysctl-hw-availpages')
-rw-r--r-- | emulators/qemu-devel/files/extra-patch-sysctl-hw-availpages | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/emulators/qemu-devel/files/extra-patch-sysctl-hw-availpages b/emulators/qemu-devel/files/extra-patch-sysctl-hw-availpages deleted file mode 100644 index 5253802430bc..000000000000 --- a/emulators/qemu-devel/files/extra-patch-sysctl-hw-availpages +++ /dev/null @@ -1,63 +0,0 @@ -From nox Mon Sep 17 00:00:00 2001 -From: Juergen Lock <nox@jelal.kn-bremen.de> -Date: 05 Apr 2014 21:06:00 +0200 -Subject: Fix bsd-user FreeBSD hw.availpages sysctl - -hw.availpages is defined as OID_AUTO so the mib can change; find out -it's value at the first hw.* sysctl syscall. - -Signed-off-by: Juergen Lock <nox@jelal.kn-bremen.de> - ---- a/bsd-user/freebsd/os-sys.c -+++ b/bsd-user/freebsd/os-sys.c -@@ -219,24 +219,36 @@ abi_long do_freebsd_sysctl(CPUArchState - ret = 0; - goto out; - -- case 851: /* hw.availpages */ -+ default: - { -- long lvalue; -- size_t len = sizeof(lvalue); -+ static int oid_hw_availpages; -+ -+ if (!oid_hw_availpages) { -+ int real_oid[CTL_MAXNAME+2]; -+ size_t len = sizeof(real_oid) / sizeof(int); - -- if (sysctlbyname("hw.availpages", &lvalue, &len, NULL, 0) -- == -1) { -- ret = -1; -- } else { -- (*(abi_ulong *)holdp) = tswapal((abi_ulong)lvalue); -- holdlen = sizeof(abi_ulong); -- ret = 0; -+ if (sysctlnametomib("hw.availpages", real_oid, &len) >= 0) -+ oid_hw_availpages = real_oid[1]; - } -- } -- goto out; - -- default: -- break; -+ if (oid_hw_availpages && snamep[1] == oid_hw_availpages) { -+ long lvalue; -+ size_t len = sizeof(lvalue); -+ -+ if (sysctlbyname("hw.availpages", &lvalue, &len, NULL, 0) -+ == -1) { -+ ret = -1; -+ } else { -+ if (oldlen) { -+ (*(abi_ulong *)holdp) = tswapal((abi_ulong)lvalue); -+ } -+ holdlen = sizeof(abi_ulong); -+ ret = 0; -+ } -+ goto out; -+ } -+ break; -+ } - } - default: - break; |