Clean up C linkage specific to the C++ migration 83/4883/22
authorEvan Ramos <evan@hpccharm.com>
Fri, 4 Jan 2019 19:18:31 +0000 (13:18 -0600)
committerEvan Ramos <evan@hpccharm.com>
Fri, 26 Apr 2019 01:30:53 +0000 (20:30 -0500)
These are the principles applied in this patch:

* Remove most instances of CMI_EXTERNC, since they were private to the
RTS and we no longer have a mix of C and C++ files.
* Replace remaining instances of CMI_EXTERNC with CLINKAGE
* Remove instances of extern "C" { } surrounding #includes
* Remove spurious instances of extern "C" at definition sites
* Ensure CLINKAGE/extern "C" is on the same line as what follows it,
whether it is a curly brace or a declaration, for improved greppability

extern "C" should always be attached to a declaration in a header in
order to avoid mismatches between definitions and callers elsewhere.

Change-Id: I4c6ef8351d53636e98cbc02e25048a851f05b790

120 files changed:
src/arch/gni/machine-persistent.C
src/arch/gni/machine-persistent.h
src/arch/gni/machine.C
src/arch/mpi/machine.C
src/arch/netlrts/machine-dgram.C
src/arch/netlrts/machine.C
src/arch/ofi/machine.C
src/arch/pami/machine.C
src/arch/pamilrts-bluegeneq/memalloc.C
src/arch/pamilrts/machine.C
src/arch/shmem/machine.C
src/arch/sim/machine.C
src/arch/template/machine.C
src/arch/uth/machine.C
src/arch/util/immediate.C
src/arch/util/machine-common-core.C
src/arch/util/machine-commthd-util.C
src/arch/util/machine-lrts.h
src/arch/util/machine-smp.C
src/arch/util/memalloc.C
src/arch/util/persist-comm.C
src/arch/verbs/machine-dgram.C
src/arch/verbs/machine-ibud.C
src/arch/verbs/machine-ibverbs.C
src/arch/verbs/machine.C
src/ck-core/ck.C
src/ck-core/ck.h
src/ck-core/ckmemcheckpoint.C
src/ck-core/debug-charm.C
src/ck-core/init.C
src/ck-core/init.h
src/ck-core/middle-conv.h
src/ck-core/mpi-interoperate.C
src/ck-ldb/AdaptiveLB.C
src/ck-ldb/BlockLB.C
src/ck-ldb/ComboCentLB.C
src/ck-ldb/CommAwareRefineLB.C
src/ck-ldb/CommLB.C
src/ck-ldb/DistributedLB.C
src/ck-ldb/DummyLB.C
src/ck-ldb/GraphBFTLB.C
src/ck-ldb/GraphPartLB.C
src/ck-ldb/GreedyAgentLB.C
src/ck-ldb/GreedyCommLB.C
src/ck-ldb/GreedyLB.C
src/ck-ldb/GreedyRefineLB.C
src/ck-ldb/GridCommLB.C
src/ck-ldb/GridCommRefineLB.C
src/ck-ldb/GridHybridLB.C
src/ck-ldb/GridHybridSeedLB.C
src/ck-ldb/GridMetisLB.C
src/ck-ldb/HybridBaseLB.C
src/ck-ldb/LBDatabase.h
src/ck-ldb/MetisLB.C
src/ck-ldb/NeighborLB.C
src/ck-ldb/NodeLevelLB.C
src/ck-ldb/NullLB.C
src/ck-ldb/OrbLB.C
src/ck-ldb/PhasebyArrayLB.C
src/ck-ldb/RandCentLB.C
src/ck-ldb/RecBipartLB.C
src/ck-ldb/RecBisectBfLB.C
src/ck-ldb/RefineCommLB.C
src/ck-ldb/RefineKLB.C
src/ck-ldb/RefineLB.C
src/ck-ldb/RefineSwapLB.C
src/ck-ldb/RefineTopoLB.C
src/ck-ldb/RotateLB.C
src/ck-ldb/ScotchLB.C
src/ck-ldb/ScotchRefineLB.C
src/ck-ldb/ScotchTopoLB.C
src/ck-ldb/TeamLB.C
src/ck-ldb/TempAwareCommLB.C
src/ck-ldb/TempAwareGreedyLB.C
src/ck-ldb/TempAwareRefineLB.C
src/ck-ldb/TopoCentLB.C
src/ck-ldb/TopoLB.C
src/ck-ldb/TreeMatchLB.C
src/ck-ldb/WSLB.C
src/ck-ldb/ZoltanLB.C
src/ck-perf/trace-common.C
src/ck-perf/trace-converse.C
src/ck-perf/trace-projections.C
src/conv-ccs/ccs-builtins.C
src/conv-ccs/conv-ccs.C
src/conv-ccs/middle-ccs.C
src/conv-core/cmipool.C
src/conv-core/cmipool.h
src/conv-core/conv-interoperate.C
src/conv-core/conv-trace.h
src/conv-core/convcore.C
src/conv-core/converse.h
src/conv-core/cpm.C
src/conv-core/cpthreads.C
src/conv-core/cpthreads.h
src/conv-core/cpuaffinity.C
src/conv-core/debug-conv.C
src/conv-core/futures.C
src/conv-core/global-elfgot.C
src/conv-core/isomalloc.C
src/conv-core/memory-charmdebug.C
src/conv-core/memory-os-wrapper.C
src/conv-core/memory.C
src/conv-core/memoryaffinity.C
src/conv-core/threads.C
src/conv-ldb/cldb.C
src/conv-ldb/cldb.neighbor.C
src/conv-ldb/cldb.prioritycentralized.C
src/conv-ldb/edgelist.C
src/conv-ldb/generate.C
src/conv-ldb/topology.C
src/conv-perf/charmProjections.C
src/langs/bluegene/bigsim_proc.C
src/langs/bluegene/blue.C
src/libs/ck-libs/ampi/ampi.C
src/libs/ck-libs/io/ckio.C
src/libs/ck-libs/io/fs_parameters.h
src/util/cmirdmautils.h
src/util/cmitls.C
src/util/topomanager/CrayNid.c

index d8cbc5cd7628e1abdc1bb8fe59b8d6b7886805c9..50c540dd4843c50ae639766bdcaa96bdd79a0ff5 100644 (file)
@@ -18,7 +18,6 @@
 */
 
 #if   PERSISTENT_GET_BASE
-CMI_EXTERNC
 void LrtsSendPersistentMsg(PersistentHandle h, int destNode, int size, void *msg)
 {
     PersistentSendsTable *slot = (PersistentSendsTable *)h;
@@ -68,7 +67,6 @@ void LrtsSendPersistentMsg(PersistentHandle h, int destNode, int size, void *msg
     }
 }
 #else
