87 template(GetFrameCount) \
88 template(GetFrameLocation) \
89 template(ChangeBreakpoints) \
90 template(GetOrSetLocal) \
91 template(GetCurrentLocation) \
92 template(EnterInterpOnlyMode) \
93 template(ChangeSingleStep) \
94 template(HeapWalkOperation) \
95 template(HeapIterateOperation) \
96 template(ReportJavaOutOfMemory) \
97 template(JFRCheckpoint) \
98 template(Exit) \
99 template(LinuxDllLoad) \
100 template(RotateGCLog) \
101 template(WhiteBoxOperation) \
102 template(ClassLoaderStatsOperation) \
103 template(MarkActiveNMethods) \
104 template(PrintCompileQueue) \
105 template(PrintCodeList) \
106 template(PrintCodeCache) \
107
108 class VM_Operation: public CHeapObj<mtInternal> {
109 public:
110 enum Mode {
111 _safepoint, // blocking, safepoint, vm_op C-heap allocated
112 _no_safepoint, // blocking, no safepoint, vm_op C-Heap allocated
113 _concurrent, // non-blocking, no safepoint, vm_op C-Heap allocated
114 _async_safepoint // non-blocking, safepoint, vm_op C-Heap allocated
115 };
116
117 enum VMOp_Type {
118 VM_OPS_DO(VM_OP_ENUM)
119 VMOp_Terminating
120 };
121
122 private:
123 Thread* _calling_thread;
124 ThreadPriority _priority;
125 long _timestamp;
126 VM_Operation* _next;
438 class VM_PrintCodeList: public VM_Operation {
439 private:
440 outputStream* _out;
441
442 public:
443 VM_PrintCodeList(outputStream* st) : _out(st) {}
444 VMOp_Type type() const { return VMOp_PrintCodeList; }
445 void doit();
446 };
447
448 class VM_PrintCodeCache: public VM_Operation {
449 private:
450 outputStream* _out;
451
452 public:
453 VM_PrintCodeCache(outputStream* st) : _out(st) {}
454 VMOp_Type type() const { return VMOp_PrintCodeCache; }
455 void doit();
456 };
457
458
459 #endif // SHARE_VM_RUNTIME_VM_OPERATIONS_HPP
|
87 template(GetFrameCount) \
88 template(GetFrameLocation) \
89 template(ChangeBreakpoints) \
90 template(GetOrSetLocal) \
91 template(GetCurrentLocation) \
92 template(EnterInterpOnlyMode) \
93 template(ChangeSingleStep) \
94 template(HeapWalkOperation) \
95 template(HeapIterateOperation) \
96 template(ReportJavaOutOfMemory) \
97 template(JFRCheckpoint) \
98 template(Exit) \
99 template(LinuxDllLoad) \
100 template(RotateGCLog) \
101 template(WhiteBoxOperation) \
102 template(ClassLoaderStatsOperation) \
103 template(MarkActiveNMethods) \
104 template(PrintCompileQueue) \
105 template(PrintCodeList) \
106 template(PrintCodeCache) \
107 template(PrintClassHierachry) \
108
109 class VM_Operation: public CHeapObj<mtInternal> {
110 public:
111 enum Mode {
112 _safepoint, // blocking, safepoint, vm_op C-heap allocated
113 _no_safepoint, // blocking, no safepoint, vm_op C-Heap allocated
114 _concurrent, // non-blocking, no safepoint, vm_op C-Heap allocated
115 _async_safepoint // non-blocking, safepoint, vm_op C-Heap allocated
116 };
117
118 enum VMOp_Type {
119 VM_OPS_DO(VM_OP_ENUM)
120 VMOp_Terminating
121 };
122
123 private:
124 Thread* _calling_thread;
125 ThreadPriority _priority;
126 long _timestamp;
127 VM_Operation* _next;
439 class VM_PrintCodeList: public VM_Operation {
440 private:
441 outputStream* _out;
442
443 public:
444 VM_PrintCodeList(outputStream* st) : _out(st) {}
445 VMOp_Type type() const { return VMOp_PrintCodeList; }
446 void doit();
447 };
448
449 class VM_PrintCodeCache: public VM_Operation {
450 private:
451 outputStream* _out;
452
453 public:
454 VM_PrintCodeCache(outputStream* st) : _out(st) {}
455 VMOp_Type type() const { return VMOp_PrintCodeCache; }
456 void doit();
457 };
458
459 class VM_PrintClassHierachry: public VM_Operation {
460 private:
461 outputStream* _out;
462
463 public:
464 VM_PrintClassHierachry(outputStream* st) : _out(st) {}
465 VMOp_Type type() const { return VMOp_PrintClassHierachry; }
466 void doit();
467 };
468
469 #endif // SHARE_VM_RUNTIME_VM_OPERATIONS_HPP
|