예제 #1
0
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(&regn);
	cc_cacheregn_set(&regn, color_low, color_high, 1);

	if(cc_remap((unsigned long *)&data_start, (unsigned long *)&data_end, 1,
			&regn, 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);
	}
}
예제 #2
0
파일: remapper.c 프로젝트: wkbjerry/ulcc
/* 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);
}