62 }
63
64 public Mark header() {
65 return new Mark(addr.addOffsetTo(headerFieldOffset));
66 }
67
68 // FIXME
69 // void set_header(markWord hdr);
70
71 // FIXME: must implement and delegate to platform-dependent implementation
72 // public boolean isBusy();
73 public boolean isEntered(sun.jvm.hotspot.runtime.Thread current) {
74 Address o = owner();
75 if (current.threadObjectAddress().equals(o) ||
76 current.isLockOwned(o)) {
77 return true;
78 }
79 return false;
80 }
81
82 public Address owner() { return addr.getAddressAt(ownerFieldOffset); }
83 // FIXME
84 // void set_owner(void* owner);
85
86 public int waiters() { return (int)waitersField.getValue(this); }
87
88 public Address nextOM() { return addr.getAddressAt(nextOMFieldOffset); }
89 // FIXME
90 // void set_queue(void* owner);
91
92 public long recursions() { return recursionsField.getValue(addr); }
93
94 public OopHandle object() {
95 Address objAddr = addr.getAddressAt(objectFieldOffset);
96 if (objAddr == null) {
97 return null;
98 }
99 return objAddr.getOopHandleAt(0);
100 }
101
|
62 }
63
64 public Mark header() {
65 return new Mark(addr.addOffsetTo(headerFieldOffset));
66 }
67
68 // FIXME
69 // void set_header(markWord hdr);
70
71 // FIXME: must implement and delegate to platform-dependent implementation
72 // public boolean isBusy();
73 public boolean isEntered(sun.jvm.hotspot.runtime.Thread current) {
74 Address o = owner();
75 if (current.threadObjectAddress().equals(o) ||
76 current.isLockOwned(o)) {
77 return true;
78 }
79 return false;
80 }
81
82 public boolean isOwnedAnonymous() {
83 return addr.getAddressAt(ownerFieldOffset).asLongValue() == 1;
84 }
85
86 public Address owner() { return addr.getAddressAt(ownerFieldOffset); }
87 // FIXME
88 // void set_owner(void* owner);
89
90 public int waiters() { return (int)waitersField.getValue(this); }
91
92 public Address nextOM() { return addr.getAddressAt(nextOMFieldOffset); }
93 // FIXME
94 // void set_queue(void* owner);
95
96 public long recursions() { return recursionsField.getValue(addr); }
97
98 public OopHandle object() {
99 Address objAddr = addr.getAddressAt(objectFieldOffset);
100 if (objAddr == null) {
101 return null;
102 }
103 return objAddr.getOopHandleAt(0);
104 }
105
|