fixed some exemplar-related bugs.
authorMilind Bhandarkar <milind@cs.uiuc.edu>
Tue, 22 Jul 1997 18:15:58 +0000 (18:15 +0000)
committerMilind Bhandarkar <milind@cs.uiuc.edu>
Tue, 22 Jul 1997 18:15:58 +0000 (18:15 +0000)
src/QuickThreads/mkfiles/convex
src/arch/exemplar/conv-mach.csh
src/arch/exemplar/machine.c
src/conv-core/convcore.c
src/conv-core/converse.h
src/conv-core/cpthreads.c
src/conv-core/threads.c

index f7f8cf89bb9d93901c064c62efefa2ff8ce5efe2..f314e8792d831e99f1206a022eb5c7231c5b7e9b 100644 (file)
@@ -1,12 +1,13 @@
 
-CC=/usr/convex/bin/cc -I. -O
+CC=/bin/cc -I. -O
 
 all: qt stp testpgm
 
 qt:
+       rm -f qtmd.h
        ln -s md/hppa.h qtmd.h
        $(CC) -pedantic -Wall -c -o qt.o qt.c
-       as -o qtmds.o md/hppa.s
+       cc -c -o qtmds.o md/hppa.s
        ar q libqt.a qt.o qtmds.o
 
 stp:
@@ -15,5 +16,5 @@ stp:
 
 testpgm:
        $(CC) -c meas.c
-       as -o qtmdb.o md/hppa_b.s
+       cc -c -o qtmdb.o md/hppa_b.s
        $(CC) -o run meas.o qtmdb.o libstp.a libqt.a
index 5fa7e78e7e1be1aa44b777223dc601b2f5c411e4..322fa6ba79e6f6bbde2c6b885618fabc72bbdd09 100755 (executable)
 
 set CMK_CPP_CHARM='/lib/cpp -P'
 set CMK_CPP_C='cc -E '
-set CMK_CXXPP='echo "Convex doesnt support charm++" ; exit 1 ; echo '
-set CMK_CC='cc -or none'
+set CMK_CXXPP='CC -E '
+set CMK_CC='cc -Ae '
 set CMK_CC_RELIABLE='cc'
 set CMK_CC_FASTEST='cc'
-set CMK_CXX='echo "Convex doesnt support charm++" ; exit 1 ; echo '
+set CMK_CXX='CC +a1 '
 set CMK_CF77=''
-set CMK_C_DEBUG='-no -cxdb'
+set CMK_C_DEBUG='-g'
 set CMK_C_OPTIMIZE='-O2'
 set CMK_CXX_DEBUG=''
 set CMK_CXX_OPTIMIZE=''
-set CMK_LD='cc -Wl,+parallel'
-set CMK_LDXX='echo "Convex doesnt support charm++" ; exit 1 ; echo '
+set CMK_LD='cc '
+set CMK_LDXX='CC '
 set CMK_LD77=''
 set CMK_M4='m4'
 set CMK_SUF='o'
 set CMK_AR='ar q'
 set CMK_RANLIB='true'
-set CMK_LIBS='-lqt'
+set CMK_LIBS='-lqt -lcps '
 set CMK_SEQ_LIBS=''
-set CMK_SEQ_CC='cc -no'
+set CMK_SEQ_CC='cc '
 set CMK_SEQ_LD='cc'
-set CMK_SEQ_CXX='CC -no'
+set CMK_SEQ_CXX='CC '
 set CMK_SEQ_LDXX='CC'
 set CMK_CPP_SUFFIX="i"
 set CMK_XLATPP='charmxlat++ '
index d4668914303bb202502072b6c393b1e3fabbaff5..2f03b56ef977977d66487bc745894db42d5b7cc9 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 2.21  1996-11-23 02:25:36  milind
+ * Revision 2.22  1997-07-22 18:16:05  milind
+ * fixed some exemplar-related bugs.
+ *
+ * Revision 2.21  1996/11/23 02:25:36  milind
  * Fixed several subtle bugs in the converse runtime for convex
  * exemplar.
  *
