1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2010-2014 Intel Corporation 3 */ 4 5 #include <errno.h> 6 #include <stdio.h> 7 #include <stdint.h> 8 #include <unistd.h> 9 #include <pthread.h> 10 #include <sys/syscall.h> 11 12 #include <rte_debug.h> 13 #include <rte_launch.h> 14 #include <rte_log.h> 15 #include <rte_eal.h> 16 #include <rte_lcore.h> 17 #include <rte_string_fns.h> 18 19 #include "eal_private.h" 20 #include "eal_thread.h" 21 22 /* require calling thread tid by gettid() */ 23 int rte_sys_gettid(void) 24 { 25 return (int)syscall(SYS_gettid); 26 } 27 28 int rte_thread_setname(pthread_t id, const char *name) 29 { 30 int ret = ENOSYS; 31 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) 32 #if __GLIBC_PREREQ(2, 12) 33 char truncated[16]; 34 35 strlcpy(truncated, name, sizeof(truncated)); 36 ret = pthread_setname_np(id, truncated); 37 #endif 38 #endif 39 RTE_SET_USED(id); 40 RTE_SET_USED(name); 41 return -ret; 42 } 43 44 int rte_thread_getname(pthread_t id, char *name, size_t len) 45 { 46 int ret = ENOSYS; 47 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) 48 #if __GLIBC_PREREQ(2, 12) 49 ret = pthread_getname_np(id, name, len); 50 #endif 51 #endif 52 RTE_SET_USED(id); 53 RTE_SET_USED(name); 54 RTE_SET_USED(len); 55 return -ret; 56 57 } 58