summaryrefslogtreecommitdiff
path: root/usr/src/lib/libproc/common/Plwpregs.c
diff options
context:
space:
mode:
authorJason King <jason.brian.king@gmail.com>2017-05-05 22:58:26 +0000
committerJohn Levon <john.levon@joyent.com>2018-09-26 08:38:04 +0000
commitc113f3b5211bf6ae3ff1ee916a9f9ad0c28b7125 (patch)
treeed3893fad0f78462adf85cf08feb76669ab9abab /usr/src/lib/libproc/common/Plwpregs.c
parentdee777b5a3880de62b42997fe61524f95dcc16db (diff)
downloadillumos-joyent-OS-7200.tar.gz
OS-7200 would like thread name APIOS-7200
OS-7205 bhyve makefile uses wrong linker flags
Diffstat (limited to 'usr/src/lib/libproc/common/Plwpregs.c')
-rw-r--r--usr/src/lib/libproc/common/Plwpregs.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/usr/src/lib/libproc/common/Plwpregs.c b/usr/src/lib/libproc/common/Plwpregs.c
index c2b150000f..d400eb185c 100644
--- a/usr/src/lib/libproc/common/Plwpregs.c
+++ b/usr/src/lib/libproc/common/Plwpregs.c
@@ -24,8 +24,8 @@
*/
/*
- * Copyright (c) 2013, Joyent, Inc. All rights reserved.
* Copyright (c) 2013 by Delphix. All rights reserved.
+ * Copyright 2018 Joyent, Inc.
*/
#include <sys/types.h>
@@ -353,6 +353,38 @@ Plwp_getpsinfo(struct ps_prochandle *P, lwpid_t lwpid, lwpsinfo_t *lps)
}
int
+Plwp_getname(struct ps_prochandle *P, lwpid_t lwpid,
+ char *buf, size_t bufsize)
+{
+ char lwpname[THREAD_NAME_MAX];
+ char *from = NULL;
+ lwp_info_t *lwp;
+
+ if (P->state == PS_IDLE) {
+ errno = ENODATA;
+ return (-1);
+ }
+
+ if (P->state != PS_DEAD) {
+ if (getlwpfile(P, lwpid, "lwpname",
+ lwpname, sizeof (lwpname)) != 0)
+ return (-1);
+ from = lwpname;
+ } else {
+ if ((lwp = getlwpcore(P, lwpid)) == NULL)
+ return (-1);
+ from = lwp->lwp_name;
+ }
+
+ if (strlcpy(buf, from, bufsize) >= bufsize) {
+ errno = ENAMETOOLONG;
+ return (-1);
+ }
+
+ return (0);
+}
+
+int
Plwp_getspymaster(struct ps_prochandle *P, lwpid_t lwpid, psinfo_t *ps)
{
lwpstatus_t lps;