void process_mmap(mboot_mmap_entry* entry, uint16_t* in_kernel) { uint64_t kernel_start = (uint64_t) text_phys_begin; uint64_t kernel_end = (uint64_t) bss_phys_end; uint64_t end_addr = entry->addr + entry->len - 1; if(!(*in_kernel)) { if(end_addr < kernel_start || entry->addr >= kernel_end) { if(mmap_size == 0 && entry->addr >= kernel_end) { add_kernel(); } mmap[mmap_size].addr = entry->addr; mmap[mmap_size].len = entry->len; mmap[mmap_size].type = entry->type; ++mmap_size; return; } mmap[mmap_size].addr = entry->addr; mmap[mmap_size].len = kernel_start - entry->addr; mmap[mmap_size].type = entry->type; ++mmap_size; add_kernel(); *in_kernel = 1; if(end_addr < kernel_end) { return; } mmap[mmap_size].addr = kernel_end; mmap[mmap_size].len = end_addr - kernel_end; mmap[mmap_size].type = entry->type; ++mmap_size; *in_kernel = 0; return; } if(end_addr < kernel_end) { return; } mmap[mmap_size].addr = max_of(kernel_end, entry->addr); mmap[mmap_size].len = end_addr - mmap[mmap_size].addr;//kernel_end; mmap[mmap_size].type = entry->type; ++mmap_size; *in_kernel = 0; return; }
bool CLTnrImageHandler::set_tnr_kernel(SmartPtr<CLTnrImageKernel> &kernel) { SmartPtr<CLImageKernel> image_kernel = kernel; add_kernel (image_kernel); _tnr_kernel = kernel; return true; }
bool CLGammaImageHandler::set_gamma_kernel(SmartPtr<CLGammaImageKernel> &kernel) { SmartPtr<CLImageKernel> image_kernel = kernel; add_kernel (image_kernel); _gamma_kernel = kernel; return true; }
bool CLRgbPipeImageHandler::set_rgb_pipe_kernel(SmartPtr<CLRgbPipeImageKernel> &kernel) { SmartPtr<CLImageKernel> image_kernel = kernel; add_kernel (image_kernel); _rgb_pipe_kernel = kernel; return true; }
bool CLNewTonemappingImageHandler::set_tonemapping_kernel(SmartPtr<CLNewTonemappingImageKernel> &kernel) { SmartPtr<CLImageKernel> image_kernel = kernel; add_kernel (image_kernel); _tonemapping_kernel = kernel; return true; }
bool CLBayerBasicImageHandler::set_bayer_kernel (SmartPtr<CLBayerBasicImageKernel> &kernel) { SmartPtr<CLImageKernel> image_kernel = kernel; add_kernel (image_kernel); _bayer_kernel = kernel; return true; }
void vadd(double* dst, double* src1, double* src2, int n) { #if 0 dbrew_apply4_R8V8V8(add_kernel, dst, src1, src2); #else while(n>3) { dbrew_apply4_R8V8V8(add_kernel, dst, src1, src2); dst += 4; src1 += 4; src2 += 4; n -= 4; } while(n>0) { *dst++ = add_kernel(*src1++, *src2++); n--; } #endif }