summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2014-10-09 19:41:51 +0300
committerLasse Collin <lasse.collin@tukaani.org>2014-10-09 19:41:51 +0300
commit076258cc458f1e705041ac7a729b15ffe8c5214a (patch)
tree578cb685edeb596d33bcfed4edcead4c41695bcf
parentefa7b0a210e1baa8e128fc98c5443a944c39ad24 (diff)
downloadxz-076258cc458f1e705041ac7a729b15ffe8c5214a.tar.gz
Add support for AmigaOS/AROS to tuklib_physmem().
Thanks to Fredrik Wikstrom.
-rw-r--r--m4/tuklib_physmem.m43
-rw-r--r--src/common/tuklib_physmem.c7
2 files changed, 9 insertions, 1 deletions
diff --git a/m4/tuklib_physmem.m4 b/m4/tuklib_physmem.m4
index 1249925..ea02208 100644
--- a/m4/tuklib_physmem.m4
+++ b/m4/tuklib_physmem.m4
@@ -53,7 +53,8 @@ AC_CACHE_CHECK([how to detect the amount of physical memory],
# a non-compilable text instead of #error to generate an error.
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
#if defined(_WIN32) || defined(__CYGWIN__) || defined(__OS2__) \
- || defined(__DJGPP__) || defined(__VMS)
+ || defined(__DJGPP__) || defined(__VMS) \
+ || defined(AMIGA) || defined(__AROS__)
int main(void) { return 0; }
#else
compile error
diff --git a/src/common/tuklib_physmem.c b/src/common/tuklib_physmem.c
index 623b6e7..3cc7d12 100644
--- a/src/common/tuklib_physmem.c
+++ b/src/common/tuklib_physmem.c
@@ -33,6 +33,10 @@
# include <syidef.h>
# include <ssdef.h>
+#elif defined(AMIGA) || defined(__AROS__)
+# define __USE_INLINE__
+# include <proto/exec.h>
+
// AIX
#elif defined(TUKLIB_PHYSMEM_AIX)
# include <sys/systemcfg.h>
@@ -119,6 +123,9 @@ tuklib_physmem(void)
if (LIB$GETSYI(&val, &vms_mem, 0, 0, 0, 0) == SS$_NORMAL)
ret = (uint64_t)vms_mem * 8192;
+#elif defined(AMIGA) || defined(__AROS__)
+ ret = AvailMem(MEMF_TOTAL);
+
#elif defined(TUKLIB_PHYSMEM_AIX)
ret = _system_configuration.physmem;