Exemplo n.º 1
0
static void *Outputter(void *arg)
{
  lpel_stream_desc_t *in = LpelStreamOpen((lpel_stream_t*)arg, 'r'); 
  char *item;
  int term = 0;

  printf("Outputter START\n");

  while (!term) {
    item = LpelStreamRead(in);
    assert( item != NULL );
    printf("\n\n*************************************\nOut: %s\n*************************************\n", item );

    if ( 0 == strcmp( item, "T\n")) {
      term = 1;
    }
    //free( item);
	SCCFreePtr(item);
  } // end while

  LpelStreamClose( in, 1);
  printf("Outputter TERM\n");

  LpelStop();
  return NULL;
}
Exemplo n.º 2
0
void *Relay(void *inarg)
{
  channels_t *ch = (channels_t *)inarg;
  int term = 0;
  int id = ch->id;
  char *item;
  lpel_stream_desc_t *in, *out;

  in = LpelStreamOpen(ch->in, 'r');
  out = LpelStreamOpen(ch->out, 'w');

  printf("Relay %d START\n", id);

  while (!term) {
    item = LpelStreamRead( in);
    assert( item != NULL );
    //printf("Relay %d: %s", id, item );
    if ( 0 == strcmp( item, "T\n")) {
      term = 1;
    }
    LpelStreamWrite( out, item);
  } // end while
  LpelStreamClose( in, 1);
  LpelStreamClose( out, 0);
  //free(ch);
  SCCFreePtr(ch);
  printf("Relay %d TERM\n", id);
  return NULL;
}
Exemplo n.º 3
0
void *initP(void *hnd, c4snet_data_t *spt, c4snet_data_t *skey, int size) {
  char *pt = (char *) C4SNetGetData(spt);
  char *key = (char *) C4SNetGetData(skey);
  char *K = (char *) SCCMallocPtr(size * 7);
  char *D = (char *) SCCMallocPtr(size * 8);
  int i;
  for (i = 0; i < size; i++) {
    Permute( &K[i * 7], key, KeyPermuteMap, 7 );
    Permute( &D[i * 8], pt, InitialPermuteMap, 8 );
  }
  C4SNetOut(hnd, 1, C4SNetCreate(CTYPE_char, 8 * size, &D[0]), C4SNetCreate(CTYPE_char, 7 * size, &K[0]), 0, size);
  C4SNetFree(spt);
  C4SNetFree(skey);
  SCCFreePtr (K);
  SCCFreePtr (D);
  return hnd;
}
Exemplo n.º 4
0
void SNetMemFree( void *ptr)
{
  SCCFreePtr(ptr);
}