-CMI_EXTERNC
 void LrtsSendPersistentMsg(PersistentHandle h, int destNode, int size, void *m)
 {
     gni_post_descriptor_t *pd;
@@ -281,7 +279,6 @@ int PumpPersistent()
 #error "Persistent communication must be compiled with LARGEPAGE on"
 #endif
 
-CMI_EXTERNC
 void *PerAlloc(int size)
 {
 #if CMK_PERSISTENT_COMM_PUT
@@ -302,7 +299,6 @@ void *PerAlloc(int size)
 #endif
 }
                                                                                 
-CMI_EXTERNC
 void PerFree(char *msg)
 {
 #if CMK_SMP
@@ -313,12 +309,10 @@ void PerFree(char *msg)
 }
 
 /* machine dependent init call */
-CMI_EXTERNC
 void persist_machine_init(void)
 {
 }
 
-CMI_EXTERNC
 void initSendSlot(PersistentSendsTable *slot)
 {
   int i;
@@ -337,7 +331,6 @@ void initSendSlot(PersistentSendsTable *slot)
   slot->prev = slot->next = NULL;
 }
 
-CMI_EXTERNC
 void initRecvSlot(PersistentReceivesTable *slot)
 {
   int i;
@@ -353,7 +346,6 @@ void initRecvSlot(PersistentReceivesTable *slot)
   slot->prev = slot->next = NULL;
 }
 
-CMI_EXTERNC
 void setupRecvSlot(PersistentReceivesTable *slot, int maxBytes)
 {
   int i;
@@ -383,7 +375,6 @@ void setupRecvSlot(PersistentReceivesTable *slot, int maxBytes)
 #endif
 }
 
-CMI_EXTERNC
 void clearRecvSlot(PersistentReceivesTable *slot)
 {
 #if CMK_PERSISTENT_COMM_PUT
@@ -399,7 +390,6 @@ void clearRecvSlot(PersistentReceivesTable *slot)
 #endif
 }
 
-CMI_EXTERNC
 PersistentHandle getPersistentHandle(PersistentHandle h, int toindex)
 {
 #if REMOTE_EVENT
index 5fb7f959fce9607bd36f2f2237321836458f94c4..777b7ac1a65b28dc1a38f74bb88a25c2495952b1 100644 (file)
@@ -72,14 +72,14 @@ CpvExtern(PersistentHandle *, phs);
 CpvExtern(int, phsSize);
 CpvExtern(int, curphs);
 
-CMI_EXTERNC PersistentHandle getPersistentHandle(PersistentHandle h, int toindex);
-CMI_EXTERNC void *PerAlloc(int size);
-CMI_EXTERNC void PerFree(char *msg);
-CMI_EXTERNC int PumpPersistent(void);
-CMI_EXTERNC void swapSendSlotBuffers(PersistentSendsTable *slot);
-CMI_EXTERNC void swapRecvSlotBuffers(PersistentReceivesTable *slot);
-CMI_EXTERNC void setupRecvSlot(PersistentReceivesTable *slot, int maxBytes);
-CMI_EXTERNC void clearRecvSlot(PersistentReceivesTable *slot);
+PersistentHandle getPersistentHandle(PersistentHandle h, int toindex);
+void *PerAlloc(int size);
+void PerFree(char *msg);
+int PumpPersistent(void);
+void swapSendSlotBuffers(PersistentSendsTable *slot);
+void swapRecvSlotBuffers(PersistentReceivesTable *slot);
+void setupRecvSlot(PersistentReceivesTable *slot, int maxBytes);
+void clearRecvSlot(PersistentReceivesTable *slot);
 
 /*@}*/
 
index 5870c034a6db7a4ff7f4b2c0f466448f27358e06..f8909651c63ced8e2ba332607b45f392bc0b026c 100644 (file)
@@ -728,7 +728,6 @@ static IndexPool  persistPool;
 #define CHARM_MAGIC_NUMBER               126
 
 #if CMK_ERROR_CHECKING
-CMI_EXTERNC
 unsigned char computeCheckSum(unsigned char *data, int len);
 static int checksum_flag = 0;
 #define CMI_SET_CHECKSUM(msg, len)      \
@@ -3936,7 +3935,7 @@ void LrtsPreCommonInit(int everReturn){
 #endif
 }
 
-CMI_EXTERNC_VARIABLE int quietMode;
+extern int quietMode;
 
 void LrtsInit(int *argc, char ***argv, int *numNodes, int *myNodeID)
 {
@@ -4258,7 +4257,6 @@ void LrtsInit(int *argc, char ***argv, int *numNodes, int *myNodeID)
 #endif
 }
 
-CMI_EXTERNC
 void* LrtsRdmaAlloc(int n_bytes, int header)
 {
     void *ptr = NULL;
@@ -4289,7 +4287,6 @@ void* LrtsRdmaAlloc(int n_bytes, int header)
     return ptr;
 }
 
-CMI_EXTERNC
 void  LrtsRdmaFree(void *msg)
 {
     int headersize = sizeof(CmiChunkHeader);
@@ -4318,7 +4315,6 @@ void  LrtsRdmaFree(void *msg)
     }
 }
 
-CMI_EXTERNC
 void* LrtsAlloc(int n_bytes, int header)
 {
     void *ptr = NULL;
@@ -4358,7 +4354,6 @@ void* LrtsAlloc(int n_bytes, int header)
     return ptr;
 }
 
-CMI_EXTERNC
 void  LrtsFree(void *msg)
 {
     int headersize = sizeof(CmiChunkHeader);
index 15ff602b64242d4ca4326759bde8248017d9a606..30a5ca4e62423114e0674e28090d4f845483cd44 100644 (file)
@@ -283,7 +283,6 @@ static void reportMsgHistogramInfo(void);
 #define CHARM_MAGIC_NUMBER              126
 
 #if CMK_ERROR_CHECKING
-CMI_EXTERNC
 unsigned char computeCheckSum(unsigned char *data, int len);
 static int checksum_flag = 0;
 #define CMI_SET_CHECKSUM(msg, len)     \
@@ -1217,7 +1216,6 @@ void CmiNotifyIdleForMPI(void) {
 /* Network progress function is used to poll the network when for
    messages. This flushes receive buffers on some  implementations*/
 #if CMK_MACHINE_PROGRESS_DEFINED
-CMI_EXTERNC
 void CommunicationServerThread(int);
 
 void CmiMachineProgressImpl(void) {
@@ -1369,7 +1367,7 @@ static const char *thread_level_tostring(int thread_level) {
 #endif
 }
 
-CMI_EXTERNC_VARIABLE int quietMode;
+extern int quietMode;
 
 /**
  *  Obtain the number of nodes, my node id, and consuming machine layer
index 33ab73b25d91b64598abbcd62861f1cc605a16b5..661e66d054f521aab64f57fccfc3e3e98e45eb9f 100644 (file)
@@ -47,7 +47,6 @@ typedef struct {
 /* the window size needs to be Cmi_window_size + sizeof(unsigned int) bytes) */
 typedef struct { DgramHeader head; char window[1024]; } DgramAck;
 
-CMI_EXTERNC
 unsigned char computeCheckSum(unsigned char *data, int len);
 
 #define DgramHeaderMake(ptr, dstrank_, srcpe_, magic_, seqno_, root_) { \
index 367413a9c9443ca2331d899238789ce21030f47b..6906d2c81fee53c7668bcd619faa23913ae98349 100644 (file)
@@ -217,7 +217,7 @@ int printf(const char *fmt, ...) {
 static int        Cmi_charmrun_pid;
 static int        Cmi_charmrun_fd = -1;
 
-CMI_EXTERNC_VARIABLE int quietMode;
+extern int quietMode;
 
 /******************* Producer-Consumer Queues ************************/
 #include "pcqueue.h"
@@ -316,7 +316,6 @@ static int already_in_signal_handler=0;
 
 static void CmiDestroyLocks(void);
 
-CMI_EXTERNC
 void EmergencyExit(void);
 void MachineExit(void);
 
@@ -629,7 +628,7 @@ int    Cmi_myoldpe = 0;
 static int Cmi_charmrun_assigned_pe;
 #endif
 
-CMI_EXTERNC_VARIABLE int    CmiMyLocalRank;
+extern int    CmiMyLocalRank;
 
 #if ! defined(_WIN32)
 /* parse forks only used in non-smp mode */
@@ -918,7 +917,6 @@ static void CommunicationInterrupt(int ignored)
   MACHSTATE(2,"--END SIGIO--")
 }
 
-CMI_EXTERNC
 void CmiSignal(int sig1, int sig2, int sig3, void (*handler)(int));
 
 static void CmiDestroyLocks(void)
index 69a94b05ab61ffdac19f4c7dd6d9e19f5fa4a145..88b25f16f58f27530a52804bfdf5849e89b61129 100644 (file)
@@ -1336,7 +1336,6 @@ void LrtsDrainResources() /* used when exiting */
     MACHSTATE(2, "} OFI::LrtsDrainResources");
 }
 
-CMI_EXTERNC
 void* LrtsAlloc(int n_bytes, int header)
 {
     void *ptr = NULL;
@@ -1355,7 +1354,6 @@ void* LrtsAlloc(int n_bytes, int header)
     return ptr;
 }
 
-CMI_EXTERNC
 void LrtsFree(void *msg)
 {
 #if USE_MEMPOOL
index 0556c3c862baecda65073d8180c037cb22c54554..1756c58c9083b4963bcd98c4dbda1c6170c638b2 100644 (file)
@@ -54,8 +54,8 @@ char *ALIGN_32(char *p) {
   return((char *)((((unsigned long)p)+0x1f) & (~0x1FUL)));
 }
 
-CMI_EXTERNC_VARIABLE int quietMode;
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietMode;
+extern int quietModeRequested;
 
 int               userDrivenMode; /* Set by CharmInit for interop in user driven mode */
 std::atomic<int> ckExitComplete {0};
@@ -102,7 +102,6 @@ std::atomic<int> ckExitComplete {0};
 
 #if CMK_ERROR_CHECKING
 static int checksum_flag = 0;
-CMI_EXTERNC
 unsigned char computeCheckSum(unsigned char *data, int len);
 
 #define CMI_SET_CHECKSUM(msg, len)      \
@@ -173,7 +172,7 @@ CMK_THREADLOCAL int32_t _comm_thread_id = 0;
 
 void ConverseRunPE(int everReturn);
 static void CommunicationServer(int sleepTime);
-CMI_EXTERNC void CommunicationServerThread(int sleepTime);
+void CommunicationServerThread(int sleepTime);
 
 static void CmiNetworkBarrier(int async);
 static void CmiSendPeer (int rank, int size, char *msg);
@@ -181,7 +180,6 @@ static void CmiSendPeer (int rank, int size, char *msg);
 //So far we dont define any comm threads
 int Cmi_commthread = 0;
 
-CMI_EXTERNC
 void PerrorExit (const char *err);
 
 #include "machine-smp.C"
@@ -336,11 +334,8 @@ static char     **Cmi_argvcopy;
 static CmiStartFn Cmi_startfn;   /* The start function */
 static int        Cmi_usrsched;  /* Continue after start function finishes? */
 
-CMI_EXTERNC
 void ConverseCommonInit(char **argv);
-CMI_EXTERNC
 void ConverseCommonExit(void);
-CMI_EXTERNC
 void CthInit(char **argv);
 
 static void SendMsgsUntil(int);
@@ -916,7 +911,6 @@ void ConverseInit(int argc, char **argv, CmiStartFn fn, int usched, int initret)
     ConverseRunPE(initret);
 }
 
-CMI_EXTERNC
 void PerrorExit (const char *err) {
   fprintf (stderr, "err\n\n");
     exit (-1);
@@ -1090,7 +1084,6 @@ void CmiAbort(const char * message) {
 }
 
 #if CMK_NODE_QUEUE_AVAILABLE
-CMI_EXTERNC
 char *CmiGetNonLocalNodeQ(void) {
     char *result = 0;
 
@@ -1207,7 +1200,6 @@ void  CmiGeneralFreeSend(int destPE, int size, char* msg) {
 
 pami_result_t machine_send_handoff (pami_context_t context, void *msg);
 
-CMI_EXTERNC
 void  machine_send       (pami_context_t      context,
                          int                 node,
                          int                 rank,
@@ -1878,43 +1870,31 @@ void          CmiFreeNodeBroadcastAllFn(int, char *);
 
 #if CMK_SHARED_VARS_POSIX_THREADS_SMP
 
-CMI_EXTERNC
 int CmiMyPe(void);
-CMI_EXTERNC
 int CmiMyRank(void);
-CMI_EXTERNC
 int CmiNodeFirst(int node);
-CMI_EXTERNC
 int CmiNodeSize(int node);
-CMI_EXTERNC
 int CmiNodeOf(int pe);
-CMI_EXTERNC
 int CmiRankOf(int pe);
 
-CMI_EXTERNC
 int CmiMyPe(void) {
     return CmiGetState()->pe;
 }
 
-CMI_EXTERNC
 int CmiMyRank(void) {
     return CmiGetState()->rank;
 }
 
-CMI_EXTERNC
 int CmiNodeFirst(int node) {
     return node*_Cmi_mynodesize;
 }
-CMI_EXTERNC
 int CmiNodeSize(int node)  {
     return _Cmi_mynodesize;
 }
 
-CMI_EXTERNC
 int CmiNodeOf(int pe)      {
     return (pe/_Cmi_mynodesize);
 }
-CMI_EXTERNC
 int CmiRankOf(int pe)      {
     return pe%_Cmi_mynodesize;
 }
index 240a483e035ccb070d9c529de77d9e203084eae8..3ca108154ea5ca708559b451756dd1aab8f28bd6 100644 (file)
@@ -28,7 +28,6 @@ static int _nodeStart;
 L2MemStruct *sL2MemallocVec;
 L2MemStruct *bL2MemallocVec;
 
-CMI_EXTERNC
 void *CmiAlloc_bgq (int size) {
   CmiMemAllocHdr_bgq *hdr = NULL;
   char *buf;
@@ -75,7 +74,6 @@ void *CmiAlloc_bgq (int size) {
   return buf;
 }
 
-CMI_EXTERNC
 void CmiFree_bgq (void *buf) {
   CmiMemAllocHdr_bgq *hdr = (CmiMemAllocHdr_bgq *)((char*)buf - sizeof(CmiMemAllocHdr_bgq));  
   int rc = L2A_EAGAIN;
index 775cc952eb4d8a683457ffc83d4ade3bab134b69..4527e3f69c84a126566eb26cec86ba52d322f888 100644 (file)
@@ -72,7 +72,6 @@ char *ALIGN_32(char *p) {
 
 #if CMK_ERROR_CHECKING
 static int checksum_flag = 0;
-CMI_EXTERNC
 unsigned char computeCheckSum(unsigned char *data, int len);
 
 #define CMI_SET_CHECKSUM(msg, len)      \
@@ -237,7 +236,7 @@ volatile int outstanding_recvs;
 #endif
 
 // Function declaration for ppc_msync
-CMI_EXTERNC void ppc_msync();
+void ppc_msync();
 
 #if CMK_SMP  && !CMK_ENABLE_ASYNC_PROGRESS
 #define PAMIX_CONTEXT_LOCK_INIT(x)
@@ -525,7 +524,7 @@ pamix_progress_register_fn  cmi_progress_register;
 pamix_progress_enable_fn    cmi_progress_enable;
 pamix_progress_disable_fn   cmi_progress_disable;
 
-CMI_EXTERNC_VARIABLE int quietMode;
+extern int quietMode;
 
 int CMI_Progress_init(int start, int ncontexts) {
   if ((CmiMyPe() == 0) && (!quietMode))
index 0f5efd8d12937d04615bc17ffccf9da2b11ac870..94ba6840f543ed2f7b75c3e70e4e50e2cbbdc23b 100644 (file)
 enum boolean {false = 0, true = 1};
 enum {list_empty = -1 };
 
-CMI_EXTERNC
 void CthInit(char **);
-CMI_EXTERNC
 void ConverseCommonInit(char **);
-CMI_EXTERNC
 void ConverseCommonExit(void);
 
 /*
@@ -575,8 +572,8 @@ ConverseInit(int argc, char **argv, CmiStartFn fn, int usched, int initret)
   ConverseRunPE(initret);
 }
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
-CMI_EXTERNC_VARIABLE int quietMode;
+extern int quietModeRequested;
+extern int quietMode;
 
 void ConverseExit(int exitcode)
 {
index 8382869a237f2f226a8442306e664e5a4c333c75..690b669f0620667ab176a0a1e5babf097f69d63d 100644 (file)
 #endif
 
 
-CMI_EXTERNC
 void CthInit(char **);
-CMI_EXTERNC
 void ConverseCommonInit(char **);
-CMI_EXTERNC
 void ConverseCommonExit(void);
 
 static void **McQueue;
index 7fccae0deed837e35460ce65bc9f073b27efe9a1..536afbef607accca15ca394178612dcbde4c3f9e 100644 (file)
@@ -193,17 +193,11 @@ int _Cmi_mynodesize;
 int _Cmi_mynode;
 int _Cmi_numnodes;
 
-CMI_EXTERNC
 int CmiMyPe(void);
-CMI_EXTERNC
 int CmiMyRank(void);
-CMI_EXTERNC
 int CmiNodeFirst(int node);
-CMI_EXTERNC
 int CmiNodeSize(int node);
-CMI_EXTERNC
 int CmiNodeOf(int pe);
-CMI_EXTERNC
 int CmiRankOf(int pe);
 
 /* optional, these functions are implemented in "machine-smp.C", so including
@@ -244,17 +238,11 @@ int _Cmi_mynodesize;
 int _Cmi_mynode;
 int _Cmi_numnodes;
 
-CMI_EXTERNC
 int CmiMyPe(void);
-CMI_EXTERNC
 int CmiMyRank(void);
-CMI_EXTERNC
 int CmiNodeFirst(int node);
-CMI_EXTERNC
 int CmiNodeSize(int node);
-CMI_EXTERNC
 int CmiNodeOf(int pe);
-CMI_EXTERNC
 int CmiRankOf(int pe);
 
 /* optional, these functions are implemented in "machine-smp.C", so including
index f9f8fedc1d119840d64a4bd1358c4ea29a2c8ce4..91fc8551e8dbb0ead4fd070434d6b79e9da97e5f 100644 (file)
 int               userDrivenMode; /* Set by CharmInit for interop in user driven mode */
 std::atomic<int> ckExitComplete {0};
 
-CMI_EXTERNC
 void CthInit(char **);
-CMI_EXTERNC
 void ConverseCommonInit(char **);
-CMI_EXTERNC
 void ConverseCommonExit(void);
 
 /***********************************************************************
index 5209ed80391aed8fed59755fb2b7fc46caf347f6..84da571c2cee96f6fed074d89adedb46988d94d1 100644 (file)
@@ -32,8 +32,7 @@ static void *currentImmediateMsg=NULL; /* immediate message currently being exec
 
 SMP:  This routine does its own locking.
 */
-CMI_EXTERNC
-void CmiPushImmediateMsg(void *msg)
+extern "C" void CmiPushImmediateMsg(void *msg)
 {
   MACHSTATE(4,"pushing immediate message {");
   /* This lock check needs portable access to comm_flag, which is tough:
index 502879cbe458f0b5ee04f2feca84ccc9f38f87bc..99f2ddd166c161c62c3dfb6732f05234496d99b0 100644 (file)
@@ -78,7 +78,6 @@ static int CmiNodesDim;
 /* ###End of Broadcast related definitions ### */
 
 #if CMK_SMP_TRACE_COMMTHREAD
-CMI_EXTERNC
 double TraceTimerCommon(void);
 #endif
 
@@ -243,7 +242,7 @@ CpvDeclare(unsigned , networkProgressCount);
 int networkProgressPeriod;
 
 #if CMK_CCS_AVAILABLE
-CMI_EXTERNC_VARIABLE int ccsRunning;
+extern int ccsRunning;
 #endif
 
 /* ===== Beginning of Common Function Declarations ===== */
@@ -308,13 +307,11 @@ static void ConverseRunPE(int everReturn);
 /* Functions regarding machine running on every proc */
 static void AdvanceCommunication(int whenidle);
 static void CommunicationServer(int sleepTime);
-CMI_EXTERNC
 void CommunicationServerThread(int sleepTime);
 
 /* Functions providing incoming network messages */
 void *CmiGetNonLocal(void);
 #if CMK_NODE_QUEUE_AVAILABLE
-CMI_EXTERNC
 void *CmiGetNonLocalNodeQ(void);
 #endif
 /* Utiltiy functions */
@@ -396,36 +393,28 @@ CmiMyNodeQueue(void) {
 }
 #endif
 
-CMI_EXTERNC
 int CmiMyPe(void) {
     return CmiGetState()->pe;
 }
-CMI_EXTERNC
 int CmiNodeSpan(void) {
   return (CmiMyNodeSize() + 1);
 }
-CMI_EXTERNC
 int CmiMyPeGlobal(void) {
     return CmiGetPeGlobal(CmiGetState()->pe,CmiMyPartition());
 }
-CMI_EXTERNC
 int CmiMyRank(void) {
     return CmiGetState()->rank;
 }
-CMI_EXTERNC
 int CmiNodeSize(int node) {
     return _Cmi_mynodesize;
 }
 #if !CMK_MULTICORE // these are defined in converse.h
-CMI_EXTERNC
 int CmiNodeFirst(int node) {
     return node*_Cmi_mynodesize;
 }
-CMI_EXTERNC
 int CmiNodeOf(int pe) {
     return (pe/_Cmi_mynodesize);
 }
-CMI_EXTERNC
 int CmiRankOf(int pe) {
     return pe%_Cmi_mynodesize;
 }
@@ -461,6 +450,9 @@ static void PerrorExit(const char *msg) {
 }
 
 /* ##### Beginning of Functions Related with Message Sending OPs ##### */
+
+extern "C" void CmiPushImmediateMsg(void *);
+
 /*Add a message to this processor's receive queue, pe is a rank */
 void CmiPushPE(int rank,void *msg) {
     CmiState cs = CmiGetStateN(rank);
@@ -841,10 +833,8 @@ if (  MSG_STATISTIC)
 #endif
 
 #include "TopoManager.h"
-CMI_EXTERNC
-void createCustomPartitions(int numparts, int *partitionSize, int *nodeMap);
-CMI_EXTERNC
-void setDefaultPartitionParams(void);
+extern "C" void createCustomPartitions(int numparts, int *partitionSize, int *nodeMap);
+extern "C" void setDefaultPartitionParams(void);
 
 void create_topoaware_partitions(void) {
   int i, j, numparts_bak;
@@ -1145,8 +1135,8 @@ INLINE_KEYWORD int pe_gToLTranslate(int pe) {
 }
 //end of functions related to partition
 
-CMI_EXTERNC_VARIABLE int quietMode;
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietMode;
+extern int quietModeRequested;
 
 #if defined(_WIN32)
 #include <windows.h> /* for SetEnvironmentVariable() and routines for CMK_SHARED_VARS_NT_THREADS */
@@ -1501,9 +1491,7 @@ if (  MSG_STATISTIC)
     ConverseRunPE(initret);
 }
 
-CMI_EXTERNC
 void ConverseCommonInit(char **argv);
-CMI_EXTERNC
 void CthInit(char **argv);
 static void ConverseRunPE(int everReturn) {
     CmiState cs;
@@ -1645,7 +1633,6 @@ static INLINE_KEYWORD void AdvanceCommunication(int whenidle) {
 #endif
 }
 
-CMI_EXTERNC
 void ConverseCommonExit(void);
 
 static void CommunicationServer(int sleepTime) {
index 9d7e9d4202710edb436fd10468d9e232b369fbd1..a4f14ccc35ba028918fa3dba44dc7282fc51ce35 100644 (file)
@@ -75,6 +75,8 @@ void CmiResetNotifyCommThdMsg(CmiNotifyCommThdMsg *msg, CmiCommThdFnPtr fn, int
     msg->toKeep = toKeep;
 }
 
+extern "C" void CmiPushImmediateMsg(void *);
+
 void CmiNotifyCommThd(CmiNotifyCommThdMsg *msg){
    CmiPushImmediateMsg(msg);
 }
index 7a2333a15b846ff724b2e2c15b0b46f05879eee0..d666beaef13077b6853836c977897ba967674768 100644 (file)
@@ -13,7 +13,7 @@ CmiCommHandle LrtsAsyncListSendFn(int npes, int *pes, int len, char *msg);
 void LrtsFreeListSendFn(int npes, int *pes, int len, char *msg);
 
 #if CMK_PERSISTENT_COMM
-CMI_EXTERNC void LrtsSendPersistentMsg(PersistentHandle h, int destPE, int size, void *m);
+void LrtsSendPersistentMsg(PersistentHandle h, int destPE, int size, void *m);
 #endif
 
 /* ### Beginning of Machine-startup Related Functions ### */
@@ -31,11 +31,11 @@ CMK_NORETURN void LrtsAbort(const char *message);
 /* ### End of Machine-running Related Functions ### */
 void LrtsPostNonLocal(void);
 
-CMI_EXTERNC void* LrtsAlloc(int, int);
-CMI_EXTERNC void* LrtsRdmaAlloc(int, int);
+void* LrtsAlloc(int, int);
+void* LrtsRdmaAlloc(int, int);
 
-CMI_EXTERNC void  LrtsFree(void*);
-CMI_EXTERNC void  LrtsRdmaFree(void*);
+void  LrtsFree(void*);
+void  LrtsRdmaFree(void*);
 void  LrtsNotifyIdle(void);
 
 void  LrtsBeginIdle(void);
index 37f65f5b13cd88cc7f9fbf6e32f72f8aa535eee5..781ed08e8cdf7b55450112d065ea299765d4a0be 100644 (file)
@@ -128,7 +128,6 @@ void CmiYield(void)
 
 #define CmiGetStateN(n) (Cmi_state_vector+(n))
 
-CMI_EXTERNC
 void CommunicationServerThread(int sleepTime);
 
 /*
@@ -405,9 +404,7 @@ static void *call_startfn(void *vindex)
 }
 */
 
-CMI_EXTERNC
 void StartInteropScheduler(void);
-CMI_EXTERNC
 void CommunicationServerThread(int sleepTime);
 
 static void *call_startfn(void *vindex)
@@ -458,7 +455,7 @@ static void *call_startfn(void *vindex)
 
 #if CMK_BLUEGENEQ && !CMK_USE_LRTS
 /* pami/machine.C defines its own version of this: */
-CMI_EXTERNC void PerrorExit(const char*);
+void PerrorExit(const char*);
 #endif
 
 #if CMK_CONVERSE_PAMI
index eed214a75bc435474ff63c778cdcafa0cfea1382..890f111a0e5022f4b92030c20d2e3ce5c4625b6d 100644 (file)
@@ -47,7 +47,6 @@ extern int  Cmi_nodestart; /* First processor in this address space */
 extern CMK_THREADLOCAL int32_t _comm_thread_id;
 #endif
 
-CMI_EXTERNC
 void *CmiAlloc_ppcq (int size) {
   CmiMemAllocHdr_ppcq *hdr = NULL;
   char *buf;
@@ -122,7 +121,6 @@ void *CmiAlloc_ppcq (int size) {
   return buf;
 }
 
-CMI_EXTERNC
 void CmiFree_ppcq (void *buf) {
   CmiMemAllocHdr_ppcq *hdr = (CmiMemAllocHdr_ppcq *)((char*)buf - sizeof(CmiMemAllocHdr_ppcq));
   int rc = CMI_PPCQ_EAGAIN;
index 6a8c383ee199669da2b5c66b018c550b36b6f7f7..2062e68d6765419f1cd97a8be874616cadebf879 100644 (file)
@@ -70,8 +70,8 @@ CpvDeclare(int, curphs);
      Utilities
 ******************************************************************************/
 
-CMI_EXTERNC void initRecvSlot(PersistentReceivesTable *slot);
-CMI_EXTERNC void initSendSlot(PersistentSendsTable *slot);
+void initRecvSlot(PersistentReceivesTable *slot);
+void initSendSlot(PersistentSendsTable *slot);
 
 void swapSendSlotBuffers(PersistentSendsTable *slot)
 {
index be4ddc37a1c4882460b41a8e9ac5c8fed3b9f122..b53a010e5579583491c2b4e1c2bba7be9257f2ed 100644 (file)
@@ -52,7 +52,6 @@ typedef struct {
 /* the window size needs to be Cmi_window_size + sizeof(unsigned int) bytes) */
 typedef struct { DgramHeader head; char window[1024]; } DgramAck;
 
-CMI_EXTERNC
 unsigned char computeCheckSum(unsigned char *data, int len);
 
 #define DgramHeaderMake(ptr, dstrank_, srcpe_, magic_, seqno_, root_) { \
index 58534ed8b4d3cb272e3dd7cfb89951fb851b44ad..661d601c789435bda84da5af937dd78082018779 100644 (file)
@@ -216,7 +216,6 @@ infiCmiChunkPool infiCmiChunkPools[INFINUMPOOLS];
        pkt = p;\
 }
 
-CMI_EXTERNC
 void infi_unregAndFreeMeta(void *md) {
        if(md!=NULL && (((infiCmiChunkMetaData *)md)->poolIdx == INFIMULTIPOOL)) {
                ibv_dereg_mr(((infiCmiChunkMetaData*)md)->key);
@@ -310,7 +309,6 @@ static inline void *getInfiCmiChunk(int dataSize){
         CmiAssert(0);
 }
 
-CMI_EXTERNC
 void * infi_CmiAlloc(int size){
        void *res;
 
@@ -328,7 +326,6 @@ void * infi_CmiAlloc(int size){
 }
 
 
-CMI_EXTERNC
 void infi_CmiFree(void *ptr){
        int size;
        void *freePtr = ptr;
index 5b7a6854c2285804e0e6d28e69f258c56b13f13c..24acb76ba95de38646b3679949b09059fa9e5338 100644 (file)
@@ -391,7 +391,6 @@ static inline infiPacket newPacket(void){
 
 
 
-CMI_EXTERNC
 void infi_unregAndFreeMeta(void *md)
 {
   if(md!=NULL && (((infiCmiChunkMetaData *)md)->poolIdx == INFIMULTIPOOL))
@@ -2701,7 +2700,6 @@ static inline void *getInfiCmiChunk(int dataSize){
 #endif
 
 
-CMI_EXTERNC
 void * infi_CmiAlloc(int size){
        char *res;
 #if CMK_IBVERBS_STATS
@@ -2804,7 +2802,6 @@ void infi_CmiFreeDirect(void *ptr){
 }
 
 
-CMI_EXTERNC
 void infi_CmiFree(void *ptr){
 
        int i,j;
@@ -2852,7 +2849,6 @@ void infi_CmiFree(void *ptr){
 }
 
 #else
-CMI_EXTERNC
 void infi_CmiFree(void *ptr){
        int size;
        void *freePtr = ptr;
index fe71071db6c1bc280c93ed18c3378cf79375db93..7e42c4375209eff9d9d255b3cd417da8beedef37 100644 (file)
@@ -305,7 +305,6 @@ static int already_in_signal_handler=0;
 
 static void CmiDestroyLocks(void);
 
-CMI_EXTERNC
 void EmergencyExit(void);
 void MachineExit(void);
 
@@ -608,7 +607,7 @@ static int    Cmi_idlepoll;
 static int    Cmi_syncprint;
 static int Cmi_print_stats = 0;
 
-CMI_EXTERNC_VARIABLE int    CmiMyLocalRank;
+extern int    CmiMyLocalRank;
 
 #if ! defined(_WIN32)
 /* parse forks only used in non-smp mode */
@@ -880,7 +879,6 @@ static void CommunicationInterrupt(int ignored)
   MACHSTATE(2,"--END SIGIO--")
 }
 
-CMI_EXTERNC
 void CmiSignal(int sig1, int sig2, int sig3, void (*handler)(int));
 
 static void CmiDestroyLocks(void)
@@ -1183,7 +1181,7 @@ static int InternalScanf(char *fmt, va_list l)
 /*New stdarg.h declarations*/
 void CmiPrintf(const char *fmt, ...)
 {
-  CMI_EXTERNC_VARIABLE int quietMode;
+  extern int quietMode;
   if (quietMode) return;
   CpdSystemEnter();
   {
index 0f0fa305dd7abb7f5eb55779b4ed17986adfe613..b0b7a0ddae006b36d85e31bebe336f15f744dd96 100644 (file)
@@ -474,31 +474,26 @@ void QdProcess(int n) {
   CpvAccess(_qd)->process(n);
 }
 
-extern "C"
 void CkSetRefNum(void *msg, CMK_REFNUM_TYPE ref)
 {
   UsrToEnv(msg)->setRef(ref);
 }
 
-extern "C"
 CMK_REFNUM_TYPE CkGetRefNum(void *msg)
 {
   return UsrToEnv(msg)->getRef();
 }
 
-extern "C"
 int CkGetSrcPe(void *msg)
 {
   return UsrToEnv(msg)->getSrcPe();
 }
 
-extern "C"
 int CkGetSrcNode(void *msg)
 {
   return CmiNodeOf(CkGetSrcPe(msg));
 }
 
-extern "C"
 void *CkLocalBranch(CkGroupID gID) {
   return _localBranch(gID);
 }
@@ -511,7 +506,6 @@ void *_ckLocalNodeBranch(CkGroupID groupID) {
   return retval;
 }
 
-extern "C"
 void *CkLocalNodeBranch(CkGroupID groupID)
 {
   void *retval;
@@ -525,7 +519,6 @@ void *CkLocalNodeBranch(CkGroupID groupID)
   return retval;
 }
 
-extern "C"
 void *CkLocalChare(const CkChareID *pCid)
 {
        int pe=pCid->onPE;
@@ -553,15 +546,15 @@ void *CkLocalChare(const CkChareID *pCid)
 
 CkpvDeclare(char**,Ck_argv);
 
-extern "C" char **CkGetArgv(void) {
+char **CkGetArgv(void) {
        return CkpvAccess(Ck_argv);
 }
-extern "C" int CkGetArgc(void) {
+int CkGetArgc(void) {
        return CmiGetArgc(CkpvAccess(Ck_argv));
 }
 
 /******************** Basic support *****************/
-extern "C" void CkDeliverMessageFree(int epIdx,void *msg,void *obj)
+void CkDeliverMessageFree(int epIdx,void *msg,void *obj)
 {
 #if (defined(_FAULT_MLOG_) || defined(_FAULT_CAUSAL_))
         CpvAccess(_currentObj) = (Chare *)obj;
@@ -582,7 +575,7 @@ extern "C" void CkDeliverMessageFree(int epIdx,void *msg,void *obj)
     _msgTable[_entryTable[epIdx]->msgIdx]->dealloc(msg);
   }
 }
-extern "C" void CkDeliverMessageReadonly(int epIdx,const void *msg,void *obj)
+void CkDeliverMessageReadonly(int epIdx,const void *msg,void *obj)
 {
   //BIGSIM_OOC DEBUGGING
   //CkPrintf("CkDeliverMessageReadonly: name of entry fn: %s\n", _entryTable[epIdx]->name);
@@ -648,7 +641,6 @@ static inline void _invokeEntry(int epIdx,envelope *env,void *obj)
 
 /********************* Creation ********************/
 
-extern "C"
 void CkCreateChare(int cIdx, int eIdx, void *msg, CkChareID *pCid, int destPE)
 {
   CkAssert(cIdx == _entryTable[eIdx]->chareIdx);
@@ -868,7 +860,6 @@ int _getGroupIdx(int numNodes,int myNode,int numGroups)
         return idx;
 }
 
-extern "C"
 CkGroupID CkCreateGroup(int cIdx, int eIdx, void *msg)
 {
   CkAssert(cIdx == _entryTable[eIdx]->chareIdx);
@@ -882,7 +873,6 @@ CkGroupID CkCreateGroup(int cIdx, int eIdx, void *msg)
   return gid;
 }
 
-extern "C"
 CkGroupID CkCreateNodeGroup(int cIdx, int eIdx, void *msg)
 {
   CkAssert(cIdx == _entryTable[eIdx]->chareIdx);
@@ -1687,7 +1677,6 @@ static inline int _prepareImmediateMsg(int eIdx,void *msg,const CkChareID *pCid)
   return destPE;
 }
 
-extern "C"
 void CkSendMsg(int entryIdx, void *msg,const CkChareID *pCid, int opts)
 {
   if (opts & CK_MSG_INLINE) {
@@ -1726,7 +1715,6 @@ void CkSendMsg(int entryIdx, void *msg,const CkChareID *pCid, int opts)
 #endif
 }
 
-extern "C"
 void CkSendMsgInline(int entryIndex, void *msg, const CkChareID *pCid, int opts)
 {
   if (pCid->onPE==CkMyPe())
@@ -1831,7 +1819,6 @@ static inline void _sendMsgBranchMulti(int eIdx, void *msg, CkGroupID gID,
   _TRACE_CREATION_DONE(1);     // since it only creates one creation event.
 }
 
-extern "C"
 void CkSendMsgBranchImmediate(int eIdx, void *msg, int destPE, CkGroupID gID)
 {
 #if CMK_IMMEDIATE_MSG && ! CMK_SMP
@@ -1856,7 +1843,6 @@ void CkSendMsgBranchImmediate(int eIdx, void *msg, int destPE, CkGroupID gID)
 #endif
 }
 
-extern "C"
 void CkSendMsgBranchInline(int eIdx, void *msg, int destPE, CkGroupID gID, int opts)
 {
   if (destPE==CkMyPe())
@@ -1882,7 +1868,6 @@ void CkSendMsgBranchInline(int eIdx, void *msg, int destPE, CkGroupID gID, int o
   CkSendMsgBranch(eIdx, msg, destPE, gID, opts & (~CK_MSG_INLINE));
 }
 
-extern "C"
 void CkSendMsgBranch(int eIdx, void *msg, int pe, CkGroupID gID, int opts)
 {
   if (opts & CK_MSG_INLINE) {
@@ -1905,7 +1890,6 @@ void CkSendMsgBranch(int eIdx, void *msg, int pe, CkGroupID gID, int opts)
   CkpvAccess(_coreState)->create();
 }
 
-extern "C"
 void CkSendMsgBranchMultiImmediate(int eIdx,void *msg,CkGroupID gID,int npes,int *pes)
 {
 #if CMK_IMMEDIATE_MSG && ! CMK_SMP
@@ -1921,7 +1905,6 @@ void CkSendMsgBranchMultiImmediate(int eIdx,void *msg,CkGroupID gID,int npes,int
   CpvAccess(_qd)->create(npes);
 }
 
-extern "C"
 void CkSendMsgBranchMulti(int eIdx,void *msg,CkGroupID gID,int npes,int *pes, int opts)
 {
   if (opts & CK_MSG_IMMEDIATE) {
@@ -1934,7 +1917,6 @@ void CkSendMsgBranchMulti(int eIdx,void *msg,CkGroupID gID,int npes,int *pes, in
   CpvAccess(_qd)->create(npes);
 }
 
-extern "C"
 void CkSendMsgBranchGroup(int eIdx,void *msg,CkGroupID gID,CmiGroup grp, int opts)
 {
   int npes;
@@ -1953,7 +1935,6 @@ void CkSendMsgBranchGroup(int eIdx,void *msg,CkGroupID gID,CmiGroup grp, int opt
   CpvAccess(_qd)->create(npes);
 }
 
-extern "C"
 void CkBroadcastMsgBranch(int eIdx, void *msg, CkGroupID gID, int opts)
 {
   _sendMsgBranch(eIdx, msg, gID, CLD_BROADCAST_ALL, opts);
@@ -1997,7 +1978,6 @@ static inline void _sendMsgNodeBranchMulti(int eIdx, void *msg, CkGroupID gID,
   _TRACE_CREATION_DONE(1);  // since it only creates one creation event.
 }
 
-extern "C"
 void CkSendMsgNodeBranchImmediate(int eIdx, void *msg, int node, CkGroupID gID)
 {
 #if CMK_IMMEDIATE_MSG
@@ -2022,7 +2002,6 @@ void CkSendMsgNodeBranchImmediate(int eIdx, void *msg, int node, CkGroupID gID)
 #endif
 }
 
-extern "C"
 void CkSendMsgNodeBranchInline(int eIdx, void *msg, int node, CkGroupID gID, int opts)
 {
   if (node==CkMyNode()) {
@@ -2049,7 +2028,6 @@ void CkSendMsgNodeBranchInline(int eIdx, void *msg, int node, CkGroupID gID, int
   CkSendMsgNodeBranch(eIdx, msg, node, gID, opts & ~(CK_MSG_INLINE));
 }
 
-extern "C"
 void CkSendMsgNodeBranch(int eIdx, void *msg, int node, CkGroupID gID, int opts)
 {
   if (opts & CK_MSG_INLINE) {
@@ -2065,7 +2043,6 @@ void CkSendMsgNodeBranch(int eIdx, void *msg, int node, CkGroupID gID, int opts)
   CkpvAccess(_coreState)->create();
 }
 
-extern "C"
 void CkSendMsgNodeBranchMultiImmediate(int eIdx,void *msg,CkGroupID gID,int npes,int *nodes)
 {
 #if CMK_IMMEDIATE_MSG && ! CMK_SMP
@@ -2079,7 +2056,6 @@ void CkSendMsgNodeBranchMultiImmediate(int eIdx,void *msg,CkGroupID gID,int npes
   CpvAccess(_qd)->create(npes);
 }
 
-extern "C"
 void CkSendMsgNodeBranchMulti(int eIdx,void *msg,CkGroupID gID,int npes,int *nodes, int opts)
 {
   if (opts & CK_MSG_IMMEDIATE) {
@@ -2092,7 +2068,6 @@ void CkSendMsgNodeBranchMulti(int eIdx,void *msg,CkGroupID gID,int npes,int *nod
   CpvAccess(_qd)->create(npes);
 }
 
-extern "C"
 void CkBroadcastMsgNodeBranch(int eIdx, void *msg, CkGroupID gID, int opts)
 {
   _sendMsgNodeBranch(eIdx, msg, gID, CLD_BROADCAST_ALL, opts);
@@ -2101,13 +2076,10 @@ void CkBroadcastMsgNodeBranch(int eIdx, void *msg, CkGroupID gID, int opts)
 }
 
 //Needed by delegation manager:
-extern "C"
 int CkChareMsgPrep(int eIdx, void *msg,const CkChareID *pCid)
 { return _prepareMsg(eIdx,msg,pCid); }
-extern "C"
 void CkGroupMsgPrep(int eIdx, void *msg, CkGroupID gID)
 { _prepareMsgBranch(eIdx,msg,gID,ForBocMsg); }
-extern "C"
 void CkNodeGroupMsgPrep(int eIdx, void *msg, CkGroupID gID)
 { _prepareMsgBranch(eIdx,msg,gID,ForNodeBocMsg); }
 
@@ -2136,7 +2108,6 @@ static void _prepareOutgoingArrayMsg(envelope *env,int type)
   CpvAccess(_qd)->create();
 }
 
-extern "C"
 void CkArrayManagerDeliver(int pe,void *msg, int opts) {
   envelope *env = UsrToEnv(msg);
   _prepareOutgoingArrayMsg(env,ForArrayEltMsg);
@@ -2224,7 +2195,7 @@ static std::vector<char*> ext_argv;
 // buffer.
 // To be called from external clients like charm4py. This wrapper avoids issues with
 // ctypes and cffi.
-extern "C" void StartCharmExt(int argc, char **argv) {
+void StartCharmExt(int argc, char **argv) {
 #if !defined(_WIN32) && !NODE_0_IS_CONVHOST
   // only do this in net layers if using charmrun, so that output of process 0
   // doesn't get duplicated
@@ -2249,17 +2220,17 @@ extern "C" void StartCharmExt(int argc, char **argv) {
 }
 
 void (*CkRegisterMainModuleCallback)() = NULL;
-extern "C" void registerCkRegisterMainModuleCallback(void (*cb)()) {
+void registerCkRegisterMainModuleCallback(void (*cb)()) {
   CkRegisterMainModuleCallback = cb;
 }
 
 void (*MainchareCtorExtCallback)(int, void*, int, int, char **) = NULL;
-extern "C" void registerMainchareCtorExtCallback(void (*cb)(int, void*, int, int, char **)) {
+void registerMainchareCtorExtCallback(void (*cb)(int, void*, int, int, char **)) {
   MainchareCtorExtCallback = cb;
 }
 
 void (*ReadOnlyRecvExtCallback)(int, char*) = NULL;
-extern "C" void registerReadOnlyRecvExtCallback(void (*cb)(int, char*)) {
+void registerReadOnlyRecvExtCallback(void (*cb)(int, char*)) {
   ReadOnlyRecvExtCallback = cb;
 }
 
@@ -2267,52 +2238,52 @@ void* ReadOnlyExt::ro_data = NULL;
 size_t ReadOnlyExt::data_size = 0;
 
 void (*ChareMsgRecvExtCallback)(int, void*, int, int, char *, int) = NULL;
-extern "C" void registerChareMsgRecvExtCallback(void (*cb)(int, void*, int, int, char *, int)) {
+void registerChareMsgRecvExtCallback(void (*cb)(int, void*, int, int, char *, int)) {
   ChareMsgRecvExtCallback = cb;
 }
 
 void (*GroupMsgRecvExtCallback)(int, int, int, char *, int) = NULL;
-extern "C" void registerGroupMsgRecvExtCallback(void (*cb)(int, int, int, char *, int)) {
+void registerGroupMsgRecvExtCallback(void (*cb)(int, int, int, char *, int)) {
   GroupMsgRecvExtCallback = cb;
 }
 
 void (*ArrayMsgRecvExtCallback)(int, int, int *, int, int, char *, int) = NULL;
-extern "C" void registerArrayMsgRecvExtCallback(void (*cb)(int, int, int *, int, int, char *, int)) {
+void registerArrayMsgRecvExtCallback(void (*cb)(int, int, int *, int, int, char *, int)) {
   ArrayMsgRecvExtCallback = cb;
 }
 
 int (*ArrayElemLeaveExt)(int, int, int *, char**, int) = NULL;
-extern "C" void registerArrayElemLeaveExtCallback(int (*cb)(int, int, int *, char**, int)) {
+void registerArrayElemLeaveExtCallback(int (*cb)(int, int, int *, char**, int)) {
   ArrayElemLeaveExt = cb;
 }
 
 void (*ArrayElemJoinExt)(int, int, int *, int, char*, int) = NULL;
-extern "C" void registerArrayElemJoinExtCallback(void (*cb)(int, int, int *, int, char*, int)) {
+void registerArrayElemJoinExtCallback(void (*cb)(int, int, int *, int, char*, int)) {
   ArrayElemJoinExt = cb;
 }
 
 void (*ArrayResumeFromSyncExtCallback)(int, int, int *) = NULL;
-extern "C" void registerArrayResumeFromSyncExtCallback(void (*cb)(int, int, int *)) {
+void registerArrayResumeFromSyncExtCallback(void (*cb)(int, int, int *)) {
   ArrayResumeFromSyncExtCallback = cb;
 }
 
 void (*CreateReductionTargetMsgExt)(void*, int, int, int, char**, int*) = NULL;
-extern "C" void registerCreateReductionTargetMsgExtCallback(void (*cb)(void*, int, int, int, char**, int*)) {
+void registerCreateReductionTargetMsgExtCallback(void (*cb)(void*, int, int, int, char**, int*)) {
   CreateReductionTargetMsgExt = cb;
 }
 
 int (*PyReductionExt)(char**, int*, int, char**) = NULL;
-extern "C" void registerPyReductionExtCallback(int (*cb)(char**, int*, int, char**)) {
+void registerPyReductionExtCallback(int (*cb)(char**, int*, int, char**)) {
     PyReductionExt = cb;
 }
 
 int (*ArrayMapProcNumExtCallback)(int, int, const int *) = NULL;
-extern "C" void registerArrayMapProcNumExtCallback(int (*cb)(int, int, const int *)) {
+void registerArrayMapProcNumExtCallback(int (*cb)(int, int, const int *)) {
   ArrayMapProcNumExtCallback = cb;
 }
 
-extern "C" int CkMyPeHook() { return CkMyPe(); }
-extern "C" int CkNumPesHook() { return CkNumPes(); }
+int CkMyPeHook() { return CkMyPe(); }
+int CkNumPesHook() { return CkNumPes(); }
 
 void ReadOnlyExt::setData(void *msg, size_t msgSize) {
   ro_data = malloc(msgSize);
@@ -2375,7 +2346,6 @@ ArrayMapExt::ArrayMapExt(void *impl_msg) {
 }
 
 // TODO options
-extern "C"
 int CkCreateGroupExt(int cIdx, int eIdx, int num_bufs, char **bufs, int *buf_sizes) {
   //static_cast<void>(impl_e_opts);
   CkAssert(num_bufs >= 1);
@@ -2395,7 +2365,6 @@ int CkCreateGroupExt(int cIdx, int eIdx, int num_bufs, char **bufs, int *buf_siz
 }
 
 // TODO options
-extern "C"
 int CkCreateArrayExt(int cIdx, int ndims, int *dims, int eIdx, int num_bufs,
                      char **bufs, int *buf_sizes, int map_gid, char useAtSync) {
   //static_cast<void>(impl_e_opts);
@@ -2424,7 +2393,6 @@ int CkCreateArrayExt(int cIdx, int ndims, int *dims, int eIdx, int num_bufs,
 }
 
 // TODO options
-extern "C"
 void CkInsertArrayExt(int aid, int ndims, int *index, int epIdx, int onPE, int num_bufs,
                       char **bufs, int *buf_sizes, char useAtSync) {
   CkAssert(num_bufs >= 1);
@@ -2445,7 +2413,6 @@ void CkInsertArrayExt(int aid, int ndims, int *index, int epIdx, int onPE, int n
   CProxy_ArrayBase(gId).ckInsertIdx((CkArrayMessage *)impl_msg, epIdx, onPE, newIdx);
 }
 
-extern "C"
 void CkMigrateExt(int aid, int ndims, int *index, int toPe) {
   //printf("[charm] CkMigrateMeExt called with aid: %d, ndims: %d, index: %d, toPe: %d\n",
         //aid, ndims, *index, toPe);
@@ -2458,21 +2425,18 @@ void CkMigrateExt(int aid, int ndims, int *index, int toPe) {
   arrayElement->migrateMe(toPe);
 }
 
-extern "C"
 void CkArrayDoneInsertingExt(int aid) {
   CkGroupID gId;
   gId.idx = aid;
   CProxy_ArrayBase(gId).doneInserting();
 }
 
-extern "C"
 int CkGroupGetReductionNumber(int g_id) {
   CkGroupID gId;
   gId.idx = g_id;
   return ((Group*)CkLocalBranch(gId))->getRedNo();
 }
 
-extern "C"
 int CkArrayGetReductionNumber(int aid, int ndims, int *index) {
   CkGroupID gId;
   gId.idx = aid;
@@ -2483,7 +2447,6 @@ int CkArrayGetReductionNumber(int aid, int ndims, int *index) {
   return arrayElement->getRedNo();
 }
 
-extern "C"
 void CkChareExtSend(int onPE, void *objPtr, int epIdx, char *msg, int msgSize) {
   //ckCheck();    // checks that gid is not zero
   int marshall_msg_size = (sizeof(char)*msgSize + 3*sizeof(int));
@@ -2500,7 +2463,6 @@ void CkChareExtSend(int onPE, void *objPtr, int epIdx, char *msg, int msgSize) {
   CkSendMsg(epIdx, impl_msg, &chareID);
 }
 
-extern "C"
 void CkChareExtSend_multi(int onPE, void *objPtr, int epIdx, int num_bufs, char **bufs, int *buf_sizes) {
   CkAssert(num_bufs >= 1);
   //ckCheck();    // checks that gid is not zero
@@ -2520,7 +2482,6 @@ void CkChareExtSend_multi(int onPE, void *objPtr, int epIdx, int num_bufs, char
   CkSendMsg(epIdx, impl_msg, &chareID);
 }
 
-extern "C"
 void CkGroupExtSend(int gid, int pe, int epIdx, char *msg, int msgSize) {
   //ckCheck();    // checks that gid is not zero
   int marshall_msg_size = (sizeof(char)*msgSize + 3*sizeof(int));
@@ -2539,7 +2500,6 @@ void CkGroupExtSend(int gid, int pe, int epIdx, char *msg, int msgSize) {
     CkSendMsgBranch(epIdx, impl_msg, pe, gId, 0);
 }
 
-extern "C"
 void CkGroupExtSend_multi(int gid, int pe, int epIdx, int num_bufs, char **bufs, int *buf_sizes) {
   CkAssert(num_bufs >= 1);
   //ckCheck();    // checks that gid is not zero
@@ -2561,7 +2521,6 @@ void CkGroupExtSend_multi(int gid, int pe, int epIdx, int num_bufs, char **bufs,
     CkSendMsgBranch(epIdx, impl_msg, pe, gId, 0);
 }
 
-extern "C"
 void CkArrayExtSend(int aid, int *idx, int ndims, int epIdx, char *msg, int msgSize) {
   int marshall_msg_size = (sizeof(char)*msgSize + 3*sizeof(int));
   CkMarshallMsg *impl_msg = CkAllocateMarshallMsg(marshall_msg_size, NULL);
@@ -2584,7 +2543,6 @@ void CkArrayExtSend(int aid, int *idx, int ndims, int epIdx, char *msg, int msgS
   }
 }
 
-extern "C"
 void CkArrayExtSend_multi(int aid, int *idx, int ndims, int epIdx, int num_bufs, char **bufs, int *buf_sizes) {
   CkAssert(num_bufs >= 1);
   int totalSize = 0;
@@ -2733,8 +2691,8 @@ private:
   }
 };
 
-extern "C" void CkMessageReplayQuiescence(void *rep, double time);
-extern "C" void CkMessageDetailReplayDone(void *rep, double time);
+void CkMessageReplayQuiescence(void *rep, double time);
+void CkMessageDetailReplayDone(void *rep, double time);
 
 class CkMessageReplay : public CkMessageWatcher {
   int counter;
@@ -2977,7 +2935,7 @@ public:
   }
 };
 
-extern "C" void CkMessageReplayQuiescence(void *rep, double time) {
+void CkMessageReplayQuiescence(void *rep, double time) {
 #if ! CMK_BIGSIM_CHARM
   CkPrintf("[%d] Quiescence detected\n",CkMyPe());
 #endif
@@ -2985,7 +2943,7 @@ extern "C" void CkMessageReplayQuiescence(void *rep, double time) {
   //CmiStartQD(CkMessageReplayQuiescence, replay);
 }
 
-extern "C" void CkMessageDetailReplayDone(void *rep, double time) {
+void CkMessageDetailReplayDone(void *rep, double time) {
   CkMessageDetailReplay *replay = (CkMessageDetailReplay *)rep;
   CkPrintf("[%d] Detailed replay finished after %f seconds. Exiting.\n",CkMyPe(),CkWallTimer()-replay->starttime);
   ConverseExit();
@@ -3001,7 +2959,7 @@ static bool CpdExecuteThreadResume(CthThreadToken *token) {
 }
 
 CpvExtern(int, CthResumeNormalThreadIdx);
-extern "C" void CthResumeNormalThreadDebug(CthThreadToken* token)
+void CthResumeNormalThreadDebug(CthThreadToken* token)
 {
   CthThread t = token->thread;
 
@@ -3131,7 +3089,6 @@ void CkMessageWatcherInit(char **argv,CkCoreState *ck) {
        }
 }
 
-extern "C"
 int CkMessageToEpIdx(void *msg) {
         envelope *env=UsrToEnv(msg);
        int ep=env->getEpIdx();
@@ -3141,13 +3098,11 @@ int CkMessageToEpIdx(void *msg) {
                return ep;
 }
 
-extern "C"
 int getCharmEnvelopeSize() {
   return sizeof(envelope);
 }
 
 /// Best-effort guess at whether @arg msg points at a charm envelope
-extern "C"
 int isCharmEnvelope(void *msg) {
     envelope *e = (envelope *)msg;
     if (SIZEFIELD(msg) < sizeof(envelope)) return 0;
index 7354dfbc2cce91c714b79d656d8def547ca7e198..95acffb765f713fe103176d06b8b07ab5328c792 100644 (file)
 #endif
 
 // Flag that tells the system if we are replaying using Record/Replay
-CMI_EXTERNC_VARIABLE int _replaySystem;
+extern int _replaySystem;
 
 #if CMK_CHARMDEBUG
-extern "C" int ConverseDeliver(int pe);
+int ConverseDeliver(int pe);
 inline void _CldEnqueue(int pe, void *msg, int infofn) {
   if (!ConverseDeliver(pe)) {
     CmiFree(msg);
index 639fbb060faeea6bcc27f7c41cd6fe43e81e425f..33c1b924e62a85096b92494d0eba89e32366a84f 100644 (file)
@@ -1586,7 +1586,7 @@ void init_memcheckpt(char **argv)
 }
 #endif
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 class CkMemCheckPTInit: public Chare {
 public:
index ffc11b326fb440efd0f69464e42dc6402e7ba7ff..276f0fe7b4bee3c10dded8651a3c867b14e83cf4 100644 (file)
@@ -47,8 +47,8 @@ void CpdFinishInitialization() {
   CkpvAccess(_debugEntryTable).resize(_entryTable.size());
 }
 
-extern "C" void resetAllCRC();
-extern "C" void checkAllCRC(int report);
+void resetAllCRC();
+void checkAllCRC(int report);
 
 typedef struct DebugRecursiveEntry {
   int previousChareID;
@@ -64,7 +64,7 @@ void *CpdGetCurrentObject() { return _debugData.peek().obj; }
 void *CpdGetCurrentMsg() { return _debugData.peek().msg; }
 
 extern int cpdInSystem;
-extern "C" int CpdInUserCode() {return cpdInSystem==0 && _debugData.length()>0 && _debugData.peek().alreadyUserCode==1;}
+int CpdInUserCode() {return cpdInSystem==0 && _debugData.length()>0 && _debugData.peek().alreadyUserCode==1;}
 
 // Function called right before an entry method
 void CpdBeforeEp(int ep, void *obj, void *msg) {
@@ -599,7 +599,7 @@ void *CpdGetNextMessageConditional(CsdSchedulerState_t *s) {
 #include <sys/ipc.h>
 #include <sys/shm.h>
 
-extern "C" void CpdDeliverSingleMessage ();
+void CpdDeliverSingleMessage ();
 
 static pid_t CpdConditional_SetupComm() {
   int pipefd[2][2];
@@ -665,7 +665,7 @@ void CpdEndConditionalDelivery(char *msg) {
   _exit(0);
 }
 
-extern "C" void CpdEndConditionalDeliver_master() {
+void CpdEndConditionalDeliver_master() {
   close(conditionalPipe[0]);
   conditionalPipe[0] = 0;
   close(conditionalPipe[1]);
@@ -808,7 +808,6 @@ static void _call_freeze_on_break_point(void * msg, void * object)
 }
 
 //ccs handler when pressed the "next" command: deliver only a single message without unfreezing
-extern "C"
 void CpdDeliverSingleMessage () {
   if (!CpdIsFrozen()) return; /* Do something only if we are in freeze mode */
   if ( (CkpvAccess(lastBreakPointMsg) != NULL) && (CkpvAccess(lastBreakPointObject) != NULL) ) {
@@ -851,7 +850,6 @@ void CpdDeliverSingleMessage () {
 }
 
 //ccs handler when continue from a break point
-extern "C"
 void CpdContinueFromBreakPoint ()
 {
     CpdUnFreeze();
@@ -969,7 +967,7 @@ void CpdRemoveAllBreakPoints ()
   CcsSendReply(sizeof(int), (void*)&reply);
 }
 
-extern "C" int CpdIsCharmDebugMessage(void *msg) {
+int CpdIsCharmDebugMessage(void *msg) {
   envelope *env = (envelope*)msg;
   // Later should use "isDebug" value, but for now just bypass all intrinsic EPs
   return CmiGetHandler(msg) != _charmHandlerIdx || env->getMsgtype() == ForVidMsg ||
@@ -978,7 +976,7 @@ extern "C" int CpdIsCharmDebugMessage(void *msg) {
 
 #if CMK_BIGSIM_CHARM
 CpvExtern(int, _bgCcsHandlerIdx);
-extern "C" int CpdIsBgCharmDebugMessage(void *msg) {
+int CpdIsBgCharmDebugMessage(void *msg) {
   envelope *env = (envelope*)msg;
   if (CmiBgMsgFlag(msg) == BG_CLONE) {
     env=*(envelope**)(((char*)msg)+CmiBlueGeneMsgHeaderSizeBytes);
@@ -1040,13 +1038,11 @@ void CpdStartGdb(void)
 #endif
 }
 
-extern "C" {
-  size_t cpd_memory_length(void*);
-  void cpd_memory_pup(void*,void*,CpdListItemsRequest*);
-  void cpd_memory_leak(void*,void*,CpdListItemsRequest*);
-  size_t cpd_memory_getLength(void*);
-  void cpd_memory_get(void*,void*,CpdListItemsRequest*);
-}
+size_t cpd_memory_length(void*);
+void cpd_memory_pup(void*,void*,CpdListItemsRequest*);
+void cpd_memory_leak(void*,void*,CpdListItemsRequest*);
+size_t cpd_memory_getLength(void*);
+void cpd_memory_get(void*,void*,CpdListItemsRequest*);
 
 
 void CpdCharmInit()
@@ -1090,7 +1086,7 @@ void CpdCharmInit()
 #if CMK_BIGSIM_CHARM
 CpvExtern(int, _bgCcsHandlerIdx);
 CpvExtern(int, _bgCcsAck);
-extern "C" void req_fw_handler(char*);
+void req_fw_handler(char*);
 CkpvExtern(void *, debugQueue);
 CkpvExtern(int, freezeModeFlag);
 #include "blue_impl.h"
@@ -1129,7 +1125,7 @@ void CpdFinishInitialization() {}
 
 void *CpdGetCurrentObject() {return NULL;}
 void *CpdGetCurrentMsg() {return NULL;}
-extern "C" void CpdEndConditionalDeliver_master() {}
+void CpdEndConditionalDeliver_master() {}
 
 void CpdBeforeEp(int ep, void *obj, void *msg) {}
 void CpdAfterEp(int ep) {}
index 49ed7de4224fb23df1cab21d477499acb6725c65..3ff84190c0a3257f3190b6d4979f145f7d2af1e2 100644 (file)
@@ -176,7 +176,7 @@ extern int userDrivenMode;
 extern void _libExitHandler(envelope *env);
 extern int _libExitHandlerIdx;
 CpvCExtern(int,interopExitFlag);
-extern "C" void StopInteropScheduler();
+void StopInteropScheduler();
 
 #if CMK_SHRINK_EXPAND
 //for shrink expand cleanup
@@ -243,8 +243,8 @@ void processRaiseEvacFile(char *raiseEvacFile);
 
 extern bool useNodeBlkMapping;
 
-CMI_EXTERNC_VARIABLE int quietMode;
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietMode;
+extern int quietModeRequested;
 
 // Modules are required to register command line opts they will parse. These
 // options are stored in the _optSet, and then when parsing command line opts
@@ -584,7 +584,7 @@ extern void _messageLoggingExit();
 
 #if __FAULT__
 //CpvExtern(int, CldHandlerIndex);
-//extern "C" void CldHandler(char *);
+//void CldHandler(char *);
 extern int index_skipCldHandler;
 extern void _skipCldHandler(void *converseMsg);
 
@@ -1084,7 +1084,6 @@ static void _initHandler(void *msg, CkCoreState *ck)
 }
 
 #if CMK_SHRINK_EXPAND
-extern "C"
 void CkCleanup()
 {
        // always send to PE 0
@@ -1132,7 +1131,6 @@ void CkContinueExit()
    Tear down structures that must be cleaned up even when unclean exit happens.
    It is called by the machine layer whenever some problem occurs (it is thus up
    to the machine layer to call this function). */
-extern "C"
 void EmergencyExit(void) {
 #ifndef __BIGSIM__
   /* Delete _coreState to force any CkMessageWatcher to close down. */
@@ -1170,12 +1168,12 @@ extern void _initChareTables();
 extern void init_memcheckpt(char **argv);
 #endif
 extern "C" void initCharmProjections();
-extern "C" void CmiInitCPUTopology(char **argv);
-extern "C" void CmiCheckAffinity();
-extern "C" void CmiInitMemAffinity(char **argv);
-extern "C" void CmiInitPxshm(char **argv);
+void CmiInitCPUTopology(char **argv);
+void CmiCheckAffinity();
+void CmiInitMemAffinity(char **argv);
+void CmiInitPxshm(char **argv);
 
-//extern "C" void CldCallback();
+//void CldCallback();
 
 void _registerInitCall(CkInitCallFn fn, int isNodeCall)
 {
@@ -1200,11 +1198,11 @@ void InitCallTable::enumerateInitCalls()
 }
 
 CpvCExtern(int, cpdSuspendStartup);
-extern "C" void CpdFreeze(void);
+void CpdFreeze(void);
 
 extern int _dummy_dq;
 
-extern "C" void initQd(char **argv)
+void initQd(char **argv)
 {
        CpvInitialize(QdState*, _qd);
        CpvAccess(_qd) = new QdState();
index c29bb6b59820ebef91763a2559ac9dbae8256349..c4d809e85f5bbf39e22f9f01caf850d9897e068a 100644 (file)
@@ -161,13 +161,13 @@ extern void _registerCommandLineOpt(const char* opt);
 extern void _initCharm(int argc, char **argv);
 extern void _sendReadonlies();
 
-extern "C" int charm_main(int argc, char **argv);
+CLINKAGE int charm_main(int argc, char **argv);
 FLINKAGE void FTN_NAME(CHARM_MAIN_FORTRAN_WRAPPER, charm_main_fortran_wrapper)(int *argc, char **argv);
 
 /** This routine registers the user's main module.  It is normally
     generated by the translator, but for FEM and AMPI may actually be 
     the "fallback" version in compat_regmm.c. */
-extern "C" void CkRegisterMainModule(void);
+CLINKAGE void CkRegisterMainModule(void);
 
 typedef  void  (*CkExitFn) (void);
 
@@ -177,7 +177,7 @@ extern void registerExitFn(CkExitFn);
 // being made to CkContinueExit()
 extern void CkContinueExit();
 
-extern "C" void EmergencyExit(void);
+void EmergencyExit(void);
 
 /*@}*/
 
index e50031e0be1770f4a3bacbb41880a1e9130cdc20..0adcd1335b6347e03447d91696976762cbed9bea 100644 (file)
@@ -46,7 +46,7 @@
 #define CkElapse(x)   
 
 #if CMK_CHARMDEBUG
-extern "C" int ConverseDeliver(int pe);
+int ConverseDeliver(int pe);
 #else
 #define ConverseDeliver(pe)   1
 #endif
index 25cfbac703e929a6b39a4460ec55964811bd4687..7eeb80ffaf3576f77f7dbaca585f1da65d40fdbc 100644 (file)
@@ -24,26 +24,23 @@ extern bool _ringexit;                  // for charm exit
 extern int _ringtoken;
 extern void _initCharm(int unused_argc, char **argv);
 extern void _sendReadonlies();
-extern "C" void CommunicationServerThread(int sleepTime);
+void CommunicationServerThread(int sleepTime);
 extern int CharmLibInterOperate;
 extern int userDrivenMode;
 
-extern "C" void StartInteropScheduler();
-extern "C" void StopInteropScheduler();
+void StartInteropScheduler();
+void StopInteropScheduler();
 
-extern "C"
 void StartCharmScheduler() {
   CmiNodeAllBarrier();
   StartInteropScheduler();
 }
 
-extern "C"
 void StopCharmScheduler() {
   StopInteropScheduler();
 }
 
 // triger LibExit on PE 0,
-extern "C"
 void LibCkExit(void)
 {
   // always send to PE 0
@@ -112,7 +109,6 @@ void _libExitHandler(envelope *env)
 // CharmBeginInit calls sets interop flags then calls ConverseInit. This
 // initializes the runtime, but does not start the scheduler or send readonlies.
 // It returns control the main after main chares have been created.
-extern "C"
 void CharmBeginInit(int argc, char** argv) {
 #if !defined CMK_USE_LRTS || !CMK_USE_LRTS
   CmiAbort("Interop is not supported in non-LRTS machine layers.");
@@ -129,7 +125,6 @@ void CharmBeginInit(int argc, char** argv) {
 // and perform other init such as group creation. They they call CharmFinishInit
 // to bcast readonlies and group creation messages. Control returns to caller
 // after all readonlies are received and all groups are created.
-extern "C"
 void CharmFinishInit() {
   if (CkMyPe() == 0) {
     _sendReadonlies();
@@ -140,7 +135,6 @@ void CharmFinishInit() {
 // CharmInit is the simplified initialization function for apps which have
 // mainchares or don't use readonlies and don't require groups to be created
 // before regular execution. It calls both CharmStartInit and CharmFinishInit.
-extern "C"
 void CharmInit(int argc, char** argv) {
   CharmBeginInit(argc, argv);
   CharmFinishInit();
@@ -150,7 +144,6 @@ void CharmInit(int argc, char** argv) {
 // to call Charm as a library. It does full initialization and starts the
 // scheduler. If Charm is built on MPI, multiple Charm instances can be created
 // using different communicators.
-extern "C"
 void CharmLibInit(MPI_Comm userComm, int argc, char **argv) {
 
 #if CMK_USE_LRTS && !CMK_HAS_INTEROP
@@ -177,7 +170,6 @@ void CharmLibInit(MPI_Comm userComm, int argc, char **argv) {
 // continue.
 #undef CkExit
 #define CkExit CKEXIT_0 // CKEXIT_0 and other CkExit macros defined in charm.h
-extern "C"
 void CharmLibExit() {
   _cleanUp = 1;
   CmiNodeAllBarrier();
index aff8b11df024fae9a6afb837fefd897cb7a45107..2889be72cd6e3675a43357479406e0e39fe0e167 100644 (file)
@@ -12,7 +12,7 @@
 
 extern LBAllocFn getLBAllocFn(const char *lbname);
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(AdaptiveLB, "Allow multiple strategies to work serially")
 
index 7614953a9516d8a2c6d583496d3d7a569574f0b8..76453523aed177ee131196911328317c5cb329a6 100644 (file)
@@ -3,7 +3,7 @@
 #include "BlockLB.h"
 #include <math.h>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def (BlockLB, "Allocate objects in blocks to the remaining valid PE")
 
index 5e9d11edd3881eebba5bd88a8271ddf43c642a3f..a2039d1defb3d7ce9d0253d53a21699dcf776f95 100644 (file)
@@ -13,7 +13,7 @@ Status:
 
 extern LBAllocFn getLBAllocFn(const char *lbname);
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(ComboCentLB, "Allow multiple strategies to work serially")
 
index 7d2868182a88eec3b10051ac7154fa84a63d4212..4f4a6447362dad066fcd37f857ce3208c21844c7 100644 (file)
@@ -49,7 +49,7 @@ inline void getPossiblePes(vector<int>& possible_pes, int randomly_obj_id,
 double upper_threshold;
 double lower_threshold;
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(CommAwareRefineLB, "always assign the heaviest obj onto lightest loaded processor.")
 
index 01af5acfac458ea054f9e540edafae7c0a499fb6..3c8703338d9e2c6a4c5a60dc1c4fb5134ad863b8 100644 (file)
@@ -23,7 +23,7 @@
 #define UPPER_FACTOR 0.67
 #define MAX_WEIGHT 5.0
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(CommLB, "another variation of CommLB")
 
index fb67fa33492a8f1b2e9b83f612d500e3087266c8..ab423e45dc4244adb806feba23d516077957689d 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "elements.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(DistributedLB, "The distributed load balancer")
 
index 967c2ad4ee92a2159791c10874046436c802c059..6c5c63a402525cdaa77041b5ac0a810bd27f2d5b 100644 (file)
@@ -5,7 +5,7 @@
 
 #include "DummyLB.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(DummyLB, "Dummy load balancer, like a normal one but with empty strategy")
 
index d11250f446e7554c405ea13d13ee3e1b192bd0a5..1e4ee3bfadafce1f322ef46c451a7954352d31e3 100644 (file)
@@ -15,7 +15,7 @@
 #include "ckgraph.h"
 #include <queue>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(GraphBFTLB, "Algorithm which does breadth first traversal for communication aware load balancing")
 
index 1d33c17dd524552afe1ebafb2dd25a77419bd843..a293154d895c19d8b048c4e6d6524ef98de9537b 100644 (file)
@@ -14,7 +14,7 @@
 #include "GraphPartLB.h"
 #include "ckgraph.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(GraphPartLB, "Algorithm which uses graph partitioning for communication aware load balancing")
 
index e2898172c57d37482cd73e8e1bf62e5470438fd4..8f13f01877e93ccaa30883e672f377011e2a4095 100644 (file)
@@ -14,7 +14,7 @@
 
 #define LOAD_OFFSET 0.05
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(GreedyAgentLB,"always assign the heaviest obj onto lightest loaded processor taking into account the topology")
 
index 8a041458bc79428600e113542bb0eaa3e0967886..ee9dc011a4b523cafc2f72a65d085c35b4387b7d 100644 (file)
@@ -19,7 +19,7 @@ Status:
 #include "GreedyCommLB.h"
 #include "manager.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(GreedyCommLB, "Greedy algorithm which takes communication graph into account")
 
index d6ba8e167bb99f06a2ac2648f8ede086c2ccf060..b1b011d7f132c5f110555fa927c9186d5c746fce 100644 (file)
@@ -22,7 +22,7 @@
 
 using namespace std;
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(GreedyLB, "always assign the heaviest obj onto lightest loaded processor.")
 
index 1128834ba189d2c89ba3b5b52379f12c6ae067c3..ced91afdb8a7f63360d1d73a245796dba13e49f6 100644 (file)
@@ -29,7 +29,7 @@
 #include <algorithm>
 #include <math.h>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 // a solution is feasible if num migrations <= user-specified limit
 // LOAD_MIG_BAL is used to control tradeoff between maxload and migrations
index 68a22d93c0febb9c1ca5a39ce7d86baf1913c893..e4497b4244229e8f0a4aaeee5a30ff0921d23425 100644 (file)
@@ -43,7 +43,7 @@
 #include "GridCommLB.h"
 #include "manager.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def (GridCommLB, "Grid communication load balancer (evenly distribute objects across each cluster)")
 
index 053a455e2d87d63f4e501941bedf155275f06096..2d68e51a0e7fff1cf588fb386d50878319b991ea 100644 (file)
@@ -49,7 +49,7 @@
 #include "GridCommRefineLB.h"
 #include "manager.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def (GridCommRefineLB, "Grid communication load balancer (refines object mapping within each cluster)")
 
index f5faf0a09f2ed4a055b4f329c65dded09a502abb..06fb089d9051bb2cd9c7bd9e8b8350644fc26632 100644 (file)
@@ -11,7 +11,7 @@
 #include "GridHybridLB.h"
 #include "manager.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def (GridHybridLB, "Grid load balancer that uses hybrid technique to optimize communication graph")
 
index 109a65931eef7db4f00d11cd303897aaca24ec0a..3f8442b3bfb395848a8f3ebfc1d8f6871c40cb03 100644 (file)
@@ -11,7 +11,7 @@
 #include "GridHybridSeedLB.h"
 #include "manager.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def (GridHybridSeedLB, "Grid load balancer that uses hybrid seed technique to optimize communication graph")
 
index b95a8f0cf0e9a89bf4c780d7250fab72364e828e..026aecdbdde66289764057fd31d0e68d226fe62d 100644 (file)
@@ -11,7 +11,7 @@
 #include "GridMetisLB.h"
 #include "manager.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def (GridMetisLB, "Grid load balancer that uses Metis to optimize communication graph")
 
index b90a57b47dcd65e51325a8423d408c4ad69035dc..ff968e6123fe5f0d72286474513101480d55f5c4 100644 (file)
@@ -12,7 +12,7 @@
 
 #define  DEBUGF(x)     // CmiPrintf x;
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(HybridBaseLB, "HybridBase load balancer")
 
index 3de6ec493f4d8e19c83323164391bcc329740f3c..a3ad5c60d5dfca3fc0dd87406157fe276be4c8b7 100644 (file)
@@ -118,7 +118,7 @@ CkpvExtern(bool, hasNullLB);
 CkpvExtern(bool, lbdatabaseInited);
 
 // LB options, mostly controled by user parameter
-CMI_EXTERNC_VARIABLE char * _lbtopo;
+extern char * _lbtopo;
 
 typedef void (*LBCreateFn)();
 typedef BaseLB * (*LBAllocFn)();
index e8d22dc2affca618a3f915e9c2cc965b3b2ecd4f..8cffc42f48c711eef0ac4866ca16452834fdc832 100644 (file)
@@ -12,7 +12,7 @@
 #include "ckgraph.h"
 #include <metis.h>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(MetisLB, "Use Metis(tm) to partition object graph")
 
index 05e281e266ae28c3f52e0e83ec2003c979f45d0d..69c70a59a7b991f6ac08490b0aff9c95a77224e2 100644 (file)
@@ -7,7 +7,7 @@
 #include "ckheap.h"
 #include "NeighborLB.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(NeighborLB, "The neighborhood load balancer")
 
index 6ff3e4f3791d1d4d49158cc4c4bd3e9b2e5d5a7e..9d3465df1aee994c261d72277100c8d96a7674ca 100644 (file)
@@ -9,7 +9,7 @@
 
 extern LBAllocFn getLBAllocFn(const char *lbname);
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(NodeLevelLB, "Node level load balancer")
 
index 2c9af8a373765af1ba25a0d4cce328db2fbcd234..53c03a95c1807a2dfd9fd8da76f4bfd42a039f58 100644 (file)
@@ -12,7 +12,7 @@ load balancer around.
 
 #define NULLLB_CONVERSE                     1
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 void CreateNullLB(void) {
   // special seqno -1
index 3800a9c3249fea6c8e1228197618c209c62f098b..0455fe08405965e27bc6064f7c0690045cda5ef6 100644 (file)
@@ -15,7 +15,7 @@
 
 //#define DEBUG
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(OrbLB, "partition objects based on coordinates")
 
index 88d75a8c7319c7013e80d7809a4c6b5492538b39..6ff2023dd48461f716617fb2e269c04c472ba1fd 100644 (file)
@@ -7,7 +7,7 @@
 
 extern LBAllocFn getLBAllocFn(const char *lbname);
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(PhasebyArrayLB, "Load balancer which balances many arrays together, specifically for CPAIMD")
 
index 2fb1a3140d401ef79c160cbdc76a7b35ef683b8c..1e3ac9cf6cfc178536d153d98dbea3745478510e 100644 (file)
@@ -11,7 +11,7 @@ Status:
 
 #include "RandCentLB.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(RandCentLB, "Assign objects to processors randomly")
 
index 4d97cffb40ab845f61d6da0449f62adab363fbc4..c74ee9d3d0e98b42a0fed023b50ad65645f45031 100644 (file)
@@ -28,7 +28,7 @@
 
 using std::vector;
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 /**
  *  Class to contain additional data about the vertices in object graph
index 93ce77492546d95594ed17e99fca4a743382e67e..d5ee3f373f38f297458bc9d5c14cfc866900d115 100644 (file)
@@ -37,7 +37,7 @@ extern "C" {
   void destroySet(BV_Set* s);
 }
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(RecBisectBfLB, "Recursive partitioning with Breadth first enumeration")
 
index 0d778d43485349f1f23723ae422f9574556dc60a..aefb523f9b2b7141c40f0de2a6e41ed922b98642 100644 (file)
@@ -7,7 +7,7 @@
 #include "ckheap.h"
 #include "RefineCommLB.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(RefineCommLB, "Average load among processors by moving objects away from overloaded processor, communication aware")
 
index 736292225e8e31243a84fcc976068b19d326540d..f2856d77250976b61bbeda459c30dc01beae1d6e 100644 (file)
@@ -11,7 +11,7 @@
 #define _USE_RESIDUAL_MOVES_ 1
 //#include "heap.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(RefineKLB, "Move objects away from overloaded processor to reach average")
 
index d4c408a9774569555761d2236d0de9a7a609c32a..c07754781d8892755efd123a039f01a4b98e79b7 100644 (file)
@@ -7,7 +7,7 @@
 #include "ckheap.h"
 #include "RefineLB.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(RefineLB, "Move objects away from overloaded processor to reach average")
 
index 67ce5408c3842723a8f882a59aaeb9481b29056f..b7f6677acb89e553b1f4fc381bb8fa55dc64305a 100644 (file)
@@ -20,7 +20,7 @@
 using std::cout;
 using std::endl;
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(RefineSwapLB,
     "always assign the heaviest obj onto lightest loaded processor.")
index 7d72708d24da3592562f61f223d1f326c3b4c300..d1bfe746657fad57753c6e2808aaa75cd029bd98 100644 (file)
@@ -21,7 +21,7 @@ Date: 04/27/2005
 #define _make_new_grouping_ 0
 #define _USE_MAX_HOPBYTES_ 1
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(RefineTopoLB,"TopoLB: Balance objects based on the network topology")
 
index b3b0b037c024b335caf6982fcef1236e53556b95..459ea3757cf34899790b3ef45dcaca16fc5e4ab9 100644 (file)
@@ -12,7 +12,7 @@
 #include "RotateLB.decl.h"
 #include "RotateLB.h"
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def (RotateLB, "Rotate each object to the next higher PE")
 
index cb20584b4fd6e5ba373d7dc0eb10d4e65d1710bd..ea2765b7a00654728dcecf71305c4a2fb8467850 100644 (file)
@@ -15,7 +15,7 @@
 #include "ckgraph.h"
 #include <scotch.h>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(ScotchLB, "Load balancing using the Scotch graph partitioning library")
 
index cc4ad24ffb27db2bf71f2557070df12fb8011e68..584c0a56e357247fe6cbae66ec7bf020df235e5c 100644 (file)
@@ -12,7 +12,7 @@
 #include "ckgraph.h"
 #include <scotch.h>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(ScotchRefineLB, "Load balancing using the Scotch graph partitioning library")
 
index f60310459b8264e0e571ea1d5968e8f0a5de22c6..57408fcaf94bc4fd131e13c72c1a5b12a327edbf 100644 (file)
@@ -16,7 +16,7 @@
 #include "ckgraph.h"
 #include <scotch.h>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(ScotchTopoLB, "Load balancing using the Scotch graph partitioning library")
 
index 165b483b63c6fb9948b8d6ffc65896ab919435fc..c9e9a1e3cee723004d23755a6b6e21231b4a8926 100644 (file)
@@ -12,7 +12,7 @@
 #include "ckgraph.h"
 #include <metis.h>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(TeamLB, "Use Metis(tm) to partition object graph at two levels: team level and processor level")
 
index b8f1d23fbaf83af1f770d64ee9bb11388647731e..daa0c83fe4b1ca7b697dba4cb7034f8a08257b06 100644 (file)
@@ -99,7 +99,7 @@ inline void getPossiblePes(std::vector<int>& possible_pes, int randomly_obj_id,
 double upper_threshold_temp;
 double lower_threshold_temp;
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(TempAwareCommLB, "always assign the heaviest obj onto lightest loaded processor.")
 
index 5cd3d85b1b8ab59964623625d950574c5ff4d556..0ec1c7ee71edf65cf45c096ca7ee6239105919a9 100644 (file)
@@ -17,7 +17,7 @@
 #include "ckgraph.h"
 #include <algorithm>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(TempAwareGreedyLB, "always assign the heaviest obj onto lightest loaded processor.")
 
index 900eb1fa94363d39c5cf905772f90c50d13efde9..cb42adce80602a0dcfb1c8f61ab30c1f8ebe1250 100644 (file)
@@ -18,7 +18,7 @@
 #include "ckgraph.h"
 #include <algorithm>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(TempAwareRefineLB, "always assign the heaviest obj onto lightest loaded processor.")
 
index 86d6353f5687f77daa0c8da7d3af6fb29ee4146c..229425d5769cfe4aec24517eaf9ed2dbcccf3ec5 100644 (file)
@@ -19,7 +19,7 @@
 //#define RAND_COMM
 #define make_mapping 0
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(TopoCentLB,"Balance objects based on the network topology")
 
index 671c882a6e02dac0c8338652c51cdbeb03d85ece..650f878ccb8042fc6d01ad59dbd81b96ef43983f 100644 (file)
@@ -26,7 +26,7 @@ Date: 04/19/2005
 #define _DIJKSTRA_LIKE_ 0
 #define _INIT_FROM_FILE  
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(TopoLB,"TopoLB: Balance objects based on the network topology")
 
index 9c9c2a37cada4bd0ea9ce6f1117cf198b0311cbb..d522036ad7f08b377184258307f922bd95069cd2 100644 (file)
@@ -10,7 +10,7 @@
 #include "ckgraph.h"
 #include <algorithm>
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(TreeMatchLB, "TreeMatch load balancer, like a normal one but with empty strategy")
 
index f0f4193bab625c17728f2de0f615094f15b63eba..cfa995f595423857f88f9ab69a1837c7f59ab072 100644 (file)
@@ -20,7 +20,7 @@
 #define VACATE_AFTER 30
 #define UNVACATE_AFTER 15
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(WSLB, "Workstation load balancer")
 
index ff2f76d29ddfeed52ea0e2617ab89ae8b11e0d3a..f1fb5a81e88d909c17a88fa3202b3a6385a2e1e8 100644 (file)
@@ -54,7 +54,7 @@ static void get_hypergraph_edge_wgts(void *data, int numGID, int numLID, int num
                                      int edge_weight_dim, ZOLTAN_ID_PTR edgeGID, ZOLTAN_ID_PTR edgeLID,
                                      float *edge_wgts, int *ierr);
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 CreateLBFunc_Def(ZoltanLB, "Use Zoltan(tm) to partition object graph")
 
index d7a6d19f074bfde7e855ec8ce86eb496ea1e3674..3d38c7b3a4085e9ecb281042b15896a2bf14a05e 100644 (file)
@@ -64,12 +64,12 @@ CtvDeclare(int, curThreadEvent);
 CpvDeclare(int, curPeEvent);
 
 #if CMK_BIGSIM_CHARM
-extern "C" double TraceTimerCommon(){return TRACE_TIMER();}
+double TraceTimerCommon(){return TRACE_TIMER();}
 #else
-extern "C" double TraceTimerCommon(){return TRACE_TIMER() - CkpvAccess(traceInitTime);}
+double TraceTimerCommon(){return TRACE_TIMER() - CkpvAccess(traceInitTime);}
 #endif
 #if CMK_TRACE_ENABLED
-extern "C" void CthSetEventInfo(CthThread t, int event, int srcPE);
+void CthSetEventInfo(CthThread t, int event, int srcPE);
 #endif
 /// decide parameters from command line
 static void traceCommonInit(char **argv)
@@ -263,13 +263,11 @@ void traceWriteSTS(FILE *stsfp,int nUserEvents) {
     fprintf(stsfp, "MESSAGE %d %u\n", (int)i, (int)_msgTable[i]->size);
 }
 
-extern "C"
 void traceCommonBeginIdle(void *proj,double curWallTime)
 {
   ((TraceArray *)proj)->beginIdle(curWallTime);
 }
  
-extern "C"
 void traceCommonEndIdle(void *proj,double curWallTime)
 {
   ((TraceArray *)proj)->endIdle(curWallTime);
@@ -320,7 +318,7 @@ extern int Cmi_commthread;
 #endif
 
 /*Install the beginIdle/endIdle condition handlers.*/
-extern "C" void traceBegin(void) {
+void traceBegin(void) {
 #if CMK_TRACE_ENABLED
   DEBUGF(("[%d] traceBegin called with %d at %f\n", CkMyPe(), CpvAccess(traceOn), TraceTimer()));
   
@@ -343,7 +341,7 @@ extern "C" void traceBegin(void) {
 }
 
 /*Cancel the beginIdle/endIdle condition handlers.*/
-extern "C" void traceEnd(void) {
+void traceEnd(void) {
 #if CMK_TRACE_ENABLED
   DEBUGF(("[%d] traceEnd called with %d at %f\n", CkMyPe(), CpvAccess(traceOn), TraceTimer()));
 
@@ -370,7 +368,7 @@ extern "C" void traceEnd(void) {
 #endif
 }
 
-extern "C" void traceBeginComm(void) {
+void traceBeginComm(void) {
 #if CMK_TRACE_ENABLED && CMK_SMP_TRACE_COMMTHREAD
 #if CMK_MULTICORE
   if (Cmi_commthread)
@@ -384,7 +382,7 @@ extern "C" void traceBeginComm(void) {
 #endif
 }
 
-extern "C" void traceEndComm(void) {
+void traceEndComm(void) {
 #if CMK_TRACE_ENABLED && CMK_SMP_TRACE_COMMTHREAD
 #if CMK_MULTICORE
   if (Cmi_commthread)
@@ -496,7 +494,7 @@ static inline void _traceInit(char **argv)
 }
 
 /// Converse version
-extern "C" void traceInit(char **argv) 
+void traceInit(char **argv) 
 {
 #if ! CMK_TRACE_IN_CHARM
   _traceInit(argv);
@@ -505,7 +503,7 @@ extern "C" void traceInit(char **argv)
 }
 
 /// Charm++ version
-extern "C" void traceCharmInit(char **argv) 
+void traceCharmInit(char **argv) 
 {
 #if CMK_TRACE_IN_CHARM
   _traceInit(argv);
@@ -513,7 +511,6 @@ extern "C" void traceCharmInit(char **argv)
 }
 
 // CMK_TRACE_ENABLED is already guarded in convcore.C
-extern "C"
 void traceMessageRecv(char *msg, int pe)
 {
 #if ! CMK_TRACE_IN_CHARM
@@ -521,13 +518,13 @@ void traceMessageRecv(char *msg, int pe)
 #endif
 }
 
-extern "C" 
+
 void traceBeginIdle()
 {
     _TRACE_ONLY(CkpvAccess(_traces)->beginIdle(CmiWallTimer()));
 }
 
-extern "C" 
+
 void traceEndIdle()
 {
     _TRACE_ONLY(CkpvAccess(_traces)->endIdle(CmiWallTimer()));
@@ -538,7 +535,6 @@ void traceEndIdle()
 // in BigSim, threads need to be traced manually (because virtual processors
 // themselves are implemented as threads and we don't want them to be traced
 // In BigSim, so far, only AMPI threads are traced.
-extern "C"
 void traceResume(int eventID, int srcPE, CmiObjId *tid)
 {
     _TRACE_BEGIN_EXECUTE_DETAILED(eventID, ForChareMsg, _threadEP, srcPE, 0, NULL, tid);
@@ -546,13 +542,11 @@ void traceResume(int eventID, int srcPE, CmiObjId *tid)
            resumeTraceCore();
 }
 
-extern "C"
 void traceSuspend(void)
 {
   _TRACE_ONLY(CkpvAccess(_traces)->endExecute());
 }
 
-extern "C"
 void traceAwaken(CthThread t)
 {
   CkpvAccess(_traces)->creation(0, _threadEP);
@@ -561,7 +555,6 @@ void traceAwaken(CthThread t)
 #endif
 }
 
-extern "C"
 void traceUserEvent(int e)
 {
 #if CMK_TRACE_ENABLED
@@ -570,7 +563,7 @@ void traceUserEvent(int e)
 #endif
 }
 
-extern "C" 
+
 void beginAppWork()
 {
 #if CMK_TRACE_ENABLED
@@ -581,7 +574,7 @@ void beginAppWork()
 #endif
 }
 
-extern "C" 
+
 void endAppWork()
 {
 #if CMK_TRACE_ENABLED
@@ -592,7 +585,6 @@ void endAppWork()
 #endif
 }
 
-extern "C"
 void countNewChare()
 {
 #if CMK_TRACE_ENABLED
@@ -604,7 +596,6 @@ void countNewChare()
 }
 
 
-extern "C"
 void beginTuneOverhead()
 {
 #if CMK_TRACE_ENABLED
@@ -615,7 +606,6 @@ void beginTuneOverhead()
 #endif
 }
 
-extern "C"
 void endTuneOverhead()
 {
 #if CMK_TRACE_ENABLED
@@ -626,7 +616,6 @@ void endTuneOverhead()
 #endif
 }
 
-extern "C"
 void traceUserBracketEvent(int e, double beginT, double endT)
 {
 #if CMK_TRACE_ENABLED
@@ -636,7 +625,6 @@ void traceUserBracketEvent(int e, double beginT, double endT)
 }
 
 // trace a UserBracketEvent that is coming from a "nested" thread, e.g. a virtual AMPI rank
-extern "C"
 void traceUserBracketEventNestedID(int e, double beginT, double endT, int nestedID)
 {
 #if CMK_TRACE_ENABLED
@@ -645,7 +633,6 @@ void traceUserBracketEventNestedID(int e, double beginT, double endT, int nested
 #endif
 }
 
-extern "C"
 void traceBeginUserBracketEvent(int e)
 {
 #if CMK_TRACE_ENABLED
@@ -654,7 +641,6 @@ void traceBeginUserBracketEvent(int e)
 #endif
 }
 
-extern "C"
 void traceBeginUserBracketEventNestedID(int e, int nestedID)
 {
 #if CMK_TRACE_ENABLED
@@ -663,7 +649,6 @@ void traceBeginUserBracketEventNestedID(int e, int nestedID)
 #endif
 }
 
-extern "C"
 void traceEndUserBracketEvent(int e)
 {
 #if CMK_TRACE_ENABLED
@@ -672,7 +657,6 @@ void traceEndUserBracketEvent(int e)
 #endif
 }
 
-extern "C"
 void traceEndUserBracketEventNestedID(int e, int nestedID)
 {
 #if CMK_TRACE_ENABLED
@@ -682,7 +666,6 @@ void traceEndUserBracketEventNestedID(int e, int nestedID)
 }
 
 //common version of User Stat Functions
-extern "C"
 int traceRegisterUserStat(const char*x, int e)
 {
 #if CMK_TRACE_ENABLED
@@ -692,7 +675,6 @@ int traceRegisterUserStat(const char*x, int e)
 #endif
 }
 
-extern "C"
 void updateStatPair(int e, double stat, double time)
 {
 #if CMK_TRACE_ENABLED
@@ -701,7 +683,6 @@ void updateStatPair(int e, double stat, double time)
 #endif
 }
 
-extern "C"
 void updateStat(int e, double stat)
 {
 #if CMK_TRACE_ENABLED
@@ -710,7 +691,6 @@ void updateStat(int e, double stat)
 #endif
 }
 
-extern "C"
 void traceUserSuppliedData(int d)
 {
 #if CMK_TRACE_ENABLED
@@ -719,7 +699,6 @@ void traceUserSuppliedData(int d)
 #endif
 }
 
-extern "C"
 void traceUserSuppliedNote(const char * note)
 {
 #if CMK_TRACE_ENABLED
@@ -729,7 +708,6 @@ void traceUserSuppliedNote(const char * note)
 }
 
 
-extern "C"
 void traceUserSuppliedBracketedNote(const char *note, int eventID, double bt, double et)
 {
   //CkPrintf("traceUserSuppliedBracketedNote(const char *note, int eventID, double bt, double et)\n");
@@ -740,7 +718,6 @@ void traceUserSuppliedBracketedNote(const char *note, int eventID, double bt, do
 }
 
 
-extern "C"
 void traceMemoryUsage()
 {
 #if CMK_TRACE_ENABLED
@@ -751,19 +728,16 @@ void traceMemoryUsage()
 #endif
 }
 
-extern "C"
 void tracePhaseEnd()
 {
   _TRACE_ONLY(CkpvAccess(_traces)->endPhase());
 }
 
-extern "C"
 void registerMachineUserEventsFunction(void (*eventRegistrationFunc)()) {
   CmiAssert(CpvInitialized(machineTraceFuncPtr));
   CpvAccess(machineTraceFuncPtr) = eventRegistrationFunc;
 }
 
-extern "C"
 void (*registerMachineUserEvents())() {
   CmiAssert(CpvInitialized(machineTraceFuncPtr));
   if (CpvAccess(machineTraceFuncPtr) != NULL) {
@@ -773,7 +747,6 @@ void (*registerMachineUserEvents())() {
   }
 }
 
-extern "C"
 int traceRegisterUserEvent(const char*x, int e)
 {
 #if CMK_TRACE_ENABLED
@@ -783,21 +756,18 @@ int traceRegisterUserEvent(const char*x, int e)
 #endif
 }
 
-extern "C"
 void traceClearEps(void)
 {
   OPTIMIZE_WARNING
   CkpvAccess(_traces)->traceClearEps();
 }
 
-extern "C"
 void traceWriteSts(void)
 {
   OPTIMIZE_WARNING
   CkpvAccess(_traces)->traceWriteSts();
 }
 
-extern "C"
 void traceFlushLog(void)
 {
   OPTIMIZE_WARNING
@@ -808,7 +778,6 @@ void traceFlushLog(void)
     traceClose:        this function is called at Converse
     traceCharmClose:   called at Charm++ level
 */
-extern "C"
 void traceClose(void)
 {
 #if ! CMK_BIGSIM_CHARM
@@ -817,7 +786,6 @@ void traceClose(void)
 #endif   
 }
 
-extern "C"
 void traceCharmClose(void)
 {
 #if CMK_BIGSIM_CHARM
@@ -829,7 +797,6 @@ void traceCharmClose(void)
 /* **CW** This is the API called from user code to support CCS operations 
    if supported by the underlying trace module.
  */
-extern "C"
 void traceEnableCCS(void)
 {
   OPTIMIZE_WARNING
@@ -839,7 +806,6 @@ void traceEnableCCS(void)
 /* **CW** Support for thread listeners. This makes a call to each
    trace module which must support the call.
 */
-extern "C"
 void traceAddThreadListeners(CthThread tid, envelope *e) {
   _TRACE_ONLY(CkpvAccess(_traces)->traceAddThreadListeners(tid, e));
 }
@@ -849,7 +815,7 @@ void traceAddThreadListeners(CthThread tid, envelope *e) {
 extern int _charmHandlerIdx;
 class CkCoreState;
 extern void _processHandler(void *, CkCoreState*);
-extern "C" int isCharmEnvelope(void *msg);
+int isCharmEnvelope(void *msg);
 int CkIsCharmMessage(char *msg)
 {
 //CmiPrintf("[%d] CkIsCharmMessage: %d %p %d %p\n", CkMyPe(),CmiGetHandler(msg), CmiGetHandlerFunction(msg), _charmHandlerIdx, _processHandler);
@@ -890,7 +856,6 @@ void TraceArray::creationMulticast(envelope *env, int ep, int num,
 }
 
 #if CMK_SMP_TRACE_COMMTHREAD
-extern "C"
 int traceBeginCommOp(char *msg){
 #if CMK_TRACE_ENABLED
   if (CpvAccess(traceOn) && CkpvAccess(_traces) && CkIsCharmMessage(msg)) {
@@ -901,7 +866,6 @@ int traceBeginCommOp(char *msg){
 #endif
 }
 
-extern "C"
 void traceEndCommOp(char *msg){
 #if CMK_TRACE_ENABLED
   if (CpvAccess(traceOn) && CkpvAccess(_traces) && CkIsCharmMessage(msg))
@@ -909,7 +873,6 @@ void traceEndCommOp(char *msg){
 #endif
 }
 
-extern "C"
 void traceSendMsgComm(char *msg){
 #if CMK_TRACE_ENABLED
   if (CpvAccess(traceOn) && CkpvAccess(_traces) && CkIsCharmMessage(msg))
@@ -917,7 +880,6 @@ void traceSendMsgComm(char *msg){
 #endif
 }
 
-extern "C"
 void traceCommSetMsgID(char *msg){
 #if CMK_TRACE_ENABLED
   if (CpvAccess(traceOn) && CkpvAccess(_traces) && CkIsCharmMessage(msg))
@@ -927,7 +889,6 @@ void traceCommSetMsgID(char *msg){
 
 #endif
 
-extern "C"
 void traceGetMsgID(char *msg, int *pe, int *event)
 {
 #if CMK_TRACE_ENABLED
@@ -936,7 +897,6 @@ void traceGetMsgID(char *msg, int *pe, int *event)
 #endif
 }
 
-extern "C"
 void traceSetMsgID(char *msg, int pe, int event)
 {
 #if CMK_TRACE_ENABLED
@@ -946,7 +906,6 @@ void traceSetMsgID(char *msg, int pe, int event)
 }
 
 
-extern "C"
 void traceChangeLastTimestamp(double ts){
 #if CMK_TRACE_ENABLED
   if (CpvAccess(traceOn) && CkpvAccess(_traces))
@@ -1074,7 +1033,6 @@ void initPAPI() {
 }
 #endif
 
-extern "C"
 void traceSend(void *env, int pe, int size)
 {
 #if CMK_TRACE_ENABLED
@@ -1083,7 +1041,6 @@ void traceSend(void *env, int pe, int size)
 #endif
 }
 
-extern "C"
 void traceRecv(void *env , int size)
 {
 #if CMK_TRACE_ENABLED
index 969ac9b13c36dc1c56117dde476f242b6e1e95b7..e76070b58a578b6dbbf10613301e1b52f0dfc565 100644 (file)
@@ -17,7 +17,6 @@ CpvExtern(int, _traceCoreOn);   /* For cursed projector core */
 int _threadEP=-123; /* for charmProjections.C */
 int traceBluegeneLinked = 0;
 
-CMI_EXTERNC
 void traceInit(char **argv) {
   CpvInitialize(int, traceOn);
   CpvAccess(traceOn)=0;
@@ -30,11 +29,8 @@ void traceInit(char **argv) {
 void traceMessageRecv(char *msg, int pe) {}
 void traceBeginIdle(void) {}
 void traceEndIdle(void) {}
-CMI_EXTERNC
 void traceResume(int event, int srcPE, CmiObjId *t) {}
-CMI_EXTERNC
 void traceSuspend(void) {}
-CMI_EXTERNC
 void traceAwaken(CthThread t) {}
 void traceUserEvent(int i) {}
 void traceUserBracketEvent(int a, double b, double c) {}
@@ -44,7 +40,6 @@ int traceRegisterUserStat(const char* evt, int e) { return -1; }
 void updateStatPair(int e, double stat, double time) {}
 void updateStat(int e, double stat) {}
 
-CMI_EXTERNC
 void traceClose(void) {}
 void traceCharmClose(void) {}
 void traceBegin(void) {}
@@ -73,9 +68,7 @@ void traceSetMsgID(char *msg, int pe, int event) {}
 
 /* This routine, included in Charm++ programs from init.C, needs to be present in converse as well.
    Here is a place where it gets included only in converse, and not in Charm++ (thus not generating conflicts). */
-CMI_EXTERNC
 void EmergencyExit(void) {}
-CMI_EXTERNC
 void CpdEndConditionalDeliver_master(void) {}
 
 
index acc900511c818158b03ab3cecaa6accb0a3179d3..cef397645b2c24aac877f7ead893c55c6377cf57 100644 (file)
@@ -1830,8 +1830,7 @@ void registerOutlierReduction() {
  * done.
  *
  */
-// FIXME: WHY extern "C"???
-extern "C" void TraceProjectionsExitHandler()
+static void TraceProjectionsExitHandler()
 {
 #if CMK_TRACE_ENABLED
 #if DEBUG_KMEANS
index 1e120f8ed3aa15726acf4769ff95bba040e07ae2..6e4aa76bd41b8931bc74fbbd075e1d717c3f3b15 100644 (file)
@@ -55,7 +55,7 @@ static void ccs_killport(char *msg)
 }
 /*Send any registered clients kill messages before we exit*/
 static int noMoreErrors(SOCKET skt, int c, const char *m) {return -1;}
-extern "C" void CcsImpl_kill(void)
+void CcsImpl_kill(void)
 {
   skt_set_abort(noMoreErrors);
   while (killList!=NULL)
@@ -353,7 +353,7 @@ void CpdListRegister(CpdListAccessor *acc)
 { }
 #endif
 
-extern "C" void CpdListRegister_c(const char *path,
+void CpdListRegister_c(const char *path,
             CpdListLengthFn_c len,void *lenParam,
             CpdListItemsFn_c items,void *itemsParam,int checkBoundary)
 #if CMK_CCS_AVAILABLE
@@ -513,7 +513,7 @@ static void CWeb_Collect(void)
   CcdCallFnAfter((CcdVoidFn)CWeb_Collect, 0, WEB_INTERVAL);
 }
 
-extern "C" void CWebPerformanceRegisterFunction(CWebFunction fn)
+void CWebPerformanceRegisterFunction(CWebFunction fn)
 {
   if (CmiMyRank()!=0) return; /* Should only register from rank 0 */
   if (CWebNoOfFns>=MAXFNS) CmiAbort("Registered too many CWebPerformance functions!");
@@ -655,7 +655,7 @@ void CWebInit(void)
 }
 
 
-extern "C" void CcsBuiltinsInit(char **argv)
+void CcsBuiltinsInit(char **argv)
 {
   CcsRegisterHandler("ccs_getinfo",(CmiHandler)ccs_getinfo);
   CcsRegisterHandler("ccs_killport",(CmiHandler)ccs_killport);
index 2885de9fc56bdfd1972bbbb1d75a9cd745c60907..1f7da2e3737eb886948b43239875191cbe31bdf9 100644 (file)
 # define read _read
 #endif
 
-CMI_EXTERNC
 void CpdEndConditionalDeliver_master(void);
 
 #if CMK_CCS_AVAILABLE
 
-CMI_EXTERNC
 int CcsReply(CcsImplHeader *rep,int repLen,const void *repData);
 
 /*****************************************************************************
@@ -164,7 +162,7 @@ void CcsCallerId(skt_ip_t *pip, unsigned int *pport)
   *pport = ChMessageInt(CpvAccess(ccsReq)->attr.port);
 }
 
-CMI_EXTERNC_VARIABLE int rep_fw_handler_idx;
+extern int rep_fw_handler_idx;
 int rep_fw_handler_idx;
 
 CcsDelayedReply CcsDelayReply(void)
@@ -228,7 +226,6 @@ delivery.
   Deliver the given message data to the given
 CCS handler.
 */
-CMI_EXTERNC
 void CcsHandleRequest(CcsImplHeader *hdr,const char *reqData)
 {
   char *cmsg;
@@ -336,7 +333,6 @@ static void bg_req_fw_handler(char *msg) {
 }
 #define req_fw_handler bg_req_fw_handler
 #endif
-CMI_EXTERNC
 void req_fw_handler(char *msg);
 
 void CcsReleaseMessages(void) {
@@ -540,7 +536,6 @@ int _isCcsHandlerIdx(int hIdx) {
   return 0;
 }
 
-CMI_EXTERNC
 void CcsBuiltinsInit(char **argv);
 
 CpvDeclare(int, cmiArgDebugFlag);
index 4defc7d0fb8843357b4db8537c424d736a0dcc7e..74c11aa75c2239550ba4f3c4d5e8d4972e35da93 100644 (file)
@@ -16,9 +16,9 @@
 #endif
 
 #if CMK_CCS_AVAILABLE
-extern "C" void CcsHandleRequest(CcsImplHeader *hdr,const char *reqData);
+void CcsHandleRequest(CcsImplHeader *hdr,const char *reqData);
 
-extern "C" void req_fw_handler(char *msg)
+void req_fw_handler(char *msg)
 {
   int offset = CmiReservedHeaderSize + sizeof(CcsImplHeader);
   CcsImplHeader *hdr = (CcsImplHeader *)(msg+CmiReservedHeaderSize);
@@ -52,12 +52,12 @@ extern "C" void req_fw_handler(char *msg)
   CmiFree(msg);
 }
 
-CMI_EXTERNC_VARIABLE int rep_fw_handler_idx;
+extern int rep_fw_handler_idx;
 /**
  * Decide if the reply is ready to be forwarded to the waiting client,
  * or if combination is required (for broadcast/multicast CCS requests.
  */
-extern "C" int CcsReply(CcsImplHeader *rep,int repLen,const void *repData) {
+int CcsReply(CcsImplHeader *rep,int repLen,const void *repData) {
   int repPE = (int)ChMessageInt(rep->pe);
   if (repPE <= -1) {
     /* Reduce the message to get the final reply */
@@ -128,8 +128,6 @@ CpvDeclare(void *, debugQueue);
 CpvCExtern(int, freezeModeFlag);
 CpvDeclare(int, freezeModeFlag);
 
-extern "C" {
-
 /*
  Start the freeze-- call will not return until unfrozen
  via a CCS request.
@@ -157,8 +155,6 @@ int CpdIsFrozen(void) {
   return CpvAccess(freezeModeFlag);
 }
 
-}
-
 #if CMK_BIGSIM_CHARM
 #include "blue_impl.h"
 void BgProcessMessageFreezeMode(threadInfo *t, char *msg) {
@@ -182,9 +178,9 @@ void BgProcessMessageFreezeMode(threadInfo *t, char *msg) {
 #endif
 
 void PrintDebugStackTrace(void *);
-extern "C" void * MemoryToSlot(void *ptr);
-extern "C" int Slot_StackTrace(void *s, void ***stack);
-extern "C" int Slot_ChareOwner(void *s);
+void * MemoryToSlot(void *ptr);
+int Slot_StackTrace(void *s, void ***stack);
+int Slot_ChareOwner(void *s);
 
 #include <stdarg.h>
 void CpdNotify(int type, ...) {
index 01b1f6c53af76288f7d36f986334e656eb442ca5..0633d8bab638b20ffb4eda0778c96f23c7cfbb47 100644 (file)
@@ -34,9 +34,7 @@ CpvStaticDeclare(int, numOFrees);
 
 /* Once it all works inline it */
 
-CMI_EXTERNC
 void *malloc_nomigrate(size_t size);
-CMI_EXTERNC
 void free_nomigrate(void *mem);
 
 void CmiPoolAllocInit(int numBins)
index 06bbcb970870df630dabaa35c679e2341e4fa180..01a3d76f224ed320cc0fd8d965296e97e5d8e127 100644 (file)
@@ -2,13 +2,13 @@
 #ifndef CMIPOOL_H
 #define CMIPOOL_H  
 
+#define CMI_POOL_HEADER_SIZE 8
+#define CMI_POOL_DEFAULT_BINS 30
+#include "converse.h"
 
 #if defined(__cplusplus)
 extern "C" {
 #endif
-#define CMI_POOL_HEADER_SIZE 8
-#define CMI_POOL_DEFAULT_BINS 30
-#include "converse.h"
 
 #define CMI_POOL_HEADER_SIZE 8
 
index cdcc0da1248b286341db8a437b77f8466e3a380f..4101bffc645e9781f594f4d68cc653afd16e389c 100644 (file)
@@ -26,37 +26,32 @@ std::atomic<int> _cleanUp{0};
 
 CpvCExtern(int,interopExitFlag);
 
-extern "C"
-{
-
 #if CMK_USE_LRTS
-  extern void CommunicationServerThread(int sleepTime);
+extern void CommunicationServerThread(int sleepTime);
 #else
-  void CommunicationServerThread(int sleepTime) { }
+void CommunicationServerThread(int sleepTime) { }
 #endif
 
-  extern int CharmLibInterOperate;
-
-  void StartInteropScheduler() {
-    DEBUG(printf("[%d]Starting scheduler [%d]/[%d]\n",CmiMyPe(),CmiMyRank(),CmiMyNodeSize()););
-    if (CmiMyRank() == CmiMyNodeSize()) {
-      while (interopCommThdExit.load(std::memory_order_relaxed) != CmiMyNodeSize())
-      {
-        CommunicationServerThread(5);
-      }
-      DEBUG(printf("[%d] Commthread Exit Scheduler\n",CmiMyPe()););
-      LrtsDrainResources();
-      interopCommThdExit = 0;
-    } else {
-      CsdScheduler(-1);
-    }
-    CmiNodeAllBarrier();
-  }
+extern int CharmLibInterOperate;
 
-  void StopInteropScheduler() {
-    DEBUG(printf("[%d] Exit Scheduler\n",CmiMyPe()););
-    CpvAccess(interopExitFlag) = 1;
-    interopCommThdExit++;
+void StartInteropScheduler() {
+  DEBUG(printf("[%d]Starting scheduler [%d]/[%d]\n",CmiMyPe(),CmiMyRank(),CmiMyNodeSize()););
+  if (CmiMyRank() == CmiMyNodeSize()) {
+    while (interopCommThdExit.load(std::memory_order_relaxed) != CmiMyNodeSize())
+    {
+      CommunicationServerThread(5);
+    }
+    DEBUG(printf("[%d] Commthread Exit Scheduler\n",CmiMyPe()););
+    LrtsDrainResources();
+    interopCommThdExit = 0;
+  } else {
+    CsdScheduler(-1);
   }
-
-} // extern "C"
+  CmiNodeAllBarrier();
+}
+
+void StopInteropScheduler() {
+  DEBUG(printf("[%d] Exit Scheduler\n",CmiMyPe()););
+  CpvAccess(interopExitFlag) = 1;
+  interopCommThdExit++;
+}
index 85323cd6e1521d4a2a158258452a4661ee00686c..0750952dd73c1d061f49c2e891af4835d9d470cc 100644 (file)
@@ -3,22 +3,22 @@
 
 #include "converse.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* 
  * These functions are called from Converse, and should be provided C binding
  * by the tracing strategies.
  */
 
-CMI_EXTERNC
 void traceInit(char **argv);
 void traceCharmInit(char **argv);      /* init trace module in ck */
 void traceMessageRecv(char *msg, int pe);
 void traceBeginIdle(void);
 void traceEndIdle(void);
-CMI_EXTERNC
 void traceResume(int,int,CmiObjId *);
-CMI_EXTERNC
 void traceSuspend(void);
-CMI_EXTERNC
 void traceAwaken(CthThread t);
 void traceUserEvent(int);
 void beginAppWork(void);
@@ -59,9 +59,7 @@ void traceSetMsgID(char *msg, int pe, int event);
 /* Support for machine layers to register their user events to projections */
 void registerMachineUserEventsFunction(void (*eventRegistrationFunc)());
 
-CMI_EXTERNC
 void traceClose(void);
-CMI_EXTERNC
 void traceCharmClose(void);          /* close trace in ck */
 void traceBegin(void);
 void traceEnd(void);
@@ -108,4 +106,8 @@ int  traceAvailable(void);
 #define TRACE_COMM_SET_COMM_MSGID(msg)
 #endif
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index 564dd7f08cea44baf28528dd405c74813086ee7d..64a5cf329481225c7864437eee80a124e20c1208 100644 (file)
 #include "machineEvents.h"     /* projector */
 #endif
 
-CMI_EXTERNC_VARIABLE const char * const CmiCommitID;
+extern const char * const CmiCommitID;
 
 #if CMI_QD
-CMI_EXTERNC void initQd(char **argv);
+void initQd(char **argv);
 #endif
 
 #if CMK_OUT_OF_CORE
@@ -106,10 +106,9 @@ CmiSwitchToPEFnPtr CmiSwitchToPE;
 #endif
 
 CpvExtern(int, _traceCoreOn);   /* projector */
-CMI_EXTERNC void CcdModuleInit(char **);
-CMI_EXTERNC
+void CcdModuleInit(char **);
 void CmiMemoryInit(char **);
-CMI_EXTERNC void CldModuleInit(char **);
+void CldModuleInit(char **);
 
 #if CMK_WHEN_PROCESSOR_IDLE_USLEEP
 #include <sys/types.h>
@@ -158,8 +157,7 @@ struct envelope;
 void traceAddThreadListeners(CthThread tid, struct envelope *env);
 #endif
 
-CMI_EXTERNC void seedBalancerExit(void);
-CMI_EXTERNC
+void seedBalancerExit(void);
 void EmergencyExit(void);
 
 //int cur_restart_phase = 1;      /* checkpointing/restarting phase counter */
@@ -180,9 +178,7 @@ CpvDeclare(char *, _validProcessors);
 
 #if CMK_CUDA
 CpvExtern(int, n_hapi_events);
-CMI_EXTERNC
 void hapiPollEvents();
-CMI_EXTERNC
 void exitHybridAPI();
 #endif
 
@@ -214,7 +210,6 @@ CpvDeclare(int,expIOBufferSize);
 #endif
 
 #if CMK_NODE_QUEUE_AVAILABLE
-CMI_EXTERNC
 void  *CmiGetNonLocalNodeQ();
 #endif
 
@@ -238,23 +233,20 @@ CpvDeclare(int,   _urgentSend);
 CmiNodeLock _smp_mutex;               /* for smp */
 
 #if CMK_USE_IBVERBS | CMK_USE_IBUD
-CMI_EXTERNC
 void *infi_CmiAlloc(int size);
-CMI_EXTERNC
 void infi_CmiFree(void *ptr);
 void infi_freeMultipleSend(void *ptr);
-CMI_EXTERNC
 void infi_unregAndFreeMeta(void *ch);
 #endif
 
 #if CMK_SMP && CMK_BLUEGENEQ && SPECIFIC_PCQUEUE
-CMI_EXTERNC void * CmiAlloc_bgq (int     size);
-CMI_EXTERNC void   CmiFree_bgq  (void  * buf);
+void * CmiAlloc_bgq (int     size);
+void   CmiFree_bgq  (void  * buf);
 #endif
 
 #if CMK_SMP && CMK_PPC_ATOMIC_QUEUE
-CMI_EXTERNC void * CmiAlloc_ppcq (int     size);
-CMI_EXTERNC void   CmiFree_ppcq  (void  * buf);
+void * CmiAlloc_ppcq (int     size);
+void   CmiFree_ppcq  (void  * buf);
 #endif
 
 #if CMK_GRID_QUEUE_AVAILABLE
@@ -263,10 +255,10 @@ CpvDeclare(Queue, CsdGridQueue);
 #endif
 
 #if CMK_CRAYXE || CMK_CRAYXC || CMK_OFI
-CMI_EXTERNC void* LrtsAlloc(int, int);
-CMI_EXTERNC void* LrtsRdmaAlloc(int, int);
-CMI_EXTERNC void  LrtsFree(void*);
-CMI_EXTERNC void  LrtsRdmaFree(void*);
+void* LrtsAlloc(int, int);
+void* LrtsRdmaAlloc(int, int);
+void  LrtsFree(void*);
+void  LrtsRdmaFree(void*);
 #endif
 
 CpvStaticDeclare(int, cmiMyPeIdle);
@@ -278,8 +270,7 @@ CpvDeclare(void *, CmiSuspendedTaskQueue);
 
 CpvDeclare(int, isHelperOn);
 
-CMI_EXTERNC_VARIABLE int CmiMyLocalRank;
-
+extern int CmiMyLocalRank;
 int    CmiMyLocalRank;        /* local rank only for scalable startup */
 
 #if CMK_LOCKLESS_QUEUE
@@ -1514,7 +1505,6 @@ int CmiLongSendQueue(int forNode,int longerThanBytes) {
 
 #if CMK_SIGNAL_USE_SIGACTION
 #include <signal.h>
-CMI_EXTERNC
 void CmiSignal(int sig1, int sig2, int sig3, void (*handler)(int))
 {
   struct sigaction in, out ;
@@ -1532,7 +1522,6 @@ void CmiSignal(int sig1, int sig2, int sig3, void (*handler)(int))
 
 #if CMK_SIGNAL_USE_SIGACTION_WITH_RESTART
 #include <signal.h>
-CMI_EXTERNC
 void CmiSignal(int sig1, int sig2, int sig3, void (*handler)(int))
 {
   struct sigaction in, out ;
@@ -2097,7 +2086,6 @@ CthThread CthSuspendSchedulingThread(void)
 }
 
 /* Notice: For changes to the following function, make sure the function CthResumeNormalThreadDebug is also kept updated. */
-CMI_EXTERNC
 void CthResumeNormalThread(CthThreadToken* token)
 {
   CthThread t = token->thread;
@@ -3648,14 +3636,14 @@ static void CIdleTimeoutInit(char **argv)
  *
  *****************************************************************************/
 
-CMI_EXTERNC void CrnInit(void);
-CMI_EXTERNC void CmiIsomallocInit(char **argv);
+void CrnInit(void);
+void CmiIsomallocInit(char **argv);
 #if ! CMK_CMIPRINTF_IS_A_BUILTIN
 void CmiIOInit(char **argv);
 #endif
 
 /* defined in cpuaffinity.C */
-CMI_EXTERNC void CmiInitCPUAffinityUtil(void);
+void CmiInitCPUAffinityUtil(void);
 
 static void CmiProcessPriority(char **argv)
 {
@@ -3773,13 +3761,13 @@ static void checkTSanOptions(void)
 #endif
 
 #if CMK_CCS_AVAILABLE
-CMI_EXTERNC_VARIABLE int ccsRunning;
+extern int ccsRunning;
 int ccsRunning;
 #endif
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 int quietModeRequested;  // user has requested quiet mode
-CMI_EXTERNC_VARIABLE int quietMode;
+extern int quietMode;
 int quietMode; // quiet mode active (CmiPrintf's are disabled)
 CmiSpanningTreeInfo* _topoTree = NULL;
 
@@ -3808,7 +3796,6 @@ CmiSpanningTreeInfo* _topoTree = NULL;
   won't work properly until they're initialized.  For example,
   nobody can register handlers before calling CmiHandlerInit.
 */
-CMI_EXTERNC
 void ConverseCommonInit(char **argv)
 {
   CpvInitialize(int, _urgentSend);
@@ -3909,7 +3896,6 @@ void ConverseCommonInit(char **argv)
 #endif
 }
 
-CMI_EXTERNC
 void ConverseCommonExit(void)
 {
   CcsImpl_kill();
@@ -4080,7 +4066,6 @@ char *CmiCopyMsg(char *msg, int len)
   return copy;
 }
 
-CMI_EXTERNC
 unsigned char computeCheckSum(unsigned char *data, int len)
 {
   int i;
index 074aa91586bcdba517e0f6ccf731e7b933200837..b33fb2c40ad6bba126fc800c687dc7d3ae60dda9 100644 (file)
 # define CMK_THREADLOCAL __thread
 #endif
 
-#ifdef __cplusplus
-# define CMI_EXTERNC extern "C"
-#else
-# define CMI_EXTERNC
-#endif
-
-#if defined __cplusplus && defined _MSC_VER
-# define CMI_EXTERNC_VARIABLE extern "C"
-#else
-# define CMI_EXTERNC_VARIABLE extern
-#endif
-
 #if defined _MSC_VER
 # define CMI_FORCE_INLINE __forceinline
 #elif defined __GNUC__
@@ -375,13 +363,10 @@ extern int _Cmi_numnodes;
 extern int _Cmi_sleepOnIdle;
 extern int _Cmi_forceSpinOnIdle;
 
-CMI_EXTERNC
 int CmiMyPe(void);
-CMI_EXTERNC
 int CmiMyRank(void);
 #define CmiNumPes()         _Cmi_numpes
 #define CmiMyNodeSize()     _Cmi_mynodesize
-CMI_EXTERNC
 int CmiNodeSize(int node);
 #if CMK_MULTICORE
 #define CmiMyNode()         0
@@ -392,11 +377,8 @@ int CmiNodeSize(int node);
 #else
 #define CmiMyNode()         _Cmi_mynode
 #define CmiNumNodes()       _Cmi_numnodes
-CMI_EXTERNC
 int CmiNodeFirst(int node);
-CMI_EXTERNC
 int CmiNodeOf(int pe);
-CMI_EXTERNC
 int CmiRankOf(int pe);
 #endif
 
@@ -520,13 +502,10 @@ extern int _Cmi_numnodes;
 extern int _Cmi_sleepOnIdle;
 extern int _Cmi_forceSpinOnIdle;
 
-CMI_EXTERNC
 int CmiMyPe(void);
-CMI_EXTERNC
 int CmiMyRank(void);
 #define CmiNumPes()         _Cmi_numpes
 #define CmiMyNodeSize()     _Cmi_mynodesize
-CMI_EXTERNC
 int CmiNodeSize(int node);
 #if CMK_MULTICORE
 #define CmiMyNode()         0
@@ -537,11 +516,8 @@ int CmiNodeSize(int node);
 #else
 #define CmiMyNode()         _Cmi_mynode
 #define CmiNumNodes()       _Cmi_numnodes
-CMI_EXTERNC
 int CmiNodeFirst(int node);
-CMI_EXTERNC
 int CmiNodeOf(int pe);
-CMI_EXTERNC
 int CmiRankOf(int pe);
 #endif
 
@@ -877,8 +853,14 @@ struct infiCmiChunkMetaDataStruct *registerMultiSendMesg(char *msg,int msgSize);
 
 #endif
 
-CMI_EXTERNC void* malloc_nomigrate(size_t size);
-CMI_EXTERNC void free_nomigrate(void* ptr);
+#ifdef __cplusplus
+extern "C" {
+#endif
+void* malloc_nomigrate(size_t size);
+void free_nomigrate(void* ptr);
+#ifdef __cplusplus
+}
+#endif
 
 /**
    Allocate `size` bytes of memory usable as a message buffer.
@@ -1930,7 +1912,7 @@ extern "C"
 void CmiMachineProgressImpl();
 
 #if CMK_USE_PXSHM
-CMI_EXTERNC void CommunicationServerPxshm(void);
+void CommunicationServerPxshm(void);
 #define CmiNetworkProgress() {CpvAccess(networkProgressCount) ++; \
       if(CpvAccess(networkProgressCount) >=  networkProgressPeriod) { \
           CmiMachineProgressImpl(); \
@@ -2221,23 +2203,18 @@ extern double CmiLog2(double);
 
 #if CMK_GRID_QUEUE_AVAILABLE
 #if defined(__cplusplus)
-extern "C" int CmiGetCluster (int pe);
-extern "C" int CmiGridQueueGetInterval ();
-extern "C" int CmiGridQueueGetThreshold ();
-extern "C" void CmiGridQueueRegister (int gid, int nInts, int index1, int index2, int index3);
-extern "C" void CmiGridQueueDeregister (int gid, int nInts, int index1, int index2, int index3);
-extern "C" void CmiGridQueueDeregisterAll ();
-extern "C" int CmiGridQueueLookup (int gid, int nInts, int index1, int index2, int index3);
-extern "C" int CmiGridQueueLookupMsg (char *msg);
-#else
+extern "C" {
+#endif
 extern int CmiGetCluster (int pe);
-extern int CmiGridQueueGetInterval ();
-extern int CmiGridQueueGetThreshold ();
+extern int CmiGridQueueGetInterval (void);
+extern int CmiGridQueueGetThreshold (void);
 extern void CmiGridQueueRegister (int gid, int nInts, int index1, int index2, int index3);
 extern void CmiGridQueueDeregister (int gid, int nInts, int index1, int index2, int index3);
-extern void CmiGridQueueDeregisterAll ();
+extern void CmiGridQueueDeregisterAll (void);
 extern int CmiGridQueueLookup (int gid, int nInts, int index1, int index2, int index3);
 extern int CmiGridQueueLookupMsg (char *msg);
+#if defined(__cplusplus)
+}
 #endif
 #endif
 
@@ -2286,18 +2263,16 @@ CpvExtern(int, _urgentSend);
 #define CsdTaskPop() TaskQueuePop((TaskQueue)CpvAccess(CsdTaskQueue))
 #if CMK_OMP
 #if defined(__cplusplus)
-extern "C" int CmiGetCurKnownOmpThreads();
-#else
-extern int CmiGetCurKnownOmpThreads();
+extern "C"
 #endif
+int CmiGetCurKnownOmpThreads(void);
 #endif
 #endif
 CpvCExtern(int, isHelperOn);
 #if defined(__cplusplus)
-extern "C" void CmiSetPeHelpsOtherThreads(int);
-#else
-extern void CmiSetPeHelpsOtherThreads(int);
+extern "C"
 #endif
+void CmiSetPeHelpsOtherThreads(int);
 #endif /* CONVERSE_H */
 
 
index 3adae27931118c036236cbaf502333b698f9509b..17387ef5ca14cb83eb0dd79dc04ff6155aa08a5c 100644 (file)
@@ -299,7 +299,7 @@ CpmDestination CpmMakeThreadSize(int pe, int size)
  *
  *****************************************************************************/
 
-void CpmModuleInit(void)
+extern "C" void CpmModuleInit(void)
 {
   CpvInitialize(int, CpmThread2_Index);
   CpvAccess(CpmThread2_Index) = CmiRegisterHandler(CpmThread2);
index 833064d98199c3d0ba6d259a75015b2a329d586b..c9ec448e7336d5c81c3664436cf4282f6d2d8b5d 100644 (file)
@@ -586,7 +586,7 @@ int Cpthread_init(void)
   return 0;
 }
 
-void CpthreadModuleInit(void)
+extern "C" void CpthreadModuleInit(void)
 {
   CtvInitialize(Cpthread_t, Cpthread_current);
   CtvInitialize(int,        Cpthread_errcode);
index 83618e98c76857ca84e1747b7491af2cbcd7afd9..5e0c8c746a0043b76e5597bdf1238492657f9911 100644 (file)
@@ -6,6 +6,10 @@
 /* for size_t */
 #include <sys/types.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define CPTHREAD_THREADS_MAX     1000000000
 #define CPTHREAD_KEYS_MAX        1000000000
 #define CPTHREAD_STACK_MIN       32768
@@ -186,5 +190,9 @@ void Cpthread_start_main(CmiStartFn fn, int argc, char **argv);
 
 #endif /* SUPPRESS_PTHREADS */
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* CPTHREAD_H */
 
index 95b955d563e35d36940b2050a904e4928e6c33b6..2417f67325c7925d5f754b68ed92b4a8ecf93684 100644 (file)
@@ -576,8 +576,7 @@ static int search_pemap(char *pecoremap, int pe)
 }
 
 #if CMK_CRAYXE || CMK_CRAYXC
-CMI_EXTERNC
-int getXTNodeID(int mpirank, int nummpiranks);
+CLINKAGE int getXTNodeID(int mpirank, int nummpiranks);
 #endif
 
 /**
@@ -587,7 +586,6 @@ int getXTNodeID(int mpirank, int nummpiranks);
  * has been set explicitly by this module, it will print error and abort if
  * oversubscription detected.
  */
-CMI_EXTERNC
 void CmiCheckAffinity(void)
 {
 #if !defined(_WIN32) && CMK_SMP && CMK_HAS_PTHREAD_SETAFFINITY && defined(CPU_OR)
@@ -630,7 +628,7 @@ void CmiCheckAffinity(void)
 #endif
 }
 
-CMI_EXTERNC_VARIABLE int CmiMyLocalRank;
+extern int CmiMyLocalRank;
 
 static void bind_process_only(hwloc_obj_type_t process_unit)
 {
@@ -770,7 +768,6 @@ static int set_default_affinity(void)
   return n != -1;
 }
 
-CMI_EXTERNC
 void CmiInitCPUAffinity(char **argv)
 {
   static skt_ip_t myip;
@@ -1058,11 +1055,9 @@ int CmiPrintCPUAffinity(void)
   return -1;
 }
 
-CMI_EXTERNC
 void CmiCheckAffinity(void) {
 }
 
-CMI_EXTERNC
 void CmiInitCPUAffinity(char **argv)
 {
   char *pemap = NULL;
index d54efb36e687bac99f72151fd5f1ae7dadd11fe5..dc4c73021f7d8c55357d969dc3a4a99489baca0b 100644 (file)
@@ -28,12 +28,11 @@ int _debugHandlerIdx;
 char ** memoryBackup;
 
 /** Specify if we are replaying the processor from message logs, thus disable delivering of messages */
-CMI_EXTERNC_VARIABLE int _replaySystem;
+extern int _replaySystem;
 int _replaySystem = 0;
 int _conditionalDelivery = 0;
 
 #undef ConverseDeliver
-CMI_EXTERNC
 int ConverseDeliver(int pe) {
   return !_replaySystem && (!_conditionalDelivery || pe==CmiMyPe());
 }
@@ -66,7 +65,6 @@ u_long ntohl(u_long netlong) {
 
 #include "pup_c.h"
 
-CMI_EXTERNC
 void check_memory_leaks(LeakSearchInfo *info);
 
 CpvDeclare(int, CpdSearchLeaks_Index);
@@ -256,7 +254,6 @@ void handleDebugMessage(void *msg) {
 /* Special scheduler-type loop only executed while in
 freeze mode-- only executes CCS requests.
 */
-CMI_EXTERNC
 void CcsServerCheck(void);
 extern int _isCcsHandlerIdx(int idx);
 int (*CpdIsDebugMessage)(void *);
@@ -322,7 +319,6 @@ void CpdFreezeModeScheduler(void)
 #endif
 }
 
-CMI_EXTERNC
 void CpdMemoryMarkClean(char *msg);
 
 void CpdInit(void)
index c28fd797dda7b20b73a4f705f21fcbde372f7171..594515e15509f85c17dd44bba856940449313f08 100644 (file)
@@ -116,7 +116,7 @@ void CfutureDestroy(Cfuture f)
   free(f.data);
 }
 
-void CfutureModuleInit(void)
+extern "C" void CfutureModuleInit(void)
 {
   CpvInitialize(int, CfutureStoreIndex);
   CpvAccess(CfutureStoreIndex) = CmiRegisterHandler((CmiHandler)CfutureStore);
index b4fee314a6c57c70aec6127576a324d19fbaa1eb..49a010aa3ec74f44d91503774c6afe7c0f921bfe 100644 (file)
@@ -115,7 +115,7 @@ extern ELFXX_TYPE_Dyn _DYNAMIC[];      //The Dynamic section table pointer
 
 std::vector<char *>  _blacklist;
 static bool loaded = false;
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 static void readBlacklist()
 {
index dbf63834511d07d31f655b2aea9f55e7a24712fa..810c9bb15147613cc569efe5865e92191678a65f 100644 (file)
@@ -2184,7 +2184,6 @@ int CmiIsomallocInRange(void *addr)
 
 int _sync_iso_warned = 0;
 
-CMI_EXTERNC
 void CmiIsomallocInit(char **argv)
 {
 #if CMK_NO_ISO_MALLOC
index 21d8edf758d79567d90d7cb1facb917cf9f9b68f..0c0864b286dd1e95854d3cc9dbb5fdbcc5721552 100644 (file)
@@ -151,7 +151,6 @@ static int isProtected(Slot *s) {
   return s->magic & BLOCK_PROTECTED;
 }
 
-CMI_EXTERNC
 int Slot_ChareOwner(void *s) {
   return ((Slot*)s)->chareID;
 }
@@ -160,7 +159,6 @@ int Slot_AllocatedSize(void *s) {
   return ((Slot*)s)->userSize;
 }
 
-CMI_EXTERNC
 int Slot_StackTrace(void *s, void ***stack) {
   *stack = ((Slot*)s)->from;
   return ((Slot*)s)->stackLen;
@@ -175,7 +173,6 @@ static void printSlot(Slot *s) {
 /********* Cpd routines for pupping data to the debugger *********/
 
 /** Returns the number of total blocks of memory allocated */
-CMI_EXTERNC
 size_t cpd_memory_length(void *lenParam) {
   size_t n=0;
 #ifdef CMK_SEPARATE_SLOT
@@ -246,7 +243,6 @@ void cpd_memory_single_pup(Slot* list, pup_er p) {
 }
 
 /** PUP the entire information about the allocated memory to the debugger */
-CMI_EXTERNC
 void cpd_memory_pup(void *itemParam, pup_er p, CpdListItemsRequest *req) {
   static char s_memory[] = "memory";
   CpdListBeginItem(p, 0);
@@ -263,9 +259,7 @@ void cpd_memory_pup(void *itemParam, pup_er p, CpdListItemsRequest *req) {
 }
 
 /*
-CMI_EXTERNC
 void check_memory_leaks(CpdListItemsRequest *);
-CMI_EXTERNC
 void cpd_memory_leak(void *iterParam, pup_er p, CpdListItemsRequest *req) {
   if (pup_isSizing(p)) {
     // let's perform the memory leak checking. This is the first step in the
@@ -277,12 +271,10 @@ void cpd_memory_leak(void *iterParam, pup_er p, CpdListItemsRequest *req) {
 }
 */
 
-CMI_EXTERNC
 size_t cpd_memory_getLength(void *lenParam) { return 1; }
 /** Returns the content of a block of memory (i.e the user data).
     This request must always be at the beginning of an allocated block
     (not for example an object part of an array) */
-CMI_EXTERNC
 void cpd_memory_get(void *iterParam, pup_er p, CpdListItemsRequest *req) {
   void *userData = (void*)(uintptr_t)(((uint64_t)req->lo) + (((uint64_t)req->hi)<<32));
   Slot *sl = UserToSlot(userData);
@@ -326,7 +318,6 @@ int charmEnvelopeSize = 0;
 /** Perform a scan of all the memory to find all the memory that is reacheable
  * from either the stack or the global variables. */
 // FIXME: this function assumes that all memory is allocated in slot_unknown!
-CMI_EXTERNC
 void check_memory_leaks(LeakSearchInfo *info) {
   //FILE* fd=fopen("check_memory_leaks", "w");
   // Step 1)
@@ -517,7 +508,6 @@ void check_memory_leaks(LeakSearchInfo *info) {
   memory_charmdebug_internal = 0;
 }
 
-CMI_EXTERNC
 void CpdMemoryMarkClean(char *msg) {
   Slot *sl;
   /* The first byte of the data packet indicates if we want o mark or unmark */
@@ -1767,7 +1757,6 @@ void setMemoryOwnedBy(void *ptr, int chareID) {
   sl->chareID = chareID;
 }
 
-CMI_EXTERNC
 void * MemoryToSlot(void *ptr) {
   Slot *sl;
   int i;
index 9692e48ab7388c8ff7351a552bf2455a6c6fd4ea..a4110c231502ff865e9614d7d9e0977e34c1309c 100644 (file)
 
 struct mallinfo;
 
-extern "C" void * (*mm_malloc)(size_t);
-extern "C" void * (*mm_calloc)(size_t,size_t);
-extern "C" void * (*mm_realloc)(void*,size_t);
-extern "C" void * (*mm_memalign)(size_t,size_t);
-extern "C" int (*mm_posix_memalign)(void **,size_t,size_t);
-extern "C" void * (*mm_aligned_alloc)(size_t,size_t);
-extern "C" void * (*mm_valloc)(size_t);
-extern "C" void * (*mm_pvalloc)(size_t);
-extern "C" void (*mm_free)(void*);
-extern "C" void (*mm_cfree)(void*);
-extern "C" struct mallinfo (*mm_mallinfo)(void);
+extern void * (*mm_malloc)(size_t);
+extern void * (*mm_calloc)(size_t,size_t);
+extern void * (*mm_realloc)(void*,size_t);
+extern void * (*mm_memalign)(size_t,size_t);
+extern int (*mm_posix_memalign)(void **,size_t,size_t);
+extern void * (*mm_aligned_alloc)(size_t,size_t);
+extern void * (*mm_valloc)(size_t);
+extern void * (*mm_pvalloc)(size_t);
+extern void (*mm_free)(void*);
+extern void (*mm_cfree)(void*);
+extern struct mallinfo (*mm_mallinfo)(void);
 
   
 extern char initialize_memory_wrapper_status;
 char initialize_memory_wrapper_status;
 
-extern "C" void initialize_memory_wrapper() {
+void initialize_memory_wrapper() {
   initialize_memory_wrapper_status = 1;
 
   // wait to install these all at once because dlsym calls them, and a mismatch would be bad
index 79b343392fb6c355bae3e2638d5e7e90e0c63977..aa3d12c288f1dda939b4662c5e94c3531f97c2f7 100644 (file)
@@ -68,6 +68,7 @@
 #  define getpid _getpid
 #endif
 #include "converse.h"
+#include "charm-api.h"
 
 void * memory_stack_top; /*The higher end of the stack (approximation)*/
 int cpdInSystem=1; /*Start inside the system (until we start executing user code)*/
@@ -100,17 +101,17 @@ int cpdInSystem=1; /*Start inside the system (until we start executing user code
 
 struct mallinfo;
 
-CMI_EXTERNC void initialize_memory_wrapper(void);
-CMI_EXTERNC void * initialize_memory_wrapper_calloc(size_t nelem, size_t size);
-CMI_EXTERNC void * initialize_memory_wrapper_malloc(size_t size);
-CMI_EXTERNC void * initialize_memory_wrapper_realloc(void *ptr, size_t size);
-CMI_EXTERNC void * initialize_memory_wrapper_memalign(size_t align, size_t size);
-CMI_EXTERNC int initialize_memory_wrapper_posix_memalign(void **memptr, size_t align, size_t size);
-CMI_EXTERNC void * initialize_memory_wrapper_aligned_alloc(size_t align, size_t size);
-CMI_EXTERNC void * initialize_memory_wrapper_valloc(size_t size);
-CMI_EXTERNC void * initialize_memory_wrapper_pvalloc(size_t size);
-CMI_EXTERNC void initialize_memory_wrapper_free(void *ptr);
-CMI_EXTERNC void initialize_memory_wrapper_cfree(void *ptr);
+void initialize_memory_wrapper(void);
+void * initialize_memory_wrapper_calloc(size_t nelem, size_t size);
+void * initialize_memory_wrapper_malloc(size_t size);
+void * initialize_memory_wrapper_realloc(void *ptr, size_t size);
+void * initialize_memory_wrapper_memalign(size_t align, size_t size);
+int initialize_memory_wrapper_posix_memalign(void **memptr, size_t align, size_t size);
+void * initialize_memory_wrapper_aligned_alloc(size_t align, size_t size);
+void * initialize_memory_wrapper_valloc(size_t size);
+void * initialize_memory_wrapper_pvalloc(size_t size);
+void initialize_memory_wrapper_free(void *ptr);
+void initialize_memory_wrapper_cfree(void *ptr);
 
 void * (*mm_malloc)(size_t) = initialize_memory_wrapper_malloc;
 void * (*mm_calloc)(size_t,size_t) = initialize_memory_wrapper_calloc;
@@ -384,15 +385,11 @@ void free(void *ptr) CMK_THROW { meta_free(ptr); }
 void *calloc(size_t nelem, size_t size) CMK_THROW { return meta_calloc(nelem,size); }
 void cfree(void *ptr) CMK_THROW { meta_cfree(ptr); }
 void *realloc(void *ptr, size_t size) CMK_THROW { return meta_realloc(ptr,size); }
-CMI_EXTERNC
-void *memalign(size_t align, size_t size) CMK_THROW { return meta_memalign(align,size); }
-CMI_EXTERNC
-int posix_memalign(void **outptr, size_t align, size_t size) CMK_THROW { return meta_posix_memalign(outptr,align,size); }
-CMI_EXTERNC
-void *aligned_alloc(size_t align, size_t size) CMK_THROW { return meta_aligned_alloc(align,size); }
+CLINKAGE void *memalign(size_t align, size_t size) CMK_THROW { return meta_memalign(align,size); }
+CLINKAGE int posix_memalign(void **outptr, size_t align, size_t size) CMK_THROW { return meta_posix_memalign(outptr,align,size); }
+CLINKAGE void *aligned_alloc(size_t align, size_t size) CMK_THROW { return meta_aligned_alloc(align,size); }
 void *valloc(size_t size) CMK_THROW { return meta_valloc(size); }
-CMI_EXTERNC
-void *pvalloc(size_t size) CMK_THROW { return meta_pvalloc(size); }
+CLINKAGE void *pvalloc(size_t size) CMK_THROW { return meta_pvalloc(size); }
 #endif /* CMK_MEMORY_BUILD_GNU_HOOKS */
 
 #endif /* CMK_MEMORY_BUILD_OS_WRAPPED || CMK_MEMORY_BUILD_GNU_HOOKS */
@@ -406,7 +403,6 @@ void *pvalloc(size_t size) CMK_THROW { return meta_pvalloc(size); }
 
 static int skip_mallinfo = 0;
 
-CMI_EXTERNC
 void CmiMemoryInit(char ** argv)
 {
   if(CmiMyRank() == 0)   CmiMemoryIs_flag |= CMI_MEMORY_IS_OS;
@@ -419,10 +415,8 @@ void CmiMemoryInit(char ** argv)
   if (getenv("MEMORYUSAGE_NO_MALLINFO"))  skip_mallinfo = 1;
 }
 
-CMI_EXTERNC
-void *malloc_reentrant(size_t);
-CMI_EXTERNC
-void free_reentrant(void *);
+CLINKAGE void *malloc_reentrant(size_t);
+CLINKAGE void free_reentrant(void *);
 
 void *malloc_reentrant(size_t size) { return malloc(size); }
 void free_reentrant(void *mem) { free(mem); }
@@ -735,7 +729,6 @@ The locking code is common to all implementations except OS-builtin.
 */
 static int CmiMemoryInited = 0;
 
-CMI_EXTERNC
 void CmiMemoryInit(char **argv)
 {
   CmiArgGroup("Converse","Memory module");
@@ -798,8 +791,7 @@ void *realloc(void *mem, size_t size) CMK_THROW
   return result;
 }
 
-CMI_EXTERNC
-void *memalign(size_t align, size_t size) CMK_THROW
+CLINKAGE void *memalign(size_t align, size_t size) CMK_THROW
 {
   void *result;
   MEM_LOCK_AROUND( result = meta_memalign(align, size); )
@@ -807,8 +799,7 @@ void *memalign(size_t align, size_t size) CMK_THROW
   return result;
 }
 
-CMI_EXTERNC
-int posix_memalign (void **outptr, size_t align, size_t size) CMK_THROW
+CLINKAGE int posix_memalign (void **outptr, size_t align, size_t size) CMK_THROW
 {
   int result;
   MEM_LOCK_AROUND( result = meta_posix_memalign(outptr, align, size); )
@@ -816,8 +807,7 @@ int posix_memalign (void **outptr, size_t align, size_t size) CMK_THROW
   return result;
 }
 
-CMI_EXTERNC
-void *aligned_alloc(size_t align, size_t size) CMK_THROW
+CLINKAGE void *aligned_alloc(size_t align, size_t size) CMK_THROW
 {
   void *result;
   MEM_LOCK_AROUND( result = meta_aligned_alloc(align, size); )
@@ -849,10 +839,8 @@ actually trying the lock, which prevents a deadlock where
 you try to aquire one of your own locks.
 */
 
-CMI_EXTERNC
-void *malloc_reentrant(size_t);
-CMI_EXTERNC
-void free_reentrant(void *);
+CLINKAGE void *malloc_reentrant(size_t);
+CLINKAGE void free_reentrant(void *);
 
 void *malloc_reentrant(size_t size) {
   void *result;
@@ -972,10 +960,8 @@ void CmiResetMinMemory(void) {
 
 #ifndef CMK_MEMORY_HAS_NOMIGRATE
 /*Default implementations of the nomigrate routines:*/
-CMI_EXTERNC
-void *malloc_nomigrate(size_t);
-CMI_EXTERNC
-void free_nomigrate(void *);
+CLINKAGE void *malloc_nomigrate(size_t);
+CLINKAGE void free_nomigrate(void *);
 
 void *malloc_nomigrate(size_t size) { return malloc(size); }
 void free_nomigrate(void *mem) { free(mem); }
@@ -1036,19 +1022,12 @@ void CmiOutOfMemoryInit(void) {
 #ifndef CMK_MEMORY_BUILD_CHARMDEBUG
 /* declare the cpd_memory routines */
 void CpdSetInitializeMemory(int v) { }
-CMI_EXTERNC
 size_t  cpd_memory_length(void *lenParam) { return 0; }
-CMI_EXTERNC
 void cpd_memory_pup(void *itemParam,pup_er p,CpdListItemsRequest *req) { }
-CMI_EXTERNC
 void cpd_memory_leak(void *itemParam,pup_er p,CpdListItemsRequest *req) { }
-CMI_EXTERNC
 void check_memory_leaks(LeakSearchInfo* i) { }
-CMI_EXTERNC
 size_t  cpd_memory_getLength(void *lenParam) { return 0; }
-CMI_EXTERNC
 void cpd_memory_get(void *itemParam,pup_er p,CpdListItemsRequest *req) { }
-CMI_EXTERNC
 void CpdMemoryMarkClean(char *msg) { }
 /* routine used by CthMemory{Protect,Unprotect} to specify that some region of
    memory has been protected */
@@ -1069,12 +1048,9 @@ void CpdResetMemory(void) { }
 void CpdCheckMemory(void) { }
 
 int get_memory_allocated_user_total(void) { return 0; }
-CMI_EXTERNC
 void * MemoryToSlot(void *ptr) { return NULL; }
-CMI_EXTERNC
 int Slot_ChareOwner(void *s) { return 0; }
 int Slot_AllocatedSize(void *s) { return 0; }
-CMI_EXTERNC
 int Slot_StackTrace(void *s, void ***stack) { return 0; }
 #ifdef setMemoryChareIDFromPtr
 #undef setMemoryChareIDFromPtr
@@ -1157,23 +1133,23 @@ void CmiFreeAligned(void* ptr) {
 #if (CMK_MEMORY_BUILD_OS && CMK_MEMORY_BUILD_OS_WRAPPED && !CMK_MEMORY_BUILD_GNU_HOOKS) || !CMK_MEMORY_BUILD_OS
 
 #if !defined CMI_MEMORY_GNU || !defined _LIBC
-CMI_EXTERNC void * __libc_memalign (size_t alignment, size_t bytes) { return memalign(alignment, bytes); }
+CLINKAGE void * __libc_memalign (size_t alignment, size_t bytes) { return memalign(alignment, bytes); }
 
 #if CMK_EXPECTS_MORECORE
-CMI_EXTERNC void * __default_morecore (ptrdiff_t) CMK_THROW;
+CLINKAGE void * __default_morecore (ptrdiff_t) CMK_THROW;
 void *(*__morecore)(ptrdiff_t) = __default_morecore;
 #endif
 #endif
 
 #if defined CMI_MEMORY_GNU && defined _LIBC
-CMI_EXTERNC int mallopt (int param_number, int value) CMK_THROW { return __libc_mallopt(param_number, value); }
+CLINKAGE int mallopt (int param_number, int value) CMK_THROW { return __libc_mallopt(param_number, value); }
 #elif !defined CMI_MEMORY_GNU || defined _LIBC
-CMI_EXTERNC int mallopt (int param_number, int value) CMK_THROW { return 1; }
+CLINKAGE int mallopt (int param_number, int value) CMK_THROW { return 1; }
 #endif
 
-CMI_EXTERNC void __malloc_fork_lock_parent (void) { }
-CMI_EXTERNC void __malloc_fork_unlock_parent (void) { }
-CMI_EXTERNC void __malloc_fork_unlock_child (void) { }
+CLINKAGE void __malloc_fork_lock_parent (void) { }
+CLINKAGE void __malloc_fork_unlock_parent (void) { }
+CLINKAGE void __malloc_fork_unlock_child (void) { }
 
 #if defined __APPLE__
 // strdup is statically linked against malloc on macOS
index eb4d8f9754cacb1442b6551b39eb5bba75b23c84..29f31179ccdd9c89dbd560357bdbbe68a43b9a74 100644 (file)
@@ -111,7 +111,6 @@ int CmiSetMemAffinity(int policy, int *nids, int len) {
     } else
         return 0;
 }
-CMI_EXTERNC
 void CmiInitMemAffinity(char **argv) {
 
     int i;
@@ -239,7 +238,6 @@ void CmiInitMemAffinity(char **argv) {
     CmiNodeAllBarrier();
 }
 #else
-CMI_EXTERNC
 void CmiInitMemAffinity(char **argv) {
     char *tmpstr = NULL;
     int maffinity_flag = CmiGetArgFlagDesc(argv,"+maffinity",
index 2e6a9f9edd66ba41d6a71a8dc6bff6f633993cf6..a97bfd78d5a652bb4b7845e04fcd0fa1f18939ef 100644 (file)
 #if CMK_HAS_MALLOC_H
 #include <malloc.h> /*<- for memalign*/
 #else
-CMI_EXTERNC
-void *memalign(size_t align, size_t size) CMK_THROW;
+CLINKAGE void *memalign(size_t align, size_t size) CMK_THROW;
 #endif
 #endif
 
index 4a81fb7da089b44a0cdc8794781470cf6eeab0e2..5fc612a5bbfac49c5853d01624a82563444db75e 100644 (file)
@@ -21,7 +21,7 @@ CpvDeclare(CmiNodeLock, cldLock);
 extern void LoadNotifyFn(int);
 
 static char s_lbtopo_default[] = "torus_nd_5";
-CMI_EXTERNC_VARIABLE char *_lbtopo;
+extern char *_lbtopo;
 char *_lbtopo = s_lbtopo_default;
 
 /* Estimator stuff.  Of any use? */
index 735197d1140dd43c3fa234f5eadef254a3752d59..eaa0901de40ec6969f8af63d46af54cc281bb5d5 100644 (file)
@@ -25,11 +25,10 @@ typedef struct CldProcInfo_s {
   int    idleprocEvt;          /* user event for processing idle req */
 } *CldProcInfo;
 
-CMI_EXTERNC_VARIABLE char *_lbtopo;                    /* topology name string */
+extern char *_lbtopo;                  /* topology name string */
 int _lbsteal = 0;                       /* work stealing flag */
 
-CMI_EXTERNC
-void gengraph(int, int, int, int *, int *);
+extern "C" void gengraph(int, int, int, int *, int *);
 
 CpvStaticDeclare(CldProcInfo, CldData);
 CpvStaticDeclare(int, CldLoadResponseHandlerIndex);
index f9956c857945bdb31fa3b7112afa151a98fe294c..6ed5d7535b9b5ebbc8ecfc616f08e3810183bf4d 100644 (file)
@@ -19,7 +19,7 @@
 #define PRIOR_WEIGHT 0.1
 
 CpvDeclare(CldProcInfo, CldData);
-CMI_EXTERNC_VARIABLE char *_lbtopo;                    /* topology name string */
+extern char *_lbtopo;                  /* topology name string */
 int _lbsteal = 0;                       /* work stealing flag */
 
 CpvDeclare(MsgHeap, CldManagerLoadQueue);
index 4718c9528789689e4e221174297722ba94ff4980..5f9cb294348efb2585eba20a13a65997e7a21cc9 100644 (file)
@@ -5,7 +5,6 @@
 
 /*extern VerticesListType graph; */
 
-CMI_EXTERNC
 EdgeListType * InitEdgeList(int E)
 {
   EdgeListType * edgesRec;
index 70ff13ef4ad7604ad851a94b7f56ce42a762e2e9..fef9712c9e871fd21182630243c268df3fc6812e 100644 (file)
@@ -15,7 +15,7 @@ Modified from the original: changed output format, and converted main to a param
 #include "converse.h"
 #include "graphdefs.h"
 
-int addEdge(VerticesListType *graph, EdgeListType *l,int fm,int to);
+void addEdge(VerticesListType *graph, EdgeListType *l,int fm,int to);
 void addspEdge(VerticesListType *graph, EdgeListType *, int, int);
 int edgeExists(VerticesListType *graph, int fm, int to);
 static Q * makeQueue(void);
@@ -30,6 +30,8 @@ int C; /* no. of connections per vertex */
 VerticesListType * InitVertices(EdgeListType * EdgeList, int V, int E);
 
 
+extern "C" void gengraph(int, int, int, int *, int *, int);
+
 /* For testing... 
 int main(int argc, char **argv)
 {
@@ -43,7 +45,6 @@ static void initGraph(VerticesListType *graph);
 static void diameter(VerticesListType *graph);
 static void AddEdges(VerticesListType *graph, EdgeListType *EdgeList, int V, int n);
 
-CMI_EXTERNC
 void gengraph(int pV, int pC, int pseed, int *pes, int *npe, int tofile)
 { int i;
   VerticesListType graph;
index e2aa021893eaef10b55eaf9d6e3d88fc2b4f0fd9..ff2953c36854109bb4f50481adacbbf32af46597 100644 (file)
@@ -10,7 +10,7 @@
 #include "converse.h"
 #include "topology.h"
 
-CMI_EXTERNC_VARIABLE char *_lbtopo;                    /* topology name string */
+extern char *_lbtopo;                  /* topology name string */
 
 int LBTopology::get_hop_count(int src,int dest)
 {
index c4b7e72e4b8f2805442b1c31d9eb91d1d6bc4b41..a15a76429f5b7c214585334f6c6ad9371d3f3862 100644 (file)
@@ -18,7 +18,7 @@ static int execPe;
 static int curevent=0;
 #endif
 
-extern "C" void initCharmProjections() 
+void initCharmProjections() 
 {
 #if CMK_TRACE_ENABLED
   CtvInitialize(int,curThreadEvent);
@@ -28,10 +28,10 @@ extern "C" void initCharmProjections()
 }
 
 //TODO
-//extern "C" int  traceRegisterUserEvent(const char*) 
+//int  traceRegisterUserEvent(const char*) 
 //{return -1;} 
 
-extern "C" void charm_creation(envelope *e, int ep, int num)
+void charm_creation(envelope *e, int ep, int num)
 {
 #if CMK_TRACE_ENABLED
   if(e==0) {
@@ -58,7 +58,7 @@ extern "C" void charm_creation(envelope *e, int ep, int num)
 #endif
 }
 
-extern "C" void charm_beginExecute(envelope *e)
+void charm_beginExecute(envelope *e)
 {
 #if CMK_TRACE_ENABLED
   if(e==0) {
@@ -76,7 +76,7 @@ extern "C" void charm_beginExecute(envelope *e)
 #endif
 }
 
-extern "C" void charm_beginExecuteDetailed(int event,int msgType,int ep,int srcPe,int ml)
+void charm_beginExecuteDetailed(int event,int msgType,int ep,int srcPe,int ml)
 {
 #if CMK_TRACE_ENABLED
   execEvent=event;
@@ -93,7 +93,7 @@ extern "C" void charm_beginExecuteDetailed(int event,int msgType,int ep,int srcP
 #endif
 }
 
-extern "C" void charm_endExecute(void)
+void charm_endExecute(void)
 {
 #if CMK_TRACE_ENABLED
   if(execEp == (-1)) {
@@ -117,7 +117,7 @@ extern "C" void charm_endExecute(void)
 // implementing enqueue and dequeue --schak 
 // however these type of events are not generated by anyone
 
-extern "C" void charm_enqueueMsg(envelope *e) {
+void charm_enqueueMsg(envelope *e) {
 #if CMK_TRACE_ENABLED
        int iData[3];
        iData[0] = e->getMsgtype();
@@ -127,7 +127,7 @@ extern "C" void charm_enqueueMsg(envelope *e) {
 #endif
 }      
 
-extern "C" void charm_dequeueMsg(envelope *e) {
+void charm_dequeueMsg(envelope *e) {
 #if CMK_TRACE_ENABLED
        int iData[3];
        iData[0] = e->getMsgtype();
@@ -137,23 +137,23 @@ extern "C" void charm_dequeueMsg(envelope *e) {
 #endif
 }      
 
-extern "C" void charm_beginComputation(void)
+void charm_beginComputation(void)
 {
 #if CMK_TRACE_ENABLED
        LogEvent1(_CHARM_LANG_ID, _E_BEGIN_COMPUTATION, 0, NULL); 
 #endif
 }
 
-extern "C" void charm_endComputation(void)
+void charm_endComputation(void)
 {
 #if CMK_TRACE_ENABLED
        LogEvent1(_CHARM_LANG_ID, _E_END_COMPUTATION, 0, NULL); 
 #endif
 }
 
-extern "C" void charm_messageRecv(char *env, int pe) {} //TODO
+void charm_messageRecv(char *env, int pe) {} //TODO
 
-extern "C" void charm_userEvent(int e) {
+void charm_userEvent(int e) {
 #if CMK_TRACE_ENABLED
        int iData[3];
        iData[0] = e;
@@ -165,7 +165,7 @@ extern "C" void charm_userEvent(int e) {
 }      
 
 
-extern "C" void charm_userPairEvent(int e,double bt,double et){
+void charm_userPairEvent(int e,double bt,double et){
 #if CMK_TRACE_ENABLED
        int iData1[3];
        int iData2[3];
@@ -179,7 +179,7 @@ extern "C" void charm_userPairEvent(int e,double bt,double et){
 #endif
 }
 
-extern "C" void charm_beginPack(void)
+void charm_beginPack(void)
 {
 #if CMK_TRACE_ENABLED
        int iData[1];
@@ -188,7 +188,7 @@ extern "C" void charm_beginPack(void)
 #endif
 }
 
-extern "C" void charm_endPack(void)
+void charm_endPack(void)
 {
 #if CMK_TRACE_ENABLED
        int iData[1];
@@ -197,7 +197,7 @@ extern "C" void charm_endPack(void)
 #endif
 }
 
-extern "C" void charm_beginUnpack(void)
+void charm_beginUnpack(void)
 {
 #if CMK_TRACE_ENABLED
        int iData[1];
@@ -206,7 +206,7 @@ extern "C" void charm_beginUnpack(void)
 #endif
 }
 
-extern "C" void charm_endUnpack(void)
+void charm_endUnpack(void)
 {
 #if CMK_TRACE_ENABLED
        int iData[1];
index 42dc54b8aa30ef0bf0bce8d7cc882ab5ed2c3545..9dd6290e85db6e1a5ce583ff835af95e956a5e0f 100644 (file)
@@ -14,7 +14,7 @@
 #define DEBUGLEVEL 10
 
 extern BgStartHandler  workStartFunc;
-extern "C" void CthResumeNormalThread(CthThreadToken* token);
+void CthResumeNormalThread(CthThreadToken* token);
 
 void correctMsgTime(char *msg);
 
index 0c9dca52f82312629dd55e6d07ac901cbc40b471..f22e7198399303af1d8c08928b7041177565b74b 100644 (file)
@@ -1294,7 +1294,7 @@ void BgSetWorkerThreadStart(BgStartHandler f)
   workStartFunc = f;
 }
 
-extern "C" void CthResumeNormalThread(CthThreadToken* token);
+void CthResumeNormalThread(CthThreadToken* token);
 
 // kernel function for processing a bluegene message
 void BgProcessMessageDefault(threadInfo *tinfo, char *msg)
index 22ed27e98e127ed6517f0792410440d9fc9d1d9c..56056fc0698c2ce4b9891fdab7c5c4f56cbc2a0d 100644 (file)
@@ -32,7 +32,7 @@
 #define FUNCCALL_DEBUG(x) //x /* empty */
 
 /* For MPI_Get_library_version */
-CMI_EXTERNC_VARIABLE const char * const CmiCommitID;
+extern const char * const CmiCommitID;
 
 static CkDDT *getDDT() noexcept {
   return &getAmpiParent()->myDDT;
index 648f1667fc3d29db5fc53a51285b3849d035e86c..905e7e494ad14ae708272e61e3ef18628b4d02b6 100644 (file)
@@ -18,9 +18,7 @@ typedef int FileToken;
 #include <unistd.h>
 #endif
 
-extern "C" {
-  #include "fs_parameters.h"
-}
+#include "fs_parameters.h"
 
 using std::min;
 using std::max;
index 4316ec3183e5a6f49743a374c3d9836b5b92cbde..ebc955ac3dbcf1057d59bf4bc4991b75cfba4b34 100644 (file)
@@ -3,6 +3,14 @@
 #include <stdlib.h>
 #include "conv-config.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 size_t CkGetFileStripeSize(const char *filename);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index 74343d39ee243e894db2d06e2c3407a8e1a40ec8..83b20b5c95f760571a470d1055e281a6bc6068ef 100644 (file)
@@ -53,6 +53,10 @@ typedef struct ncpystruct{
 
 }NcpyOperationInfo;
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 int getNcpyOpInfoTotalSize(
   int srcLayerSize,
   int srcAckSize,
@@ -85,4 +89,9 @@ void setNcpyOpInfo(
 void resetNcpyOpInfoPointers(NcpyOperationInfo *ncpyOpInfo);
 
 void setReverseModeForNcpyOpInfo(NcpyOperationInfo *ncpyOpInfo);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index 4779c921d05b020c06bc465d614b43507970b4e3..fc987e9c207bf4020e1b3a005062d86cffc9a8e9 100644 (file)
@@ -14,7 +14,7 @@
 
 #if CMK_HAS_TLS_VARIABLES
 
-CMI_EXTERNC_VARIABLE int quietModeRequested;
+extern int quietModeRequested;
 
 /* These macros are needed for:
  * dlfcn.h: RTLD_DEFAULT
index 8272143c7f28264526cfef8738556c1777d78ff4..c4d3f97f245af686cf805112f9cf196d86016b6b 100644 (file)
@@ -28,8 +28,8 @@ CmiNodeLock  cray_lock, cray_lock2;
  *  returns nodeID corresponding to the MPI rank (possibly obtained
  *  from CmiMyNode()/CmiNodeOf(pe)) passed to it
  */
-CMI_EXTERNC
-int getXTNodeID(int mpirank, int nummpiranks) {
+CLINKAGE int getXTNodeID(int mpirank, int nummpiranks)
+{
   int nid = -1;
 
 #if CMK_HAS_PMI_GET_NID        /* if it is a XT4/5 or XE */
@@ -66,15 +66,14 @@ int maxNID = -1;
 rca_mesh_coord_t  *rca_coords = NULL;
 #endif
 
-CMI_EXTERNC
-void getDimension(int *maxnid, int *xdim, int *ydim, int *zdim);
+CLINKAGE void getDimension(int *maxnid, int *xdim, int *ydim, int *zdim);
 
 /** \function getMeshCoord
  *  wrapper function for rca_get_meshcoord
  *  0: success,   -1: failure
  */
-CMI_EXTERNC
-int getMeshCoord(int nid, int *x, int *y, int *z) {
+CLINKAGE int getMeshCoord(int nid, int *x, int *y, int *z)
+{
 #if CMK_HAS_RCALIB
   if (rca_coords == NULL) {
   rca_mesh_coord_t xyz;
@@ -102,8 +101,8 @@ int getMeshCoord(int nid, int *x, int *y, int *z) {
  *  finds nids for pids 1 to CmiNumPes and stores them in an array
  *  correspondingly also creates an array for nids to pids
  */
-CMI_EXTERNC
-void pidtonid(int numpes) {
+CLINKAGE void pidtonid(int numpes)
+{
   CmiLock(cray_lock);
   if (pid2nid != NULL) {
       CmiUnlock(cray_lock);
@@ -133,8 +132,7 @@ void pidtonid(int numpes) {
 }
 
 /* get size and dimension for XE machine */
-CMI_EXTERNC
-void getDimension(int *maxnid, int *xdim, int *ydim, int *zdim)
+CLINKAGE void getDimension(int *maxnid, int *xdim, int *ydim, int *zdim)
 {
   int i = 0, nid, ret;
   rca_mesh_coord_t dimsize;
@@ -197,8 +195,7 @@ void getDimension(int *maxnid, int *xdim, int *ydim, int *zdim)
   /* printf("%d %d %d %d\n", *maxnid, *xdim, *ydim, *zdim); */
 }
 
-CMI_EXTERNC
-void craynid_free()
+CLINKAGE void craynid_free(void)
 {
   CmiLock(cray_lock);
   free(pid2nid);
@@ -210,8 +207,7 @@ void craynid_free()
   CmiUnlock(cray_lock);
 }
 
-CMI_EXTERNC
-void craynid_reset()
+CLINKAGE void craynid_reset(void)
 {
   craynid_free();
   CmiLock(cray_lock);
@@ -222,8 +218,7 @@ void craynid_reset()
   CmiUnlock(cray_lock);
 }
 
-CMI_EXTERNC
-void craynid_init()
+CLINKAGE void craynid_init(void)
 {
   static int init_done = 0;
   if (!init_done) {