summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_thr.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2006-02-05 02:18:46 +0000
committerdavidxu <davidxu@FreeBSD.org>2006-02-05 02:18:46 +0000
commit7ef206e1a842032c820ef523ad14364862168a05 (patch)
treec64365126251949792afeea41bfd988ab18d50c0 /sys/kern/kern_thr.c
parentf2384c93e3e037aeae70e774832e2695f10c6b10 (diff)
downloadFreeBSD-src-7ef206e1a842032c820ef523ad14364862168a05.zip
FreeBSD-src-7ef206e1a842032c820ef523ad14364862168a05.tar.gz
Implement thr_set_name to set a name for thread.
Reviewed by: julian
Diffstat (limited to 'sys/kern/kern_thr.c')
-rw-r--r--sys/kern/kern_thr.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c
index 2a20bb1..86df4d7 100644
--- a/sys/kern/kern_thr.c
+++ b/sys/kern/kern_thr.c
@@ -407,3 +407,32 @@ thr_wake(struct thread *td, struct thr_wake_args *uap)
PROC_UNLOCK(p);
return (0);
}
+
+int
+thr_set_name(struct thread *td, struct thr_set_name_args *uap)
+{
+ struct proc *p = td->td_proc;
+ char name[MAXCOMLEN + 1];
+ struct thread *ttd;
+ int error;
+
+ error = 0;
+ name[0] = '\0';
+ if (uap->name != NULL) {
+ error = copyinstr(uap->name, name, sizeof(name),
+ NULL);
+ if (error)
+ return (error);
+ }
+ PROC_LOCK(p);
+ if (uap->id == td->td_tid)
+ ttd = td;
+ else
+ ttd = thread_find(p, uap->id);
+ if (ttd != NULL)
+ strcpy(ttd->td_name, name);
+ else
+ error = ESRCH;
+ PROC_UNLOCK(p);
+ return (error);
+}
OpenPOWER on IntegriCloud