$OpenBSD: patch-hotspot_src_os_bsd_vm_os_bsd_cpp,v 1.13 2008/10/22 16:02:24 kurt Exp $
--- hotspot/src/os/bsd/vm/os_bsd.cpp.orig	Tue Sep 16 17:36:23 2008
+++ hotspot/src/os/bsd/vm/os_bsd.cpp	Tue Sep 16 17:41:40 2008
@@ -381,7 +381,11 @@ void os::Bsd::initialize_system_info() {
   int mib[2];
   size_t len;
   int cpu_val;
+#ifdef HW_USERMEM64
+  int64_t mem_val;
+#else
   u_long mem_val;
+#endif
 
   /* get processors count via hw.ncpus sysctl */
   mib[0] = CTL_HW;
@@ -396,7 +400,11 @@ void os::Bsd::initialize_system_info() {
    * instead of hw.physmem because we need size of allocatable memory
    */
   mib[0] = CTL_HW;
+#ifdef HW_USERMEM64
+  mib[1] = HW_USERMEM64;
+#else
   mib[1] = HW_USERMEM;
+#endif
   len = sizeof(mem_val);
   if (sysctl(mib, 2, &mem_val, &len, NULL, 0) != -1)
 	_physical_memory = mem_val;
@@ -406,10 +414,10 @@ void os::Bsd::initialize_system_info() {
 #ifdef __OpenBSD__
   {
 	// limit _physical_memory memory view on OpenBSD since
-	// datasize maximum limits us anyway.
+	// datasize limits us anyway.
 	struct rlimit limits;
 	getrlimit(RLIMIT_DATA, &limits);
-	_physical_memory = MIN2(_physical_memory, (julong)limits.rlim_max);
+	_physical_memory = MIN2(_physical_memory, (julong)limits.rlim_cur);
   }
 #endif
 }
