155 } else { |
155 } else { |
156 return os::get_sender_for_C_frame(&myframe); |
156 return os::get_sender_for_C_frame(&myframe); |
157 } |
157 } |
158 } |
158 } |
159 |
159 |
160 |
|
161 // Utility functions |
160 // Utility functions |
162 |
|
163 julong os::allocatable_physical_memory(julong size) { |
|
164 #ifdef AMD64 |
|
165 return size; |
|
166 #else |
|
167 julong result = MIN2(size, (julong)3800*M); |
|
168 if (!is_allocatable(result)) { |
|
169 // See comments under solaris for alignment considerations |
|
170 julong reasonable_size = (julong)2*G - 2 * os::vm_page_size(); |
|
171 result = MIN2(size, reasonable_size); |
|
172 } |
|
173 return result; |
|
174 #endif // AMD64 |
|
175 } |
|
176 |
161 |
177 // From IA32 System Programming Guide |
162 // From IA32 System Programming Guide |
178 enum { |
163 enum { |
179 trap_page_fault = 0xE |
164 trap_page_fault = 0xE |
180 }; |
165 }; |