16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17 *
18 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19 * or visit www.oracle.com if you need additional information or have any
20 * questions.
21 */
22
23 #ifndef SHARE_GC_Z_ZNMETHOD_HPP
24 #define SHARE_GC_Z_ZNMETHOD_HPP
25
26 #include "memory/allocation.hpp"
27
28 class nmethod;
29 class OopClosure;
30 class ZReentrantLock;
31 class ZWorkers;
32
33 class ZNMethod : public AllStatic {
34 private:
35 static void attach_gc_data(nmethod* nm);
36 static void detach_gc_data(nmethod* nm);
37
38 static void log_register(const nmethod* nm);
39 static void log_unregister(const nmethod* nm);
40
41 public:
42 static void register_nmethod(nmethod* nm);
43 static void unregister_nmethod(nmethod* nm);
44
45 static void disarm_nmethod(nmethod* nm);
46
47 static void nmethod_oops_do(nmethod* nm, OopClosure* cl);
48
49 static void oops_do_begin();
50 static void oops_do_end();
51 static void oops_do(OopClosure* cl);
52
53 static ZReentrantLock* lock_for_nmethod(nmethod* nm);
54
55 static void unlink(ZWorkers* workers, bool unloading_occurred);
56 static void purge(ZWorkers* workers);
57 };
58
59 #endif // SHARE_GC_Z_ZNMETHOD_HPP
|
16 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17 *
18 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19 * or visit www.oracle.com if you need additional information or have any
20 * questions.
21 */
22
23 #ifndef SHARE_GC_Z_ZNMETHOD_HPP
24 #define SHARE_GC_Z_ZNMETHOD_HPP
25
26 #include "memory/allocation.hpp"
27
28 class nmethod;
29 class OopClosure;
30 class ZReentrantLock;
31 class ZWorkers;
32
33 class ZNMethod : public AllStatic {
34 private:
35 static void attach_gc_data(nmethod* nm);
36
37 static void log_register(const nmethod* nm);
38 static void log_unregister(const nmethod* nm);
39
40 public:
41 static void register_nmethod(nmethod* nm);
42 static void unregister_nmethod(nmethod* nm);
43 static void flush_nmethod(nmethod* nm);
44
45 static void disarm_nmethod(nmethod* nm);
46
47 static void nmethod_oops_do(nmethod* nm, OopClosure* cl);
48
49 static void oops_do_begin();
50 static void oops_do_end();
51 static void oops_do(OopClosure* cl);
52
53 static ZReentrantLock* lock_for_nmethod(nmethod* nm);
54
55 static void unlink(ZWorkers* workers, bool unloading_occurred);
56 static void purge(ZWorkers* workers);
57 };
58
59 #endif // SHARE_GC_Z_ZNMETHOD_HPP
|