@@ -111,6 +114,7 @@ static McQueue **MsgQueue;
 CpvDeclare(void*, CmiLocalQueue);
 CpvDeclare(int, Cmi_mype);
 CpvDeclare(int, Cmi_numpes);
+CpvDeclare(int, Cmi_myrank);
 
 static node_private barrier_t barrier;
 static node_private barrier_t *barr;
@@ -164,6 +168,9 @@ char *blk;
 
 
 
+CmiNotifyIdle()
+{
+}
 
 
 int CmiAsyncMsgSent(msgid)
@@ -177,13 +184,12 @@ typedef struct {
    int argc;
    void *argv;
    int  npe;
+   CmiStartFn fn;
 } USER_PARAMETERS;
 
 
 
-main(argc,argv)
-int argc;
-char *argv[];
+void ConverseInit(int argc, char** argv, CmiStartFn fn, int usched, int initret)
 {
     int i;
     USER_PARAMETERS usrparam;
@@ -217,6 +223,7 @@ char *argv[];
     usrparam.argc = argc;
     usrparam.argv = (void *) argv;
     usrparam.npe  = requested_npe;
+    usrparam.fn = fn;
     request.node = CPS_ANY_NODE;
     request.min  = requested_npe;
     request.max  = requested_npe;
@@ -256,7 +263,7 @@ void *arg;
     CpvAccess(Cmi_mype)  = my_thread();
     CpvAccess(Cmi_numpes) =  usrparam->npe;
 
-    user_main(usrparam->argc,usrparam->argv);
+    usrparam->fn(usrparam->argc,usrparam->argv);
 }
 
 
@@ -384,13 +391,6 @@ char *msg;
 }
 
 
-CmiMyRank()
-{
-   /* to be implemented */
-   return CmiMyPe();
-}
-
-
 
 void CmiNodeBarrier()
 {
@@ -558,6 +558,7 @@ unsigned int first, len;
        memcpy(&destblk[len-first],srcblk,first*sizeof(void *));
 }
 
+static
 McQueue *
 McQueueCreate()
 {
@@ -579,6 +580,7 @@ McQueueCreate()
        return queue;
 }
 
+static 
 void
 McQueueAddToBack(queue, element)
 McQueue *queue;
@@ -603,6 +605,7 @@ void  *element;
 }
 
 
+static
 void *
 McQueueRemoveFromFront(queue)
 McQueue *queue;
