114114
115115// //////////////////////////////////////////////////////////////////////////////
116116// global variables
117- julong os::Bsd::_physical_memory = 0 ;
117+ size_t os::Bsd::_physical_memory = 0 ;
118118
119119#ifdef __APPLE__
120120mach_timebase_info_data_t os::Bsd::_timebase_info = {0 , 0 };
@@ -133,19 +133,19 @@ static volatile int processor_id_next = 0;
133133// //////////////////////////////////////////////////////////////////////////////
134134// utility functions
135135
136- julong os::available_memory () {
137- return Bsd::available_memory ();
136+ bool os::available_memory (size_t & value ) {
137+ return Bsd::available_memory (value );
138138}
139139
140- julong os::free_memory () {
141- return Bsd::available_memory ();
140+ bool os::free_memory (size_t & value ) {
141+ return Bsd::available_memory (value );
142142}
143143
144144// Available here means free. Note that this number is of no much use. As an estimate
145145// for future memory pressure it is far too conservative, since MacOS will use a lot
146146// of unused memory for caches, and return it willingly in case of needs.
147- julong os::Bsd::available_memory () {
148- uint64_t available = physical_memory () >> 2 ;
147+ bool os::Bsd::available_memory (size_t & value ) {
148+ uint64_t available = static_cast < uint64_t >( physical_memory () >> 2 ) ;
149149#ifdef __APPLE__
150150 mach_msg_type_number_t count = HOST_VM_INFO64_COUNT;
151151 vm_statistics64_data_t vmstat;
@@ -156,9 +156,12 @@ julong os::Bsd::available_memory() {
156156 if (kerr == KERN_SUCCESS) {
157157 // free_count is just a lowerbound, other page categories can be freed too and make memory available
158158 available = (vmstat.free_count + vmstat.inactive_count + vmstat.purgeable_count ) * os::vm_page_size ();
159+ } else {
160+ return false ;
159161 }
160162#endif
161- return available;
163+ value = static_cast <size_t >(available);
164+ return true ;
162165}
163166
164167// for more info see :
@@ -177,33 +180,35 @@ void os::Bsd::print_uptime_info(outputStream* st) {
177180 }
178181}
179182
180- jlong os::total_swap_space () {
183+ bool os::total_swap_space (size_t & value ) {
181184#if defined(__APPLE__)
182185 struct xsw_usage vmusage;
183186 size_t size = sizeof (vmusage);
184187 if (sysctlbyname (" vm.swapusage" , &vmusage, &size, nullptr , 0 ) != 0 ) {
185- return - 1 ;
188+ return false ;
186189 }
187- return (jlong)vmusage.xsu_total ;
190+ value = static_cast <size_t >(vmusage.xsu_total );
191+ return true ;
188192#else
189- return - 1 ;
193+ return false ;
190194#endif
191195}
192196
193- jlong os::free_swap_space () {
197+ bool os::free_swap_space (size_t & value ) {
194198#if defined(__APPLE__)
195199 struct xsw_usage vmusage;
196200 size_t size = sizeof (vmusage);
197201 if (sysctlbyname (" vm.swapusage" , &vmusage, &size, nullptr , 0 ) != 0 ) {
198- return - 1 ;
202+ return false ;
199203 }
200- return (jlong)vmusage.xsu_avail ;
204+ value = static_cast <size_t >(vmusage.xsu_avail );
205+ return true ;
201206#else
202- return - 1 ;
207+ return false ;
203208#endif
204209}
205210
206- julong os::physical_memory () {
211+ size_t os::physical_memory () {
207212 return Bsd::physical_memory ();
208213}
209214
@@ -281,7 +286,7 @@ void os::Bsd::initialize_system_info() {
281286 len = sizeof (mem_val);
282287 if (sysctl (mib, 2 , &mem_val, &len, nullptr , 0 ) != -1 ) {
283288 assert (len == sizeof (mem_val), " unexpected data size" );
284- _physical_memory = mem_val;
289+ _physical_memory = static_cast < size_t >( mem_val) ;
285290 } else {
286291 _physical_memory = 256 * 1024 * 1024 ; // fallback (XXXBSD?)
287292 }
@@ -292,7 +297,7 @@ void os::Bsd::initialize_system_info() {
292297 // datasize rlimit restricts us anyway.
293298 struct rlimit limits;
294299 getrlimit (RLIMIT_DATA, &limits);
295- _physical_memory = MIN2 (_physical_memory, (julong) limits.rlim_cur );
300+ _physical_memory = MIN2 (_physical_memory, static_cast < size_t >( limits.rlim_cur ) );
296301 }
297302#endif
298303}
@@ -1464,11 +1469,13 @@ void os::print_memory_info(outputStream* st) {
14641469
14651470 st->print (" Memory:" );
14661471 st->print (" %zuk page" , os::vm_page_size ()>>10 );
1467-
1468- st->print (" , physical " UINT64_FORMAT " k" ,
1469- os::physical_memory () >> 10 );
1470- st->print (" (" UINT64_FORMAT " k free)" ,
1471- os::available_memory () >> 10 );
1472+ size_t phys_mem = os::physical_memory ();
1473+ st->print (" , physical %zuk" ,
1474+ phys_mem >> 10 );
1475+ size_t avail_mem = 0 ;
1476+ (void )os::available_memory (avail_mem);
1477+ st->print (" (%zuk free)" ,
1478+ avail_mem >> 10 );
14721479
14731480 if ((sysctlbyname (" vm.swapusage" , &swap_usage, &size, nullptr , 0 ) == 0 ) || (errno == ENOMEM)) {
14741481 if (size >= offset_of (xsw_usage, xsu_used)) {
0 commit comments