Cleaned up pthread rwlocks implementation.

- used underscore_style_for_vars
- extracted time related functionality into a function
- cleaned up style
- removed unused fields from pthread_rwlock_t on LP64
- changed reservation in pthread_rwlock_t so that the size of the
structure equals glibc version

Bug: 8133149

Change-Id: I84ad3918678dc7f5e6b3db9b7e9b0899d3abe9cd
diff --git a/libc/include/pthread.h b/libc/include/pthread.h
index 346901a..5c9b626 100644
--- a/libc/include/pthread.h
+++ b/libc/include/pthread.h
@@ -94,17 +94,28 @@
 typedef long pthread_rwlockattr_t;
 
 typedef struct {
+#if !defined(__LP64__)
   pthread_mutex_t __unused_lock;
   pthread_cond_t __unused_cond;
+#endif
   volatile int32_t state; // 0=unlock, -1=writer lock, +n=reader lock
-  volatile int32_t writerThreadId;
-  volatile int32_t pendingReaders;
-  volatile int32_t pendingWriters;
+  volatile int32_t writer_thread_id;
+  volatile int32_t pending_readers;
+  volatile int32_t pending_writers;
   int32_t attr;
-  void* __reserved[3];
+#ifdef __LP64__
+  char __reserved[36];
+#else
+  char __reserved[12];
+#endif
+
 } pthread_rwlock_t;
 
-#define PTHREAD_RWLOCK_INITIALIZER  { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, 0, { NULL, NULL, NULL } }
+#ifdef __LP64__
+  #define PTHREAD_RWLOCK_INITIALIZER  { 0, 0, 0, 0, 0, { 0 } }
+#else
+  #define PTHREAD_RWLOCK_INITIALIZER  { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, 0, { 0 } }
+#endif
 
 typedef int pthread_key_t;
 typedef long pthread_t;