/* Which thread is running on an LWP? Copyright (C) 2003-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see . */ /* Given an lwpid_t identifying an LWP, return the descriptor of the thread running on it and TD_OK, or NULL and a non-TD_OK td_err_e code indicating the reason for failure. Thread descriptors are opaque pointers and should not be dereferenced by calling code. The caller is responsible for checking that the information we rely on is valid, i.e. that __pthread_initialize_minimal has gotten far enough. See comments in infinity_map_lwp2thr.i8 for more. */ int, addr libpthread::__lookup_th_unique (int lwpid) { err, result = i8core::ps_get_thread_area (lwpid, I8_TS_CTA_VALUE); if (err != PS_OK) return TD_ERR, undefined; return TD_OK, result; }