1 /* Get the number of threads in the process. 2 Copyright (C) 1999-2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #include "thread_dbP.h" 20 21 td_err_e td_ta_get_nthreads(const td_thragent_t * ta_arg,int * np)22td_ta_get_nthreads (const td_thragent_t *ta_arg, int *np) 23 { 24 td_thragent_t *const ta = (td_thragent_t *) ta_arg; 25 td_err_e err; 26 psaddr_t n; 27 28 LOG ("td_ta_get_nthreads"); 29 30 /* Test whether the TA parameter is ok. */ 31 if (! ta_ok (ta)) 32 return TD_BADTA; 33 34 /* Access the variable in the inferior that tells us. */ 35 err = DB_GET_VALUE (n, ta, __nptl_nthreads, 0); 36 if (err == TD_OK) 37 *np = (uintptr_t) n; 38 39 return err; 40 } 41