360 CSTRING_TO_JSTRING(name, c.name); 361 BOXED_LONG(value, c.value); 362 vmConstants->obj_at_put(insert++, name()); 363 vmConstants->obj_at_put(insert++, value); 364 } 365 assert(insert == len * 2, "must be"); 366 367 len = JVMCIVMStructs::localHotSpotVMAddresses_count(); 368 objArrayHandle vmAddresses = oopFactory::new_objArray_handle(SystemDictionary::Object_klass(), len * 2, CHECK_NULL); 369 for (int i = 0; i < len ; i++) { 370 VMAddressEntry a = JVMCIVMStructs::localHotSpotVMAddresses[i]; 371 CSTRING_TO_JSTRING(name, a.name); 372 BOXED_LONG(value, a.value); 373 vmAddresses->obj_at_put(i * 2, name()); 374 vmAddresses->obj_at_put(i * 2 + 1, value); 375 } 376 377 #define COUNT_FLAG(ignore) +1 378 #ifdef ASSERT 379 #define CHECK_FLAG(type, name) { \ 380 Flag* flag = Flag::find_flag(#name, strlen(#name), /*allow_locked*/ true, /* return_flag */ true); \ 381 assert(flag != NULL, "No such flag named " #name); \ 382 assert(flag->is_##type(), "Flag " #name " is not of type " #type); \ 383 } 384 #else 385 #define CHECK_FLAG(type, name) 386 #endif 387 388 #define ADD_FLAG(type, name, convert) { \ 389 CHECK_FLAG(type, name) \ 390 instanceHandle vmFlagObj = InstanceKlass::cast(VMFlag::klass())->allocate_instance_handle(CHECK_NULL); \ 391 CSTRING_TO_JSTRING(fname, #name); \ 392 CSTRING_TO_JSTRING(ftype, #type); \ 393 VMFlag::set_name(vmFlagObj, fname()); \ 394 VMFlag::set_type(vmFlagObj, ftype()); \ 395 convert(value, name); \ 396 VMFlag::set_value(vmFlagObj, value); \ 397 vmFlags->obj_at_put(i++, vmFlagObj()); \ 398 } 399 #define ADD_BOOL_FLAG(name) ADD_FLAG(bool, name, BOXED_BOOLEAN) 400 #define ADD_INTX_FLAG(name) ADD_FLAG(intx, name, BOXED_LONG) 401 #define ADD_UINTX_FLAG(name) ADD_FLAG(uintx, name, BOXED_LONG) 402 | 360 CSTRING_TO_JSTRING(name, c.name); 361 BOXED_LONG(value, c.value); 362 vmConstants->obj_at_put(insert++, name()); 363 vmConstants->obj_at_put(insert++, value); 364 } 365 assert(insert == len * 2, "must be"); 366 367 len = JVMCIVMStructs::localHotSpotVMAddresses_count(); 368 objArrayHandle vmAddresses = oopFactory::new_objArray_handle(SystemDictionary::Object_klass(), len * 2, CHECK_NULL); 369 for (int i = 0; i < len ; i++) { 370 VMAddressEntry a = JVMCIVMStructs::localHotSpotVMAddresses[i]; 371 CSTRING_TO_JSTRING(name, a.name); 372 BOXED_LONG(value, a.value); 373 vmAddresses->obj_at_put(i * 2, name()); 374 vmAddresses->obj_at_put(i * 2 + 1, value); 375 } 376 377 #define COUNT_FLAG(ignore) +1 378 #ifdef ASSERT 379 #define CHECK_FLAG(type, name) { \ 380 JVMFlag* flag = JVMFlag::find_flag(#name, strlen(#name), /*allow_locked*/ true, /* return_flag */ true); \ 381 assert(flag != NULL, "No such flag named " #name); \ 382 assert(flag->is_##type(), "JVMFlag " #name " is not of type " #type); \ 383 } 384 #else 385 #define CHECK_FLAG(type, name) 386 #endif 387 388 #define ADD_FLAG(type, name, convert) { \ 389 CHECK_FLAG(type, name) \ 390 instanceHandle vmFlagObj = InstanceKlass::cast(VMFlag::klass())->allocate_instance_handle(CHECK_NULL); \ 391 CSTRING_TO_JSTRING(fname, #name); \ 392 CSTRING_TO_JSTRING(ftype, #type); \ 393 VMFlag::set_name(vmFlagObj, fname()); \ 394 VMFlag::set_type(vmFlagObj, ftype()); \ 395 convert(value, name); \ 396 VMFlag::set_value(vmFlagObj, value); \ 397 vmFlags->obj_at_put(i++, vmFlagObj()); \ 398 } 399 #define ADD_BOOL_FLAG(name) ADD_FLAG(bool, name, BOXED_BOOLEAN) 400 #define ADD_INTX_FLAG(name) ADD_FLAG(intx, name, BOXED_LONG) 401 #define ADD_UINTX_FLAG(name) ADD_FLAG(uintx, name, BOXED_LONG) 402 |