UKERNEL: allow creation of non-detached threads
[openafs.git] / src / afs / UKERNEL / sysincludes.h
index bb44e81..f9f8e78 100644 (file)
 typedef unsigned int fsblkcnt_t;
 #endif
 
-#ifdef AFS_AFSDB_ENV
 #include <arpa/nameser.h>
 #ifdef HAVE_ARPA_NAMESER_COMPAT_H
 #include <arpa/nameser_compat.h>
 #endif
 #include <resolv.h>
-#endif /* AFS_AFSDB_ENV */
 
 /* glibc 2.2 has pthread_attr_setstacksize */
 #if (defined(AFS_LINUX22_ENV) && !defined(AFS_USR_LINUX22_ENV)) || (defined(AFS_USR_LINUX22_ENV) && (__GLIBC_MINOR__ < 2))
@@ -231,9 +229,9 @@ typedef unsigned int fsblkcnt_t;
 #define flock                  usr_flock
 #define fid                    usr_fid
 #define sysent                 usr_sysent
+#define ifaddr                  usr_ifaddr
+#define ifnet                   usr_ifnet
 #define in_ifaddr              usr_in_ifaddr
-#define ifaddr                 usr_ifaddr
-#define ifnet                  usr_ifnet
 #define socket                 usr_socket
 #define crget                  usr_crget
 #define crcopy                 usr_crcopy
@@ -343,26 +341,18 @@ typedef long usr_ino_t;
 #ifdef VFIFO
 #undef VFIFO
 #endif
-#ifdef VDOOR
-#undef VDOOR
-#endif
-#ifdef VBAD
-#undef VBAD
-#endif
 #ifdef VSOCK
 #undef VSOCK
 #endif
 
-#define VNON                   0
-#define VREG                   1
-#define VDIR                   2
-#define VBLK                   3
-#define VCHR                   4
-#define VLNK                   5
-#define VFIFO                  6
-#define VDOOR                  7
-#define VBAD                   8
-#define VSOCK                  9
+#define VNON 0
+#define VREG S_IFREG
+#define VDIR S_IFDIR
+#define VBLK S_IFBLK
+#define VCHR S_IFCHR
+#define VLNK S_IFLNK
+#define VSOCK S_IFSOCK
+#define VFIFO S_IFIFO
 
 typedef int usr_vtype_t;
 
@@ -962,10 +952,10 @@ extern pthread_cond_t usr_sleep_cond;
        pthread_attr_t attr; \
        assert(pthread_attr_init(&attr) == 0); \
        assert(pthread_attr_setstacksize(&attr, 124288) == 0); \
-       assert(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) == 0); \
        assert(pthread_create((A), &attr, (B), (void *)(C)) == 0); \
        assert(pthread_attr_destroy(&attr) == 0); \
     } while(0)
+#define usr_thread_join(A,B)   pthread_join(A, B)
 #define usr_thread_detach(A)   pthread_detach(A)
 #define usr_keycreate(A,B)     assert(pthread_key_create(A,B) == 0)
 #define usr_setspecific(A,B)   pthread_setspecific(A,B)
@@ -1015,7 +1005,7 @@ do { \
     AFS_ASSERT_GLOCK(); \
     usr_assert((vp)->v_count > 0); \
     if (--((vp)->v_count) == 0) \
-       afs_inactive(VTOAFS(vp), u.u_cred); \
+       afs_inactive(VTOAFS(vp), get_user_struct()->u_cred); \
 } while(0)
 
 struct usr_statfs {
@@ -1352,7 +1342,7 @@ extern long V;
 #endif /* UKERNEL */
 
 struct min_direct {
-#if defined(AFS_OFS_ENV) || defined(AFS_USR_OSF_ENV)
+#if defined(AFS_USR_OSF_ENV)
     unsigned int d_fileno;
 #else                          /* AFS_OFS_ENV || AFS_USR_OSF_ENV */
     unsigned long d_fileno;
@@ -1401,7 +1391,6 @@ struct usr_user {
     } u_r;
 };
 #define u_rval1                        u_r.r_val1
-#define u                      (*(get_user_struct()))
 
 extern struct usr_user *get_user_struct(void);