void init_buffer() { int i; int j, flag; cc_cacheregn_t regn; int *p; buffer = malloc(sizeof(int)*num_sets*ways*linesize); printf(" allocating a total of %ldMB \n",sizeof(int)*num_sets*ways*linesize/(1024*1024)); // insert ulcc here data_start = (int *)ULCC_ALIGN_HIGHER((unsigned long)buffer); data_end = (int *)ULCC_ALIGN_LOWER((unsigned long)(buffer+(sizeof(int)*num_sets*ways*linesize))); cc_cacheregn_clr(®n); cc_cacheregn_set(®n, color_low, color_high, 1); if(cc_remap((unsigned long *)&data_start, (unsigned long *)&data_end, 1, ®n, CC_ALLOC_NOMOVE | CC_MAPORDER_SEQ) < 0) { fprintf(stderr, "failed to remap data region 1\n"); return; } //printf("%d\n",*data_end); srand(time(NULL)); p=(int *)buffer; for(p = (int *)data_start; p<(int *)data_end; p++) { *p = (rand()%128); } }
/* Clear the colors in a cache region */ void cc_cacheregn_clr(cc_cacheregn_t *regn) { cc_cacheregn_set(regn, 0, ULCC_NR_CACHE_COLORS - 1, 0); }