]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Initial revision
authorSam Hartman <hartmans@debian.org>
Wed, 7 Mar 2001 09:47:32 +0000 (09:47 +0000)
committerSam Hartman <hartmans@debian.org>
Wed, 7 Mar 2001 09:47:32 +0000 (09:47 +0000)
src/libafs/sgi_master [new file with mode: 0644]
src/lwp/threadname.c [new file with mode: 0644]

diff --git a/src/libafs/sgi_master b/src/libafs/sgi_master
new file mode 100644 (file)
index 0000000..12e44f5
--- /dev/null
@@ -0,0 +1,8 @@
+* Format defined by:
+* master(4)
+*
+* bc dkip 4 - io
+*FLAG  PREFIX  SOFT    #DEV    DEPENDENCIESi
+jnsw   Afs_    -       -       specfs,bsd
+
+$$$
\ No newline at end of file
diff --git a/src/lwp/threadname.c b/src/lwp/threadname.c
new file mode 100644 (file)
index 0000000..0b31bd7
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2000, International Business Machines Corporation and others.
+ * All Rights Reserved.
+ *
+ * This software has been released under the terms of the IBM Public
+ * License.  For details, see the LICENSE file in the top-level source
+ * directory or online at http://www.openafs.org/dl/license10.html
+ */ 
+/* ********************************************************************** */
+/*                                                                        */
+/*  trheadname.c                                                          */
+/*                                                                        */
+/*  Author: Hartmut Reuter                                                */
+/*  reuter@rzg.mpg.de                                                     */
+/*  Date: 01/12/00                                                        */
+/*                                                                        */
+/*  Function    - These routiens implement thread names for the           */
+/*                logging from the servers                                */
+/*                                                                        */
+/* ********************************************************************** */
+
+#include <afs/param.h>
+#if defined(AFS_PTHREAD_ENV)
+#include <pthread.h>
+#else /* defined(AFS_PTHREAD_ENV) */
+#include "lwp.h"
+#endif /* defined(AFS_PTHREAD_ENV) */
+
+#define MAX_THREADS 128
+#define MAXTHREADNAMELENGTH 64
+int nThreads = 0;
+#if defined(AFS_PTHREAD_ENV)
+pthread_t ThreadId[MAX_THREADS];
+#else /* defined(AFS_PTHREAD_ENV) */
+PROCESS   ThreadId[MAX_THREADS];
+#endif /* defined(AFS_PTHREAD_ENV) */
+char      ThreadName[MAX_THREADS][MAXTHREADNAMELENGTH];
+
+char * threadname ()
+{
+    int i;
+    static char MainThread[] = "main";
+    char *ptr;
+    char *p;
+#ifdef AFS_PTHREAD_ENV
+    pthread_t me;
+#else /* AFS_PTHREAD_ENV */
+    PROCESS me;
+#endif /* AFS_PTHREAD_ENV */
+
+#ifdef AFS_PTHREAD_ENV
+    me =  pthread_self();
+#else /* AFS_PTHREAD_ENV */
+    me =  (PROCESS) LWP_ThreadId();
+#endif /* AFS_PTHREAD_ENV */
+    ptr = (char *) &MainThread; 
+    for (i = 0; i < nThreads; i++) {
+       if (ThreadId[i] == me) {
+           ptr = (char *)&ThreadName[i];
+           break;
+       }
+ }
+    p = ptr;
+    return p;
+}
+
+int registerthread(id, name)
+#ifdef AFS_PTHREAD_ENV
+    pthread_t id;
+#else /* AFS_PTHREAD_ENV */
+    PROCESS id;
+#endif /* AFS_PTHREAD_ENV */
+    char *name;
+{
+    int i;
+
+    for (i = 0; i < nThreads; i++) {
+       if (ThreadId[i] == id) {
+           strncpy(&ThreadName[i][0], name, MAXTHREADNAMELENGTH);
+           return;
+       }
+    }
+    if (nThreads == MAX_THREADS) return;
+    ThreadId[nThreads] = id;
+    strncpy(&ThreadName[nThreads][0], name, MAXTHREADNAMELENGTH);
+    ThreadName[nThreads][MAXTHREADNAMELENGTH -1] =0;
+    nThreads++;
+}
+
+int swapthreadname(id, new, old)
+#ifdef AFS_PTHREAD_ENV
+    pthread_t id;
+#else /* AFS_PTHREAD_ENV */
+    PROCESS id;
+#endif /* AFS_PTHREAD_ENV */
+    char *new;
+    char *old;
+{
+    int i;
+
+    for (i = 0; i < nThreads; i++) {
+        if (ThreadId[i] == id) {
+           if (old)
+                strncpy(old, &ThreadName[i][0], MAXTHREADNAMELENGTH);
+            strncpy(&ThreadName[i][0], new, MAXTHREADNAMELENGTH);
+            return 0;
+       }
+    }
+    return 1;
+}