Hint sw_crc(void * list_ptr, Huint size) { Hint *array; for (array = (Hint *) list_ptr; array < (Hint *) list_ptr + size; array++) { *array = gen_crc(*array); } return SUCCESS; }
Hint sw_crc(void * list_ptr, Huint size) { // Set up DMA structure dma_t local_dma; dma_config_t local_dma_config; local_dma_config.base = ACCELERATOR_DMA_BASEADDR; dma_create(&local_dma, &local_dma_config); // Transfer List A to local BRAM A using local dma if(transfer_dma(&local_dma, (void *) list_ptr, (void *) ACC_BRAM_A, size*4)) return FAILURE; Hint *array = (Hint *) ACC_BRAM_A; for (array = (Hint *) ACC_BRAM_A; array < (Hint *) ACC_BRAM_A + size; array++) { *array = gen_crc(*array); } // Transfer results back if(transfer_dma(&local_dma, (void *) ACC_BRAM_A, (void *) list_ptr, size*4)) return FAILURE; else return SUCCESS; }