示例#1
0
static void fec_encode_all_stripes(sender_state_t sendst,
                                   struct slice *slice)
{
    int stripe;
    struct net_config *config = sendst->config;
    struct fifo *fifo = sendst->fifo;
    int bytes = slice->bytes;
    int stripes = config->fec_stripes;
    int redundancy = config->fec_redundancy;
    int nrBlocks = (bytes + config->blockSize - 1) / config->blockSize;
    int leftOver = bytes % config->blockSize;
    unsigned char *fec_data = slice->fec_data;

    unsigned char *fec_blocks[redundancy];
    unsigned char *data_blocks[128];

    if(leftOver) {
        unsigned char *lastBlock = ADR(nrBlocks - 1, config->blockSize);
        memset(lastBlock+leftOver, 0, config->blockSize-leftOver);
    }

    for(stripe=0; stripe<stripes; stripe++) {
        int i,j;
        for(i=0; i<redundancy; i++)
            fec_blocks[i] = fec_data+config->blockSize*(stripe+i*stripes);
        for(i=stripe, j=0; i< nrBlocks; i+=stripes, j++)
            data_blocks[j] = ADR(i, config->blockSize);
        fec_encode(config->blockSize, data_blocks, j, fec_blocks, redundancy);

    }
}
static void  init_constants()
{
        c2229 = STRINGTOSYMBOL( CSTRING_TSCP( "*EXPANDER*" ) );
        CONSTANTEXP( ADR( c2229 ) );
        c2214 = CSTRING_TSCP( t2300 );
        CONSTANTEXP( ADR( c2214 ) );
        c2213 = STRINGTOSYMBOL( CSTRING_TSCP( "SET-CDR!" ) );
        CONSTANTEXP( ADR( c2213 ) );
}
示例#3
0
// Uses value in IR to determine course of action
// Returns false if errors
bool interpreter() {
  bool success = true;
  //While no error flag and no timer interrupt
  while (success && timer_interrupt < QUANTUM) {
    machine.IR = main_memory[MMU(machine.PC)];
    machine.PC++; // Increment Program Counter
    unsigned short int op = getOpcode(machine.IR);
    switch (op) {
      case 0:  success = LOD(); break;
      case 1:  success = STO(); break;
      case 2:  success = ADD(); break;
      case 3:  success = SUB(); break;
      case 4:  success = ADR(); break;
      case 5:  success = SUR(); break;
      case 6:  success = AND(); break;
      case 7:  success = IOR(); break;
      case 8:  success = NOT(); break;
      case 9:  success = JMP(); break;
      case 10: success = JEQ(); break;
      case 11: success = JGT(); break;
      case 12: success = JLT(); break;
      case 13: success = CMP(); break;
      case 14: success = CLR(); break;
      case 15:    return HLT(); break; //Quit early on HLT
      default: success = false; break;
    }
    usleep(1000000); // Sleep 1 second to allow easier instruction tracing
    (*sysclock)++;
    timer_interrupt++;
  }
  timer_interrupt = 0;
  return success;
}
static void  init_constants()
{
        TSCP  X1;

        c2426 = EMPTYLIST;
        t2512 = STRINGTOSYMBOL( CSTRING_TSCP( "UNQUOTE-SPLICING" ) );
        c2426 = CONS( t2512, c2426 );
        t2513 = STRINGTOSYMBOL( CSTRING_TSCP( "QUOTE" ) );
        c2426 = CONS( t2513, c2426 );
        CONSTANTEXP( ADR( c2426 ) );
        c2402 = EMPTYLIST;
        X1 = EMPTYLIST;
        X1 = CONS( EMPTYLIST, X1 );
        X1 = CONS( t2513, X1 );
        c2402 = CONS( X1, c2402 );
        CONSTANTEXP( ADR( c2402 ) );
        c2391 = STRINGTOSYMBOL( CSTRING_TSCP( "APPEND" ) );
        CONSTANTEXP( ADR( c2391 ) );
        c2378 = STRINGTOSYMBOL( CSTRING_TSCP( "UNQUOTE-SPLICING" ) );
        CONSTANTEXP( ADR( c2378 ) );
        c2334 = STRINGTOSYMBOL( CSTRING_TSCP( "LIST->VECTOR" ) );
        CONSTANTEXP( ADR( c2334 ) );
        c2306 = EMPTYLIST;
        t2514 = STRINGTOSYMBOL( CSTRING_TSCP( "QUASIQUOTE" ) );
        c2306 = CONS( t2514, c2306 );
        c2306 = CONS( t2513, c2306 );
        CONSTANTEXP( ADR( c2306 ) );
        c2299 = STRINGTOSYMBOL( CSTRING_TSCP( "CONS*" ) );
        CONSTANTEXP( ADR( c2299 ) );
        c2222 = EMPTYLIST;
        t2515 = STRINGTOSYMBOL( CSTRING_TSCP( "UNQUOTE" ) );
        c2222 = CONS( t2515, c2222 );
        c2222 = CONS( t2513, c2222 );
        CONSTANTEXP( ADR( c2222 ) );
        c2221 = STRINGTOSYMBOL( CSTRING_TSCP( "LIST" ) );
        CONSTANTEXP( ADR( c2221 ) );
        c2202 = STRINGTOSYMBOL( CSTRING_TSCP( "QUOTE" ) );
        CONSTANTEXP( ADR( c2202 ) );
        c2173 = STRINGTOSYMBOL( CSTRING_TSCP( "UNQUOTE" ) );
        CONSTANTEXP( ADR( c2173 ) );
        c2135 = CSTRING_TSCP( t2516 );
        CONSTANTEXP( ADR( c2135 ) );
        c2134 = STRINGTOSYMBOL( CSTRING_TSCP( "QUASIQUOTE" ) );
        CONSTANTEXP( ADR( c2134 ) );
}
static void  init_constants()
{
        TSCP  X1;

        c2751 = EMPTYLIST;
        X1 = EMPTYLIST;
        t2832 = STRINGTOSYMBOL( CSTRING_TSCP( "*IGNORED*" ) );
        X1 = CONS( t2832, X1 );
        t2833 = STRINGTOSYMBOL( CSTRING_TSCP( "INCLUDE" ) );
        X1 = CONS( t2833, X1 );
        c2751 = CONS( X1, c2751 );
        t2834 = STRINGTOSYMBOL( CSTRING_TSCP( "QUOTE" ) );
        c2751 = CONS( t2834, c2751 );
        CONSTANTEXP( ADR( c2751 ) );
        c2747 = STRINGTOSYMBOL( CSTRING_TSCP( "INCLUDE" ) );
        CONSTANTEXP( ADR( c2747 ) );
        c2746 = EMPTYLIST;
        X1 = EMPTYLIST;
        X1 = CONS( t2832, X1 );
        t2835 = STRINGTOSYMBOL( CSTRING_TSCP( "MODULE" ) );
        X1 = CONS( t2835, X1 );
        c2746 = CONS( X1, c2746 );
        c2746 = CONS( t2834, c2746 );
        CONSTANTEXP( ADR( c2746 ) );
        c2742 = STRINGTOSYMBOL( CSTRING_TSCP( "MODULE" ) );
        CONSTANTEXP( ADR( c2742 ) );
        c2738 = EMPTYLIST;
        c2738 = CONS( FALSEVALUE, c2738 );
        CONSTANTEXP( ADR( c2738 ) );
        c2735 = CSTRING_TSCP( t2836 );
        CONSTANTEXP( ADR( c2735 ) );
        c2724 = STRINGTOSYMBOL( CSTRING_TSCP( "IF" ) );
        CONSTANTEXP( ADR( c2724 ) );
        c2693 = CSTRING_TSCP( t2837 );
        CONSTANTEXP( ADR( c2693 ) );
        c2660 = STRINGTOSYMBOL( CSTRING_TSCP( "EXP" ) );
        CONSTANTEXP( ADR( c2660 ) );
        c2659 = STRINGTOSYMBOL( CSTRING_TSCP( "DO" ) );
        CONSTANTEXP( ADR( c2659 ) );
        c2614 = CSTRING_TSCP( t2838 );
        CONSTANTEXP( ADR( c2614 ) );
        c2613 = STRINGTOSYMBOL( CSTRING_TSCP( "SET-CDR!" ) );
        CONSTANTEXP( ADR( c2613 ) );
        c2568 = STRINGTOSYMBOL( CSTRING_TSCP( "BEGIN" ) );
        CONSTANTEXP( ADR( c2568 ) );
        c2559 = STRINGTOSYMBOL( CSTRING_TSCP( "SET!" ) );
        CONSTANTEXP( ADR( c2559 ) );
        c2359 = STRINGTOSYMBOL( CSTRING_TSCP( "LET*" ) );
        CONSTANTEXP( ADR( c2359 ) );
        c2242 = STRINGTOSYMBOL( CSTRING_TSCP( "LAMBDA" ) );
        CONSTANTEXP( ADR( c2242 ) );
        c2231 = STRINGTOSYMBOL( CSTRING_TSCP( "LETREC" ) );
        CONSTANTEXP( ADR( c2231 ) );
        c2213 = CSTRING_TSCP( t2839 );
        CONSTANTEXP( ADR( c2213 ) );
        c2166 = CSTRING_TSCP( t2840 );
        CONSTANTEXP( ADR( c2166 ) );
        c2165 = STRINGTOSYMBOL( CSTRING_TSCP( "LET" ) );
        CONSTANTEXP( ADR( c2165 ) );
}