Lines Matching refs:state
76 JdwpState* state = NULL; in dvmJdwpStartup() local
81 state = (JdwpState*) calloc(1, sizeof(JdwpState)); in dvmJdwpStartup()
83 state->params = *pParams; in dvmJdwpStartup()
85 state->requestSerial = 0x10000000; in dvmJdwpStartup()
86 state->eventSerial = 0x20000000; in dvmJdwpStartup()
87 dvmDbgInitMutex(&state->threadStartLock); in dvmJdwpStartup()
88 dvmDbgInitMutex(&state->attachLock); in dvmJdwpStartup()
89 dvmDbgInitMutex(&state->serialLock); in dvmJdwpStartup()
90 dvmDbgInitMutex(&state->eventLock); in dvmJdwpStartup()
91 state->eventThreadId = 0; in dvmJdwpStartup()
92 dvmDbgInitMutex(&state->eventThreadLock); in dvmJdwpStartup()
93 dvmDbgInitCond(&state->threadStartCond); in dvmJdwpStartup()
94 dvmDbgInitCond(&state->attachCond); in dvmJdwpStartup()
95 dvmDbgInitCond(&state->eventThreadCond); in dvmJdwpStartup()
100 state->transport = dvmJdwpSocketTransport(); in dvmJdwpStartup()
104 state->transport = dvmJdwpAndroidAdbTransport(); in dvmJdwpStartup()
113 if (!dvmJdwpNetStartup(state, pParams)) in dvmJdwpStartup()
120 dvmDbgLockMutex(&state->threadStartLock); in dvmJdwpStartup()
122 dvmDbgLockMutex(&state->attachLock); in dvmJdwpStartup()
128 if (!dvmCreateInternalThread(&state->debugThreadHandle, "JDWP", in dvmJdwpStartup()
129 jdwpThreadStart, state)) in dvmJdwpStartup()
132 dvmDbgUnlockMutex(&state->threadStartLock); in dvmJdwpStartup()
134 dvmDbgUnlockMutex(&state->attachLock); in dvmJdwpStartup()
142 dvmDbgCondWait(&state->threadStartCond, &state->threadStartLock); in dvmJdwpStartup()
143 dvmDbgUnlockMutex(&state->threadStartLock); in dvmJdwpStartup()
156 dvmDbgCondWait(&state->attachCond, &state->attachLock); in dvmJdwpStartup()
157 dvmDbgUnlockMutex(&state->attachLock); in dvmJdwpStartup()
160 if (!dvmJdwpIsActive(state)) { in dvmJdwpStartup()
174 return state; in dvmJdwpStartup()
177 dvmJdwpShutdown(state); // frees state in dvmJdwpStartup()
188 void dvmJdwpResetState(JdwpState* state) in dvmJdwpResetState() argument
192 dvmJdwpUnregisterAll(state); in dvmJdwpResetState()
193 assert(state->eventList == NULL); in dvmJdwpResetState()
199 if (state->eventThreadId != 0) { in dvmJdwpResetState()
208 void dvmJdwpShutdown(JdwpState* state) in dvmJdwpShutdown() argument
212 if (state == NULL) in dvmJdwpShutdown()
215 if (dvmJdwpIsTransportDefined(state)) { in dvmJdwpShutdown()
216 if (dvmJdwpIsConnected(state)) in dvmJdwpShutdown()
217 dvmJdwpPostVMDeath(state); in dvmJdwpShutdown()
224 dvmJdwpNetShutdown(state); in dvmJdwpShutdown()
226 if (state->debugThreadStarted) { in dvmJdwpShutdown()
227 state->run = false; in dvmJdwpShutdown()
228 if (pthread_join(state->debugThreadHandle, &threadReturn) != 0) { in dvmJdwpShutdown()
235 dvmJdwpNetFree(state); in dvmJdwpShutdown()
236 state->netState = NULL; in dvmJdwpShutdown()
238 assert(state->netState == NULL); in dvmJdwpShutdown()
240 dvmJdwpResetState(state); in dvmJdwpShutdown()
241 free(state); in dvmJdwpShutdown()
247 bool dvmJdwpIsActive(JdwpState* state) in dvmJdwpIsActive() argument
249 return dvmJdwpIsConnected(state); in dvmJdwpIsActive()
258 JdwpState* state = (JdwpState*) arg; in jdwpThreadStart() local
266 state->debugThreadHandle = dvmThreadSelf()->handle; in jdwpThreadStart()
267 state->run = true; in jdwpThreadStart()
268 android_atomic_release_store(true, &state->debugThreadStarted); in jdwpThreadStart()
270 dvmDbgLockMutex(&state->threadStartLock); in jdwpThreadStart()
271 dvmDbgCondBroadcast(&state->threadStartCond); in jdwpThreadStart()
272 dvmDbgUnlockMutex(&state->threadStartLock); in jdwpThreadStart()
285 while (state->run) { in jdwpThreadStart()
288 if (state->params.server) { in jdwpThreadStart()
293 if (!dvmJdwpAcceptConnection(state)) in jdwpThreadStart()
302 if (!dvmJdwpEstablishConnection(state)) { in jdwpThreadStart()
304 dvmDbgLockMutex(&state->attachLock); in jdwpThreadStart()
305 dvmDbgCondBroadcast(&state->attachCond); in jdwpThreadStart()
306 dvmDbgUnlockMutex(&state->attachLock); in jdwpThreadStart()
324 if (!dvmJdwpProcessIncoming(state)) /* blocking read */ in jdwpThreadStart()
327 if (first && !dvmJdwpAwaitingHandshake(state)) { in jdwpThreadStart()
332 state->debugThreadId = dvmDbgGetThreadSelfId(); in jdwpThreadStart()
335 dvmDbgLockMutex(&state->attachLock); in jdwpThreadStart()
336 dvmDbgCondBroadcast(&state->attachCond); in jdwpThreadStart()
337 dvmDbgUnlockMutex(&state->attachLock); in jdwpThreadStart()
341 dvmJdwpCloseConnection(state); in jdwpThreadStart()
343 if (state->ddmActive) { in jdwpThreadStart()
344 state->ddmActive = false; in jdwpThreadStart()
353 dvmJdwpResetState(state); in jdwpThreadStart()
362 if (!state->params.server) in jdwpThreadStart()
363 state->run = false; in jdwpThreadStart()
377 pthread_t dvmJdwpGetDebugThread(JdwpState* state) in dvmJdwpGetDebugThread() argument
379 if (state == NULL) in dvmJdwpGetDebugThread()
382 return state->debugThreadHandle; in dvmJdwpGetDebugThread()
428 s8 dvmJdwpLastDebuggerActivity(JdwpState* state) in dvmJdwpLastDebuggerActivity() argument
435 s8 last = dvmQuasiAtomicRead64(&state->lastActivityWhen); in dvmJdwpLastDebuggerActivity()