From 2ce0f1631fd28b5ab4ebe292ec05a577af8656d6 Mon Sep 17 00:00:00 2001
From: Rolf Bork <rolf.bork@ligo.org>
Date: Fri, 4 Jan 2013 22:36:21 +0000
Subject: [PATCH] Removed old IPC code, which was replaced by commData2

git-svn-id: https://redoubt.ligo-wa.caltech.edu/svn/advLigoRTS/trunk@3173 6dcd42c9-f523-4c6d-aada-af552506706e
---
 src/fe/commData.c      | 213 -----------------------------------------
 src/include/commData.h | 106 --------------------
 2 files changed, 319 deletions(-)
 delete mode 100644 src/fe/commData.c
 delete mode 100644 src/include/commData.h

diff --git a/src/fe/commData.c b/src/fe/commData.c
deleted file mode 100644
index 54c7fd4f4..000000000
--- a/src/fe/commData.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*----------------------------------------------------------------------
-   File: commData.c
-   Date: October 2009
-   Author: Matthew Evans & Tobin Fricke
- 
-   see commData.h
-----------------------------------------------------------------------*/
-
-#include <stdio.h>
-#include "commData.h"
-
-// make these inline?
-#ifdef COMMDATA_INLINE
-#  define INLINE inline
-#else
-#  define INLINE
-#endif
-
-// use the inline def for assert as well
-#ifdef COMMDATA_INLINE
-#  define ASSERT(x)
-#else
-#  include <assert.h>
-#  define ASSERT(x) assert(x)
-#endif
-
-// CRC function taken from crc.c (inlined below)
-inline static crc_cd commDataCRC(cycle_cd cycle, word_cd* data, int dataWords);
-
-// =================================================
-// initialize the commData state structure
-//
-INLINE void commDataInit(CommDataState* state, int dataRate, int dataBytes,
-                         void* localData, void* sharedBlock)
-{
-  // check data length is even number of words
-  ASSERT(dataBytes == (int)(sizeof(word_cd) * (dataBytes / sizeof(word_cd))));
-
-  // set data rate and power of 2 rate shift
-  state->dataRate = dataRate;
-  state->rateShift = 0;
-
-  while( dataRate && dataRate < COMMDATA_MAX_RATE )
-  {
-    state->rateShift++;
-    dataRate <<= 1;
-  }
-  ASSERT(dataRate == COMMDATA_MAX_RATE);
-
-  // set data length in bytes and words
-  state->dataBytes = dataBytes;
-  state->dataWords = dataBytes / sizeof(word_cd);
-
-  // set shared and local data pointers
-  state->localData = (word_cd*)localData;
-  state->sharedCRC = (crc_cd*)sharedBlock;
-  state->sharedData = (word_cd*)(((char*)sharedBlock) + COMMDATA_HEADER_BYTES);
-
-  // reset error counters
-  state->errorCountRunning = 0;
-  state->errorCountOneSec = 0;
-}
-
-// =================================================
-// send: write data to shared/reflective memory
-//
-INLINE void commDataSend(CommDataState* state, cycle_cd cycle)
-{
-  int dataWords = state->dataWords;     // number of words to send
-  word_cd* pLocal = state->localData;   // pointer to local data
-  word_cd* pShared = state->sharedData; // pointer to shared data
-  crc_cd* pCRC = state->sharedCRC;      // pointer to shared CRC
-
-  // shift cycle to remove bits that refer to higher rate
-  cycle >>= state->rateShift;
-
-  // use second buffer if this is an odd cycle
-  if( cycle & 1 )
-  {
-    pShared += dataWords;
-    pCRC++;
-  }
-
-  // compute and write the checksum
-  *pCRC = commDataCRC(cycle, pLocal, dataWords);
-
-  // copy the data to shared memory, one word at a time
-  while( dataWords-- )
-    *(pShared++) = *(pLocal++);
-}
-
-// =================================================
-// receive: read data from shared/reflective memory
-//
-INLINE int commDataRecv(CommDataState* state, cycle_cd cycle)
-{
-  int dataWords = state->dataWords;      // number of words to receive
-  word_cd* pLocal = state->localData;    // pointer to local data
-  word_cd* pShared = state->sharedData;  // pointer to shared data
-  crc_cd* pCRC = state->sharedCRC;      // pointer to shared CRC
-  int isError;                           // error flag
-
-  // reset 1 second error counter
-  if( !cycle )
-    state->errorCountOneSec = 0;
-
-  // shift cycle to remove bits that refer to higher rate
-  cycle >>= state->rateShift;
-
-  // receive data from the previous cycle
-  if( cycle )
-    cycle--;
-  else
-    cycle = state->dataRate - 1;
-
-  // use second buffer if receiving from an odd cycle
-  if( cycle & 1 )
-  {
-    pShared += dataWords;
-    pCRC++;
-  }
-
-  // copy the data to local memory, one word at a time
-  while( dataWords-- )
-    *(pLocal++) = *(pShared++);
-
-  // check the checksum
-  isError = (*pCRC) != commDataCRC(cycle, state->localData, state->dataWords);
-
-  // update error counters
-  if( isError )
-  {
-    state->errorCountRunning++;
-    state->errorCountOneSec++;
-  }
-
-  // return the error flag
-  return isError;
-}
-
-// =================================================
-// CRC: checksum generation, from crc.c
-//
-static crc_cd commData_crctab[256] =
-{
-  0x0,
-  0x04C11DB7, 0x09823B6E, 0x0D4326D9, 0x130476DC, 0x17C56B6B,
-  0x1A864DB2, 0x1E475005, 0x2608EDB8, 0x22C9F00F, 0x2F8AD6D6,
-  0x2B4BCB61, 0x350C9B64, 0x31CD86D3, 0x3C8EA00A, 0x384FBDBD,
-  0x4C11DB70, 0x48D0C6C7, 0x4593E01E, 0x4152FDA9, 0x5F15ADAC,
-  0x5BD4B01B, 0x569796C2, 0x52568B75, 0x6A1936C8, 0x6ED82B7F,
-  0x639B0DA6, 0x675A1011, 0x791D4014, 0x7DDC5DA3, 0x709F7B7A,
-  0x745E66CD, 0x9823B6E0, 0x9CE2AB57, 0x91A18D8E, 0x95609039,
-  0x8B27C03C, 0x8FE6DD8B, 0x82A5FB52, 0x8664E6E5, 0xBE2B5B58,
-  0xBAEA46EF, 0xB7A96036, 0xB3687D81, 0xAD2F2D84, 0xA9EE3033,
-  0xA4AD16EA, 0xA06C0B5D, 0xD4326D90, 0xD0F37027, 0xDDB056FE,
-  0xD9714B49, 0xC7361B4C, 0xC3F706FB, 0xCEB42022, 0xCA753D95,
-  0xF23A8028, 0xF6FB9D9F, 0xFBB8BB46, 0xFF79A6F1, 0xE13EF6F4,
-  0xE5FFEB43, 0xE8BCCD9A, 0xEC7DD02D, 0x34867077, 0x30476DC0,
-  0x3D044B19, 0x39C556AE, 0x278206AB, 0x23431B1C, 0x2E003DC5,
-  0x2AC12072, 0x128E9DCF, 0x164F8078, 0x1B0CA6A1, 0x1FCDBB16,
-  0x018AEB13, 0x054BF6A4, 0x0808D07D, 0x0CC9CDCA, 0x7897AB07,
-  0x7C56B6B0, 0x71159069, 0x75D48DDE, 0x6B93DDDB, 0x6F52C06C,
-  0x6211E6B5, 0x66D0FB02, 0x5E9F46BF, 0x5A5E5B08, 0x571D7DD1,
-  0x53DC6066, 0x4D9B3063, 0x495A2DD4, 0x44190B0D, 0x40D816BA,
-  0xACA5C697, 0xA864DB20, 0xA527FDF9, 0xA1E6E04E, 0xBFA1B04B,
-  0xBB60ADFC, 0xB6238B25, 0xB2E29692, 0x8AAD2B2F, 0x8E6C3698,
-  0x832F1041, 0x87EE0DF6, 0x99A95DF3, 0x9D684044, 0x902B669D,
-  0x94EA7B2A, 0xE0B41DE7, 0xE4750050, 0xE9362689, 0xEDF73B3E,
-  0xF3B06B3B, 0xF771768C, 0xFA325055, 0xFEF34DE2, 0xC6BCF05F,
-  0xC27DEDE8, 0xCF3ECB31, 0xCBFFD686, 0xD5B88683, 0xD1799B34,
-  0xDC3ABDED, 0xD8FBA05A, 0x690CE0EE, 0x6DCDFD59, 0x608EDB80,
-  0x644FC637, 0x7A089632, 0x7EC98B85, 0x738AAD5C, 0x774BB0EB,
-  0x4F040D56, 0x4BC510E1, 0x46863638, 0x42472B8F, 0x5C007B8A,
-  0x58C1663D, 0x558240E4, 0x51435D53, 0x251D3B9E, 0x21DC2629,
-  0x2C9F00F0, 0x285E1D47, 0x36194D42, 0x32D850F5, 0x3F9B762C,
-  0x3B5A6B9B, 0x0315D626, 0x07D4CB91, 0x0A97ED48, 0x0E56F0FF,
-  0x1011A0FA, 0x14D0BD4D, 0x19939B94, 0x1D528623, 0xF12F560E,
-  0xF5EE4BB9, 0xF8AD6D60, 0xFC6C70D7, 0xE22B20D2, 0xE6EA3D65,
-  0xEBA91BBC, 0xEF68060B, 0xD727BBB6, 0xD3E6A601, 0xDEA580D8,
-  0xDA649D6F, 0xC423CD6A, 0xC0E2D0DD, 0xCDA1F604, 0xC960EBB3,
-  0xBD3E8D7E, 0xB9FF90C9, 0xB4BCB610, 0xB07DABA7, 0xAE3AFBA2,
-  0xAAFBE615, 0xA7B8C0CC, 0xA379DD7B, 0x9B3660C6, 0x9FF77D71,
-  0x92B45BA8, 0x9675461F, 0x8832161A, 0x8CF30BAD, 0x81B02D74,
-  0x857130C3, 0x5D8A9099, 0x594B8D2E, 0x5408ABF7, 0x50C9B640,
-  0x4E8EE645, 0x4A4FFBF2, 0x470CDD2B, 0x43CDC09C, 0x7B827D21,
-  0x7F436096, 0x7200464F, 0x76C15BF8, 0x68860BFD, 0x6C47164A,
-  0x61043093, 0x65C52D24, 0x119B4BE9, 0x155A565E, 0x18197087,
-  0x1CD86D30, 0x029F3D35, 0x065E2082, 0x0B1D065B, 0x0FDC1BEC,
-  0x3793A651, 0x3352BBE6, 0x3E119D3F, 0x3AD08088, 0x2497D08D,
-  0x2056CD3A, 0x2D15EBE3, 0x29D4F654, 0xC5A92679, 0xC1683BCE,
-  0xCC2B1D17, 0xC8EA00A0, 0xD6AD50A5, 0xD26C4D12, 0xDF2F6BCB,
-  0xDBEE767C, 0xE3A1CBC1, 0xE760D676, 0xEA23F0AF, 0xEEE2ED18,
-  0xF0A5BD1D, 0xF464A0AA, 0xF9278673, 0xFDE69BC4, 0x89B8FD09,
-  0x8D79E0BE, 0x803AC667, 0x84FBDBD0, 0x9ABC8BD5, 0x9E7D9662,
-  0x933EB0BB, 0x97FFAD0C, 0xAFB010B1, 0xAB710D06, 0xA6322BDF,
-  0xA2F33668, 0xBCB4666D, 0xB8757BDA, 0xB5365D03, 0xB1F740B4
-};
-
-// Calculate CRC checksum on array 'cp' of length 'bytes'.
-inline static crc_cd commDataCRC(cycle_cd cycle, word_cd* data, int dataWords)
-{
-  crc_cd crc = (crc_cd)cycle;            // start CRC with cycle counter
-  unsigned char* cp = (unsigned char*)data;
-  int bytes = sizeof(word_cd) * dataWords;
-
-  // add data values CRC
-  while( bytes-- )
-    crc = (crc << 8) ^ commData_crctab[((crc >> 24) ^ *(cp++)) & 0xFF];
-
-  // return CRC
-  return crc & 0xFFFFFFFF;
-}
diff --git a/src/include/commData.h b/src/include/commData.h
deleted file mode 100644
index e4939cd4b..000000000
--- a/src/include/commData.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*----------------------------------------------------------------------
-   File: commData.h
-   Date: October 2009
-   Author: Matthew Evans & Tobin Fricke
- 
-   These functions are used to communicated between real-time front-end
-   machines.  A cycle counter, maintained externally, is used to move
-   between 2 entries in a double buffer.  A checksum based on the 
-   cycle counter and on the data is included to verify that the data
-   block is intact and is from the correct cycle.
-
-   No attempt is made to deal with endianness issues, nor to correct
-   any errors which are detected.
-----------------------------------------------------------------------*/
-
-#ifndef __COMMDATA_H__
-#define __COMMDATA_H__
-
-// type used for cycle counter
-//   all FEs must agree on its size
-typedef unsigned int cycle_cd;
-
-// type used for CRC checksum
-//   this type must be at least 4 bytes,
-//   and all FEs must agree on its size
-typedef unsigned int crc_cd;
-
-// type used for copying data one word at a time
-//   this may be different from one FE to the next
-//   but must divide 8 evenly (e.g., 8, 4, 2 or 1)
-typedef unsigned long word_cd;
-
-// cycle counter rate
-//   this is the maximum rate for all FEs
-//   and the maximum rate of all communication links
-//   this must be a power of 2
-#ifdef FE_MAX_RATE
-#  define COMMDATA_MAX_RATE FE_MAX_RATE
-#else
-#  define COMMDATA_MAX_RATE 65536
-#endif
-
-// number of bytes in the commData header
-//   this is used for the CRC
-//   it must be >= 2 * sizeof(crc_cd)
-//   and it must an integer number of words
-#define COMMDATA_HEADER_BYTES 8
-
-// structure that maintains internal state of communication data
-struct CommDataState
-{
-  // sample rate of this communication link
-  //   data is updated at this data rate
-  //   the data rate must be a power of 2
-  //   and it must be less than COMMDATA_MAX_RATE
-  int dataRate;
-
-  // data rate as a shift relative to the clock rate
-  //   rateShift = log2(COMMDATA_MAX_RATE) - log2(dataRate)
-  int rateShift;
-
-  // number of bytes to send or receive
-  //   this is the length of the localData buffer
-  //   it excludes the 8 bytes reserved for the checksum in shared memory
-  //   and must be an even multiple of 8 bytes
-  int dataBytes;
-
-  // data length in words
-  //   dataWords = dataLength / sizeof(word_cd)
-  int dataWords;
-
-  // pointer to first checksum in the header
-  //   the second checksum follows
-  crc_cd* sharedCRC;
-
-  // pointer to first data block in the shared double buffer
-  //   the second data block follows
-  word_cd* sharedData;
-
-  // pointer to the local copy of the data
-  //   this data is copied to/from shared memory on send/recv
-  word_cd* localData;
-
-  // error counters, running and last second
-  int errorCountRunning;
-  int errorCountOneSec;
-};
-typedef struct CommDataState CommDataState;
-
-// decide between inline or not for commData functions
-#ifdef COMMDATA_INLINE
-#  include "../fe/commData.c"
-#else
-  // initialize the CommDataState struct
-  void commDataInit(CommDataState* state, int dataRate, int dataBytes,
-                         void* localData, void* sharedBlock);
-  // send data
-  //   the cycle counter is included in the checksum,
-  //   and is used to index the ring buffer
-  void commDataSend(CommDataState* state, cycle_cd cycleCounter);
-
-  // receive data
-  int commDataRecv(CommDataState* state, cycle_cd cycleCounter);
-#endif
-
-#endif // __COMMDATA_H__
-- 
GitLab