view ppe/Menu.cc @ 2:1e1b0d280427

commit
author yutaka@localhost.localdomain
date Wed, 07 Apr 2010 05:18:52 +0900
parents dcd83cefb980
children 8b4d6bf8c43d
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include "Menu.h"
#include "Sys.h"
#include "params.h"

//headk_num と send_param_head の値を必ず返さないと、動作しない

task_head_t*
menu(int &list_num) {

  list_num = SPE_NUM;
  int all_task_num = SPE_NUM*1000;
  //int all_task_num = 1;
  //int task_size = MAX_DMA_SIZE;
  int task_size = 16*1024;
  //int in_size  = (task_size - sizeof(task_head_t)) * all_task_num;
  //int out_size = (task_size - sizeof(task_head_t)) * all_task_num;

  int in_size  = (task_size - sizeof(task_head_t));
  int out_size = (task_size - sizeof(task_head_t));

  task_head_t *list_head = (task_head_t*)allocate(sizeof(task_head_t)*list_num);

  int list_length = all_task_num / list_num;

  for (int i = 0; i < list_num; i++) {

    list_head[i].ea_out   = 0;
    list_head[i].size_out = 0;
    list_head[i].pin_in   = 0;
    list_head[i].pin_out  = 0;

    task_t *tail = (task_t*)allocate(sizeof(task_t));
    tail->head = &list_head[i];
    tail->input = NULL;

    for (int j = 0; j < list_length; j++) {

      task_t *task = task_allocate(in_size, out_size);
      int *in = (int*)task->input;

      for (int k = 0; k < in_size / sizeof(int); k++) {
	in[k] = k; 
      }

      int pin_in = 0;
      int pin_out = 0;

      set_pin(task, pin_in, pin_out);
      tail = add_list(tail, task);

    }

  }

  printf("return run\n");
  
  return list_head;

}