index 6c9e1e6d22a3f72631bfa236748c5121c855e557..fdd87231dec80269c38d48ca121cb1da72aef1fd 100644 (file)
@@ -151,9 +151,10 @@ CpvStaticDeclare(int  , CmiHandlerMax);
 void CmiNumberHandler(n, h)
 int n; CmiHandler h;
 {
-  CmiHandler *tab = CpvAccess(CmiHandlerTable);
+  CmiHandler *tab;
   int         max = CpvAccess(CmiHandlerMax);
 
+  tab = CpvAccess(CmiHandlerTable);
   if (n >= max) {
     int newmax = ((n<<1)+10);
     int bytes = max*sizeof(CmiHandler);
@@ -522,11 +523,13 @@ void CmiGrabBuffer()
 int CmiDeliverMsgs(maxmsgs)
 int maxmsgs;
 {
-  int *buffergrabbed = &CpvAccess(CmiBufferGrabbed);
-  void *localqueue = CpvAccess(CmiLocalQueue);
+  int *buffergrabbed;
+  void *localqueue;
   void *msg1, *msg2;
   int counter;
   
+  buffergrabbed = &CpvAccess(CmiBufferGrabbed);
+  localqueue = CpvAccess(CmiLocalQueue);
   while (1) {
     msg1 = CmiGetNonLocal();
     if (msg1) {
index 5386dca6de0c77954aaeea60dd4f80f820041fc8..a999120ff60d88328c3dec92343acb29f948a93e 100644 (file)
  * REVISION HISTORY:
  *
  * $Log$
- * Revision 2.63  1997-07-21 21:00:05  jyelon
+ * Revision 2.64  1997-07-22 18:15:59  milind
+ * fixed some exemplar-related bugs.
+ *
+ * Revision 2.63  1997/07/21 21:00:05  jyelon
  * added cpthreads.
  *
  * Revision 2.62  1997/07/07 23:03:38  rbrunner
@@ -304,16 +307,6 @@ typedef int CmiMutex;
 #include <spp_prog_model.h>
 #include <memory.h>
 
-extern thread_private int Cmi_mype;
-extern thread_private int Cmi_myrank;
-extern thread_private int Cmi_numpes;
-extern thread_private int Cmi_nodesize;
-
-#define CmiMyPe() Cmi_mype
-#define CmiMyRank() Cmi_myrank
-#define CmiNumPes() Cmi_numpes
-#define CmiNodeSize() Cmi_nodesize
-
 #define SHARED_DECL node_private
 #define CpvDeclare(t,v) thread_private t CMK_CONCAT(Cpv_Var_,v)
 #define CpvExtern(t,v)  extern thread_private t CMK_CONCAT(Cpv_Var_,v)
@@ -327,6 +320,16 @@ extern thread_private int Cmi_nodesize;
 #define CsvInitialize(t,v)
 #define CsvAccess(v) CMK_CONCAT(Csv_Var_,v)
 
+#define CmiMyPe() CpvAccess(Cmi_mype)
+#define CmiMyRank() CpvAccess(Cmi_myrank)
+#define CmiNumPes() CpvAccess(Cmi_numpes)
+#define CmiNodeSize() CpvAccess(Cmi_nodesize)
+
+CpvExtern(int, Cmi_mype);
+CpvExtern(int, Cmi_numpes);
+CpvExtern(int, Cmi_myrank);
+CpvExtern(int, Cmi_nodesize);
+
 extern void CmiMemLock();
 extern void CmiMemUnlock();
 extern void CmiNodeBarrier CMK_PROTO((void));
index d9e02e9df3ca42807a86c7376bd0e6247997615a..85a618088c1b854f26b500dd7e2a5a5c36c149dc 100644 (file)
@@ -115,7 +115,8 @@ int Cpthread_key_create(Cpthread_key_t *keyp, void (*destructo)(void *))
 
 int Cpthread_key_delete(Cpthread_key_t key)
 {
-  Cpthread_key_t active = CpvAccess(keys_active);
+  Cpthread_key_t active;
+  active = CpvAccess(keys_active);
   if (key->magic != KEY_MAGIC) errcode(EINVAL);
   if (active==key) {
     CpvAccess(keys_active) = key->next;
@@ -137,7 +138,8 @@ deleted:
 
 int Cpthread_setspecific(Cpthread_key_t key, void *val)
 {
-  char *data = CthCpvAccess(CthData);
+  char *data;
+  data = CthCpvAccess(CthData);
   if (key->magic != KEY_MAGIC) errcode(EINVAL);
   *((void **)(data+(key->offset))) = val;
   return 0;
@@ -145,7 +147,8 @@ int Cpthread_setspecific(Cpthread_key_t key, void *val)
 
 void *Cpthread_getspecific(Cpthread_key_t key)
 {
-  char *data = CthCpvAccess(CthData);
+  char *data;
+  data = CthCpvAccess(CthData);
   if (key->magic != KEY_MAGIC) errcode(EINVAL);
   return *((void **)(data+(key->offset)));
 }
index 9ecacf91d07a06dc3e8799a714783e660b13a75e..d45b3439eb84630ed4e6944e7d6b0ef9c125389b 100644 (file)
@@ -217,7 +217,8 @@ static void *CthBlockHelp(qt_t *sp, CthThread old, void *null)
 void CthResume(t)
 CthThread t;
 {
-  CthThread tc = CthCpvAccess(CthCurrent);
+  CthThread tc;
+  tc = CthCpvAccess(CthCurrent);
   if (t == tc) return;
   CthFixData(t);
   CthCpvAccess(CthCurrent) = t;