39 #include "prims/jvm.h" |
39 #include "prims/jvm.h" |
40 #include "prims/jvm_misc.hpp" |
40 #include "prims/jvm_misc.hpp" |
41 #include "runtime/arguments.hpp" |
41 #include "runtime/arguments.hpp" |
42 #include "runtime/extendedPC.hpp" |
42 #include "runtime/extendedPC.hpp" |
43 #include "runtime/frame.inline.hpp" |
43 #include "runtime/frame.inline.hpp" |
44 #include "runtime/hpi.hpp" |
|
45 #include "runtime/interfaceSupport.hpp" |
44 #include "runtime/interfaceSupport.hpp" |
46 #include "runtime/java.hpp" |
45 #include "runtime/java.hpp" |
47 #include "runtime/javaCalls.hpp" |
46 #include "runtime/javaCalls.hpp" |
48 #include "runtime/mutexLocker.hpp" |
47 #include "runtime/mutexLocker.hpp" |
49 #include "runtime/osThread.hpp" |
48 #include "runtime/osThread.hpp" |
287 if (err = os::Solaris::thr_getstate(tid, flags, lwp, ss, rs)) |
286 if (err = os::Solaris::thr_getstate(tid, flags, lwp, ss, rs)) |
288 return (err); |
287 return (err); |
289 if (*flags == TRS_LWPID) { |
288 if (*flags == TRS_LWPID) { |
290 sprintf(lwpstatusfile, "/proc/%d/lwp/%d/lwpstatus", getpid(), |
289 sprintf(lwpstatusfile, "/proc/%d/lwp/%d/lwpstatus", getpid(), |
291 *lwp); |
290 *lwp); |
292 if ((lwpfd = open(lwpstatusfile, O_RDONLY)) < 0) { |
291 if ((lwpfd = ::open(lwpstatusfile, O_RDONLY)) < 0) { |
293 perror("thr_mutator_status: open lwpstatus"); |
292 perror("thr_mutator_status: open lwpstatus"); |
294 return (EINVAL); |
293 return (EINVAL); |
295 } |
294 } |
296 if (pread(lwpfd, lwpstatus, sizeof (lwpstatus_t), (off_t)0) != |
295 if (pread(lwpfd, lwpstatus, sizeof (lwpstatus_t), (off_t)0) != |
297 sizeof (lwpstatus_t)) { |
296 sizeof (lwpstatus_t)) { |
298 perror("thr_mutator_status: read lwpstatus"); |
297 perror("thr_mutator_status: read lwpstatus"); |
299 (void) close(lwpfd); |
298 (void) ::close(lwpfd); |
300 return (EINVAL); |
299 return (EINVAL); |
301 } |
300 } |
302 (void) close(lwpfd); |
301 (void) ::close(lwpfd); |
303 } |
302 } |
304 return (0); |
303 return (0); |
305 } |
304 } |
306 |
305 |
307 |
306 |