src/share/vm/prims/forte.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7089790_full Sdiff src/share/vm/prims

src/share/vm/prims/forte.cpp

Print this page
rev 2695 : shared changes


 604       }
 605     }
 606     break;
 607   default:
 608     // Unknown thread state
 609     trace->num_frames = ticks_unknown_state; // -7
 610     break;
 611   }
 612 }
 613 
 614 
 615 #ifndef _WINDOWS
 616 // Support for the Forte(TM) Peformance Tools collector.
 617 //
 618 // The method prototype is derived from libcollector.h. For more
 619 // information, please see the libcollect man page.
 620 
 621 // Method to let libcollector know about a dynamically loaded function.
 622 // Because it is weakly bound, the calls become NOP's when the library
 623 // isn't present.





 624 void    collector_func_load(char* name,
 625                             void* null_argument_1,
 626                             void* null_argument_2,
 627                             void *vaddr,
 628                             int size,
 629                             int zero_argument,
 630                             void* null_argument_3);
 631 #pragma weak collector_func_load
 632 #define collector_func_load(x0,x1,x2,x3,x4,x5,x6) \
 633         ( collector_func_load ? collector_func_load(x0,x1,x2,x3,x4,x5,x6),0 : 0 )

 634 #endif // !_WINDOWS
 635 
 636 } // end extern "C"
 637 #endif // !IA64
 638 
 639 void Forte::register_stub(const char* name, address start, address end) {
 640 #if !defined(_WINDOWS) && !defined(IA64)
 641   assert(pointer_delta(end, start, sizeof(jbyte)) < INT_MAX,
 642          "Code size exceeds maximum range");
 643 
 644   collector_func_load((char*)name, NULL, NULL, start,
 645     pointer_delta(end, start, sizeof(jbyte)), 0, NULL);
 646 #endif // !_WINDOWS && !IA64
 647 }


 604       }
 605     }
 606     break;
 607   default:
 608     // Unknown thread state
 609     trace->num_frames = ticks_unknown_state; // -7
 610     break;
 611   }
 612 }
 613 
 614 
 615 #ifndef _WINDOWS
 616 // Support for the Forte(TM) Peformance Tools collector.
 617 //
 618 // The method prototype is derived from libcollector.h. For more
 619 // information, please see the libcollect man page.
 620 
 621 // Method to let libcollector know about a dynamically loaded function.
 622 // Because it is weakly bound, the calls become NOP's when the library
 623 // isn't present.
 624 #ifdef __APPLE__
 625 // XXXDARWIN: Link errors occur even when __attribute__((weak_import))
 626 // is added
 627 #define collector_func_load(x0,x1,x2,x3,x4,x5,x6) (0)
 628 #else
 629 void    collector_func_load(char* name,
 630                             void* null_argument_1,
 631                             void* null_argument_2,
 632                             void *vaddr,
 633                             int size,
 634                             int zero_argument,
 635                             void* null_argument_3);
 636 #pragma weak collector_func_load
 637 #define collector_func_load(x0,x1,x2,x3,x4,x5,x6) \
 638         ( collector_func_load ? collector_func_load(x0,x1,x2,x3,x4,x5,x6),0 : 0 )
 639 #endif // __APPLE__
 640 #endif // !_WINDOWS
 641 
 642 } // end extern "C"
 643 #endif // !IA64
 644 
 645 void Forte::register_stub(const char* name, address start, address end) {
 646 #if !defined(_WINDOWS) && !defined(IA64)
 647   assert(pointer_delta(end, start, sizeof(jbyte)) < INT_MAX,
 648          "Code size exceeds maximum range");
 649 
 650   collector_func_load((char*)name, NULL, NULL, start,
 651     pointer_delta(end, start, sizeof(jbyte)), 0, NULL);
 652 #endif // !_WINDOWS && !IA64
 653 }
src/share/vm/prims/forte.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File